@acorex/components 7.12.2 → 7.12.3

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.
@@ -57,7 +57,7 @@ export class AXCheckBoxComponent extends MXValueComponent {
57
57
  useExisting: forwardRef(() => AXCheckBoxComponent),
58
58
  multi: true,
59
59
  },
60
- ], queries: [{ propertyName: "_labels", predicate: AXLabelComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n <input\n [id]=\"id\"\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: [".ax-checkbox-label{display:flex;width:-moz-fit-content;width:fit-content;-webkit-user-select:none;user-select:none;align-items:flex-start;font-size:.875rem;line-height:1.25rem}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label .ax-checkbox-start-side{display:flex;height:1.25rem;align-items:center}.ax-checkbox-label .ax-checkbox-end-side{margin-inline-start:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
60
+ ], queries: [{ propertyName: "_labels", predicate: AXLabelComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n <input\n [id]=\"id\"\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: [".ax-checkbox-label{display:flex;width:-moz-fit-content;width:fit-content;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;font-size:.875rem;line-height:1.25rem}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label.ax-state-disabled .ax-checkbox:disabled{opacity:1}.ax-checkbox-label .ax-checkbox-start-side{display:flex;height:1.25rem;align-items:center}.ax-checkbox-label .ax-checkbox-end-side{margin-inline-start:.75rem}.ax-checkbox-label .ax-checkbox-end-side ax-label label{margin-bottom:0}.ax-checkbox-label .ax-checkbox-end-side ax-form-hint{margin-top:.25rem;cursor:text;-webkit-user-select:text;user-select:text}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXCheckBoxComponent, decorators: [{
63
63
  type: Component,
@@ -67,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
67
67
  useExisting: forwardRef(() => AXCheckBoxComponent),
68
68
  multi: true,
69
69
  },
70
- ], template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n <input\n [id]=\"id\"\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: [".ax-checkbox-label{display:flex;width:-moz-fit-content;width:fit-content;-webkit-user-select:none;user-select:none;align-items:flex-start;font-size:.875rem;line-height:1.25rem}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label .ax-checkbox-start-side{display:flex;height:1.25rem;align-items:center}.ax-checkbox-label .ax-checkbox-end-side{margin-inline-start:.75rem}\n"] }]
70
+ ], template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n <input\n [id]=\"id\"\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: [".ax-checkbox-label{display:flex;width:-moz-fit-content;width:fit-content;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;font-size:.875rem;line-height:1.25rem}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label.ax-state-disabled .ax-checkbox:disabled{opacity:1}.ax-checkbox-label .ax-checkbox-start-side{display:flex;height:1.25rem;align-items:center}.ax-checkbox-label .ax-checkbox-end-side{margin-inline-start:.75rem}.ax-checkbox-label .ax-checkbox-end-side ax-label label{margin-bottom:0}.ax-checkbox-label .ax-checkbox-end-side ax-form-hint{margin-top:.25rem;cursor:text;-webkit-user-select:text;user-select:text}\n"] }]
71
71
  }], propDecorators: { _labels: [{
72
72
  type: ContentChildren,
73
73
  args: [AXLabelComponent]
@@ -194,6 +194,7 @@ export class AXPopoverComponent extends MXBaseComponent {
194
194
  });
195
195
  //
196
196
  this._overlayEvents.scroll = this._platform.scroll.subscribe((c) => {
197
+ //__axContext__
197
198
  const el = c.nativeEvent.target;
198
199
  if (!this.isActionsheetStyle) {
199
200
  if (el == document) {
@@ -223,6 +224,7 @@ export class AXPopoverComponent extends MXBaseComponent {
223
224
  }
224
225
  //
225
226
  close() {
227
+ debugger;
226
228
  if (!this.isOpen) {
227
229
  return;
228
230
  }
@@ -269,7 +271,7 @@ export class AXPopoverComponent extends MXBaseComponent {
269
271
  .flexibleConnectedTo(targetRef)
270
272
  .withPositions(this._placements)
271
273
  .withPush(false),
272
- scrollStrategy: this._overlay.scrollStrategies.close(),
274
+ scrollStrategy: this._overlay.scrollStrategies.noop(),
273
275
  disposeOnNavigation: true,
274
276
  panelClass: ['ax-animate-fadeIn', 'ax-animate-faster'],
275
277
  maxHeight: 'unset',
@@ -300,6 +302,10 @@ export class AXPopoverComponent extends MXBaseComponent {
300
302
  });
301
303
  this._overlayRef?.attach(this._portal);
302
304
  }
305
+ debugger;
306
+ if (this.componentRef?.instance) {
307
+ this.componentRef.instance["abc"] = "2016";
308
+ }
303
309
  }
304
310
  get isOpen() {
305
311
  return this._overlayRef ? this._overlayRef.hasAttached() : false;
@@ -384,4 +390,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
384
390
  }], onClosed: [{
385
391
  type: Output
386
392
  }] } });
387
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFnQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQXlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWF0RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZUFBZTtJQVB2RDs7UUFRVSxjQUFTLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLGFBQVEsR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUU1QixrQkFBYSxHQUlqQixFQUFFLENBQUM7UUFDQyxtQkFBYyxHQUtsQixFQUFFLENBQUM7UUFFUCxFQUFFO1FBQ00sYUFBUSxHQUFHLENB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cEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsb0JBQW9CLEVBQUUsQ0FBQzs4QkF3QnBFLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBaUJLLE1BQU07c0JBRGhCLEtBQUs7Z0JBbUJLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBNEJOLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixPQUFPO3NCQUROLEtBQUs7Z0JBTUssTUFBTTtzQkFEaEIsS0FBSztnQkFnQkssT0FBTztzQkFEakIsS0FBSztnQkFnQk4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixRQUFRO3NCQURQLE1BQU07Z0JBR1AsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb25uZWN0ZWRQb3NpdGlvbixcbiAgQVhFdmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYUGxhY2VtZW50VHlwZSxcbiAgTVhCYXNlQ29tcG9uZW50LFxuICBjb252ZXJ0VG9QbGFjZW1lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmLCBQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlbGF5LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgQVhQb3BvdmVyT3BlblRyaWdnZXIgPSAnbWFudWFsJyB8ICdjbGljaycgfCAnaG92ZXInIHwgJ3RvZ2dsZSc7XG5cbmV4cG9ydCB0eXBlIEFYUG9wb3ZlckNsb3NlVHJpZ2dlciA9ICdtYW51YWwnIHwgJ2NsaWNrT3V0JyB8ICdsZWF2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQb3BvdmVyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgX2lzTW91c2VPdmVyQnV0dG9uID0gZmFsc2U7XG4gIHByaXZhdGUgX2lzTW91c2VPdmVyVG9vbHRpcCA9IGZhbHNlO1xuICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX3RhcmdldEV2ZW50czoge1xuICAgIG1vdXNlZW50ZXI/OiBTdWJzY3JpcHRpb247XG4gICAgbW91c2VsZWF2ZT86IFN1YnNjcmlwdGlvbjtcbiAgICBjbGljaz86IFN1YnNjcmlwdGlvbjtcbiAgfSA9IHt9O1xuICBwcml2YXRlIF9vdmVybGF5RXZlbnRzOiB7XG4gICAgYXR0YWNoPzogU3Vic2NyaXB0aW9uO1xuICAgIGRldGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBzY3JvbGw/OiBTdWJzY3JpcHRpb247XG4gICAgb3V0c2lkZT86IFN1YnNjcmlwdGlvbjtcbiAgfSA9IHt9O1xuXG4gIC8vXG4gIHByaXZhdGUgX29mZnNldFggPSAwO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG9mZnNldFgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0WDtcbiAgfVxuICBwdWJsaWMgc2V0IG9mZnNldFgodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29mZnNldFgnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG4gIHByaXZhdGUgX29mZnNldFkgPSAwO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG9mZnNldFkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0WTtcbiAgfVxuICBwdWJsaWMgc2V0IG9mZnNldFkodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29mZnNldFknLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy9cbiAgcHJpdmF0ZSBfdGFyZ2V0ITogSFRNTEVsZW1lbnQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdGFyZ2V0KCk6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IE1YQmFzZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcbiAgfVxuICBwdWJsaWMgc2V0IHRhcmdldCh2OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBNWEJhc2VDb21wb25lbnQpIHtcbiAgICB0aGlzLnJlbW92ZVRhcmdldEV2ZW50cygpO1xuICAgIGlmICh2IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHRoaXMuX3RhcmdldCA9IHY7XG4gICAgZWxzZSBpZiAodiBpbnN0YW5jZW9mIEVsZW1lbnRSZWYpIHRoaXMuX3RhcmdldCA9IHYubmF0aXZlRWxlbWVudDtcbiAgICBlbHNlIGlmICh0eXBlb2Ygdi5nZXRIb3N0RWxlbWVudCA9PSAnZnVuY3Rpb24nKSB0aGlzLl90YXJnZXQgPSB2LmdldEhvc3RFbGVtZW50KCk7XG4gICAgLy9cbiAgICB0aGlzLmJpbmRUYXJnZXRFdmVudHMoKTtcbiAgfVxuICAvL1xuICBwcml2YXRlIF9kZWZhdXRQbGFjZW1lbnRzOiBBWENvbm5lY3RlZFBvc2l0aW9uW10gPSBjb252ZXJ0VG9QbGFjZW1lbnQoJ2JvdHRvbS1zdGFydCcpO1xuXG4gIHByaXZhdGUgX3BsYWNlbWVudHM6IEFYQ29ubmVjdGVkUG9zaXRpb25bXSA9IFsuLi50aGlzLl9kZWZhdXRQbGFjZW1lbnRzXTtcblxuICBwcml2YXRlIF9wbGFjZW1lbnQ6IEFYUGxhY2VtZW50VHlwZSA9IHRoaXMuX3BsYWNlbWVudHM7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGxhY2VtZW50KCk6IEFYUGxhY2VtZW50VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlbWVudDtcbiAgfVxuICBwdWJsaWMgc2V0IHBsYWNlbWVudCh2OiBBWFBsYWNlbWVudFR5cGUpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAncGxhY2VtZW50JyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKG8sIG4pID0+IHtcbiAgICAgICAgY29uc3QgY29udmVydGVkID0gY29udmVydFRvUGxhY2VtZW50KG4pO1xuICAgICAgICB0aGlzLl9wbGFjZW1lbnRzID0gY29udmVydGVkLmxlbmd0aCA/IGNvbnZlcnRlZCA6IHRoaXMuX2RlZmF1dFBsYWNlbWVudHM7XG4gICAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuICBwcml2YXRlIF9wb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcblxuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPjtcbiAgcHVibGljIGdldCBjb21wb25lbnRSZWYoKTogQ29tcG9uZW50UmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHQ6IHVua25vd247XG5cbiAgLy9cbiAgQFZpZXdDaGlsZCgnYmFzZVRlbXBsYXRlJylcbiAgX2Jhc2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIC8vXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgQ29tcG9uZW50VHlwZTx1bmtub3duPjtcbiAgLy9cbiAgcHJpdmF0ZSBfb3Blbk9uOiBBWFBvcG92ZXJPcGVuVHJpZ2dlciA9ICd0b2dnbGUnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgb3Blbk9uKCk6IEFYUG9wb3Zlck9wZW5UcmlnZ2VyIHtcbiAgICByZXR1cm4gdGhpcy5fb3Blbk9uO1xuICB9XG4gIHB1YmxpYyBzZXQgb3Blbk9uKHY6IEFYUG9wb3Zlck9wZW5UcmlnZ2VyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ29wZW5PbicsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG4gIHByaXZhdGUgX2Nsb3NlT246IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciA9ICdjbGlja091dCc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgY2xvc2VPbigpOiBBWFBvcG92ZXJDbG9zZVRyaWdnZXIge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZU9uO1xuICB9XG4gIHB1YmxpYyBzZXQgY2xvc2VPbih2OiBBWFBvcG92ZXJDbG9zZVRyaWdnZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnY2xvc2VPbicsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy9cbiAgQElucHV0KClcbiAgaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgLy9cbiAgQElucHV0KClcbiAgb3BlbkFmdGVyID0gMjAwO1xuICBASW5wdXQoKVxuICBjbG9zZUFmdGVyID0gMjAwO1xuXG4gIEBJbnB1dCgpXG4gIGJhY2tkcm9wQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBhZGFwdGl2aXR5RW5hYmxlZCA9IGZhbHNlO1xuICAvL1xuICBAT3V0cHV0KClcbiAgb25PcGVuZWQ6IEV2ZW50RW1pdHRlcjxBWEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhFdmVudD4oKTtcbiAgQE91dHB1dCgpXG4gIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBfZW1pdE9uT3BlbmVkRXZlbnQoKSB7XG4gICAgdGhpcy5vbk9wZW5lZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0T25DbG9zZWRFdmVudCgpIHtcbiAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIHByb3RlY3RlZCBfaGFuZGxlTW91c2VFbnRlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwID0gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlTW91c2VMZWF2ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwID0gZmFsc2U7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2lzTW91c2VPdmVyQnV0dG9uICYmIHRoaXMuY2xvc2VPbiA9PSAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCAyNTApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVUYXJnZXRFdmVudHMoKTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5fdGFyZ2V0RXZlbnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlWzFdLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRUYXJnZXRFdmVudHMoKSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAoIXRoaXMuX3RhcmdldCkgcmV0dXJuO1xuICAgIGNvbnN0IHRhcmdldE1vdXNlRW50ZXIkID0gZnJvbUV2ZW50KHRoaXMuX3RhcmdldCwgJ21vdXNlZW50ZXInKTtcbiAgICBjb25zdCB0YXJnZXRNb3VzZUxlYXZlJCA9IGZyb21FdmVudCh0aGlzLl90YXJnZXQsICdtb3VzZWxlYXZlJyk7XG5cbiAgICBpZiAodGhpcy5vcGVuT24gPT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLm1vdXNlZW50ZXIgPSB0YXJnZXRNb3VzZUVudGVyJC5waXBlKGRlbGF5KHRoaXMub3BlbkFmdGVyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5faXNNb3VzZU92ZXJCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLm1vdXNlbGVhdmUgPSB0YXJnZXRNb3VzZUxlYXZlJC5waXBlKGRlbGF5KHRoaXMuY2xvc2VBZnRlcikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzTW91c2VPdmVyQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5faXNNb3VzZU92ZXJUb29sdGlwKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuT24gPT09ICdjbGljaycgfHwgdGhpcy5vcGVuT24gPT09ICd0b2dnbGUnKSB7XG4gICAgICBjb25zdCBjbGljayQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fdGFyZ2V0LCAnY2xpY2snKTtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5jbGljayA9IGNsaWNrJC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuT24gPT0gJ3RvZ2dsZScgPyB0aGlzLnRvZ2dsZSgpIDogdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLy9cbiAgcHJpdmF0ZSBiaW5kT3ZlcmxheUV2ZW50cygpIHtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5RXZlbnRzLmF0dGFjaCA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5faGFuZGxlTW91c2VFbnRlci5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIHRoaXMuX292ZXJsYXlFdmVudHMub3V0c2lkZSA9IHRoaXMuX292ZXJsYXlSZWYuX291dHNpZGVQb2ludGVyRXZlbnRzLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5jbG9zZU9uID09ICdjbGlja091dCcgJiZcbiAgICAgICAgICB0aGlzLmlzT3BlbiAmJlxuICAgICAgICAgICF0aGlzLl90YXJnZXQuY29udGFpbnMoZWwpICYmXG4gICAgICAgICAgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vXG5cbiAgICAgIHRoaXMuX292ZXJsYXlFdmVudHMuc2Nyb2xsID0gdGhpcy5fcGxhdGZvcm0uc2Nyb2xsLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGMubmF0aXZlRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICAgICAgaWYgKGVsID09IChkb2N1bWVudCBhcyBhbnkpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsPy5jbG9zZXN0ICYmXG4gICAgICAgICAgICAhZWwuY2xvc2VzdCgnLmF4LW92ZXJsYXktcGFuZScpICYmXG4gICAgICAgICAgICAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJlxuICAgICAgICAgICAgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX292ZXJsYXlFdmVudHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGVbMV0udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG4gIC8vXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgdGhpcy5yZXN0b3JlRm9jdXMoKTtcbiAgICB0aGlzLl9lbWl0T25DbG9zZWRFdmVudCgpO1xuICB9XG5cbiAgLy9cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zYXZlRm9jdXMoKTtcbiAgICB0aGlzLm9wZW5PdmVybGF5SW50ZXJuYWwoKTtcbiAgICB0aGlzLl9lbWl0T25PcGVuZWRFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlRm9jdXMoKSB7XG4gICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50Py5mb2N1cykge1xuICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5PdmVybGF5SW50ZXJuYWwoKSB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICghdGFyZ2V0UmVmKSByZXR1cm47XG5cbiAgICAvL2lmICghdGhpcy5fb3ZlcmxheVJlZikge1xuICAgIGlmICh0aGlzLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmJvdHRvbSgpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYWN0aW9uc2hlZXQtYmFzZScsICdheC1hbmltYXRlLXNsaWRlSW5VcCcsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5XG4gICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0YXJnZXRSZWYpXG4gICAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5fcGxhY2VtZW50cylcbiAgICAgICAgICAud2l0aFB1c2goZmFsc2UpLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG4gICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYW5pbWF0ZS1mYWRlSW4nLCAnYXgtYW5pbWF0ZS1mYXN0ZXInXSxcbiAgICAgICAgbWF4SGVpZ2h0OiAndW5zZXQnLFxuICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5oYXNCYWNrZHJvcCxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogW3RoaXMuYmFja2Ryb3BDbGFzcyB8fCAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvL1xuICAgIHRoaXMuYmluZE92ZXJsYXlFdmVudHMoKTtcbiAgICAvL31cbiAgICAvL1xuICAgIGlmICh0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuY29udGVudCwgdGhpcy5nZXRWaWV3Q29udGFpbmVyKCksIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQsXG4gICAgICAgIHJlZjogdGhpcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29udGVudCk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLmNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fYmFzZVRlbXBsYXRlLCB0aGlzLmdldFZpZXdDb250YWluZXIoKSwge1xuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuY29udGV4dCxcbiAgICAgICAgcmVmOiB0aGlzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5UmVmID8gdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpIDogZmFsc2U7XG4gIH1cblxuICBnZXQgaXNBY3Rpb25zaGVldFN0eWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wbGF0Zm9ybS5pcygnU00nKSAmJiB0aGlzLmFkYXB0aXZpdHlFbmFibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5KCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldFJlZiA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAoIXRhcmdldFJlZikgcmV0dXJuO1xuICAgIGxldCBzdHJhdGVneTogUG9zaXRpb25TdHJhdGVneTtcbiAgICBpZiAodGhpcy5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIHN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmJvdHRvbSgpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJhdGVneSA9IHRoaXMuX292ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLl9wbGFjZW1lbnRzKVxuICAgICAgICAud2l0aFB1c2goZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLl9vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlT2Zmc2V0KCkge1xuICAgIHRoaXMuX3BsYWNlbWVudHM/LmZvckVhY2goKHApID0+IHtcbiAgICAgIGlmICh0aGlzLm9mZnNldFkgIT0gbnVsbCkgcC5vZmZzZXRZID0gdGhpcy5vZmZzZXRZO1xuICAgICAgaWYgKHRoaXMub2Zmc2V0WCAhPSBudWxsKSBwLm9mZnNldFggPSB0aGlzLm9mZnNldFg7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgLy9UT0RPOiBuZWVkIHRoaXM/P1xuICB9XG4gIC8vXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlVGFyZ2V0RXZlbnRzKCk7XG4gICAgdGhpcy5yZW1vdmVPdmVybGF5RXZlbnRzKCk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2Jhc2VUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
393
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFnQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQXlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWF0RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZUFBZTtJQVB2RDs7UUFRVSxjQUFTLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLGFBQVEsR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUU1QixrQkFBYSxHQUlqQixFQUFFLENBQUM7UUFDQyxtQkFBYyxHQUtsQixFQUFFLENBQUM7UUFFUCxFQUFFO1FBQ00sYUFBUSxHQUFHLENB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a0IsNFlBRmxCLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLENBQUMsZ0tDbkNqRiwwRUFFYzs7MkZEbUNELGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLGlCQUVQLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLG9CQUFvQixFQUFFLENBQUM7OEJBd0JwRSxPQUFPO3NCQURqQixLQUFLO2dCQWdCSyxPQUFPO3NCQURqQixLQUFLO2dCQWlCSyxNQUFNO3NCQURoQixLQUFLO2dCQW1CSyxTQUFTO3NCQURuQixLQUFLO2dCQTRCTixhQUFhO3NCQURaLFNBQVM7dUJBQUMsY0FBYztnQkFJekIsT0FBTztzQkFETixLQUFLO2dCQU1LLE1BQU07c0JBRGhCLEtBQUs7Z0JBZ0JLLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUdQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29ubmVjdGVkUG9zaXRpb24sXG4gIEFYRXZlbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFBsYWNlbWVudFR5cGUsXG4gIE1YQmFzZUNvbXBvbmVudCxcbiAgY29udmVydFRvUGxhY2VtZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSwgUG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBkZWxheSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ21hbnVhbCcgfCAnY2xpY2snIHwgJ2hvdmVyJyB8ICd0b2dnbGUnO1xuXG5leHBvcnQgdHlwZSBBWFBvcG92ZXJDbG9zZVRyaWdnZXIgPSAnbWFudWFsJyB8ICdjbGlja091dCcgfCAnbGVhdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUG9wb3ZlckNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfcGxhdGZvcm06IEFYUGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xuICBwcml2YXRlIF9pc01vdXNlT3ZlckJ1dHRvbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pc01vdXNlT3ZlclRvb2x0aXAgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFzdEFjdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90YXJnZXRFdmVudHM6IHtcbiAgICBtb3VzZWVudGVyPzogU3Vic2NyaXB0aW9uO1xuICAgIG1vdXNlbGVhdmU/OiBTdWJzY3JpcHRpb247XG4gICAgY2xpY2s/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUV2ZW50czoge1xuICAgIGF0dGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBkZXRhY2g/OiBTdWJzY3JpcHRpb247XG4gICAgc2Nyb2xsPzogU3Vic2NyaXB0aW9uO1xuICAgIG91dHNpZGU/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcblxuICAvL1xuICBwcml2YXRlIF9vZmZzZXRYID0gMDtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBvZmZzZXRYKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFg7XG4gIH1cbiAgcHVibGljIHNldCBvZmZzZXRYKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvZmZzZXRYJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuICBwcml2YXRlIF9vZmZzZXRZID0gMDtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBvZmZzZXRZKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFk7XG4gIH1cbiAgcHVibGljIHNldCBvZmZzZXRZKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvZmZzZXRZJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIHByaXZhdGUgX3RhcmdldCE6IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBNWEJhc2VDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXQ7XG4gIH1cbiAgcHVibGljIHNldCB0YXJnZXQodjogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgTVhCYXNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAodiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB0aGlzLl90YXJnZXQgPSB2O1xuICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB0aGlzLl90YXJnZXQgPSB2Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWxzZSBpZiAodHlwZW9mIHYuZ2V0SG9zdEVsZW1lbnQgPT0gJ2Z1bmN0aW9uJykgdGhpcy5fdGFyZ2V0ID0gdi5nZXRIb3N0RWxlbWVudCgpO1xuICAgIC8vXG4gICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gIH1cbiAgLy9cbiAgcHJpdmF0ZSBfZGVmYXV0UGxhY2VtZW50czogQVhDb25uZWN0ZWRQb3NpdGlvbltdID0gY29udmVydFRvUGxhY2VtZW50KCdib3R0b20tc3RhcnQnKTtcblxuICBwcml2YXRlIF9wbGFjZW1lbnRzOiBBWENvbm5lY3RlZFBvc2l0aW9uW10gPSBbLi4udGhpcy5fZGVmYXV0UGxhY2VtZW50c107XG5cbiAgcHJpdmF0ZSBfcGxhY2VtZW50OiBBWFBsYWNlbWVudFR5cGUgPSB0aGlzLl9wbGFjZW1lbnRzO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHBsYWNlbWVudCgpOiBBWFBsYWNlbWVudFR5cGUge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZW1lbnQ7XG4gIH1cbiAgcHVibGljIHNldCBwbGFjZW1lbnQodjogQVhQbGFjZW1lbnRUeXBlKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRUb1BsYWNlbWVudChuKTtcbiAgICAgICAgdGhpcy5fcGxhY2VtZW50cyA9IGNvbnZlcnRlZC5sZW5ndGggPyBjb252ZXJ0ZWQgOiB0aGlzLl9kZWZhdXRQbGFjZW1lbnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy9cbiAgcHJpdmF0ZSBfcG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj47XG4gIHB1YmxpYyBnZXQgY29tcG9uZW50UmVmKCk6IENvbXBvbmVudFJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHB1YmxpYyBjb250ZXh0OiB1bmtub3duO1xuXG4gIC8vXG4gIEBWaWV3Q2hpbGQoJ2Jhc2VUZW1wbGF0ZScpXG4gIF9iYXNlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAvL1xuICBASW5wdXQoKVxuICBjb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG4gIC8vXG4gIHByaXZhdGUgX29wZW5PbjogQVhQb3BvdmVyT3BlblRyaWdnZXIgPSAndG9nZ2xlJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG9wZW5PbigpOiBBWFBvcG92ZXJPcGVuVHJpZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5PbjtcbiAgfVxuICBwdWJsaWMgc2V0IG9wZW5Pbih2OiBBWFBvcG92ZXJPcGVuVHJpZ2dlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvcGVuT24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuICBwcml2YXRlIF9jbG9zZU9uOiBBWFBvcG92ZXJDbG9zZVRyaWdnZXIgPSAnY2xpY2tPdXQnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGNsb3NlT24oKTogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VPbjtcbiAgfVxuICBwdWJsaWMgc2V0IGNsb3NlT24odjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Nsb3NlT24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIEBJbnB1dCgpXG4gIGhhc0JhY2tkcm9wID0gZmFsc2U7XG4gIC8vXG4gIEBJbnB1dCgpXG4gIG9wZW5BZnRlciA9IDIwMDtcbiAgQElucHV0KClcbiAgY2xvc2VBZnRlciA9IDIwMDtcblxuICBASW5wdXQoKVxuICBiYWNrZHJvcENsYXNzOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgYWRhcHRpdml0eUVuYWJsZWQgPSBmYWxzZTtcbiAgLy9cbiAgQE91dHB1dCgpXG4gIG9uT3BlbmVkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEV2ZW50PigpO1xuXG4gIHByaXZhdGUgX2VtaXRPbk9wZW5lZEV2ZW50KCkge1xuICAgIHRoaXMub25PcGVuZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdE9uQ2xvc2VkRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU1vdXNlRW50ZXIoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCA9IHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU1vdXNlTGVhdmUoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiAmJiB0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlVGFyZ2V0RXZlbnRzKCk6IHZvaWQge1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX3RhcmdldEV2ZW50cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZVsxXS51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kVGFyZ2V0RXZlbnRzKCkge1xuICAgIHRoaXMucmVtb3ZlVGFyZ2V0RXZlbnRzKCk7XG4gICAgaWYgKCF0aGlzLl90YXJnZXQpIHJldHVybjtcbiAgICBjb25zdCB0YXJnZXRNb3VzZUVudGVyJCA9IGZyb21FdmVudCh0aGlzLl90YXJnZXQsICdtb3VzZWVudGVyJyk7XG4gICAgY29uc3QgdGFyZ2V0TW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fdGFyZ2V0LCAnbW91c2VsZWF2ZScpO1xuXG4gICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5tb3VzZWVudGVyID0gdGFyZ2V0TW91c2VFbnRlciQucGlwZShkZWxheSh0aGlzLm9wZW5BZnRlcikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzTW91c2VPdmVyQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uID09ICdsZWF2ZScpIHtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5tb3VzZWxlYXZlID0gdGFyZ2V0TW91c2VMZWF2ZSQucGlwZShkZWxheSh0aGlzLmNsb3NlQWZ0ZXIpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk9uID09PSAnY2xpY2snIHx8IHRoaXMub3Blbk9uID09PSAndG9nZ2xlJykge1xuICAgICAgY29uc3QgY2xpY2skID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX3RhcmdldCwgJ2NsaWNrJyk7XG4gICAgICB0aGlzLl90YXJnZXRFdmVudHMuY2xpY2sgPSBjbGljayQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHRoaXMub3Blbk9uID09ICd0b2dnbGUnID8gdGhpcy50b2dnbGUoKSA6IHRoaXMub3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8vXG4gIHByaXZhdGUgYmluZE92ZXJsYXlFdmVudHMoKSB7XG4gICAgdGhpcy5yZW1vdmVPdmVybGF5RXZlbnRzKCk7XG4gICAgdGhpcy5fb3ZlcmxheUV2ZW50cy5hdHRhY2ggPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5faGFuZGxlTW91c2VFbnRlci5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIHRoaXMuX292ZXJsYXlFdmVudHMub3V0c2lkZSA9IHRoaXMuX292ZXJsYXlSZWYuX291dHNpZGVQb2ludGVyRXZlbnRzLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5jbG9zZU9uID09ICdjbGlja091dCcgJiZcbiAgICAgICAgICB0aGlzLmlzT3BlbiAmJlxuICAgICAgICAgICF0aGlzLl90YXJnZXQuY29udGFpbnMoZWwpICYmXG4gICAgICAgICAgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vXG5cbiAgICAgIHRoaXMuX292ZXJsYXlFdmVudHMuc2Nyb2xsID0gdGhpcy5fcGxhdGZvcm0uc2Nyb2xsLnN1YnNjcmliZSgoYykgPT4ge1xuXG4gICAgICAgIC8vX19heENvbnRleHRfX1xuICAgICAgICBjb25zdCBlbCA9IGMubmF0aXZlRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICAgICAgaWYgKGVsID09IChkb2N1bWVudCBhcyBhbnkpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsPy5jbG9zZXN0ICYmXG4gICAgICAgICAgICAhZWwuY2xvc2VzdCgnLmF4LW92ZXJsYXktcGFuZScpICYmXG4gICAgICAgICAgICAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJlxuICAgICAgICAgICAgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX292ZXJsYXlFdmVudHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGVbMV0udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG4gIC8vXG4gIGNsb3NlKCkge1xuICAgIGRlYnVnZ2VyXG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLnJlc3RvcmVGb2N1cygpO1xuICAgIHRoaXMuX2VtaXRPbkNsb3NlZEV2ZW50KCk7XG4gIH1cblxuICAvL1xuICBvcGVuKCkge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNhdmVGb2N1cygpO1xuICAgIHRoaXMub3Blbk92ZXJsYXlJbnRlcm5hbCgpO1xuICAgIHRoaXMuX2VtaXRPbk9wZW5lZEV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVGb2N1cygpIHtcbiAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVGb2N1cygpIHtcbiAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQ/LmZvY3VzKSB7XG4gICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3Blbk92ZXJsYXlJbnRlcm5hbCgpIHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXRSZWYpIHJldHVybjtcblxuICAgIC8vaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgaWYgKHRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuYm90dG9tKCkuY2VudGVySG9yaXpvbnRhbGx5KCksXG4gICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgICAgcGFuZWxDbGFzczogWydheC1hY3Rpb25zaGVldC1iYXNlJywgJ2F4LWFuaW1hdGUtc2xpZGVJblVwJywgJ2F4LWFuaW1hdGUtZmFzdGVyJ10sXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheVxuICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKVxuICAgICAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuX3BsYWNlbWVudHMpXG4gICAgICAgICAgLndpdGhQdXNoKGZhbHNlKSxcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXG4gICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYW5pbWF0ZS1mYWRlSW4nLCAnYXgtYW5pbWF0ZS1mYXN0ZXInXSxcbiAgICAgICAgbWF4SGVpZ2h0OiAndW5zZXQnLFxuICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5oYXNCYWNrZHJvcCxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogW3RoaXMuYmFja2Ryb3BDbGFzcyB8fCAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvL1xuICAgIHRoaXMuYmluZE92ZXJsYXlFdmVudHMoKTtcbiAgICAvL31cbiAgICAvL1xuICAgIGlmICh0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuY29udGVudCwgdGhpcy5nZXRWaWV3Q29udGFpbmVyKCksIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQsXG4gICAgICAgIHJlZjogdGhpcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29udGVudCk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLmNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fYmFzZVRlbXBsYXRlLCB0aGlzLmdldFZpZXdDb250YWluZXIoKSwge1xuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuY29udGV4dCxcbiAgICAgICAgcmVmOiB0aGlzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICB9XG4gICAgZGVidWdnZXJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZVtcImFiY1wiXSA9IFwiMjAxNlwiO1xuICAgIH1cblxuICB9XG5cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZiA/IHRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGlzQWN0aW9uc2hlZXRTdHlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXMoJ1NNJykgJiYgdGhpcy5hZGFwdGl2aXR5RW5hYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb25TdHJhdGVneSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXRSZWYpIHJldHVybjtcbiAgICBsZXQgc3RyYXRlZ3k6IFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgaWYgKHRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICBzdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5ib3R0b20oKS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZilcbiAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5fcGxhY2VtZW50cylcbiAgICAgICAgLndpdGhQdXNoKGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU9mZnNldCgpIHtcbiAgICB0aGlzLl9wbGFjZW1lbnRzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAodGhpcy5vZmZzZXRZICE9IG51bGwpIHAub2Zmc2V0WSA9IHRoaXMub2Zmc2V0WTtcbiAgICAgIGlmICh0aGlzLm9mZnNldFggIT0gbnVsbCkgcC5vZmZzZXRYID0gdGhpcy5vZmZzZXRYO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIC8vVE9ETzogbmVlZCB0aGlzPz9cbiAgfVxuICAvL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVRhcmdldEV2ZW50cygpO1xuICAgIHRoaXMucmVtb3ZlT3ZlcmxheUV2ZW50cygpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNiYXNlVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+Il19
@@ -113,7 +113,7 @@ export class AXToastService {
113
113
  getPosition(location) {
114
114
  const list = this.dialog.openDialogs
115
115
  .map((c) => c.componentInstance)
116
- .filter((c) => c.config.location == location);
116
+ .filter((c) => c.config?.location == location);
117
117
  if (list.length == 0)
118
118
  return 0;
119
119
  if (location.split('-')[0] == 'bottom') {
@@ -129,4 +129,4 @@ export class AXToastService {
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXToastService, decorators: [{
130
130
  type: Injectable
131
131
  }], ctorParameters: function () { return [{ type: i1.ScrollStrategyOptions }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBa0IscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHaEUsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBNkIscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFMakUsV0FBTSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFrQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFLN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQ25DLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUNuQyxLQUFLLEVBQUUsV0FBVztZQUNsQixPQUFP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RSxPQUFPLENBQUMsQ0FBQztRQUMvQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFO1lBQ3RDLE9BQU8sTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUM7U0FDOUU7YUFBTTtZQUNMLE9BQU8sQ0FDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsWUFBWSxDQUN2RyxDQUFDO1NBQ0g7SUFDSCxDQUFDOzhHQWxJVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2cgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVG9hc3REaXNwbGF5Q29uZmlnLCBBWFRvYXN0UmVmIH0gZnJvbSAnLi90b2FzdC5jbGFzcyc7XG5pbXBvcnQgeyBBWFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUb2FzdENvbmZpZywgQVhfVE9BU1RfQ09ORklHIH0gZnJvbSAnLi90b2FzdC5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhUb2FzdFNlcnZpY2Uge1xuICBwcml2YXRlIGRpYWxvZzogRGlhbG9nID0gaW5qZWN0KERpYWxvZyk7XG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogQVhUb2FzdENvbmZpZyA9IGluamVjdChBWF9UT0FTVF9DT05GSUcpO1xuXG4gIHNjcm9sbFN0cmF0ZWd5OiBTY3JvbGxTdHJhdGVneTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFN0cmF0ZWd5T3B0aW9uczogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKSB7XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneSA9IHRoaXMuc2Nyb2xsU3RyYXRlZ3lPcHRpb25zLm5vb3AoKTtcbiAgfVxuICBwcmltYXJ5KGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuc2hvdyh7XG4gICAgICB0aW1lT3V0OiB0aGlzLmRlZmF1bHRDb25maWcudGltZU91dCxcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHNlY29uZGFyeShjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ3NlY29uZGFyeScsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHN1Y2Nlc3MoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5zaG93KHtcbiAgICAgIHRpbWVPdXQ6IHRoaXMuZGVmYXVsdENvbmZpZy50aW1lT3V0LFxuICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXG4gICAgfSk7XG4gIH1cblxuICB3YXJuaW5nKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuc2hvdyh7XG4gICAgICB0aW1lT3V0OiB0aGlzLmRlZmF1bHRDb25maWcudGltZU91dCxcbiAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIGRhbmdlcihjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHNob3coY29uZmlnOiBBWFRvYXN0RGlzcGxheUNvbmZpZyk6IEFYVG9hc3RSZWYge1xuICAgIGNvbnN0IG9wdCA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICBsb2NhdGlvbjogdGhpcy5kZWZhdWx0Q29uZmlnLmxvY2F0aW9uLFxuICAgICAgfSxcbiAgICAgIGNvbmZpZyxcbiAgICApO1xuICAgIGNvbnN0IGdhcCA9IHRoaXMuZGVmYXVsdENvbmZpZy5nYXA7XG5cbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneSA9IG5ldyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgY29uc3QgcG9zID0gdGhpcy5nZXRQb3NpdGlvbihvcHQubG9jYXRpb24pICsgZ2FwICsgJ3B4JztcbiAgICBzd2l0Y2ggKG9wdC5sb2NhdGlvbikge1xuICAgICAgY2FzZSAnYm90dG9tLWNlbnRlcic6XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShwb3MpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS5ib3R0b20ocG9zKS5yaWdodChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS5ib3R0b20ocG9zKS5sZWZ0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1jZW50ZXInOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS50b3AocG9zKS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtZW5kJzpcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3kudG9wKHBvcykucmlnaHQoZ2FwICsgJ3B4Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3kudG9wKHBvcykubGVmdChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXItc3RhcnQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS5jZW50ZXJWZXJ0aWNhbGx5KCkubGVmdChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXItZW5kJzpcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpLnJpZ2h0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFYVG9hc3RDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGNvbmZpZyxcbiAgICAgIGF1dG9Gb2N1czogJ19fbm9fZWxlbWVudF9fJyxcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcbiAgICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBjbG9zZU9uRGVzdHJveTogdHJ1ZSxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYW5pbWF0ZS1hbmltYXRlZCcsICdheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLnNjcm9sbFN0cmF0ZWd5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgdG9hc3RSZWYgPSBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UgYXMgQVhUb2FzdENvbXBvbmVudDtcbiAgICBkaWFsb2dSZWYuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlcG9zaXRpb24oKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBjbG9zZTogKCkgPT4ge1xuICAgICAgICB0b2FzdFJlZi5jbG9zZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGhpZGVBbGwoKSB7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwb3NpdGlvbigpOiB2b2lkIHtcbiAgICAvL1RPRE86IHJlcG9zaXRpb24gdmVydGljYWxseSBhZmVyIGNsb3NlIHRvYXN0XG4gIH1cblxuICBwcml2YXRlIGdldFBvc2l0aW9uKGxvY2F0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5kaWFsb2cub3BlbkRpYWxvZ3NcbiAgICAgIC5tYXAoKGMpID0+IGMuY29tcG9uZW50SW5zdGFuY2UgYXMgQVhUb2FzdENvbXBvbmVudClcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuY29uZmlnLmxvY2F0aW9uID09IGxvY2F0aW9uKTtcbiAgICBpZiAobGlzdC5sZW5ndGggPT0gMCkgcmV0dXJuIDA7XG4gICAgaWYgKGxvY2F0aW9uLnNwbGl0KCctJylbMF0gPT0gJ2JvdHRvbScpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQgLSBsaXN0W2xpc3QubGVuZ3RoIC0gMV0uZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRUb3A7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGxpc3RbbGlzdC5sZW5ndGggLSAxXS5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFRvcCArIGxpc3RbbGlzdC5sZW5ndGggLSAxXS5nZXRIb3N0RWxlbWVudCgpLm9mZnNldEhlaWdodFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBa0IscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHaEUsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBNkIscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFMakUsV0FBTSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFrQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFLN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQ25DLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUNuQyxLQUFLLEVBQUUsV0FBVztZQUNsQixPQUFP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RSxPQUFPLENBQUMsQ0FBQztRQUMvQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFO1lBQ3RDLE9BQU8sTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUM7U0FDOUU7YUFBTTtZQUNMLE9BQU8sQ0FDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsWUFBWSxDQUN2RyxDQUFDO1NBQ0g7SUFDSCxDQUFDOzhHQWxJVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2cgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVG9hc3REaXNwbGF5Q29uZmlnLCBBWFRvYXN0UmVmIH0gZnJvbSAnLi90b2FzdC5jbGFzcyc7XG5pbXBvcnQgeyBBWFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUb2FzdENvbmZpZywgQVhfVE9BU1RfQ09ORklHIH0gZnJvbSAnLi90b2FzdC5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhUb2FzdFNlcnZpY2Uge1xuICBwcml2YXRlIGRpYWxvZzogRGlhbG9nID0gaW5qZWN0KERpYWxvZyk7XG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogQVhUb2FzdENvbmZpZyA9IGluamVjdChBWF9UT0FTVF9DT05GSUcpO1xuXG4gIHNjcm9sbFN0cmF0ZWd5OiBTY3JvbGxTdHJhdGVneTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFN0cmF0ZWd5T3B0aW9uczogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKSB7XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneSA9IHRoaXMuc2Nyb2xsU3RyYXRlZ3lPcHRpb25zLm5vb3AoKTtcbiAgfVxuICBwcmltYXJ5KGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuc2hvdyh7XG4gICAgICB0aW1lT3V0OiB0aGlzLmRlZmF1bHRDb25maWcudGltZU91dCxcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHNlY29uZGFyeShjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ3NlY29uZGFyeScsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHN1Y2Nlc3MoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5zaG93KHtcbiAgICAgIHRpbWVPdXQ6IHRoaXMuZGVmYXVsdENvbmZpZy50aW1lT3V0LFxuICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXG4gICAgfSk7XG4gIH1cblxuICB3YXJuaW5nKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuc2hvdyh7XG4gICAgICB0aW1lT3V0OiB0aGlzLmRlZmF1bHRDb25maWcudGltZU91dCxcbiAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIGRhbmdlcihjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHNob3coY29uZmlnOiBBWFRvYXN0RGlzcGxheUNvbmZpZyk6IEFYVG9hc3RSZWYge1xuICAgIGNvbnN0IG9wdCA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICBsb2NhdGlvbjogdGhpcy5kZWZhdWx0Q29uZmlnLmxvY2F0aW9uLFxuICAgICAgfSxcbiAgICAgIGNvbmZpZyxcbiAgICApO1xuICAgIGNvbnN0IGdhcCA9IHRoaXMuZGVmYXVsdENvbmZpZy5nYXA7XG5cbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneSA9IG5ldyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgY29uc3QgcG9zID0gdGhpcy5nZXRQb3NpdGlvbihvcHQubG9jYXRpb24pICsgZ2FwICsgJ3B4JztcbiAgICBzd2l0Y2ggKG9wdC5sb2NhdGlvbikge1xuICAgICAgY2FzZSAnYm90dG9tLWNlbnRlcic6XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShwb3MpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS5ib3R0b20ocG9zKS5yaWdodChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS5ib3R0b20ocG9zKS5sZWZ0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1jZW50ZXInOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS50b3AocG9zKS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtZW5kJzpcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3kudG9wKHBvcykucmlnaHQoZ2FwICsgJ3B4Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3kudG9wKHBvcykubGVmdChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXItc3RhcnQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS5jZW50ZXJWZXJ0aWNhbGx5KCkubGVmdChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXItZW5kJzpcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpLnJpZ2h0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFYVG9hc3RDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGNvbmZpZyxcbiAgICAgIGF1dG9Gb2N1czogJ19fbm9fZWxlbWVudF9fJyxcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcbiAgICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBjbG9zZU9uRGVzdHJveTogdHJ1ZSxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYW5pbWF0ZS1hbmltYXRlZCcsICdheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLnNjcm9sbFN0cmF0ZWd5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgdG9hc3RSZWYgPSBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UgYXMgQVhUb2FzdENvbXBvbmVudDtcbiAgICBkaWFsb2dSZWYuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlcG9zaXRpb24oKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBjbG9zZTogKCkgPT4ge1xuICAgICAgICB0b2FzdFJlZi5jbG9zZSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGhpZGVBbGwoKSB7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwb3NpdGlvbigpOiB2b2lkIHtcbiAgICAvL1RPRE86IHJlcG9zaXRpb24gdmVydGljYWxseSBhZmVyIGNsb3NlIHRvYXN0XG4gIH1cblxuICBwcml2YXRlIGdldFBvc2l0aW9uKGxvY2F0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5kaWFsb2cub3BlbkRpYWxvZ3NcbiAgICAgIC5tYXAoKGMpID0+IGMuY29tcG9uZW50SW5zdGFuY2UgYXMgQVhUb2FzdENvbXBvbmVudClcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuY29uZmlnPy5sb2NhdGlvbiA9PSBsb2NhdGlvbik7XG4gICAgaWYgKGxpc3QubGVuZ3RoID09IDApIHJldHVybiAwO1xuICAgIGlmIChsb2NhdGlvbi5zcGxpdCgnLScpWzBdID09ICdib3R0b20nKSB7XG4gICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IC0gbGlzdFtsaXN0Lmxlbmd0aCAtIDFdLmdldEhvc3RFbGVtZW50KCkub2Zmc2V0VG9wO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBsaXN0W2xpc3QubGVuZ3RoIC0gMV0uZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRUb3AgKyBsaXN0W2xpc3QubGVuZ3RoIC0gMV0uZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRIZWlnaHRcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=