@provoly/dashboard 0.25.5 → 0.25.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -170,10 +170,8 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
170
170
  this.filter.type = $event;
171
171
  switch ($event) {
172
172
  case 'list':
173
- this.filter.operator = 'EQUALS';
174
- break;
175
173
  case 'autocomplete':
176
- this.filter.operator = 'I_CONTAINS';
174
+ this.filter.operator = 'EQUALS';
177
175
  break;
178
176
  case 'text':
179
177
  this.filter.operator = 'I_CONTAINS';
@@ -239,13 +237,12 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
239
237
  ? ['INSIDE', 'OUTSIDE'].includes(operator.value)
240
238
  : ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);
241
239
  case 'list':
240
+ case 'autocomplete':
242
241
  return ['EQUALS'].includes(operator.value);
243
242
  case 'number':
244
243
  return ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);
245
244
  case 'text':
246
245
  return ['I_CONTAINS', 'CONTAINS', 'EQUALS', 'NOT_EQUALS', 'START_WITH', 'END_WITH'].includes(operator.value);
247
- case 'autocomplete':
248
- return ['I_CONTAINS', 'CONTAINS'].includes(operator.value);
249
246
  default:
250
247
  return operator;
251
248
  }
@@ -269,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
269
266
  type: ViewChild,
270
267
  args: ['container', { read: ViewContainerRef }]
271
268
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBRWhCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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QUNULE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QyxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pGLEtBQUssTUFBTTtvQkFDVCxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvRyxLQUFLLGNBQWM7b0JBQ2pCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0Q7b0JBQ0UsT0FBTyxRQUFRLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsU0FBaUI7UUFDekQsT0FBTyxHQUFHLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzhHQW5TVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixnTEFFTixXQUFXLGlHQWdDVixnQkFBZ0Isb0RDaEZsRCxnK05BaUtBOzsyRkRuSGEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHFCQUFxQjtzTkFJdEIsS0FBSztzQkFBYixLQUFLO2dCQUN3QyxnQkFBZ0I7c0JBQTdELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFnQ1EsU0FBUztzQkFBNUQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIENsYXNzLFxuICBDbGFzc1NlbGVjdG9ycyxcbiAgQ29uZmlnQWN0aW9ucyxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBEYXRhU291cmNlLFxuICBEYXRhU291cmNlU2VsZWN0b3JzLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgRmllbGRUeXBlLFxuICBGaWx0ZXIsXG4gIEZpbHRlckZhY3RvcnlTZXJ2aWNlLFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCxcbiAgTmFtZWRRdWVyeVR5cGVzLFxuICBQcnlJMThuU2VydmljZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgZW51bSBGaWx0ZXJTdGVwcyB7XG4gIExJU1QgPSAnbGlzdCcsXG4gIENSRUFUSU9OID0gJ2NyZWF0aW9uJyxcbiAgRURJVElPTiA9ICdlZGl0aW9uJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGN1c3RvbUlkOiBzdHJpbmc7XG4gIHRlY2huaWNhbE5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZGF0YXNvdXJjZTogc3RyaW5nO1xuICB0eXBlOiBGaWVsZFR5cGU7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1maWx0ZXItc2V0dGluZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlGaWx0ZXJTZXR0aW5nc0NvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbCA9IHRydWU7XG4gIEBWaWV3Q2hpbGQoJ3NldHRpbmdzJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZVNldHRpbmdzITogVGVtcGxhdGVSZWY8YW55PjtcbiAgb3ZlcmxheVJlZlNldHRpbmdzPzogT3ZlcmxheVJlZjtcbiAgc2V0dGluZ3NPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWFuaWZlc3QkOiBPYnNlcnZhYmxlPEdsb2JhbE1hbmlmZXN0PjtcbiAgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgdHlwZXMkOiBPYnNlcnZhYmxlPHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10+O1xuICBjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgY3VycmVudFN0ZXA6IEZpbHRlclN0ZXBzID0gRmlsdGVyU3RlcHMuTElTVDtcbiAgc3RlcHMgPSBGaWx0ZXJTdGVwcztcbiAgZmlsdGVyOiBGaWx0ZXIgPSB7XG4gICAgaWQ6IHY0KCksXG4gICAgbmFtZTogJycsXG4gICAgdHlwZTogJycsXG4gICAgYXR0cmlidXRlczogW11cbiAgfTtcbiAgZGF0YXNvdXJjZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgb3BlcmF0b3JzID0gW1xuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5lcXVhbHNTdHJpbmcnLCB2YWx1ZTogJ0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3Iubm90RXF1YWxzU3RyaW5nJywgdmFsdWU6ICdOT1RfRVFVQUxTJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5jb250YWlucycsIHZhbHVlOiAnQ09OVEFJTlMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmNvbnRhaW5zQ2FzZUluc2Vuc2l0aXZlJywgdmFsdWU6ICdJX0NPTlRBSU5TJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5zdGFydFdpdGgnLCB2YWx1ZTogJ1NUQVJUX1dJVEgnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmVuZFdpdGgnLCB2YWx1ZTogJ0VORF9XSVRIJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5ncmVhdGVyVGhhbk51bWJlcicsIHZhbHVlOiAnR1JFQVRFUl9USEFOJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5sb3dlclRoYW5OdW1iZXInLCB2YWx1ZTogJ0xPV0VSX1RIQU4nIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmlubmVyQm91bmRzRGF0ZScsIHZhbHVlOiAnSU5TSURFJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5vdXRlckJvdW5kc0RhdGUnLCB2YWx1ZTogJ09VVFNJREUnIH1cbiAgXTtcbiAgY3VycmVudE9wZXJhdG9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMub3BlcmF0b3JzKTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVbXT47XG4gIHNlbGVjdGVkQXR0cmlidXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KHRoaXMuZmlsdGVyLmF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PiBhdHRyLmlkKSk7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBjb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZmlsdGVyRmFjdG9yeVNlcnZpY2U6IEZpbHRlckZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHN0b3JlKTtcbiAgICB0aGlzLm1hbmlmZXN0JCA9IHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZ2xvYmFsTWFuaWZlc3QpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm1hbmlmZXN0JC5zdWJzY3JpYmUoKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVycyA9IG1hbmlmZXN0LmZpbHRlcnMgPyBbLi4ubWFuaWZlc3QuZmlsdGVyc10gOiBbXTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YXNvdXJjZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLFxuICAgICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5uYW1lZFF1ZXJpZXNVc2VzKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtkYXRhU291cmNlcywgZGF0YVNvdXJjZXNVc2VkXSkgPT5cbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YVNvdXJjZXNVc2VkKS5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBkYXRhU291cmNlcy5maW5kKChkYXRhU291cmNlKSA9PiBkYXRhU291cmNlLmlkID09PSBpZCk/Lm5hbWUsXG4gICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnR5cGVzJCA9IHRoaXMuZmlsdGVyRmFjdG9yeVNlcnZpY2UudHlwZXMkLnBpcGUoXG4gICAgICBtYXAoKHR5cGVzKSA9PlxuICAgICAgICB0eXBlcy5tYXAoKHR5cGUpID0+ICh7XG4gICAgICAgICAgbGFiZWw6ICdAcHJ5LmZpbHRlcnMudHlwZXMuJyArIHR5cGUsXG4gICAgICAgICAgdmFsdWU6IHR5cGVcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRPcGVyYXRvcnMkLm5leHQodGhpcy5nZXRPcGVyYXRvcnMoKSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmF0dHJpYnV0ZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICBzdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm5hbWVkUXVlcmllc1VzZXMpLFxuICAgICAgc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpLFxuICAgICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSRcbiAgICBdKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20oc3RvcmUuc2VsZWN0KEZpZWxkU2VsZWN0b3JzLmZpZWxkcykpLFxuICAgICAgbWFwKChbW2RhdGFTb3VyY2VzLCBjdXJyZW50RGF0YVNvdXJjZXMsIGNsYXNzZXMsIGNvbXBvbmVudFR5cGVdLCBmaWVsZHNdKSA9PiB7XG4gICAgICAgIGxldCBkYXRhU291cmNlc0luUHJlcyA9IGRhdGFTb3VyY2VzLmZpbHRlcigoZGF0YVNvdXJjZSkgPT5cbiAgICAgICAgICBPYmplY3Qua2V5cyhjdXJyZW50RGF0YVNvdXJjZXMpLmluY2x1ZGVzKGRhdGFTb3VyY2UuaWQpID8gZGF0YVNvdXJjZSA6IGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBkYXRhU291cmNlc0luUHJlc1xuICAgICAgICAgIC5tYXAoKGRhdGFTb3VyY2UpID0+XG4gICAgICAgICAgICAodGhpcy5nZXREYXRhc291cmNlQ2xhc3MoZGF0YVNvdXJjZSwgY2xhc3Nlcyk/LmF0dHJpYnV0ZXMgPz8gW10pLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgICAgICAgaWQ6IGF0dHIuaWQsXG4gICAgICAgICAgICAgIGN1c3RvbUlkOiB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZUlkKGF0dHIuaWQsIGRhdGFTb3VyY2UuaWQpLFxuICAgICAgICAgICAgICB0ZWNobmljYWxOYW1lOiBhdHRyLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgICAgIGxhYmVsOiBgJHthdHRyLm5hbWV9IC8gJHtkYXRhU291cmNlLm5hbWV9YCxcbiAgICAgICAgICAgICAgZGF0YXNvdXJjZTogZGF0YVNvdXJjZS5pZCxcbiAgICAgICAgICAgICAgdHlwZTogZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5pZCA9PT0gYXR0ci5maWVsZCk/LnR5cGUgPz8gRmllbGRUeXBlLlNUUklOR1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAuc29ydCgoYXR0cjEsIGF0dHIyKSA9PiBhdHRyMS5sYWJlbC5sb2NhbGVDb21wYXJlKGF0dHIyLmxhYmVsKSlcbiAgICAgICAgICAuZmlsdGVyKChhdHRyKSA9PiB0aGlzLmlzVmFsaWRBdHRyaWJ1dGVGb3JDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGUsIGF0dHIpKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKFxuICAgICAgICAoYXR0cmlidXRlcykgPT5cbiAgICAgICAgICBbXG4gICAgICAgICAgICAuLi5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgLi4udGhpcy5maWx0ZXIuYXR0cmlidXRlc1xuICAgICAgICAgICAgICAubWFwKChhdHRyKSA9PlxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMubWFwKChhKSA9PiBhLmlkKS5pbmNsdWRlcyhhdHRyLmlkKVxuICAgICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLmF0dHIsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQHByeS50b29sYm94Lm5vdEluRHNBdHRyJyl9IC0gJHthdHRyLmxhYmVsfWAsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NlczogJy13YXJuJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmZpbHRlcigoYXR0cikgPT4gISFhdHRyKVxuICAgICAgICAgIF0gYXMgQXR0cmlidXRlW11cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmF0dHJpYnV0ZXMkLnN1YnNjcmliZSgoYXR0cnMpID0+ICh0aGlzLmF0dHJpYnV0ZXMgPSBhdHRycykpKTtcbiAgfVxuXG4gIGdldERhdGFzb3VyY2VDbGFzcyhkYXRhU291cmNlOiBEYXRhU291cmNlLCBjbGFzc2VzOiBDbGFzc1tdKTogQ2xhc3MgfCB1bmRlZmluZWQge1xuICAgIGxldCBjbGF6ejogQ2xhc3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICBjbGF6eiA9IGNsYXNzZXMuZmluZCgoY2xhenopID0+IGNsYXp6LmlkID09PSBkYXRhU291cmNlLm9DbGFzcyk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ25hbWVkUXVlcnknICYmXG4gICAgICBkYXRhU291cmNlLnJlcXVlc3QgJiZcbiAgICAgIGRhdGFTb3VyY2UucmVxdWVzdC50eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTU1xuICAgICkge1xuICAgICAgY2xhenogPSBjbGFzc2VzLmZpbmQoKGNsYXp6KSA9PiBjbGF6ei5pZCA9PT0gKGRhdGFTb3VyY2UucmVxdWVzdCBhcyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkKS5vQ2xhc3MpO1xuICAgIH1cbiAgICByZXR1cm4gY2xheno7XG4gIH1cblxuICBpc1ZhbGlkQXR0cmlidXRlRm9yQ29tcG9uZW50VHlwZShjb21wb25lbnRUeXBlOiBzdHJpbmcsIGF0dHJpYnV0ZTogQXR0cmlidXRlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChjb21wb25lbnRUeXBlKSB7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS50eXBlID09PSBGaWVsZFR5cGUuSU5TVEFOVDtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBbRmllbGRUeXBlLklOVEVHRVIsIEZpZWxkVHlwZS5ERUNJTUFMLCBGaWVsZFR5cGUuTE9OR10uaW5jbHVkZXMoYXR0cmlidXRlLnR5cGUpO1xuICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIHJldHVybiBbRmllbGRUeXBlLlNUUklORywgRmllbGRUeXBlLktFWVdPUkRdLmluY2x1ZGVzKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgIGNhc2UgJ2F1dG9jb21wbGV0ZSc6XG4gICAgICAgIHJldHVybiBbRmllbGRUeXBlLktFWVdPUkRdLmluY2x1ZGVzKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEZpbHRlcltdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmZpbHRlcnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gIH1cblxuICB0b2dnbGVTZXR0aW5ncygpIHtcbiAgICB0aGlzLnNldHRpbmdzT3BlbmVkID0gIXRoaXMuc2V0dGluZ3NPcGVuZWQ7XG4gICAgaWYgKHRoaXMuc2V0dGluZ3NPcGVuZWQpIHtcbiAgICAgIHRoaXMub3BlblNldHRpbmdzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZXRGaWx0ZXJzKHsgZmlsdGVyczogdGhpcy5maWx0ZXJzIH0pKTtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgb3BlblNldHRpbmdzKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJywgJ28tc2VsZWN0LWdyaWQtbGF5b3V0LW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wLS13aXRoLWNvbG9yJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5nb0JhY2soKTtcbiAgICAgIHRoaXMudG9nZ2xlU2V0dGluZ3MoKTtcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncy5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVTZXR0aW5ncywgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gIH1cblxuICB1cGRhdGVGaWx0ZXJUeXBlKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5maWx0ZXIudHlwZSA9ICRldmVudDtcbiAgICBzd2l0Y2ggKCRldmVudCkge1xuICAgICAgY2FzZSAnbGlzdCc6XG4gICAgICAgIHRoaXMuZmlsdGVyLm9wZXJhdG9yID0gJ0VRVUFMUyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXV0b2NvbXBsZXRlJzpcbiAgICAgICAgdGhpcy5maWx0ZXIub3BlcmF0b3IgPSAnSV9DT05UQUlOUyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIHRoaXMuZmlsdGVyLm9wZXJhdG9yID0gJ0lfQ09OVEFJTlMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZmlsdGVyLm9wZXJhdG9yID0gdGhpcy5maWx0ZXIub3BlcmF0b3I7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXIudHlwZSAhPT0gJycgJiYgdGhpcy5jb250YWluZXIpIHtcbiAgICAgIGxldCBjb21wb25lbnQgPSB0aGlzLmZpbHRlckZhY3RvcnlTZXJ2aWNlLmdlbmVyYXRlRmlsdGVyKHRoaXMuZmlsdGVyLnR5cGUsIHRoaXMuaW5qZWN0b3IsIHRoaXMuY29udGFpbmVyKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGNvbXBvbmVudC5zdWJzY3JpYmUoKGNvbXBvbmVudFJlZikgPT4ge1xuICAgICAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLm5leHQoY29tcG9uZW50UmVmLmluc3RhbmNlLnR5cGUpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXIubGltaXQgPSB0aGlzLmZpbHRlci50eXBlID09PSAnYXV0b2NvbXBsZXRlJyA/IHRoaXMuZmlsdGVyLmxpbWl0ID8/IDEwIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0RmlsdGVyQXR0cmlidXRlcyhmaWx0ZXI6IEZpbHRlciwgYXR0ckNvdW50OiBudW1iZXIpIHtcbiAgICBhdHRyQ291bnQgPSBhdHRyQ291bnQgPD0gZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoID8gYXR0ckNvdW50IDogZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoO1xuICAgIHJldHVybiBmaWx0ZXIuYXR0cmlidXRlc1xuICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci50ZWNobmljYWxOYW1lKVxuICAgICAgLnNsaWNlKDAsIGF0dHJDb3VudClcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZmlsdGVyID0ge1xuICAgICAgaWQ6IHY0KCksXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHR5cGU6ICcnLFxuICAgICAgYXR0cmlidXRlczogW11cbiAgICB9O1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBGaWx0ZXJTdGVwcy5MSVNUO1xuICB9XG5cbiAgZ29Ub0VkaXRpb24oZmlsdGVyOiBGaWx0ZXIpIHtcbiAgICB0aGlzLmZpbHRlciA9IHtcbiAgICAgIC4uLmZpbHRlcixcbiAgICAgIGF0dHJpYnV0ZXM6IFtcbiAgICAgICAgLi4uZmlsdGVyLmF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PiAoeyAuLi5hdHRyLCBjdXN0b21JZDogdGhpcy5nZXRDdXN0b21BdHRyaWJ1dGVJZChhdHRyLmlkLCBhdHRyLmRhdGFzb3VyY2UpIH0pKVxuICAgICAgXVxuICAgIH07XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkVESVRJT047XG4gIH1cblxuICBnb1RvQ3JlYXRpb24oKSB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQubmV4dCgnJyk7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkNSRUFUSU9OO1xuICB9XG5cbiAgc3VibWl0RmlsdGVyKCkge1xuICAgIHRoaXMuZmlsdGVyLmF0dHJpYnV0ZXMgPSB0aGlzLmZpbHRlci5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT5cbiAgICAgIHR5cGVvZiBhdHRyID09PSAnc3RyaW5nJyA/IHRoaXMuYXR0cmlidXRlcy5maW5kKChhdHRyT2JqKSA9PiBhdHRyT2JqLmN1c3RvbUlkID09PSBhdHRyKSEgOiBhdHRyXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRmlsdGVycyh7IGZpbHRlcjogdGhpcy5maWx0ZXIgfSkpO1xuICAgIHRoaXMuZ29CYWNrKCk7XG4gIH1cblxuICBzZWxlY3RBdHRyaWJ1dGUoJGV2ZW50OiBBdHRyaWJ1dGVbXSkge1xuICAgIHRoaXMuZmlsdGVyLmF0dHJpYnV0ZXMgPSAkZXZlbnQ7XG4gICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSQubmV4dCgkZXZlbnQubWFwKChhdHRyKSA9PiBhdHRyLmlkKSk7XG4gIH1cblxuICBkZWxldGVGaWx0ZXIoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXIoeyBpZCB9KSk7XG4gIH1cblxuICBnZXRPcGVyYXRvcnMoKTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0b3JzLmZpbHRlcigob3BlcmF0b3IpID0+IHtcbiAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQudmFsdWUpIHtcbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLmhhc0RhdGVSYW5nZVxuICAgICAgICAgICAgPyBbJ0lOU0lERScsICdPVVRTSURFJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpXG4gICAgICAgICAgICA6IFsnRVFVQUxTJywgJ05PVF9FUVVBTFMnLCAnR1JFQVRFUl9USEFOJywgJ0xPV0VSX1RIQU4nXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgICAgIHJldHVybiBbJ0VRVUFMUyddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICByZXR1cm4gWydFUVVBTFMnLCAnTk9UX0VRVUFMUycsICdHUkVBVEVSX1RIQU4nLCAnTE9XRVJfVEhBTiddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgcmV0dXJuIFsnSV9DT05UQUlOUycsICdDT05UQUlOUycsICdFUVVBTFMnLCAnTk9UX0VRVUFMUycsICdTVEFSVF9XSVRIJywgJ0VORF9XSVRIJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdhdXRvY29tcGxldGUnOlxuICAgICAgICAgIHJldHVybiBbJ0lfQ09OVEFJTlMnLCAnQ09OVEFJTlMnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG9wZXJhdG9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q3VzdG9tQXR0cmlidXRlSWQoYXR0cmlidXRlSWQ6IHN0cmluZywgZGF0YXNldElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHthdHRyaWJ1dGVJZH1AJHtkYXRhc2V0SWR9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzO1xufVxuIiwiPHByeS10b29sYm94LWNzcz48L3ByeS10b29sYm94LWNzcz5cbjxkaXYgY2xhc3M9XCJzYXZlLW1hbmlmZXN0LWNvbnRhaW5lclwiPlxuICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiKGF0dHJpYnV0ZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIlxuICAgIChjbGljayk9XCJ0b2dnbGVTZXR0aW5ncygpXCJcbiAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMubGFiZWwnIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NldHRpbmdzPlxuICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19faGVhZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkxJU1RcIj5cbiAgICAgICAgPGgyPnt7ICdAcHJ5LmZpbHRlcnMubGFiZWwnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuQ1JFQVRJT04gfHwgY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkVESVRJT05cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1yb3cgLWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYmFjay1idXR0b25cIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hldnJvbl9yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGgyPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgKGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiA/ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uY3JlYXRlJyA6ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udXBkYXRlJylcbiAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNldHRpbmdzKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoYXR0cmlidXRlcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMDsgZWxzZSBhdHRyaWJ1dGVzRXhpc3RzXCIgY2xhc3M9XCJhLXRhYmxlLXdyYXBwZXJcIj48L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdHRyaWJ1dGVzRXhpc3RzPlxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cImZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBub0ZpbHRlcnNcIiBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgICAgICAgIDx0Ym9keSBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImZpbHRlcnNcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgY2xhc3M9XCJvLWZpbHRlcnNfX2ZpbHRlclwiIGNka0RyYWc+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmlsdGVyLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlciwgMykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImRlbGV0ZUZpbHRlcihmaWx0ZXIuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvVG9FZGl0aW9uKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZmlsdGVycy5saXN0Lm1vZGlmeScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkcmFnX2luZGljYXRvclwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRmlsdGVycz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1maWx0ZXJzX19uby1maWx0ZXJzXCI+e3sgJ0BwcnkuZmlsdGVycy5ub0ZpbHRlcnMnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG9DcmVhdGlvbigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPnt7ICdAcHJ5LmZpbHRlcnMubGlzdC5hZGQnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiB8fCBjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuRURJVElPTlwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlck5hbWVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLm5hbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGlkPVwiZmlsdGVyTmFtZVwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5uYW1lXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyVHlwZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJmaWx0ZXJUeXBlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmNyZWF0aW9uLnR5cGUnIHwgaTE4blwiXG4gICAgICAgICAgICBbaXRlbXNdPVwidHlwZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIudHlwZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJUeXBlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2RhdGUnXCIgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgdS1kaXNwbGF5LWZsZXggLXJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJkYXRlLXJhbmdlXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5kYXRlUmFuZ2UnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgaWQ9XCJkYXRlLXJhbmdlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLmhhc0RhdGVSYW5nZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLmN1cnJlbnRPcGVyYXRvcnMkLm5leHQoZ2V0T3BlcmF0b3JzKCkpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdsaXN0J1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBvc3NpYmxlVmFsdWVzXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi52YWx1ZXMnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLnBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwidmFsZXVyMSwgdmFsZXVyMiwgdmFsZXVyM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnYXV0b2NvbXBsZXRlJ1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImxpbWl0XCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5saW1pdCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJsaW1pdFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBtYXg9XCI1MFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmxpbWl0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYXR0cmlidXRlc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiYXR0cmlidXRlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmaWx0ZXIuYXR0cmlidXRlc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RBdHRyaWJ1dGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5hdHRyaWJ1dGVzJyB8IGkxOG5cIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwiY3VzdG9tSWRcIlxuICAgICAgICAgICAgYmluZENsYXNzZXM9XCJjbGFzc2VzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJvcGVyYXRpb25zXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5hdHRyaWJ1dGVzLm9wZXJhdG9yJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cIm9wZXJhdGlvbnNcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImN1cnJlbnRPcGVyYXRvcnMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIub3BlcmF0b3JcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuYXR0cmlidXRlcy5vcGVyYXRvcicgfCBpMThuXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnIHx8XG4gICAgICAgICAgICAgIChjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdhdXRvY29tcGxldGUnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZpbHRlcigpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIShmaWx0ZXIubmFtZSAmJiBmaWx0ZXIudHlwZSAmJiBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGggIT09IDAgJiYgZmlsdGVyLm9wZXJhdG9yKVwiXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBRWhCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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QVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdDLEtBQUssUUFBUTtvQkFDWCxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekYsS0FBSyxNQUFNO29CQUNULE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9HO29CQUNFLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxXQUFtQixFQUFFLFNBQWlCO1FBQ3pELE9BQU8sR0FBRyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs4R0FoU1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsZ0xBRU4sV0FBVyxpR0FnQ1YsZ0JBQWdCLG9EQ2hGbEQsZytOQWlLQTs7MkZEbkhhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSxxQkFBcUI7c05BSXRCLEtBQUs7c0JBQWIsS0FBSztnQkFDd0MsZ0JBQWdCO3NCQUE3RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBZ0NRLFNBQVM7c0JBQTVELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDbGFzcyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZSxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEZpZWxkVHlwZSxcbiAgRmlsdGVyLFxuICBGaWx0ZXJGYWN0b3J5U2VydmljZSxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQsXG4gIE5hbWVkUXVlcnlUeXBlcyxcbiAgUHJ5STE4blNlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBUb29sYm94QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gRmlsdGVyU3RlcHMge1xuICBMSVNUID0gJ2xpc3QnLFxuICBDUkVBVElPTiA9ICdjcmVhdGlvbicsXG4gIEVESVRJT04gPSAnZWRpdGlvbidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGUge1xuICBpZDogc3RyaW5nO1xuICBjdXN0b21JZDogc3RyaW5nO1xuICB0ZWNobmljYWxOYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRhdGFzb3VyY2U6IHN0cmluZztcbiAgdHlwZTogRmllbGRUeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZmlsdGVyLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBAVmlld0NoaWxkKCdzZXR0aW5ncycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVTZXR0aW5ncyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG92ZXJsYXlSZWZTZXR0aW5ncz86IE92ZXJsYXlSZWY7XG4gIHNldHRpbmdzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIG1hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdPjtcbiAgY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGN1cnJlbnRTdGVwOiBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIHN0ZXBzID0gRmlsdGVyU3RlcHM7XG4gIGZpbHRlcjogRmlsdGVyID0ge1xuICAgIGlkOiB2NCgpLFxuICAgIG5hbWU6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGF0dHJpYnV0ZXM6IFtdXG4gIH07XG4gIGRhdGFzb3VyY2UkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZXJhdG9ycyA9IFtcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZXF1YWxzU3RyaW5nJywgdmFsdWU6ICdFUVVBTFMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLm5vdEVxdWFsc1N0cmluZycsIHZhbHVlOiAnTk9UX0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuY29udGFpbnMnLCB2YWx1ZTogJ0NPTlRBSU5TJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5jb250YWluc0Nhc2VJbnNlbnNpdGl2ZScsIHZhbHVlOiAnSV9DT05UQUlOUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3Iuc3RhcnRXaXRoJywgdmFsdWU6ICdTVEFSVF9XSVRIJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5lbmRXaXRoJywgdmFsdWU6ICdFTkRfV0lUSCcgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZ3JlYXRlclRoYW5OdW1iZXInLCB2YWx1ZTogJ0dSRUFURVJfVEhBTicgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IubG93ZXJUaGFuTnVtYmVyJywgdmFsdWU6ICdMT1dFUl9USEFOJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5pbm5lckJvdW5kc0RhdGUnLCB2YWx1ZTogJ0lOU0lERScgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3Iub3V0ZXJCb3VuZHNEYXRlJywgdmFsdWU6ICdPVVRTSURFJyB9XG4gIF07XG4gIGN1cnJlbnRPcGVyYXRvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLm9wZXJhdG9ycyk7XG4gIGNsYXNzZXM6IENsYXNzW10gPSBbXTtcbiAgYXR0cmlidXRlcyQ6IE9ic2VydmFibGU8QXR0cmlidXRlW10+O1xuICBzZWxlY3RlZEF0dHJpYnV0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPih0aGlzLmZpbHRlci5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4gYXR0ci5pZCkpO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcbiAgYXR0cmlidXRlczogQXR0cmlidXRlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGZpbHRlckZhY3RvcnlTZXJ2aWNlOiBGaWx0ZXJGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gICAgdGhpcy5tYW5pZmVzdCQgPSBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmdsb2JhbE1hbmlmZXN0KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5tYW5pZmVzdCQuc3Vic2NyaWJlKChtYW5pZmVzdCkgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSBtYW5pZmVzdC5maWx0ZXJzID8gWy4uLm1hbmlmZXN0LmZpbHRlcnNdIDogW107XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmRhdGFzb3VyY2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubmFtZWRRdWVyaWVzVXNlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YVNvdXJjZXMsIGRhdGFTb3VyY2VzVXNlZF0pID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGRhdGFTb3VyY2VzVXNlZCkubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZGF0YVNvdXJjZXMuZmluZCgoZGF0YVNvdXJjZSkgPT4gZGF0YVNvdXJjZS5pZCA9PT0gaWQpPy5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBpZFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy50eXBlcyQgPSB0aGlzLmZpbHRlckZhY3RvcnlTZXJ2aWNlLnR5cGVzJC5waXBlKFxuICAgICAgbWFwKCh0eXBlcykgPT5cbiAgICAgICAgdHlwZXMubWFwKCh0eXBlKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiAnQHByeS5maWx0ZXJzLnR5cGVzLicgKyB0eXBlLFxuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50T3BlcmF0b3JzJC5uZXh0KHRoaXMuZ2V0T3BlcmF0b3JzKCkpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5hdHRyaWJ1dGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLFxuICAgICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5uYW1lZFF1ZXJpZXNVc2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKSxcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpKSxcbiAgICAgIG1hcCgoW1tkYXRhU291cmNlcywgY3VycmVudERhdGFTb3VyY2VzLCBjbGFzc2VzLCBjb21wb25lbnRUeXBlXSwgZmllbGRzXSkgPT4ge1xuICAgICAgICBsZXQgZGF0YVNvdXJjZXNJblByZXMgPSBkYXRhU291cmNlcy5maWx0ZXIoKGRhdGFTb3VyY2UpID0+XG4gICAgICAgICAgT2JqZWN0LmtleXMoY3VycmVudERhdGFTb3VyY2VzKS5pbmNsdWRlcyhkYXRhU291cmNlLmlkKSA/IGRhdGFTb3VyY2UgOiBmYWxzZVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZGF0YVNvdXJjZXNJblByZXNcbiAgICAgICAgICAubWFwKChkYXRhU291cmNlKSA9PlxuICAgICAgICAgICAgKHRoaXMuZ2V0RGF0YXNvdXJjZUNsYXNzKGRhdGFTb3VyY2UsIGNsYXNzZXMpPy5hdHRyaWJ1dGVzID8/IFtdKS5tYXAoKGF0dHIpID0+ICh7XG4gICAgICAgICAgICAgIGlkOiBhdHRyLmlkLFxuICAgICAgICAgICAgICBjdXN0b21JZDogdGhpcy5nZXRDdXN0b21BdHRyaWJ1dGVJZChhdHRyLmlkLCBkYXRhU291cmNlLmlkKSxcbiAgICAgICAgICAgICAgdGVjaG5pY2FsTmFtZTogYXR0ci50ZWNobmljYWxOYW1lLFxuICAgICAgICAgICAgICBsYWJlbDogYCR7YXR0ci5uYW1lfSAvICR7ZGF0YVNvdXJjZS5uYW1lfWAsXG4gICAgICAgICAgICAgIGRhdGFzb3VyY2U6IGRhdGFTb3VyY2UuaWQsXG4gICAgICAgICAgICAgIHR5cGU6IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IGF0dHIuZmllbGQpPy50eXBlID8/IEZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIClcbiAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgLnNvcnQoKGF0dHIxLCBhdHRyMikgPT4gYXR0cjEubGFiZWwubG9jYWxlQ29tcGFyZShhdHRyMi5sYWJlbCkpXG4gICAgICAgICAgLmZpbHRlcigoYXR0cikgPT4gdGhpcy5pc1ZhbGlkQXR0cmlidXRlRm9yQ29tcG9uZW50VHlwZShjb21wb25lbnRUeXBlLCBhdHRyKSk7XG4gICAgICB9KSxcbiAgICAgIG1hcChcbiAgICAgICAgKGF0dHJpYnV0ZXMpID0+XG4gICAgICAgICAgW1xuICAgICAgICAgICAgLi4uYXR0cmlidXRlcyxcbiAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVyLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgLm1hcCgoYXR0cikgPT5cbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLm1hcCgoYSkgPT4gYS5pZCkuaW5jbHVkZXMoYXR0ci5pZClcbiAgICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5hdHRyLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHt0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0BwcnkudG9vbGJveC5ub3RJbkRzQXR0cicpfSAtICR7YXR0ci5sYWJlbH1gLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM6ICctd2FybidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGF0dHIpID0+ICEhYXR0cilcbiAgICAgICAgICBdIGFzIEF0dHJpYnV0ZVtdXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5hdHRyaWJ1dGVzJC5zdWJzY3JpYmUoKGF0dHJzKSA9PiAodGhpcy5hdHRyaWJ1dGVzID0gYXR0cnMpKSk7XG4gIH1cblxuICBnZXREYXRhc291cmNlQ2xhc3MoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSwgY2xhc3NlczogQ2xhc3NbXSk6IENsYXNzIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgY2xheno6IENsYXNzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChkYXRhU291cmNlLnNvdXJjZVR5cGUgPT09ICdkYXRhc2V0Jykge1xuICAgICAgY2xhenogPSBjbGFzc2VzLmZpbmQoKGNsYXp6KSA9PiBjbGF6ei5pZCA9PT0gZGF0YVNvdXJjZS5vQ2xhc3MpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBkYXRhU291cmNlLnNvdXJjZVR5cGUgPT09ICduYW1lZFF1ZXJ5JyAmJlxuICAgICAgZGF0YVNvdXJjZS5yZXF1ZXN0ICYmXG4gICAgICBkYXRhU291cmNlLnJlcXVlc3QudHlwZSA9PT0gTmFtZWRRdWVyeVR5cGVzLk1PTk9fQ0xBU1NcbiAgICApIHtcbiAgICAgIGNsYXp6ID0gY2xhc3Nlcy5maW5kKChjbGF6eikgPT4gY2xhenouaWQgPT09IChkYXRhU291cmNlLnJlcXVlc3QgYXMgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCkub0NsYXNzKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYXp6O1xuICB9XG5cbiAgaXNWYWxpZEF0dHJpYnV0ZUZvckNvbXBvbmVudFR5cGUoY29tcG9uZW50VHlwZTogc3RyaW5nLCBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAoY29tcG9uZW50VHlwZSkge1xuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGUudHlwZSA9PT0gRmllbGRUeXBlLklOU1RBTlQ7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gW0ZpZWxkVHlwZS5JTlRFR0VSLCBGaWVsZFR5cGUuREVDSU1BTCwgRmllbGRUeXBlLkxPTkddLmluY2x1ZGVzKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICByZXR1cm4gW0ZpZWxkVHlwZS5TVFJJTkcsIEZpZWxkVHlwZS5LRVlXT1JEXS5pbmNsdWRlcyhhdHRyaWJ1dGUudHlwZSk7XG4gICAgICBjYXNlICdhdXRvY29tcGxldGUnOlxuICAgICAgICByZXR1cm4gW0ZpZWxkVHlwZS5LRVlXT1JEXS5pbmNsdWRlcyhhdHRyaWJ1dGUudHlwZSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxGaWx0ZXJbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5maWx0ZXJzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgdG9nZ2xlU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXR0aW5nc09wZW5lZCA9ICF0aGlzLnNldHRpbmdzT3BlbmVkO1xuICAgIGlmICh0aGlzLnNldHRpbmdzT3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5TZXR0aW5ncygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncz8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2V0RmlsdGVycyh7IGZpbHRlcnM6IHRoaXMuZmlsdGVycyB9KSk7XG4gICAgICB0aGlzLmdvQmFjaygpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TZXR0aW5ncygpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncyA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlcicsICdvLXNlbGVjdC1ncmlkLWxheW91dC1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcC0td2l0aC1jb2xvcidcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgICB0aGlzLnRvZ2dsZVNldHRpbmdzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlU2V0dGluZ3MsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyVHlwZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyLnR5cGUgPSAkZXZlbnQ7XG4gICAgc3dpdGNoICgkZXZlbnQpIHtcbiAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgY2FzZSAnYXV0b2NvbXBsZXRlJzpcbiAgICAgICAgdGhpcy5maWx0ZXIub3BlcmF0b3IgPSAnRVFVQUxTJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgdGhpcy5maWx0ZXIub3BlcmF0b3IgPSAnSV9DT05UQUlOUyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5maWx0ZXIub3BlcmF0b3IgPSB0aGlzLmZpbHRlci5vcGVyYXRvcjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlci50eXBlICE9PSAnJyAmJiB0aGlzLmNvbnRhaW5lcikge1xuICAgICAgbGV0IGNvbXBvbmVudCA9IHRoaXMuZmlsdGVyRmFjdG9yeVNlcnZpY2UuZ2VuZXJhdGVGaWx0ZXIodGhpcy5maWx0ZXIudHlwZSwgdGhpcy5pbmplY3RvciwgdGhpcy5jb250YWluZXIpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgY29tcG9uZW50LnN1YnNjcmliZSgoY29tcG9uZW50UmVmKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQubmV4dChjb21wb25lbnRSZWYuaW5zdGFuY2UudHlwZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlci5saW1pdCA9IHRoaXMuZmlsdGVyLnR5cGUgPT09ICdhdXRvY29tcGxldGUnID8gdGhpcy5maWx0ZXIubGltaXQgPz8gMTAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlcjogRmlsdGVyLCBhdHRyQ291bnQ6IG51bWJlcikge1xuICAgIGF0dHJDb3VudCA9IGF0dHJDb3VudCA8PSBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGggPyBhdHRyQ291bnQgOiBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGg7XG4gICAgcmV0dXJuIGZpbHRlci5hdHRyaWJ1dGVzXG4gICAgICAubWFwKChhdHRyKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpXG4gICAgICAuc2xpY2UoMCwgYXR0ckNvdW50KVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5maWx0ZXIgPSB7XG4gICAgICBpZDogdjQoKSxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgICBhdHRyaWJ1dGVzOiBbXVxuICAgIH07XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIH1cblxuICBnb1RvRWRpdGlvbihmaWx0ZXI6IEZpbHRlcikge1xuICAgIHRoaXMuZmlsdGVyID0ge1xuICAgICAgLi4uZmlsdGVyLFxuICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAuLi5maWx0ZXIuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+ICh7IC4uLmF0dHIsIGN1c3RvbUlkOiB0aGlzLmdldEN1c3RvbUF0dHJpYnV0ZUlkKGF0dHIuaWQsIGF0dHIuZGF0YXNvdXJjZSkgfSkpXG4gICAgICBdXG4gICAgfTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gRmlsdGVyU3RlcHMuRURJVElPTjtcbiAgfVxuXG4gIGdvVG9DcmVhdGlvbigpIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC5uZXh0KCcnKTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gRmlsdGVyU3RlcHMuQ1JFQVRJT047XG4gIH1cblxuICBzdWJtaXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXIuYXR0cmlidXRlcyA9IHRoaXMuZmlsdGVyLmF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PlxuICAgICAgdHlwZW9mIGF0dHIgPT09ICdzdHJpbmcnID8gdGhpcy5hdHRyaWJ1dGVzLmZpbmQoKGF0dHJPYmopID0+IGF0dHJPYmouY3VzdG9tSWQgPT09IGF0dHIpISA6IGF0dHJcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVGaWx0ZXJzKHsgZmlsdGVyOiB0aGlzLmZpbHRlciB9KSk7XG4gICAgdGhpcy5nb0JhY2soKTtcbiAgfVxuXG4gIHNlbGVjdEF0dHJpYnV0ZSgkZXZlbnQ6IEF0dHJpYnV0ZVtdKSB7XG4gICAgdGhpcy5maWx0ZXIuYXR0cmlidXRlcyA9ICRldmVudDtcbiAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlJC5uZXh0KCRldmVudC5tYXAoKGF0dHIpID0+IGF0dHIuaWQpKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlcihpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlcih7IGlkIH0pKTtcbiAgfVxuXG4gIGdldE9wZXJhdG9ycygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRvcnMuZmlsdGVyKChvcGVyYXRvcikgPT4ge1xuICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC52YWx1ZSkge1xuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIuaGFzRGF0ZVJhbmdlXG4gICAgICAgICAgICA/IFsnSU5TSURFJywgJ09VVFNJREUnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSlcbiAgICAgICAgICAgIDogWydFUVVBTFMnLCAnTk9UX0VRVUFMUycsICdHUkVBVEVSX1RIQU4nLCAnTE9XRVJfVEhBTiddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgY2FzZSAnbGlzdCc6XG4gICAgICAgIGNhc2UgJ2F1dG9jb21wbGV0ZSc6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgIHJldHVybiBbJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ0dSRUFURVJfVEhBTicsICdMT1dFUl9USEFOJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICByZXR1cm4gWydJX0NPTlRBSU5TJywgJ0NPTlRBSU5TJywgJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ1NUQVJUX1dJVEgnLCAnRU5EX1dJVEgnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG9wZXJhdG9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q3VzdG9tQXR0cmlidXRlSWQoYXR0cmlidXRlSWQ6IHN0cmluZywgZGF0YXNldElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHthdHRyaWJ1dGVJZH1AJHtkYXRhc2V0SWR9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzO1xufVxuIiwiPHByeS10b29sYm94LWNzcz48L3ByeS10b29sYm94LWNzcz5cbjxkaXYgY2xhc3M9XCJzYXZlLW1hbmlmZXN0LWNvbnRhaW5lclwiPlxuICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiKGF0dHJpYnV0ZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIlxuICAgIChjbGljayk9XCJ0b2dnbGVTZXR0aW5ncygpXCJcbiAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMubGFiZWwnIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NldHRpbmdzPlxuICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19faGVhZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkxJU1RcIj5cbiAgICAgICAgPGgyPnt7ICdAcHJ5LmZpbHRlcnMubGFiZWwnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuQ1JFQVRJT04gfHwgY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkVESVRJT05cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1yb3cgLWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYmFjay1idXR0b25cIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hldnJvbl9yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGgyPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgKGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiA/ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uY3JlYXRlJyA6ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udXBkYXRlJylcbiAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNldHRpbmdzKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoYXR0cmlidXRlcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMDsgZWxzZSBhdHRyaWJ1dGVzRXhpc3RzXCIgY2xhc3M9XCJhLXRhYmxlLXdyYXBwZXJcIj48L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdHRyaWJ1dGVzRXhpc3RzPlxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cImZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBub0ZpbHRlcnNcIiBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgICAgICAgIDx0Ym9keSBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImZpbHRlcnNcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgY2xhc3M9XCJvLWZpbHRlcnNfX2ZpbHRlclwiIGNka0RyYWc+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmlsdGVyLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlciwgMykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImRlbGV0ZUZpbHRlcihmaWx0ZXIuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvVG9FZGl0aW9uKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZmlsdGVycy5saXN0Lm1vZGlmeScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkcmFnX2luZGljYXRvclwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRmlsdGVycz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1maWx0ZXJzX19uby1maWx0ZXJzXCI+e3sgJ0BwcnkuZmlsdGVycy5ub0ZpbHRlcnMnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG9DcmVhdGlvbigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPnt7ICdAcHJ5LmZpbHRlcnMubGlzdC5hZGQnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiB8fCBjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuRURJVElPTlwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlck5hbWVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLm5hbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGlkPVwiZmlsdGVyTmFtZVwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5uYW1lXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyVHlwZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJmaWx0ZXJUeXBlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmNyZWF0aW9uLnR5cGUnIHwgaTE4blwiXG4gICAgICAgICAgICBbaXRlbXNdPVwidHlwZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIudHlwZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJUeXBlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2RhdGUnXCIgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgdS1kaXNwbGF5LWZsZXggLXJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJkYXRlLXJhbmdlXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5kYXRlUmFuZ2UnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgaWQ9XCJkYXRlLXJhbmdlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLmhhc0RhdGVSYW5nZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLmN1cnJlbnRPcGVyYXRvcnMkLm5leHQoZ2V0T3BlcmF0b3JzKCkpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdsaXN0J1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBvc3NpYmxlVmFsdWVzXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi52YWx1ZXMnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLnBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwidmFsZXVyMSwgdmFsZXVyMiwgdmFsZXVyM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnYXV0b2NvbXBsZXRlJ1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImxpbWl0XCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5saW1pdCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJsaW1pdFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBtYXg9XCI1MFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmxpbWl0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYXR0cmlidXRlc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiYXR0cmlidXRlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmaWx0ZXIuYXR0cmlidXRlc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RBdHRyaWJ1dGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5hdHRyaWJ1dGVzJyB8IGkxOG5cIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwiY3VzdG9tSWRcIlxuICAgICAgICAgICAgYmluZENsYXNzZXM9XCJjbGFzc2VzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJvcGVyYXRpb25zXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5hdHRyaWJ1dGVzLm9wZXJhdG9yJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cIm9wZXJhdGlvbnNcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImN1cnJlbnRPcGVyYXRvcnMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIub3BlcmF0b3JcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuYXR0cmlidXRlcy5vcGVyYXRvcicgfCBpMThuXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnIHx8XG4gICAgICAgICAgICAgIChjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdhdXRvY29tcGxldGUnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZpbHRlcigpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIShmaWx0ZXIubmFtZSAmJiBmaWx0ZXIudHlwZSAmJiBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGggIT09IDAgJiYgZmlsdGVyLm9wZXJhdG9yKVwiXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -28,10 +28,10 @@ export class WidgetVegaComponent extends DataWidgetComponent {
28
28
  this.vegaSpec$ = combineLatest([this.options$, this.resultSet$, this.widgetSize$, this.displayHeader$]).pipe(filter(([options, rs, size, header]) => !!rs), map(([options, rs, size, header]) => {
29
29
  const data = WidgetVegaComponent.getValues(rs);
30
30
  const vegaSpec = WidgetVegaComponent.placeData(options, JSON.parse(JSON.stringify(options.baseSpec)), data);
31
- vegaSpec.width = size.width - 15;
32
- vegaSpec.height = size.height - 40 - (header ? WIDGET_HEADER_HEIGHT : 0);
33
- vegaSpec.autosize = { type: 'fit', contains: 'padding' };
34
- vegaSpec.padding = 15;
31
+ vegaSpec.width = vegaSpec.width ?? size.width - 15;
32
+ vegaSpec.height = vegaSpec.height ?? size.height - (header ? WIDGET_HEADER_HEIGHT : 0);
33
+ vegaSpec.autosize = vegaSpec.autosize ?? { type: 'fit', contains: 'padding' };
34
+ vegaSpec.padding = vegaSpec.padding ?? 15;
35
35
  console.log(JSON.stringify(vegaSpec, undefined, 4));
36
36
  return vegaSpec;
37
37
  }));
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
136
136
  type: ViewChild,
137
137
  args: ['vega']
138
138
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXZlZ2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUVMLG1CQUFtQixFQU9uQixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sS0FBNEIsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU10RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBVTFELFlBQ0UsS0FBaUIsRUFDVCxnQkFBZ0MsRUFDeEMsRUFBYyxFQUNZLFFBQWtCLEVBQ3BDLFlBQWdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMVCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBRWQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFYMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsZ0JBQVcsR0FBc0IsRUFBRSxRQUFR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RyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWE7UUFDdEIsSUFBSSxDQUFDO1lBQ0gsYUFBYTtZQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2pELElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDO2dCQUMzRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQzthQUNyRSxDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7OEdBOUlVLG1CQUFtQiwrRkFjcEIsUUFBUTtrR0FkUCxtQkFBbUIsNEtDdkJoQyw4bERBOENBOzsyRkR2QmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQjs7MEJBaUJ4QixNQUFNOzJCQUFDLFFBQVE7MEVBYkMsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSxcbiAgRGF0YVdpZGdldENvbXBvbmVudCxcbiAgSXRlbSxcbiAgUHJ5STE4blNlcnZpY2UsXG4gIFByeVNuYWNrYmFyU2VydmljZSxcbiAgUmVzdWx0U2V0LFxuICBWYWx1ZVR5cGUsXG4gIFZlZ2FXaWRnZXRPcHRpb25zLFxuICBXSURHRVRfSEVBREVSX0hFSUdIVFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAndmVnYSc7XG5pbXBvcnQgZW1iZWQsIHsgVmlzdWFsaXphdGlvblNwZWMgfSBmcm9tICd2ZWdhLWVtYmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXdpZGdldC12ZWdhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC12ZWdhLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRWZWdhQ29tcG9uZW50IGV4dGVuZHMgRGF0YVdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd2ZWdhJykgdmVnYSE6IEVsZW1lbnRSZWY7XG4gIHZpZXc/OiBWaWV3O1xuICB2ZWdhU3BlYyQ6IE9ic2VydmFibGU8VmlzdWFsaXphdGlvblNwZWM+O1xuICB0cmlnZ2VyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wdGlvbnNDb3B5OiBWZWdhV2lkZ2V0T3B0aW9ucyA9IHsgYmFzZVNwZWM6IHt9LCBwbGFjZURhdGE6IFtdIH07XG4gIGZvcm1hdHRlZEJhc2VTcGVjOiBzdHJpbmcgPSAne30nO1xuICBpbml0aWFsRm9ybWF0dGVkQmFzZVNwZWM6IHN0cmluZyA9ICd7fSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHNuYWNrU2VydmljZTogUHJ5U25hY2tiYXJTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHN0b3JlLCBlbCk7XG5cbiAgICB0aGlzLm9wdGlvbnMkID0gdGhpcy5tYW5pZmVzdCQucGlwZShtYXAoKG1hbmlmZXN0KSA9PiAobWFuaWZlc3Qub3B0aW9ucyA/PyB7fSkgYXMgYW55KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMub3B0aW9ucyQuc3Vic2NyaWJlKChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRCYXNlU3BlYyA9IEpTT04uc3RyaW5naWZ5KHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMsIHVuZGVmaW5lZCwgNCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbEZvcm1hdHRlZEJhc2VTcGVjID0gSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zQ29weS5iYXNlU3BlYywgdW5kZWZpbmVkLCA0KTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMudmVnYVNwZWMkID0gY29tYmluZUxhdGVzdChbdGhpcy5vcHRpb25zJCwgdGhpcy5yZXN1bHRTZXQkLCB0aGlzLndpZGdldFNpemUkLCB0aGlzLmRpc3BsYXlIZWFkZXIkXSkucGlwZShcbiAgICAgIGZpbHRlcigoW29wdGlvbnMsIHJzLCBzaXplLCBoZWFkZXJdKSA9PiAhIXJzKSxcbiAgICAgIG1hcCgoW29wdGlvbnMsIHJzLCBzaXplLCBoZWFkZXJdKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBXaWRnZXRWZWdhQ29tcG9uZW50LmdldFZhbHVlcyhycyk7XG5cbiAgICAgICAgY29uc3QgdmVnYVNwZWMgPSBXaWRnZXRWZWdhQ29tcG9uZW50LnBsYWNlRGF0YShvcHRpb25zLCBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuYmFzZVNwZWMpKSwgZGF0YSk7XG5cbiAgICAgICAgdmVnYVNwZWMud2lkdGggPSBzaXplLndpZHRoIC0gMTU7XG4gICAgICAgIHZlZ2FTcGVjLmhlaWdodCA9IHNpemUuaGVpZ2h0IC0gNDAgLSAoaGVhZGVyID8gV0lER0VUX0hFQURFUl9IRUlHSFQgOiAwKTtcbiAgICAgICAgdmVnYVNwZWMuYXV0b3NpemUgPSB7IHR5cGU6ICdmaXQnLCBjb250YWluczogJ3BhZGRpbmcnIH07XG4gICAgICAgIHZlZ2FTcGVjLnBhZGRpbmcgPSAxNTtcblxuICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh2ZWdhU3BlYywgdW5kZWZpbmVkLCA0KSk7XG5cbiAgICAgICAgcmV0dXJuIHZlZ2FTcGVjO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbHVlcyhkYXRhOiBSZXN1bHRTZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YS5pdGVtcylcbiAgICAgIC5tYXAoKGNsYXp6KSA9PiBkYXRhLml0ZW1zW2NsYXp6XS5tYXAoKGl0ZW0pID0+IFdpZGdldFZlZ2FDb21wb25lbnQudHJhbnNmb3JtUHJvdm9seU1vZGVsVG9DbGFzc2ljKGl0ZW0pKSlcbiAgICAgIC5mbGF0KCk7XG4gIH1cblxuICBzdGF0aWMgdHJhbnNmb3JtUHJvdm9seU1vZGVsVG9DbGFzc2ljKHZhbHVlczogSXRlbSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9IGFzIHsgW2tleTogc3RyaW5nXTogVmFsdWVUeXBlIH07XG4gICAgT2JqZWN0LmtleXModmFsdWVzLmF0dHJpYnV0ZXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgcmVzdWx0W2tleV0gPSAodmFsdWVzLmF0dHJpYnV0ZXNba2V5XSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSkudmFsdWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3RhdGljIHBsYWNlRGF0YShvcHRpb25zOiBWZWdhV2lkZ2V0T3B0aW9ucywgYmFzZVNwZWM6IGFueSwgZGF0YTogeyBba2V5OiBzdHJpbmddOiBWYWx1ZVR5cGUgfVtdKSB7XG4gICAgY29uc3QgY2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGJhc2VTcGVjKSk7XG4gICAgbGV0IHJlZiA9IGNsb25lO1xuICAgIChvcHRpb25zLnBsYWNlRGF0YSA/PyBbXSkuZm9yRWFjaCgocHJvcCwgaWR4LCBhcnIpID0+IHtcbiAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgaWYgKGlkeCA8IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgcmVmID0gcmVmW3Byb3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlZltwcm9wXSA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmVnYVNwZWMkLCB0aGlzLnRyaWdnZXIkLCB0aGlzLndpZGdldFNpemUkXSkuc3Vic2NyaWJlKChbc3BlYywgXywgc2l6ZV0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMudmVnYSkge1xuICAgICAgICAgIHRoaXMudmlldz8uZmluYWxpemUoKTtcblxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5kZWJ1Z0ZOVFAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoc3BlYywgdW5kZWZpbmVkLCA0KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZW1iZWQodGhpcy52ZWdhLm5hdGl2ZUVsZW1lbnQsIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3BlYykpLCB7XG4gICAgICAgICAgICBhY3Rpb25zOiBmYWxzZSxcbiAgICAgICAgICAgIHJlbmRlcmVyOiAnY2FudmFzJyxcbiAgICAgICAgICAgIGZvcm1hdExvY2FsZToge1xuICAgICAgICAgICAgICBkZWNpbWFsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5mb3JtYXQuZGVjaW1hbCcpLFxuICAgICAgICAgICAgICB0aG91c2FuZHM6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LmZvcm1hdC50aG91c2FuZHMnKSxcbiAgICAgICAgICAgICAgZ3JvdXBpbmc6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LmZvcm1hdC5ncm91cGluZycpLFxuICAgICAgICAgICAgICBjdXJyZW5jeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0BwcnkuZm9ybWF0LmN1cnJlbmN5JyksXG4gICAgICAgICAgICAgIHBlcmNlbnQ6ICdcXHUyMDJmJSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+ICh0aGlzLnZpZXcgPSByZXN1bHQudmlldykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cmlnZ2VyJC5uZXh0KCksIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXIkLm5leHQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSW1hZ2UoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVzb2x2ZSh0aGlzLnZlZ2EubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdjYW52YXMnKVswXS50b0RhdGFVUkwoJ2ltYWdlL3BuZycpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGVtaXRNYW5pZmVzdCgpIHtcbiAgICB0aGlzLm1hbmlmZXN0TW9kaWZpZWQuZW1pdCh7XG4gICAgICB3aWRnZXRJbmRleDogdGhpcy53aWRnZXRJbmRleCxcbiAgICAgIG1hbmlmZXN0OiB7IC4uLnRoaXMubWFuaWZlc3QsIG9wdGlvbnM6IHRoaXMub3B0aW9uc0NvcHkgfVxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlUGxhY2VEYXRhKCRldmVudDogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgZXhwciA9ICRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMub3B0aW9uc0NvcHkucGxhY2VEYXRhID0gZXhwclxuICAgICAgLnNwbGl0KCcuJylcbiAgICAgIC5tYXAoKHZhbDogc3RyaW5nKSA9PiAocGFyc2VJbnQodmFsKSArICcnID09PSBgJHt2YWx9YCA/IHBhcnNlSW50KHZhbCkgOiB2YWwpKTtcbiAgfVxuXG4gIGNoYW5nZVNwZWMoJGV2ZW50OiBFdmVudCkge1xuICAgIHRyeSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjID0gSlNPTi5wYXJzZSgkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuc25hY2tTZXJ2aWNlLm5vdE1pdGlnYXRlZE9wZW4oe1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS53aWRnZXQudmVnYS5ub3RQYXJzZWFibGVTcGVjJyksXG4gICAgICAgIGFjdGlvbjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0Bwcnkud2lkZ2V0LnZlZ2Euc3BlY1JlaW5pdCcpXG4gICAgICB9KTtcbiAgICAgIG1lc3NhZ2U/LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMgPSB0aGlzLmluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPHByeS13aWRnZXQtdmVnYS1jc3M+PC9wcnktd2lkZ2V0LXZlZ2EtY3NzPlxuPGRpdiBjbGFzcz1cIm8td2lkZ2V0IG8td2lkZ2V0LS1jaGFydFwiPlxuICA8cHJ5LXdpZGdldC1oZWFkZXJcbiAgICAqbmdJZj1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJtYW5pZmVzdE1vZGlmaWVkLmVtaXQoJGV2ZW50KVwiXG4gICAgI2hlYWRlclxuICAgIFtoZWFkZXJPcHRpb25zXT1cIihkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSA/PyB7fVwiXG4gICAgW2RhdGFzb3VyY2VJZHNdPVwiKGRhdGFzb3VyY2VJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgPlxuICAgIDxwcnktc2V0dGluZ3NcbiAgICAgIChzYXZlVHJpZ2dlcmVkKT1cImVtaXRNYW5pZmVzdCgpXCJcbiAgICAgIChjaGFuZ2VUaXRsZSk9XCJjaGFuZ2VXaWRnZXRUaXRsZSgkZXZlbnQpXCJcbiAgICAgIFtoZWFkZXJQcmVzZW50XT1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICAgIFtvcGVuJF09XCJvcGVuJFwiXG4gICAgICBjbGFzcz1cIm8tc2V0dGluZ3NcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19maWVsZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwbGFjZURhdGFfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnZlZ2EucGxhY2VEYXRhJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgaWQ9XCJwbGFjZURhdGFfc3JjXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCIob3B0aW9uc0NvcHkucGxhY2VEYXRhID8/IFtdKS5qb2luKCcuJylcIlxuICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZVBsYWNlRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInNwZWNfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnZlZ2Euc3BlYycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIGEtdGV4dC1hcmVhXCJcbiAgICAgICAgICAgIGlkPVwic3BlY19zcmNcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdHRlZEJhc2VTcGVjXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VTcGVjKCRldmVudClcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcHJ5LXNldHRpbmdzPlxuICA8L3ByeS13aWRnZXQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLWNoYXJ0LS1jaGFydFwiICN2ZWdhPjwvZGl2PlxuPC9kaXY+XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXZlZ2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUVMLG1CQUFtQixFQU9uQixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sS0FBNEIsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU10RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBVTFELFlBQ0UsS0FBaUIsRUFDVCxnQkFBZ0MsRUFDeEMsRUFBYyxFQUNZLFFBQWtCLEVBQ3BDLFlBQWdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMVCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBRWQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFYMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsZ0JBQVcsR0FBc0IsRUFBRSxRQUFR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SyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFhO1FBQ3RCLElBQUksQ0FBQztZQUNILGFBQWE7WUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO2dCQUNqRCxJQUFJLEVBQUUsT0FBTztnQkFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQztnQkFDM0UsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUM7YUFDckUsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQTlJVSxtQkFBbUIsK0ZBY3BCLFFBQVE7a0dBZFAsbUJBQW1CLDRLQ3ZCaEMsOGxEQThDQTs7MkZEdkJhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7OzBCQWlCeEIsTUFBTTsyQkFBQyxRQUFROzBFQWJDLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlU2ltcGxlVmFsdWUsXG4gIERhdGFXaWRnZXRDb21wb25lbnQsXG4gIEl0ZW0sXG4gIFByeUkxOG5TZXJ2aWNlLFxuICBQcnlTbmFja2JhclNlcnZpY2UsXG4gIFJlc3VsdFNldCxcbiAgVmFsdWVUeXBlLFxuICBWZWdhV2lkZ2V0T3B0aW9ucyxcbiAgV0lER0VUX0hFQURFUl9IRUlHSFRcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVmlldyB9IGZyb20gJ3ZlZ2EnO1xuaW1wb3J0IGVtYmVkLCB7IFZpc3VhbGl6YXRpb25TcGVjIH0gZnJvbSAndmVnYS1lbWJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtdmVnYScsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtdmVnYS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0VmVnYUNvbXBvbmVudCBleHRlbmRzIERhdGFXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgndmVnYScpIHZlZ2EhOiBFbGVtZW50UmVmO1xuICB2aWV3PzogVmlldztcbiAgdmVnYVNwZWMkOiBPYnNlcnZhYmxlPFZpc3VhbGl6YXRpb25TcGVjPjtcbiAgdHJpZ2dlciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBvcHRpb25zQ29weTogVmVnYVdpZGdldE9wdGlvbnMgPSB7IGJhc2VTcGVjOiB7fSwgcGxhY2VEYXRhOiBbXSB9O1xuICBmb3JtYXR0ZWRCYXNlU3BlYzogc3RyaW5nID0gJ3t9JztcbiAgaW5pdGlhbEZvcm1hdHRlZEJhc2VTcGVjOiBzdHJpbmcgPSAne30nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSBzbmFja1NlcnZpY2U6IFByeVNuYWNrYmFyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihzdG9yZSwgZWwpO1xuXG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMubWFuaWZlc3QkLnBpcGUobWFwKChtYW5pZmVzdCkgPT4gKG1hbmlmZXN0Lm9wdGlvbnMgPz8ge30pIGFzIGFueSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnN1YnNjcmliZSgob3B0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNDb3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQmFzZVNwZWMgPSBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjLCB1bmRlZmluZWQsIDQpO1xuICAgICAgICB0aGlzLmluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYyA9IEpTT04uc3RyaW5naWZ5KHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMsIHVuZGVmaW5lZCwgNCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnZlZ2FTcGVjJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub3B0aW9ucyQsIHRoaXMucmVzdWx0U2V0JCwgdGhpcy53aWRnZXRTaXplJCwgdGhpcy5kaXNwbGF5SGVhZGVyJF0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKFtvcHRpb25zLCBycywgc2l6ZSwgaGVhZGVyXSkgPT4gISFycyksXG4gICAgICBtYXAoKFtvcHRpb25zLCBycywgc2l6ZSwgaGVhZGVyXSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gV2lkZ2V0VmVnYUNvbXBvbmVudC5nZXRWYWx1ZXMocnMpO1xuXG4gICAgICAgIGNvbnN0IHZlZ2FTcGVjID0gV2lkZ2V0VmVnYUNvbXBvbmVudC5wbGFjZURhdGEob3B0aW9ucywgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvcHRpb25zLmJhc2VTcGVjKSksIGRhdGEpO1xuXG4gICAgICAgIHZlZ2FTcGVjLndpZHRoID0gdmVnYVNwZWMud2lkdGggPz8gc2l6ZS53aWR0aCAtIDE1O1xuICAgICAgICB2ZWdhU3BlYy5oZWlnaHQgPSB2ZWdhU3BlYy5oZWlnaHQgPz8gc2l6ZS5oZWlnaHQgLSAoaGVhZGVyID8gV0lER0VUX0hFQURFUl9IRUlHSFQgOiAwKTtcbiAgICAgICAgdmVnYVNwZWMuYXV0b3NpemUgPSB2ZWdhU3BlYy5hdXRvc2l6ZSA/PyB7IHR5cGU6ICdmaXQnLCBjb250YWluczogJ3BhZGRpbmcnIH07XG4gICAgICAgIHZlZ2FTcGVjLnBhZGRpbmcgPSB2ZWdhU3BlYy5wYWRkaW5nID8/IDE1O1xuXG4gICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHZlZ2FTcGVjLCB1bmRlZmluZWQsIDQpKTtcblxuICAgICAgICByZXR1cm4gdmVnYVNwZWM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsdWVzKGRhdGE6IFJlc3VsdFNldCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhLml0ZW1zKVxuICAgICAgLm1hcCgoY2xhenopID0+IGRhdGEuaXRlbXNbY2xhenpdLm1hcCgoaXRlbSkgPT4gV2lkZ2V0VmVnYUNvbXBvbmVudC50cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWMoaXRlbSkpKVxuICAgICAgLmZsYXQoKTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWModmFsdWVzOiBJdGVtKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBWYWx1ZVR5cGUgfTtcbiAgICBPYmplY3Qua2V5cyh2YWx1ZXMuYXR0cmlidXRlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9ICh2YWx1ZXMuYXR0cmlidXRlc1trZXldIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS52YWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgcGxhY2VEYXRhKG9wdGlvbnM6IFZlZ2FXaWRnZXRPcHRpb25zLCBiYXNlU3BlYzogYW55LCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IFZhbHVlVHlwZSB9W10pIHtcbiAgICBjb25zdCBjbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYmFzZVNwZWMpKTtcbiAgICBsZXQgcmVmID0gY2xvbmU7XG4gICAgKG9wdGlvbnMucGxhY2VEYXRhID8/IFtdKS5mb3JFYWNoKChwcm9wLCBpZHgsIGFycikgPT4ge1xuICAgICAgaWYgKHJlZikge1xuICAgICAgICBpZiAoaWR4IDwgYXJyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICByZWYgPSByZWZbcHJvcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmW3Byb3BdID0gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy52ZWdhU3BlYyQsIHRoaXMudHJpZ2dlciQsIHRoaXMud2lkZ2V0U2l6ZSRdKS5zdWJzY3JpYmUoKFtzcGVjLCBfLCBzaXplXSkgPT4ge1xuICAgICAgICBpZiAodGhpcy52ZWdhKSB7XG4gICAgICAgICAgdGhpcy52aWV3Py5maW5hbGl6ZSgpO1xuXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGlmICh0aGlzLmRvY3VtZW50LmRlYnVnRk5UUCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShzcGVjLCB1bmRlZmluZWQsIDQpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbWJlZCh0aGlzLnZlZ2EubmF0aXZlRWxlbWVudCwgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzcGVjKSksIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IGZhbHNlLFxuICAgICAgICAgICAgcmVuZGVyZXI6ICdjYW52YXMnLFxuICAgICAgICAgICAgZm9ybWF0TG9jYWxlOiB7XG4gICAgICAgICAgICAgIGRlY2ltYWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LmZvcm1hdC5kZWNpbWFsJyksXG4gICAgICAgICAgICAgIHRob3VzYW5kczogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0BwcnkuZm9ybWF0LnRob3VzYW5kcycpLFxuICAgICAgICAgICAgICBncm91cGluZzogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0BwcnkuZm9ybWF0Lmdyb3VwaW5nJyksXG4gICAgICAgICAgICAgIGN1cnJlbmN5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5mb3JtYXQuY3VycmVuY3knKSxcbiAgICAgICAgICAgICAgcGVyY2VudDogJ1xcdTIwMmYlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gKHRoaXMudmlldyA9IHJlc3VsdC52aWV3KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRyaWdnZXIkLm5leHQoKSwgMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMudHJpZ2dlciQubmV4dCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9JbWFnZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlKHRoaXMudmVnYS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2NhbnZhcycpWzBdLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJykpO1xuICAgIH0pO1xuICB9XG5cbiAgZW1pdE1hbmlmZXN0KCkge1xuICAgIHRoaXMubWFuaWZlc3RNb2RpZmllZC5lbWl0KHtcbiAgICAgIHdpZGdldEluZGV4OiB0aGlzLndpZGdldEluZGV4LFxuICAgICAgbWFuaWZlc3Q6IHsgLi4udGhpcy5tYW5pZmVzdCwgb3B0aW9uczogdGhpcy5vcHRpb25zQ29weSB9XG4gICAgfSk7XG4gIH1cblxuICBjaGFuZ2VQbGFjZURhdGEoJGV2ZW50OiBFdmVudCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBleHByID0gJGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgdGhpcy5vcHRpb25zQ29weS5wbGFjZURhdGEgPSBleHByXG4gICAgICAuc3BsaXQoJy4nKVxuICAgICAgLm1hcCgodmFsOiBzdHJpbmcpID0+IChwYXJzZUludCh2YWwpICsgJycgPT09IGAke3ZhbH1gID8gcGFyc2VJbnQodmFsKSA6IHZhbCkpO1xuICB9XG5cbiAgY2hhbmdlU3BlYygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMgPSBKU09OLnBhcnNlKCRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5zbmFja1NlcnZpY2Uubm90TWl0aWdhdGVkT3Blbih7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LndpZGdldC52ZWdhLm5vdFBhcnNlYWJsZVNwZWMnKSxcbiAgICAgICAgYWN0aW9uOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS53aWRnZXQudmVnYS5zcGVjUmVpbml0JylcbiAgICAgIH0pO1xuICAgICAgbWVzc2FnZT8uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weS5iYXNlU3BlYyA9IHRoaXMuaW5pdGlhbEZvcm1hdHRlZEJhc2VTcGVjO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8cHJ5LXdpZGdldC12ZWdhLWNzcz48L3ByeS13aWRnZXQtdmVnYS1jc3M+XG48ZGl2IGNsYXNzPVwiby13aWRnZXQgby13aWRnZXQtLWNoYXJ0XCI+XG4gIDxwcnktd2lkZ2V0LWhlYWRlclxuICAgICpuZ0lmPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICBbbWFuaWZlc3RdPVwibWFuaWZlc3RcIlxuICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAjaGVhZGVyXG4gICAgW2hlYWRlck9wdGlvbnNdPVwiKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpID8/IHt9XCJcbiAgICBbZGF0YXNvdXJjZUlkc109XCIoZGF0YXNvdXJjZUlkcyQgfCBhc3luYykgPz8gW11cIlxuICA+XG4gICAgPHByeS1zZXR0aW5nc1xuICAgICAgKHNhdmVUcmlnZ2VyZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgICAgKGNoYW5nZVRpdGxlKT1cImNoYW5nZVdpZGdldFRpdGxlKCRldmVudClcIlxuICAgICAgW2hlYWRlclByZXNlbnRdPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gICAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgICAgW2hlYWRlcl09XCJoZWFkZXJcIlxuICAgICAgW29wZW4kXT1cIm9wZW4kXCJcbiAgICAgIGNsYXNzPVwiby1zZXR0aW5nc1wiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX2ZpZWxkc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInBsYWNlRGF0YV9zcmNcIj57eyAnQHByeS53aWRnZXQudmVnYS5wbGFjZURhdGEnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBpZD1cInBsYWNlRGF0YV9zcmNcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIihvcHRpb25zQ29weS5wbGFjZURhdGEgPz8gW10pLmpvaW4oJy4nKVwiXG4gICAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlUGxhY2VEYXRhKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwic3BlY19zcmNcIj57eyAnQHByeS53aWRnZXQudmVnYS5zcGVjJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGQgYS10ZXh0LWFyZWFcIlxuICAgICAgICAgICAgaWQ9XCJzcGVjX3NyY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZm9ybWF0dGVkQmFzZVNwZWNcIlxuICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZVNwZWMoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktc2V0dGluZ3M+XG4gIDwvcHJ5LXdpZGdldC1oZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tY2hhcnQtLWNoYXJ0XCIgI3ZlZ2E+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -276,10 +276,8 @@ class PryFilterSettingsComponent extends ToolboxActionComponent {
276
276
  this.filter.type = $event;
277
277
  switch ($event) {
278
278
  case 'list':
279
- this.filter.operator = 'EQUALS';
280
- break;
281
279
  case 'autocomplete':
282
- this.filter.operator = 'I_CONTAINS';
280
+ this.filter.operator = 'EQUALS';
283
281
  break;
284
282
  case 'text':
285
283
  this.filter.operator = 'I_CONTAINS';
@@ -345,13 +343,12 @@ class PryFilterSettingsComponent extends ToolboxActionComponent {
345
343
  ? ['INSIDE', 'OUTSIDE'].includes(operator.value)
346
344
  : ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);
347
345
  case 'list':
346
+ case 'autocomplete':
348
347
  return ['EQUALS'].includes(operator.value);
349
348
  case 'number':
350
349
  return ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);
351
350
  case 'text':
352
351
  return ['I_CONTAINS', 'CONTAINS', 'EQUALS', 'NOT_EQUALS', 'START_WITH', 'END_WITH'].includes(operator.value);
353
- case 'autocomplete':
354
- return ['I_CONTAINS', 'CONTAINS'].includes(operator.value);
355
352
  default:
356
353
  return operator;
357
354
  }