@edm-sdui/sdui 1.0.34 → 1.0.36

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.
Binary file
@@ -10,14 +10,18 @@ export class ColumnComponent {
10
10
  ngOnInit() {
11
11
  // console.debug('column.uiComponent: ', this.uiComponent);
12
12
  }
13
+ shouldFill() {
14
+ const comps = this.uiComponent?.components ?? [];
15
+ return comps.some(c => c.type === 'SPACE' && (c.element?.grow ?? 0) > 0);
16
+ }
13
17
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ColumnComponent, deps: [{ token: 'uiComponent' }], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ColumnComponent, isStandalone: false, selector: "edm-sdui-column", ngImport: i0, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: i3.UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ColumnComponent, isStandalone: false, selector: "edm-sdui-column", ngImport: i0, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\" [class.fill]=\"shouldFill()\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}.column.fill{flex:1 1 auto;min-height:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: i3.UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
15
19
  }
16
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ColumnComponent, decorators: [{
17
21
  type: Component,
18
- args: [{ selector: 'edm-sdui-column', standalone: false, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"] }]
22
+ args: [{ selector: 'edm-sdui-column', standalone: false, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\" [class.fill]=\"shouldFill()\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}.column.fill{flex:1 1 auto;min-height:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"] }]
19
23
  }], ctorParameters: () => [{ type: undefined, decorators: [{
20
24
  type: Inject,
21
25
  args: ['uiComponent']
22
26
  }] }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2NvbXBvbmVudHMvdWljb21wb25lbnQvY29sdW1uL2NvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L2NvbHVtbi9jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUzFELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQTBDLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUV0RSxRQUFRO1FBQ04sMkRBQTJEO0lBQzdELENBQUM7K0dBTFUsZUFBZSxrQkFDTixhQUFhO21HQUR0QixlQUFlLDRFQ1Q1QixvT0FPQTs7NEZERWEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixLQUFLOzswQkFHSixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWljb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlZG0tc2R1aS1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbHVtbi5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KCd1aUNvbXBvbmVudCcpIHB1YmxpYyB1aUNvbXBvbmVudDogVUlDb21wb25lbnQpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5kZWJ1ZygnY29sdW1uLnVpQ29tcG9uZW50OiAnLCB0aGlzLnVpQ29tcG9uZW50KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbHVtblwiICpuZ0lmPVwidWlDb21wb25lbnRcIiBbZWRtU2R1aVZpZXddPVwidWlDb21wb25lbnQuZWxlbWVudFwiPlxuICA8ZWRtLXNkdWktY29tcG9uZW50XG4gICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHVpQ29tcG9uZW50LmNvbXBvbmVudHNcIlxuICAgIFt1aUNvbXBvbmVudF09XCJjaGlsZFwiXG4gID5cbiAgPC9lZG0tc2R1aS1jb21wb25lbnQ+XG48L2Rpdj5cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2NvbXBvbmVudHMvdWljb21wb25lbnQvY29sdW1uL2NvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9jb21wb25lbnRzL3VpY29tcG9uZW50L2NvbHVtbi9jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUzFELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQTBDLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUV0RSxRQUFRO1FBQ04sMkRBQTJEO0lBQzdELENBQUM7SUFDRCxVQUFVO1FBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQzsrR0FUVSxlQUFlLGtCQUNOLGFBQWE7bUdBRHRCLGVBQWUsNEVDVDVCLGtRQU9BOzs0RkRFYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLGlCQUFpQixjQUdmLEtBQUs7OzBCQUdKLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VkbS1zZHVpLWNvbHVtbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY29sdW1uLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ3VpQ29tcG9uZW50JykgcHVibGljIHVpQ29tcG9uZW50OiBVSUNvbXBvbmVudCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmRlYnVnKCdjb2x1bW4udWlDb21wb25lbnQ6ICcsIHRoaXMudWlDb21wb25lbnQpO1xuICB9XG4gIHNob3VsZEZpbGwoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29tcHMgPSB0aGlzLnVpQ29tcG9uZW50Py5jb21wb25lbnRzID8/IFtdO1xuICAgIHJldHVybiBjb21wcy5zb21lKGMgPT4gYy50eXBlID09PSAnU1BBQ0UnICYmIChjLmVsZW1lbnQ/Lmdyb3cgPz8gMCkgPiAwKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbHVtblwiICpuZ0lmPVwidWlDb21wb25lbnRcIiBbZWRtU2R1aVZpZXddPVwidWlDb21wb25lbnQuZWxlbWVudFwiIFtjbGFzcy5maWxsXT1cInNob3VsZEZpbGwoKVwiPlxuICA8ZWRtLXNkdWktY29tcG9uZW50XG4gICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHVpQ29tcG9uZW50LmNvbXBvbmVudHNcIlxuICAgIFt1aUNvbXBvbmVudF09XCJjaGlsZFwiXG4gID5cbiAgPC9lZG0tc2R1aS1jb21wb25lbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -116,6 +116,7 @@ export class UIScreenService {
116
116
  aspectRatio: json.aspect_ratio ?? null,
117
117
  progress: json.progress ?? null,
118
118
  progressColor: json.progress_color ? json.progress_color : null,
119
+ hover: json.hover ?? null,
119
120
  ...this.mapToUIView(json),
120
121
  };
121
122
  }
@@ -139,6 +140,7 @@ export class UIScreenService {
139
140
  borderColor: json.border_color ? json.border_color : null,
140
141
  justify: json.justify ? json.justify : null,
141
142
  aspectRatio: json.aspect_ratio ?? null,
143
+ hover: json.hover ?? null,
142
144
  };
143
145
  }
144
146
  mapToUIScreenConfig(config) {
@@ -190,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
190
192
  type: Inject,
191
193
  args: [SDUI_BASE_URL]
192
194
  }] }] });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlzY3JlZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2NvcmUvc2VydmljZXMvdWlzY3JlZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSTFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBWXZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQVcxRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNVLElBQWdCLEVBQ21CLFVBQWtCLEVBQUU7UUFEdkQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNtQixZQUFPLEdBQVAsT0FBTyxDQUFhO0lBQzlELENBQUM7SUFFSixXQUFXLENBQUMsR0FBVztRQUNyQixJQUFJLFFBQVEsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLFFBQVEsQ0FBQzthQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8s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STtTQUNULENBQUM7SUFDSixDQUFDOytHQWhOVSxlQUFlLDRDQUdKLGFBQWE7bUhBSHhCLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVUlTY3JlZW4gfSBmcm9tICcuLi91aWNvbXBvc2l0aW9uL21vZGVscy91aXNjcmVlbic7XG5pbXBvcnQgeyBVSUxheW91dCB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vbW9kZWxzL3VpbGF5b3V0JztcbmltcG9ydCB7IFVJU2NyZWVuSWRlbnRpZmllciB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vZW51bXMvdWlzY3JlZW4taWRlbnRpZmllcic7XG5pbXBvcnQgeyBVSVNpbmdsZUNvbHVtbkxheW91dCB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vbW9kZWxzL3Vpc2luZ2xlLWNvbHVtbi1sYXlvdXQnO1xuaW1wb3J0IHsgVUlOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9tb2RlbHMvdWluYXZpZ2F0aW9uJztcbmltcG9ydCB7IFVJQ29tcG9uZW50IH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9tb2RlbHMvdWljb21wb25lbnQnO1xuaW1wb3J0IHsgVUlDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9lbnVtcy91aWNvbXBvbmVudC10eXBlJztcbmltcG9ydCB7IFVJRWxlbWVudCB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vbW9kZWxzL3VpZWxlbWVudCc7XG5pbXBvcnQgeyBVSVZpZXcgfSBmcm9tICcuLi91aWNvbXBvc2l0aW9uL21vZGVscy91aXZpZXcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db25maWcgfSBmcm9tICcuLi91aWNvbXBvc2l0aW9uL21vZGVscy91aXNjcmVlbi1jb25maWcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db250YWluZXJUeXBlIH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9lbnVtcy91aXNjcmVlbi1jb250YWluZXItdHlwZSc7XG5pbXBvcnQgeyBVSVBhZGRpbmcgfSBmcm9tICcuLi91aXRoZW1lL21vZGVscy91aXBhZGRpbmcnO1xuaW1wb3J0IHsgVUlCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vdWl0aGVtZS9tb2RlbHMvdWliYWNrZ3JvdW5kJztcbmltcG9ydCB7IFVJQWN0aW9uIH0gZnJvbSAnLi4vdWl0aGVtZS9tb2RlbHMvdWlhY3Rpb24nO1xuaW1wb3J0IHsgVUlTaGFkb3cgfSBmcm9tICcuLi91aXRoZW1lL21vZGVscy91aXNoYWRvdyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uL3VpdGhlbWUvbW9kZWxzL3VpcmFkaXVzJztcbmltcG9ydCB7IFVJQWN0aW9uVHlwZSB9IGZyb20gJy4uL3VpdGhlbWUvZW51bXMvdWlhY3Rpb24tdHlwZSc7XG5pbXBvcnQgeyBVSUNvbG9yIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7IFVJVGV4dFN0eWxlIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aXRleHQtc3R5bGUnO1xuaW1wb3J0IHsgVUlBc3NldCB9IGZyb20gJy4uL3VpdGhlbWUvZW51bXMvdWlhc3NldCc7XG5pbXBvcnQgeyBVSUFsaWdubWVudFR5cGUgfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3VpYWxpZ25tZW50LXR5cGUnO1xuaW1wb3J0IHsgVUlTcGFjaW5nTGV2ZWwgfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3Vpc3BhY2luZy1sZXZlbCc7XG5pbXBvcnQgeyBTRFVJX0JBU0VfVVJMIH0gZnJvbSAnLi4vdG9rZW5zL3NkdWktY29uZmlnLnRva2VuJztcbmltcG9ydCB7IHJlc29sdmVTZHVpVXJsIH0gZnJvbSAnLi4vdXRpbHMvdXJsLXBhcnNlci51dGlsJztcbmltcG9ydCB7IFVJQ2VudGVyZWRDb250ZW50TGF5b3V0IH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9tb2RlbHMvdWljZW50ZXJlZC1jb250ZW50LWxheW91dCc7XG5pbXBvcnQgeyBVSVJhZGl1c0xldmVsIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aXJhZGl1cy1sZXZlbCc7XG5pbXBvcnQgeyBVSUNvbnRlbnRUeXBlIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aWNvbnRlbnQtdHlwZSc7XG5pbXBvcnQgeyBVSUFzcGVjdFR5cGUgfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3VpYXNwZWN0LXR5cGUnO1xuaW1wb3J0IHsgVUlEaW1lbnNpb24gfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3VpZGltZW5zaW9uJztcbmltcG9ydCB7IFVJSnVzdGlmeSB9IGZyb20gJy4uL3VpdGhlbWUvZW51bXMvdWlqdXN0aWZ5JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVJU2NyZWVuU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNEVUlfQkFTRV9VUkwpIHByaXZhdGUgYmFzZVVybDogc3RyaW5nID0gJydcbiAgKSB7fVxuXG4gIGdldFVJU2NyZWVuKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVSVNjcmVlbj4ge1xuICAgIGxldCBmaW5hbFVybCA9IHJlc29sdmVTZHVpVXJsKHVybCwgdGhpcy5iYXNlVXJsKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihmaW5hbFVybClcbiAgICAgIC5waXBlKG1hcCgoanNvbikgPT4gdGhpcy5tYXBUb1VJU2NyZWVuKGpzb24pKSk7XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlTY3JlZW4oanNvbjogUGFydGlhbDxVSVNjcmVlbj4pOiBVSVNjcmVlbiB7XG4gICAgY29uc3QgeyBpZGVudGlmaWVyLCBjb250ZW50LCBjb25maWcgfSA9IGpzb247XG5cbiAgICBpZiAoIWlkZW50aWZpZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSWRlbnRpZmljYWRvciBkYSB0ZWxhIGF1c2VudGUgbm8gSlNPTiByZWNlYmlkby5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXlvdXQgPSB0aGlzLmdldExheW91dChpZGVudGlmaWVyIGFzIFVJU2NyZWVuSWRlbnRpZmllciwgY29udGVudCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZENvbmZpZyA9IHRoaXMubm9ybWFsaXplQ29uZmlnKGpzb24sIGNvbmZpZyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllciBhcyBVSVNjcmVlbklkZW50aWZpZXIsXG4gICAgICBjb250ZW50OiBsYXlvdXQsXG4gICAgICBjb25maWc6IHRoaXMubWFwVG9VSVNjcmVlbkNvbmZpZyhub3JtYWxpemVkQ29uZmlnKSxcbiAgICAgIC4uLnRoaXMubWFwVG9VSVZpZXcoanNvbiksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGF5b3V0KFxuICAgIGlkZW50aWZpZXI6IFVJU2NyZWVuSWRlbnRpZmllcixcbiAgICBjb250ZW50OiBVSUxheW91dCB8IHVuZGVmaW5lZFxuICApOiBVSUxheW91dCB7XG4gICAgc3dpdGNoIChpZGVudGlmaWVyKSB7XG4gICAgICBjYXNlIFVJU2NyZWVuSWRlbnRpZmllci5TSU5HTEVfQ09MVU1OOlxuICAgICAgICByZXR1cm4gdGhpcy5tYXBUb1NpbmdsZUNvbHVtbkxheW91dChjb250ZW50ID8/IHt9KTtcblxuICAgICAgY2FzZSBVSVNjcmVlbklkZW50aWZpZXIuQ0VOVEVSRURfQ09OVEVOVDpcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwVG9DZW50ZXJlZENvbnRlbnRMYXlvdXQoY29udGVudCA/PyB7fSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGlwbyBkZSB0ZWxhIGRlc2NvbmhlY2lkbzogJHtpZGVudGlmaWVyfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplQ29uZmlnKFxuICAgIGpzb246IFBhcnRpYWw8VUlTY3JlZW4+LFxuICAgIGNvbmZpZz86IFBhcnRpYWw8VUlTY3JlZW5Db25maWc+IHwgbnVsbFxuICApOiBQYXJ0aWFsPFVJU2NyZWVuQ29uZmlnPiB8IG51bGwge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID1cbiAgICAgIChqc29uIGFzIGFueSkuY29udGFpbmVyID8/XG4gICAgICAoanNvbiBhcyBhbnkpLmNvbnRhaW5lcl90eXBlID8/XG4gICAgICAoanNvbiBhcyBhbnkpLmNvbnRhaW5lclR5cGUgPz9cbiAgICAgIG51bGw7XG5cbiAgICBjb25zdCBhbHdheXNSZWxvYWQgPVxuICAgICAgKGpzb24gYXMgYW55KS5hbHdheXNfcmVsb2FkID8/IChqc29uIGFzIGFueSkuYWx3YXlzUmVsb2FkID8/IG51bGw7XG5cbiAgICBpZiAoY29udGFpbmVyID09PSBudWxsICYmIGFsd2F5c1JlbG9hZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY29udGFpbmVyLCBhbHdheXNSZWxvYWQgfSBhcyBQYXJ0aWFsPFVJU2NyZWVuQ29uZmlnPjtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVG9TaW5nbGVDb2x1bW5MYXlvdXQoXG4gICAganNvbjogUGFydGlhbDxVSVNpbmdsZUNvbHVtbkxheW91dD5cbiAgKTogVUlTaW5nbGVDb2x1bW5MYXlvdXQge1xuICAgIHJldHVybiB7XG4gICAgICBuYXY6IGpzb24ubmF2ID8gdGhpcy5tYXBUb1VJTmF2aWdhdGlvbihqc29uLm5hdikgOiBudWxsLFxuICAgICAgaGVhZGVyOiBqc29uLmhlYWRlciA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLmhlYWRlcikgOiBudWxsLFxuICAgICAgbWFpbjoganNvbi5tYWluID8gdGhpcy5tYXBUb1VJQ29tcG9uZW50KGpzb24ubWFpbikgOiBudWxsLFxuICAgICAgZm9vdGVyOiBqc29uLmZvb3RlciA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLmZvb3RlcikgOiBudWxsLFxuICAgICAgZmFiOiBqc29uLmZhYiA/IHRoaXMubWFwVG9VSUVsZW1lbnQoanNvbi5mYWIpIDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUb0NlbnRlcmVkQ29udGVudExheW91dChcbiAgICBqc29uOiBQYXJ0aWFsPFVJQ2VudGVyZWRDb250ZW50TGF5b3V0PlxuICApOiBVSUNlbnRlcmVkQ29udGVudExheW91dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hdjoganNvbi5uYXYgPyB0aGlzLm1hcFRvVUlOYXZpZ2F0aW9uKGpzb24ubmF2KSA6IG51bGwsXG4gICAgICBiYWNrZ3JvdW5kQ29tcG9uZW50OiBqc29uLmJhY2tncm91bmRDb21wb25lbnRcbiAgICAgICAgPyB0aGlzLm1hcFRvVUlDb21wb25lbnQoanNvbi5iYWNrZ3JvdW5kQ29tcG9uZW50KVxuICAgICAgICA6IG51bGwsXG4gICAgICBoZWFkZXI6IGpzb24uaGVhZGVyID8gdGhpcy5tYXBUb1VJQ29tcG9uZW50KGpzb24uaGVhZGVyKSA6IG51bGwsXG4gICAgICBjZW50ZXJlZDoganNvbi5jZW50ZXJlZCA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLmNlbnRlcmVkKSA6IG51bGwsXG4gICAgICBmb290ZXI6IGpzb24uZm9vdGVyID8gdGhpcy5tYXBUb1VJQ29tcG9uZW50KGpzb24uZm9vdGVyKSA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVG9VSU5hdmlnYXRpb24oanNvbjogYW55KTogVUlOYXZpZ2F0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IGpzb24udGl0bGUgPz8gbnVsbCxcbiAgICAgIHRpdGxlQ29tcG9uZW50OiBqc29uLnRpdGxlX2NvbXBvbmVudFxuICAgICAgICA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLnRpdGxlX2NvbXBvbmVudClcbiAgICAgICAgOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlDb21wb25lbnQoanNvbjogUGFydGlhbDxVSUNvbXBvbmVudD4pOiBVSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGpzb24udHlwZSB8fCBVSUNvbXBvbmVudFR5cGUuQ09MVU1OLCAvLyBEZWZpbmUgdW0gdGlwbyBwYWRyw6NvXG4gICAgICBjb21wb25lbnRzOiBqc29uLmNvbXBvbmVudHNcbiAgICAgICAgPyBqc29uLmNvbXBvbmVudHMubWFwKChjKSA9PiB0aGlzLm1hcFRvVUlDb21wb25lbnQoYykpXG4gICAgICAgIDogW10sXG4gICAgICBlbGVtZW50OiBqc29uLmVsZW1lbnQgPyB0aGlzLm1hcFRvVUlFbGVtZW50KGpzb24uZWxlbWVudCkgOiBudWxsLFxuICAgICAgZXhjbHVkZWRfcGxhdGZvcm1zOiBqc29uLmV4Y2x1ZGVkX3BsYXRmb3JtcyxcbiAgICAgIHRhZ3M6IGpzb24udGFncyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUb1VJRWxlbWVudChqc29uOiBhbnkpOiBVSUVsZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDoganNvbi5sYWJlbCA/PyBudWxsLFxuICAgICAgdGV4dENvbG9yOiBqc29uLnRleHRfY29sb3IgPyAoanNvbi50ZXh0X2NvbG9yIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICAgIHRleHRTdHlsZToganNvbi50ZXh0X3N0eWxlID8gKGpzb24udGV4dF9zdHlsZSBhcyBVSVRleHRTdHlsZSkgOiBudWxsLFxuICAgICAgbWF4TGluZXM6IGpzb24ubWF4X2xpbmVzID8/IG51bGwsXG4gICAgICBhc3NldDoganNvbi5hc3NldCA/IChqc29uLmFzc2V0IGFzIFVJQXNzZXQpIDogbnVsbCxcbiAgICAgIHVybDoganNvbi51cmwgPz8gbnVsbCxcbiAgICAgIGVuYWJsZWQ6IGpzb24uZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgc2l6ZToganNvbi5zaXplID8/IG51bGwsXG4gICAgICBvcGFjaXR5OiBqc29uLm9wYWNpdHkgPz8gbnVsbCxcbiAgICAgIGNvbnRlbnRUeXBlOiAoanNvbi5jb250ZW50X3R5cGUgYXMgVUlDb250ZW50VHlwZSkgPz8gbnVsbCxcbiAgICAgIGFzcGVjdDogKGpzb24uYXNwZWN0IGFzIFVJQXNwZWN0VHlwZSkgPz8gbnVsbCxcbiAgICAgIGdyb3c6IGpzb24uZ3JvdyA/PyBudWxsLFxuICAgICAgcGxhY2Vob2xkZXI6IGpzb24ucGxhY2Vob2xkZXIgPz8gbnVsbCxcbiAgICAgIHBsYWNlaG9sZGVyVGV4dENvbG9yOiBqc29uLnBsYWNlaG9sZGVyX3RleHRfY29sb3IgPz8gbnVsbCxcbiAgICAgIHBsYWNlaG9sZGVyVGV4dFN0eWxlOiBqc29uLnBsYWNlaG9sZGVyX3RleHRfc3R5bGUgPz8gbnVsbCxcbiAgICAgIGFzcGVjdFJhdGlvOiBqc29uLmFzcGVjdF9yYXRpbyA/PyBudWxsLFxuICAgICAgcHJvZ3Jlc3M6IGpzb24ucHJvZ3Jlc3MgPz8gbnVsbCxcbiAgICAgIHByb2dyZXNzQ29sb3I6IGpzb24ucHJvZ3Jlc3NfY29sb3IgPyAoanNvbi5wcm9ncmVzc19jb2xvciBhcyBVSUNvbG9yKSA6IG51bGwsXG4gICAgICAuLi50aGlzLm1hcFRvVUlWaWV3KGpzb24pLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlWaWV3KGpzb246IGFueSk6IFVJVmlldyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBqc29uLmlkID8/IG51bGwsXG4gICAgICBwYWRkaW5nOiBqc29uLnBhZGRpbmcgYXMgVUlQYWRkaW5nLFxuICAgICAgYmFja2dyb3VuZDoganNvbi5iYWNrZ3JvdW5kID8gdGhpcy5tYXBCYWNrZ3JvdW5kKGpzb24uYmFja2dyb3VuZCkgOiBudWxsLFxuICAgICAgYWN0aW9uOiBqc29uLmFjdGlvbiA/IHRoaXMubWFwQWN0aW9uKGpzb24uYWN0aW9uKSA6IG51bGwsXG4gICAgICBhbGlnbm1lbnQ6IGpzb24uYWxpZ25tZW50XG4gICAgICAgID8geyBhbGlnbm1lbnQ6IGpzb24uYWxpZ25tZW50IGFzIFVJQWxpZ25tZW50VHlwZSB9XG4gICAgICAgIDogbnVsbCxcbiAgICAgIHNoYWRvdzoganNvbi5zaGFkb3cgYXMgVUlTaGFkb3csXG4gICAgICByYWRpdXM6IGpzb24ucmFkaXVzID8gdGhpcy5tYXBSYWRpdXMoanNvbi5yYWRpdXMpIDogbnVsbCxcbiAgICAgIHNwYWNpbmc6IGpzb24uc3BhY2luZ1xuICAgICAgICA/IHsgc3BhY2luZzoganNvbi5zcGFjaW5nIGFzIFVJU3BhY2luZ0xldmVsIH1cbiAgICAgICAgOiBudWxsLFxuICAgICAgaGVpZ2h0OiBqc29uLmhlaWdodCA/IChqc29uLmhlaWdodCBhcyBVSURpbWVuc2lvbikgOiBudWxsLFxuICAgICAgd2lkdGg6IGpzb24ud2lkdGggPyAoanNvbi53aWR0aCBhcyBVSURpbWVuc2lvbikgOiBudWxsLFxuICAgICAgYm9yZGVyV2lkdGg6IGpzb24uYm9yZGVyX3dpZHRoID8/IG51bGwsXG4gICAgICBib3JkZXJDb2xvcjoganNvbi5ib3JkZXJfY29sb3IgPyAoanNvbi5ib3JkZXJfY29sb3IgYXMgVUlDb2xvcikgOiBudWxsLFxuICAgICAganVzdGlmeToganNvbi5qdXN0aWZ5ID8gKGpzb24uanVzdGlmeSBhcyBVSUp1c3RpZnkpIDogbnVsbCxcbiAgICAgIGFzcGVjdFJhdGlvOiBqc29uLmFzcGVjdF9yYXRpbyA/PyBudWxsLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlTY3JlZW5Db25maWcoXG4gICAgY29uZmlnPzogUGFydGlhbDxVSVNjcmVlbkNvbmZpZz4gfCBudWxsXG4gICk6IFVJU2NyZWVuQ29uZmlnIHwgbnVsbCB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lclZhbHVlID0gKGNvbmZpZyBhcyBhbnkpLmNvbnRhaW5lcl90eXBlID8/IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5DT05UQUlORUQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWx3YXlzUmVsb2FkOlxuICAgICAgICAoY29uZmlnIGFzIGFueSkuYWx3YXlzX3JlbG9hZCA/PyAoY29uZmlnIGFzIGFueSkuYWx3YXlzUmVsb2FkID8/IG51bGwsXG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lclZhbHVlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcEJhY2tncm91bmQoanNvbjogYW55KTogVUlCYWNrZ3JvdW5kIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBqc29uLmJhY2tncm91bmRfY29sb3IgPyAoanNvbi5iYWNrZ3JvdW5kX2NvbG9yIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICAgIGdyYWRpZW50Q29sb3IxOiBqc29uLmdyYWRpZW50X2NvbG9yXzEgPyAoanNvbi5ncmFkaWVudF9jb2xvcl8xIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICAgIGdyYWRpZW50Q29sb3IyOiBqc29uLmdyYWRpZW50X2NvbG9yXzIgPyAoanNvbi5ncmFkaWVudF9jb2xvcl8yIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBBY3Rpb24oanNvbjogYW55KTogVUlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBjYW5BY2Nlc3M6IGpzb24uY2FuX2FjY2VzID8/IG51bGwsXG4gICAgICB0eXBlOiBqc29uLnR5cGUgPyAoanNvbi50eXBlIGFzIFVJQWN0aW9uVHlwZSkgOiBudWxsLFxuICAgICAgdXJsOiBqc29uLnVybCA/PyBudWxsLFxuICAgICAgcGFyYW06IGpzb24ucGFyYW0gPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBSYWRpdXMoanNvbjogYW55KTogVUlSYWRpdXMge1xuICAgIHJldHVybiB7XG4gICAgICB0b3BMZWZ0OiBqc29uLnRvcF9sZWZ0ID8gKGpzb24udG9wX2xlZnQgYXMgVUlSYWRpdXNMZXZlbCkgOiBudWxsLFxuICAgICAgdG9wUmlnaHQ6IGpzb24udG9wX3JpZ2h0ID8gKGpzb24udG9wX3JpZ2h0IGFzIFVJUmFkaXVzTGV2ZWwpIDogbnVsbCxcbiAgICAgIGJvdHRvbUxlZnQ6IGpzb24uYm90dG9tX2xlZnQgPyAoanNvbi5ib3R0b21fbGVmdCBhcyBVSVJhZGl1c0xldmVsKSA6IG51bGwsXG4gICAgICBib3R0b21SaWdodDoganNvbi5ib3R0b21fcmlnaHRcbiAgICAgICAgPyAoanNvbi5ib3R0b21fcmlnaHQgYXMgVUlSYWRpdXNMZXZlbClcbiAgICAgICAgOiBudWxsLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlzY3JlZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2NvcmUvc2VydmljZXMvdWlzY3JlZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSTFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBWXZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQVkxRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNVLElBQWdCLEVBQ21CLFVBQWtCLEVBQUU7UUFEdkQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNtQixZQUFPLEdBQVAsT0FBTyxDQUFhO0lBQzlELENBQUM7SUFFSixXQUFXLENBQUMsR0FBVztRQUNyQixJQUFJLFFBQVEsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLFFBQVEsQ0FBQzthQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQXVCO1FBQzNDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUU3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU1RCxPQUFPO1lBQ0wsVUFBVSxFQUFFLFVBQWdDO1lBQzVDLE9BQU8sRUFBRSxNQUFNO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsRCxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRU8sU0FBUyxDQUNmLFVBQThCLEVBQzlCLE9BQTZCO1FBRTdCLFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDbkIsS0FBSyxrQkFBa0IsQ0FBQyxhQUFhO2dCQUNuQyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7WUFFckQsS0FBSyxrQkFBa0IsQ0FBQyxnQkFBZ0I7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztZQUV4RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUNyQixJQUF1QixFQUN2QixNQUF1QztRQUV2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUNaLElBQVksQ0FBQyxTQUFTO1lBQ3RCLElBQVksQ0FBQyxjQUFjO1lBQzNCLElBQVksQ0FBQyxhQUFhO1lBQzNCLElBQUksQ0FBQztRQUVQLE1BQU0sWUFBWSxHQUNmLElBQVksQ0FBQyxhQUFhLElBQUssSUFBWSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7UUFFcEUsSUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBNkIsQ0FBQztJQUNoRSxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLElBQW1DO1FBRW5DLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN2RCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUMvRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN6RCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUMvRCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDckQsQ0FBQztJQUNKLENBQUM7SUFFTywwQkFBMEIsQ0FDaEMsSUFBc0M7UUFFdEMsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3ZELG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUNqRCxDQUFDLENBQUMsSUFBSTtZQUNSLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQy9ELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3JFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ2hFLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBUztRQUNqQyxPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSTtZQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLElBQUk7U0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQTBCO1FBQ2pELE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLHdCQUF3QjtZQUNuRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDLENBQUMsRUFBRTtZQUNOLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNoRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFTO1FBQzlCLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsVUFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNoRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFVBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDcEUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSTtZQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEQsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSTtZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO1lBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUk7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSTtZQUM3QixXQUFXLEVBQUcsSUFBSSxDQUFDLFlBQThCLElBQUksSUFBSTtZQUN6RCxNQUFNLEVBQUcsSUFBSSxDQUFDLE1BQXVCLElBQUksSUFBSTtZQUM3QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUk7WUFDckMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUk7WUFDekQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUk7WUFDekQsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSTtZQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQy9CLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsY0FBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUM1RSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQWdCLElBQUksSUFBSTtZQUNwQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQVM7UUFDM0IsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUk7WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFvQjtZQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDeEUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDdkIsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUE0QixFQUFFO2dCQUNsRCxDQUFDLENBQUMsSUFBSTtZQUNSLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBa0I7WUFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3hELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDbkIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUF5QixFQUFFO2dCQUM3QyxDQUFDLENBQUMsSUFBSTtZQUNSLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsTUFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN6RCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDdEQsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSTtZQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFlBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDdEUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzFELFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUk7WUFDdEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFnQixJQUFJLElBQUk7U0FDckMsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsTUFBdUM7UUFFdkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUksTUFBYyxDQUFDLGNBQWMsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFFekYsT0FBTztZQUNMLFlBQVksRUFDVCxNQUFjLENBQUMsYUFBYSxJQUFLLE1BQWMsQ0FBQyxZQUFZLElBQUksSUFBSTtZQUN2RSxTQUFTLEVBQUUsY0FBYztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFTO1FBQzdCLE9BQU87WUFDTCxlQUFlLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZ0JBQTRCLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEYsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGdCQUE0QixDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2pGLGNBQWMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxnQkFBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNsRixDQUFDO0lBQ0osQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFTO1FBQ3pCLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJO1lBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNwRCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJO1lBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUk7U0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBUztRQUN6QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxRQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2hFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsU0FBMkIsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNuRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFdBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDekUsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUM1QixDQUFDLENBQUUsSUFBSSxDQUFDLFlBQThCO2dCQUN0QyxDQUFDLENBQUMsSUFBSTtTQUNULENBQUM7SUFDSixDQUFDOytHQWxOVSxlQUFlLDRDQUdKLGFBQWE7bUhBSHhCLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVUlTY3JlZW4gfSBmcm9tICcuLi91aWNvbXBvc2l0aW9uL21vZGVscy91aXNjcmVlbic7XG5pbXBvcnQgeyBVSUxheW91dCB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vbW9kZWxzL3VpbGF5b3V0JztcbmltcG9ydCB7IFVJU2NyZWVuSWRlbnRpZmllciB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vZW51bXMvdWlzY3JlZW4taWRlbnRpZmllcic7XG5pbXBvcnQgeyBVSVNpbmdsZUNvbHVtbkxheW91dCB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vbW9kZWxzL3Vpc2luZ2xlLWNvbHVtbi1sYXlvdXQnO1xuaW1wb3J0IHsgVUlOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9tb2RlbHMvdWluYXZpZ2F0aW9uJztcbmltcG9ydCB7IFVJQ29tcG9uZW50IH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9tb2RlbHMvdWljb21wb25lbnQnO1xuaW1wb3J0IHsgVUlDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9lbnVtcy91aWNvbXBvbmVudC10eXBlJztcbmltcG9ydCB7IFVJRWxlbWVudCB9IGZyb20gJy4uL3VpY29tcG9zaXRpb24vbW9kZWxzL3VpZWxlbWVudCc7XG5pbXBvcnQgeyBVSVZpZXcgfSBmcm9tICcuLi91aWNvbXBvc2l0aW9uL21vZGVscy91aXZpZXcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db25maWcgfSBmcm9tICcuLi91aWNvbXBvc2l0aW9uL21vZGVscy91aXNjcmVlbi1jb25maWcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db250YWluZXJUeXBlIH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9lbnVtcy91aXNjcmVlbi1jb250YWluZXItdHlwZSc7XG5pbXBvcnQgeyBVSVBhZGRpbmcgfSBmcm9tICcuLi91aXRoZW1lL21vZGVscy91aXBhZGRpbmcnO1xuaW1wb3J0IHsgVUlCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vdWl0aGVtZS9tb2RlbHMvdWliYWNrZ3JvdW5kJztcbmltcG9ydCB7IFVJQWN0aW9uIH0gZnJvbSAnLi4vdWl0aGVtZS9tb2RlbHMvdWlhY3Rpb24nO1xuaW1wb3J0IHsgVUlTaGFkb3cgfSBmcm9tICcuLi91aXRoZW1lL21vZGVscy91aXNoYWRvdyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uL3VpdGhlbWUvbW9kZWxzL3VpcmFkaXVzJztcbmltcG9ydCB7IFVJQWN0aW9uVHlwZSB9IGZyb20gJy4uL3VpdGhlbWUvZW51bXMvdWlhY3Rpb24tdHlwZSc7XG5pbXBvcnQgeyBVSUNvbG9yIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7IFVJVGV4dFN0eWxlIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aXRleHQtc3R5bGUnO1xuaW1wb3J0IHsgVUlBc3NldCB9IGZyb20gJy4uL3VpdGhlbWUvZW51bXMvdWlhc3NldCc7XG5pbXBvcnQgeyBVSUFsaWdubWVudFR5cGUgfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3VpYWxpZ25tZW50LXR5cGUnO1xuaW1wb3J0IHsgVUlTcGFjaW5nTGV2ZWwgfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3Vpc3BhY2luZy1sZXZlbCc7XG5pbXBvcnQgeyBTRFVJX0JBU0VfVVJMIH0gZnJvbSAnLi4vdG9rZW5zL3NkdWktY29uZmlnLnRva2VuJztcbmltcG9ydCB7IHJlc29sdmVTZHVpVXJsIH0gZnJvbSAnLi4vdXRpbHMvdXJsLXBhcnNlci51dGlsJztcbmltcG9ydCB7IFVJQ2VudGVyZWRDb250ZW50TGF5b3V0IH0gZnJvbSAnLi4vdWljb21wb3NpdGlvbi9tb2RlbHMvdWljZW50ZXJlZC1jb250ZW50LWxheW91dCc7XG5pbXBvcnQgeyBVSVJhZGl1c0xldmVsIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aXJhZGl1cy1sZXZlbCc7XG5pbXBvcnQgeyBVSUNvbnRlbnRUeXBlIH0gZnJvbSAnLi4vdWl0aGVtZS9lbnVtcy91aWNvbnRlbnQtdHlwZSc7XG5pbXBvcnQgeyBVSUFzcGVjdFR5cGUgfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3VpYXNwZWN0LXR5cGUnO1xuaW1wb3J0IHsgVUlEaW1lbnNpb24gfSBmcm9tICcuLi91aXRoZW1lL2VudW1zL3VpZGltZW5zaW9uJztcbmltcG9ydCB7IFVJSnVzdGlmeSB9IGZyb20gJy4uL3VpdGhlbWUvZW51bXMvdWlqdXN0aWZ5JztcbmltcG9ydCB7IFVJSG92ZXIgfSBmcm9tICcuLi91aXRoZW1lL21vZGVscy91aWhvdmVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVJU2NyZWVuU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNEVUlfQkFTRV9VUkwpIHByaXZhdGUgYmFzZVVybDogc3RyaW5nID0gJydcbiAgKSB7fVxuXG4gIGdldFVJU2NyZWVuKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVSVNjcmVlbj4ge1xuICAgIGxldCBmaW5hbFVybCA9IHJlc29sdmVTZHVpVXJsKHVybCwgdGhpcy5iYXNlVXJsKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihmaW5hbFVybClcbiAgICAgIC5waXBlKG1hcCgoanNvbikgPT4gdGhpcy5tYXBUb1VJU2NyZWVuKGpzb24pKSk7XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlTY3JlZW4oanNvbjogUGFydGlhbDxVSVNjcmVlbj4pOiBVSVNjcmVlbiB7XG4gICAgY29uc3QgeyBpZGVudGlmaWVyLCBjb250ZW50LCBjb25maWcgfSA9IGpzb247XG5cbiAgICBpZiAoIWlkZW50aWZpZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSWRlbnRpZmljYWRvciBkYSB0ZWxhIGF1c2VudGUgbm8gSlNPTiByZWNlYmlkby5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXlvdXQgPSB0aGlzLmdldExheW91dChpZGVudGlmaWVyIGFzIFVJU2NyZWVuSWRlbnRpZmllciwgY29udGVudCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZENvbmZpZyA9IHRoaXMubm9ybWFsaXplQ29uZmlnKGpzb24sIGNvbmZpZyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllciBhcyBVSVNjcmVlbklkZW50aWZpZXIsXG4gICAgICBjb250ZW50OiBsYXlvdXQsXG4gICAgICBjb25maWc6IHRoaXMubWFwVG9VSVNjcmVlbkNvbmZpZyhub3JtYWxpemVkQ29uZmlnKSxcbiAgICAgIC4uLnRoaXMubWFwVG9VSVZpZXcoanNvbiksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGF5b3V0KFxuICAgIGlkZW50aWZpZXI6IFVJU2NyZWVuSWRlbnRpZmllcixcbiAgICBjb250ZW50OiBVSUxheW91dCB8IHVuZGVmaW5lZFxuICApOiBVSUxheW91dCB7XG4gICAgc3dpdGNoIChpZGVudGlmaWVyKSB7XG4gICAgICBjYXNlIFVJU2NyZWVuSWRlbnRpZmllci5TSU5HTEVfQ09MVU1OOlxuICAgICAgICByZXR1cm4gdGhpcy5tYXBUb1NpbmdsZUNvbHVtbkxheW91dChjb250ZW50ID8/IHt9KTtcblxuICAgICAgY2FzZSBVSVNjcmVlbklkZW50aWZpZXIuQ0VOVEVSRURfQ09OVEVOVDpcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwVG9DZW50ZXJlZENvbnRlbnRMYXlvdXQoY29udGVudCA/PyB7fSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGlwbyBkZSB0ZWxhIGRlc2NvbmhlY2lkbzogJHtpZGVudGlmaWVyfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplQ29uZmlnKFxuICAgIGpzb246IFBhcnRpYWw8VUlTY3JlZW4+LFxuICAgIGNvbmZpZz86IFBhcnRpYWw8VUlTY3JlZW5Db25maWc+IHwgbnVsbFxuICApOiBQYXJ0aWFsPFVJU2NyZWVuQ29uZmlnPiB8IG51bGwge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID1cbiAgICAgIChqc29uIGFzIGFueSkuY29udGFpbmVyID8/XG4gICAgICAoanNvbiBhcyBhbnkpLmNvbnRhaW5lcl90eXBlID8/XG4gICAgICAoanNvbiBhcyBhbnkpLmNvbnRhaW5lclR5cGUgPz9cbiAgICAgIG51bGw7XG5cbiAgICBjb25zdCBhbHdheXNSZWxvYWQgPVxuICAgICAgKGpzb24gYXMgYW55KS5hbHdheXNfcmVsb2FkID8/IChqc29uIGFzIGFueSkuYWx3YXlzUmVsb2FkID8/IG51bGw7XG5cbiAgICBpZiAoY29udGFpbmVyID09PSBudWxsICYmIGFsd2F5c1JlbG9hZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY29udGFpbmVyLCBhbHdheXNSZWxvYWQgfSBhcyBQYXJ0aWFsPFVJU2NyZWVuQ29uZmlnPjtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVG9TaW5nbGVDb2x1bW5MYXlvdXQoXG4gICAganNvbjogUGFydGlhbDxVSVNpbmdsZUNvbHVtbkxheW91dD5cbiAgKTogVUlTaW5nbGVDb2x1bW5MYXlvdXQge1xuICAgIHJldHVybiB7XG4gICAgICBuYXY6IGpzb24ubmF2ID8gdGhpcy5tYXBUb1VJTmF2aWdhdGlvbihqc29uLm5hdikgOiBudWxsLFxuICAgICAgaGVhZGVyOiBqc29uLmhlYWRlciA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLmhlYWRlcikgOiBudWxsLFxuICAgICAgbWFpbjoganNvbi5tYWluID8gdGhpcy5tYXBUb1VJQ29tcG9uZW50KGpzb24ubWFpbikgOiBudWxsLFxuICAgICAgZm9vdGVyOiBqc29uLmZvb3RlciA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLmZvb3RlcikgOiBudWxsLFxuICAgICAgZmFiOiBqc29uLmZhYiA/IHRoaXMubWFwVG9VSUVsZW1lbnQoanNvbi5mYWIpIDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUb0NlbnRlcmVkQ29udGVudExheW91dChcbiAgICBqc29uOiBQYXJ0aWFsPFVJQ2VudGVyZWRDb250ZW50TGF5b3V0PlxuICApOiBVSUNlbnRlcmVkQ29udGVudExheW91dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hdjoganNvbi5uYXYgPyB0aGlzLm1hcFRvVUlOYXZpZ2F0aW9uKGpzb24ubmF2KSA6IG51bGwsXG4gICAgICBiYWNrZ3JvdW5kQ29tcG9uZW50OiBqc29uLmJhY2tncm91bmRDb21wb25lbnRcbiAgICAgICAgPyB0aGlzLm1hcFRvVUlDb21wb25lbnQoanNvbi5iYWNrZ3JvdW5kQ29tcG9uZW50KVxuICAgICAgICA6IG51bGwsXG4gICAgICBoZWFkZXI6IGpzb24uaGVhZGVyID8gdGhpcy5tYXBUb1VJQ29tcG9uZW50KGpzb24uaGVhZGVyKSA6IG51bGwsXG4gICAgICBjZW50ZXJlZDoganNvbi5jZW50ZXJlZCA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLmNlbnRlcmVkKSA6IG51bGwsXG4gICAgICBmb290ZXI6IGpzb24uZm9vdGVyID8gdGhpcy5tYXBUb1VJQ29tcG9uZW50KGpzb24uZm9vdGVyKSA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVG9VSU5hdmlnYXRpb24oanNvbjogYW55KTogVUlOYXZpZ2F0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IGpzb24udGl0bGUgPz8gbnVsbCxcbiAgICAgIHRpdGxlQ29tcG9uZW50OiBqc29uLnRpdGxlX2NvbXBvbmVudFxuICAgICAgICA/IHRoaXMubWFwVG9VSUNvbXBvbmVudChqc29uLnRpdGxlX2NvbXBvbmVudClcbiAgICAgICAgOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlDb21wb25lbnQoanNvbjogUGFydGlhbDxVSUNvbXBvbmVudD4pOiBVSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGpzb24udHlwZSB8fCBVSUNvbXBvbmVudFR5cGUuQ09MVU1OLCAvLyBEZWZpbmUgdW0gdGlwbyBwYWRyw6NvXG4gICAgICBjb21wb25lbnRzOiBqc29uLmNvbXBvbmVudHNcbiAgICAgICAgPyBqc29uLmNvbXBvbmVudHMubWFwKChjKSA9PiB0aGlzLm1hcFRvVUlDb21wb25lbnQoYykpXG4gICAgICAgIDogW10sXG4gICAgICBlbGVtZW50OiBqc29uLmVsZW1lbnQgPyB0aGlzLm1hcFRvVUlFbGVtZW50KGpzb24uZWxlbWVudCkgOiBudWxsLFxuICAgICAgZXhjbHVkZWRfcGxhdGZvcm1zOiBqc29uLmV4Y2x1ZGVkX3BsYXRmb3JtcyxcbiAgICAgIHRhZ3M6IGpzb24udGFncyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUb1VJRWxlbWVudChqc29uOiBhbnkpOiBVSUVsZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDoganNvbi5sYWJlbCA/PyBudWxsLFxuICAgICAgdGV4dENvbG9yOiBqc29uLnRleHRfY29sb3IgPyAoanNvbi50ZXh0X2NvbG9yIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICAgIHRleHRTdHlsZToganNvbi50ZXh0X3N0eWxlID8gKGpzb24udGV4dF9zdHlsZSBhcyBVSVRleHRTdHlsZSkgOiBudWxsLFxuICAgICAgbWF4TGluZXM6IGpzb24ubWF4X2xpbmVzID8/IG51bGwsXG4gICAgICBhc3NldDoganNvbi5hc3NldCA/IChqc29uLmFzc2V0IGFzIFVJQXNzZXQpIDogbnVsbCxcbiAgICAgIHVybDoganNvbi51cmwgPz8gbnVsbCxcbiAgICAgIGVuYWJsZWQ6IGpzb24uZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgc2l6ZToganNvbi5zaXplID8/IG51bGwsXG4gICAgICBvcGFjaXR5OiBqc29uLm9wYWNpdHkgPz8gbnVsbCxcbiAgICAgIGNvbnRlbnRUeXBlOiAoanNvbi5jb250ZW50X3R5cGUgYXMgVUlDb250ZW50VHlwZSkgPz8gbnVsbCxcbiAgICAgIGFzcGVjdDogKGpzb24uYXNwZWN0IGFzIFVJQXNwZWN0VHlwZSkgPz8gbnVsbCxcbiAgICAgIGdyb3c6IGpzb24uZ3JvdyA/PyBudWxsLFxuICAgICAgcGxhY2Vob2xkZXI6IGpzb24ucGxhY2Vob2xkZXIgPz8gbnVsbCxcbiAgICAgIHBsYWNlaG9sZGVyVGV4dENvbG9yOiBqc29uLnBsYWNlaG9sZGVyX3RleHRfY29sb3IgPz8gbnVsbCxcbiAgICAgIHBsYWNlaG9sZGVyVGV4dFN0eWxlOiBqc29uLnBsYWNlaG9sZGVyX3RleHRfc3R5bGUgPz8gbnVsbCxcbiAgICAgIGFzcGVjdFJhdGlvOiBqc29uLmFzcGVjdF9yYXRpbyA/PyBudWxsLFxuICAgICAgcHJvZ3Jlc3M6IGpzb24ucHJvZ3Jlc3MgPz8gbnVsbCxcbiAgICAgIHByb2dyZXNzQ29sb3I6IGpzb24ucHJvZ3Jlc3NfY29sb3IgPyAoanNvbi5wcm9ncmVzc19jb2xvciBhcyBVSUNvbG9yKSA6IG51bGwsXG4gICAgICBob3ZlcjoganNvbi5ob3ZlciBhcyBVSUhvdmVyID8/IG51bGwsXG4gICAgICAuLi50aGlzLm1hcFRvVUlWaWV3KGpzb24pLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlWaWV3KGpzb246IGFueSk6IFVJVmlldyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBqc29uLmlkID8/IG51bGwsXG4gICAgICBwYWRkaW5nOiBqc29uLnBhZGRpbmcgYXMgVUlQYWRkaW5nLFxuICAgICAgYmFja2dyb3VuZDoganNvbi5iYWNrZ3JvdW5kID8gdGhpcy5tYXBCYWNrZ3JvdW5kKGpzb24uYmFja2dyb3VuZCkgOiBudWxsLFxuICAgICAgYWN0aW9uOiBqc29uLmFjdGlvbiA/IHRoaXMubWFwQWN0aW9uKGpzb24uYWN0aW9uKSA6IG51bGwsXG4gICAgICBhbGlnbm1lbnQ6IGpzb24uYWxpZ25tZW50XG4gICAgICAgID8geyBhbGlnbm1lbnQ6IGpzb24uYWxpZ25tZW50IGFzIFVJQWxpZ25tZW50VHlwZSB9XG4gICAgICAgIDogbnVsbCxcbiAgICAgIHNoYWRvdzoganNvbi5zaGFkb3cgYXMgVUlTaGFkb3csXG4gICAgICByYWRpdXM6IGpzb24ucmFkaXVzID8gdGhpcy5tYXBSYWRpdXMoanNvbi5yYWRpdXMpIDogbnVsbCxcbiAgICAgIHNwYWNpbmc6IGpzb24uc3BhY2luZ1xuICAgICAgICA/IHsgc3BhY2luZzoganNvbi5zcGFjaW5nIGFzIFVJU3BhY2luZ0xldmVsIH1cbiAgICAgICAgOiBudWxsLFxuICAgICAgaGVpZ2h0OiBqc29uLmhlaWdodCA/IChqc29uLmhlaWdodCBhcyBVSURpbWVuc2lvbikgOiBudWxsLFxuICAgICAgd2lkdGg6IGpzb24ud2lkdGggPyAoanNvbi53aWR0aCBhcyBVSURpbWVuc2lvbikgOiBudWxsLFxuICAgICAgYm9yZGVyV2lkdGg6IGpzb24uYm9yZGVyX3dpZHRoID8/IG51bGwsXG4gICAgICBib3JkZXJDb2xvcjoganNvbi5ib3JkZXJfY29sb3IgPyAoanNvbi5ib3JkZXJfY29sb3IgYXMgVUlDb2xvcikgOiBudWxsLFxuICAgICAganVzdGlmeToganNvbi5qdXN0aWZ5ID8gKGpzb24uanVzdGlmeSBhcyBVSUp1c3RpZnkpIDogbnVsbCxcbiAgICAgIGFzcGVjdFJhdGlvOiBqc29uLmFzcGVjdF9yYXRpbyA/PyBudWxsLFxuICAgICAgaG92ZXI6IGpzb24uaG92ZXIgYXMgVUlIb3ZlciA/PyBudWxsLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcFRvVUlTY3JlZW5Db25maWcoXG4gICAgY29uZmlnPzogUGFydGlhbDxVSVNjcmVlbkNvbmZpZz4gfCBudWxsXG4gICk6IFVJU2NyZWVuQ29uZmlnIHwgbnVsbCB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lclZhbHVlID0gKGNvbmZpZyBhcyBhbnkpLmNvbnRhaW5lcl90eXBlID8/IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5DT05UQUlORUQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWx3YXlzUmVsb2FkOlxuICAgICAgICAoY29uZmlnIGFzIGFueSkuYWx3YXlzX3JlbG9hZCA/PyAoY29uZmlnIGFzIGFueSkuYWx3YXlzUmVsb2FkID8/IG51bGwsXG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lclZhbHVlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcEJhY2tncm91bmQoanNvbjogYW55KTogVUlCYWNrZ3JvdW5kIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBqc29uLmJhY2tncm91bmRfY29sb3IgPyAoanNvbi5iYWNrZ3JvdW5kX2NvbG9yIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICAgIGdyYWRpZW50Q29sb3IxOiBqc29uLmdyYWRpZW50X2NvbG9yXzEgPyAoanNvbi5ncmFkaWVudF9jb2xvcl8xIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICAgIGdyYWRpZW50Q29sb3IyOiBqc29uLmdyYWRpZW50X2NvbG9yXzIgPyAoanNvbi5ncmFkaWVudF9jb2xvcl8yIGFzIFVJQ29sb3IpIDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBBY3Rpb24oanNvbjogYW55KTogVUlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBjYW5BY2Nlc3M6IGpzb24uY2FuX2FjY2VzID8/IG51bGwsXG4gICAgICB0eXBlOiBqc29uLnR5cGUgPyAoanNvbi50eXBlIGFzIFVJQWN0aW9uVHlwZSkgOiBudWxsLFxuICAgICAgdXJsOiBqc29uLnVybCA/PyBudWxsLFxuICAgICAgcGFyYW06IGpzb24ucGFyYW0gPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBSYWRpdXMoanNvbjogYW55KTogVUlSYWRpdXMge1xuICAgIHJldHVybiB7XG4gICAgICB0b3BMZWZ0OiBqc29uLnRvcF9sZWZ0ID8gKGpzb24udG9wX2xlZnQgYXMgVUlSYWRpdXNMZXZlbCkgOiBudWxsLFxuICAgICAgdG9wUmlnaHQ6IGpzb24udG9wX3JpZ2h0ID8gKGpzb24udG9wX3JpZ2h0IGFzIFVJUmFkaXVzTGV2ZWwpIDogbnVsbCxcbiAgICAgIGJvdHRvbUxlZnQ6IGpzb24uYm90dG9tX2xlZnQgPyAoanNvbi5ib3R0b21fbGVmdCBhcyBVSVJhZGl1c0xldmVsKSA6IG51bGwsXG4gICAgICBib3R0b21SaWdodDoganNvbi5ib3R0b21fcmlnaHRcbiAgICAgICAgPyAoanNvbi5ib3R0b21fcmlnaHQgYXMgVUlSYWRpdXNMZXZlbClcbiAgICAgICAgOiBudWxsLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJRGltZW5zaW9uIH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9lbnVtcy91aWRpbWVuc2lvbic7XG5pbXBvcnQgeyBVSUFjdGlvbiB9IGZyb20gJy4uLy4uL3VpdGhlbWUvbW9kZWxzL3VpYWN0aW9uJztcbmltcG9ydCB7IFVJQWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWlhbGlnbm1lbnQnO1xuaW1wb3J0IHsgVUlCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWliYWNrZ3JvdW5kJztcbmltcG9ydCB7IFVJUGFkZGluZyB9IGZyb20gJy4uLy4uL3VpdGhlbWUvbW9kZWxzL3VpcGFkZGluZyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uLy4uL3VpdGhlbWUvbW9kZWxzL3VpcmFkaXVzJztcbmltcG9ydCB7IFVJU2hhZG93IH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWlzaGFkb3cnO1xuaW1wb3J0IHsgVUlTcGFjaW5nIH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWlzcGFjaW5nJztcbmltcG9ydCB7VUlDb2xvcn0gZnJvbSAnLi4vLi4vdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7VUlKdXN0aWZ5fSBmcm9tICcuLi8uLi91aXRoZW1lL2VudW1zL3VpanVzdGlmeSc7XG5pbXBvcnQgeyBVSVNpemUgfSBmcm9tICcuLi8uLi91aXRoZW1lL2VudW1zL3Vpc2l6ZSc7XG4vLyBpbnRlcmZhY2UgQUJTVFJBVEEgLSBuw6NvIGRldmUgZXhpc3RpciBvYmpldG9zIGRlbGEhXG5leHBvcnQgaW50ZXJmYWNlIFVJVmlldyB7XG4gIGlkPzogc3RyaW5nIHwgbnVsbDtcbiAgcGFkZGluZz86IFVJUGFkZGluZyB8IG51bGw7XG4gIGJhY2tncm91bmQ/OiBVSUJhY2tncm91bmQgfCBudWxsO1xuICBhY3Rpb24/OiBVSUFjdGlvbiB8IG51bGw7XG4gIGFsaWdubWVudD86IFVJQWxpZ25tZW50IHwgbnVsbDtcbiAgc2hhZG93PzogVUlTaGFkb3cgfCBudWxsO1xuICByYWRpdXM/OiBVSVJhZGl1cyB8IG51bGw7XG4gIHNwYWNpbmc/OiBVSVNwYWNpbmcgfCBudWxsO1xuICBoZWlnaHQ/OiBVSURpbWVuc2lvbiB8IG51bGw7XG4gIHdpZHRoPzogVUlEaW1lbnNpb24gfCBudWxsO1xuICBib3JkZXJXaWR0aD86IG51bWJlciB8IG51bGw7XG4gIGJvcmRlckNvbG9yPzogVUlDb2xvciB8IG51bGw7XG4gIGp1c3RpZnk/OiBVSUp1c3RpZnkgfCBudWxsO1xuICBhc3BlY3RSYXRpbz86IG51bWJlciB8IG51bGw7XG4gIHNpemU/OiBVSVNpemUgfCBudWxsO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJRGltZW5zaW9uIH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9lbnVtcy91aWRpbWVuc2lvbic7XG5pbXBvcnQgeyBVSUFjdGlvbiB9IGZyb20gJy4uLy4uL3VpdGhlbWUvbW9kZWxzL3VpYWN0aW9uJztcbmltcG9ydCB7IFVJQWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWlhbGlnbm1lbnQnO1xuaW1wb3J0IHsgVUlCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWliYWNrZ3JvdW5kJztcbmltcG9ydCB7IFVJUGFkZGluZyB9IGZyb20gJy4uLy4uL3VpdGhlbWUvbW9kZWxzL3VpcGFkZGluZyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uLy4uL3VpdGhlbWUvbW9kZWxzL3VpcmFkaXVzJztcbmltcG9ydCB7IFVJU2hhZG93IH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWlzaGFkb3cnO1xuaW1wb3J0IHsgVUlTcGFjaW5nIH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWlzcGFjaW5nJztcbmltcG9ydCB7VUlDb2xvcn0gZnJvbSAnLi4vLi4vdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7VUlKdXN0aWZ5fSBmcm9tICcuLi8uLi91aXRoZW1lL2VudW1zL3VpanVzdGlmeSc7XG5pbXBvcnQgeyBVSVNpemUgfSBmcm9tICcuLi8uLi91aXRoZW1lL2VudW1zL3Vpc2l6ZSc7XG5pbXBvcnQgeyBVSUhvdmVyIH0gZnJvbSAnLi4vLi4vdWl0aGVtZS9tb2RlbHMvdWlob3Zlcic7XG4vLyBpbnRlcmZhY2UgQUJTVFJBVEEgLSBuw6NvIGRldmUgZXhpc3RpciBvYmpldG9zIGRlbGEhXG5leHBvcnQgaW50ZXJmYWNlIFVJVmlldyB7XG4gIGlkPzogc3RyaW5nIHwgbnVsbDtcbiAgcGFkZGluZz86IFVJUGFkZGluZyB8IG51bGw7XG4gIGJhY2tncm91bmQ/OiBVSUJhY2tncm91bmQgfCBudWxsO1xuICBhY3Rpb24/OiBVSUFjdGlvbiB8IG51bGw7XG4gIGFsaWdubWVudD86IFVJQWxpZ25tZW50IHwgbnVsbDtcbiAgc2hhZG93PzogVUlTaGFkb3cgfCBudWxsO1xuICByYWRpdXM/OiBVSVJhZGl1cyB8IG51bGw7XG4gIHNwYWNpbmc/OiBVSVNwYWNpbmcgfCBudWxsO1xuICBoZWlnaHQ/OiBVSURpbWVuc2lvbiB8IG51bGw7XG4gIHdpZHRoPzogVUlEaW1lbnNpb24gfCBudWxsO1xuICBib3JkZXJXaWR0aD86IG51bWJlciB8IG51bGw7XG4gIGJvcmRlckNvbG9yPzogVUlDb2xvciB8IG51bGw7XG4gIGp1c3RpZnk/OiBVSUp1c3RpZnkgfCBudWxsO1xuICBhc3BlY3RSYXRpbz86IG51bWJlciB8IG51bGw7XG4gIHNpemU/OiBVSVNpemUgfCBudWxsO1xuICBob3Zlcj86IFVJSG92ZXIgfCBudWxsO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlob3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlob3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVSUhvdmVyIHtcbiAgYm9yZGVyX2NvbG9yPzogc3RyaW5nIHwgbnVsbDtcbn1cbiJdfQ==
@@ -88,6 +88,9 @@ export class UIViewDirective {
88
88
  if (uiView.aspectRatio !== null && uiView.aspectRatio !== undefined) {
89
89
  this.applyAspectRatio(uiView.aspectRatio);
90
90
  }
91
+ if (uiView.hover) {
92
+ this.applyHoverVars(uiView);
93
+ }
91
94
  }
92
95
  applyPadding(uiPadding) {
93
96
  if (uiPadding.top) {
@@ -219,6 +222,33 @@ export class UIViewDirective {
219
222
  this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
220
223
  }
221
224
  }
225
+ applyHoverVars(uiView) {
226
+ const hover = uiView?.hover ?? uiView?.element?.hover;
227
+ console.log('hover:', hover);
228
+ if (!hover)
229
+ return;
230
+ const el = this.elementRef.nativeElement;
231
+ // marca que esse elemento tem hover
232
+ this.renderer.addClass(el, 'edm-hover');
233
+ if (hover.border_color || hover.borderColor) {
234
+ console.log(hover.border_color, hover.borderColor);
235
+ const token = hover.border_color ?? hover.borderColor;
236
+ const style = document.createElement('style');
237
+ style.textContent = `
238
+ :root {
239
+ --edm-hover-border-color: var(--${token.replace(/_/g, '-')});
240
+ }
241
+ `;
242
+ document.head.appendChild(style);
243
+ }
244
+ if (hover.background_color || hover.backgroundColor) {
245
+ const token = hover.background_color ?? hover.backgroundColor;
246
+ this.renderer.setStyle(el, '--edm-hover-bg-color', `var(--${token.replace(/_/g, '-')})`);
247
+ }
248
+ if (hover.scale) {
249
+ this.renderer.setStyle(el, '--edm-hover-scale', hover.scale);
250
+ }
251
+ }
222
252
  isSmallScreen() {
223
253
  return typeof window !== 'undefined' && window.innerWidth >= 565;
224
254
  }
@@ -268,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
268
298
  type: HostListener,
269
299
  args: ['click', ['$event']]
270
300
  }] } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2RpcmVjdGl2ZXMvdWl2aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFZdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsdUJBQXVCLEdBQ3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7OztBQU01RixNQUFNLE9BQU8sZUFBZTtJQVExQixZQUNVLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxhQUE4QixFQUNsQixlQUFrQztRQUo5QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUNsQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFYL0MsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFL0IsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDakMsbUJBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMscUJBQWdCLEdBQTBCLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztRQVNoRixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLGdCQUFnQjtvQkFDbkIsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLElBQUkscUJBQXFCLENBQUMsU0FBUyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQWM7UUFDaEMsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLElBQUksRUFDSixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUNsQixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsU0FBb0I7UUFDdkMsSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbEIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLGFBQWEsRUFDYixRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsY0FBYyxFQUNkLFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3QixlQUFlLEVBQ2YsUUFBUSxDQUNULENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLGdCQUFnQixFQUNoQixRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLFlBQTBCO1FBQ2hELElBQUksWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3QixrQkFBa0IsRUFDbEIsZUFBZSxDQUNoQixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLGNBQWMsSUFBSSxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0QsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sY0FBYyxHQUFHLDBCQUEwQixjQUFjLEtBQUssY0FBYyxHQUFHLENBQUE7WUFDckYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsWUFBWSxFQUNaLGNBQWMsQ0FDZixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsUUFBa0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUF3QjtRQUM3QyxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixzREFBc0Q7WUFDdEQsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsYUFBYSxFQUNiLFNBQVMsQ0FDVixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsUUFBa0I7UUFDcEMsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEYsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sVUFBVSxHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNoRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXRFLHVEQUF1RDtZQUN2RCxNQUFNLFdBQVcsR0FBRyxHQUFHLE9BQU8sSUFBSSxPQUFPLElBQUksVUFBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBRW5FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsWUFBWSxFQUNaLFdBQVcsQ0FDWixDQUFDO1lBRUYsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsU0FBUyxFQUNULE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FDbkIsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFrQjtRQUNwQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0Isd0JBQXdCLEVBQ3hCLE1BQU0sQ0FDUCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3Qix5QkFBeUIsRUFDekIsTUFBTSxDQUNQLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEIsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLDJCQUEyQixFQUMzQixNQUFNLENBQ1AsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsNEJBQTRCLEVBQzVCLE1BQU0sQ0FDUCxDQUFDO1FBQ0osQ0FBQztJQUVILENBQUM7SUFFTyxZQUFZLENBQUMsU0FBb0I7UUFDdkMsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLEtBQUssRUFDTCxZQUFZLENBQ2IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQW1CO1FBQ3JDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLFFBQVEsRUFDUixXQUFXLENBQ1osQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWtCO1FBQ25DLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLE9BQU8sRUFDUCxVQUFVLENBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBbUI7UUFDMUMsSUFBSSxXQUFXLEtBQUssSUFBSSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLGNBQWMsRUFDZCxHQUFHLFdBQVcsSUFBSSxDQUNuQixDQUFDO1lBRUYsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsY0FBYyxFQUNkLE9BQU8sQ0FDUixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxXQUFvQjtRQUMzQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLGNBQWMsRUFDZCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQWtCO1FBQ3JDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3QixpQkFBaUIsRUFDakIsWUFBWSxDQUNiLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFdBQW1CO0lBQzVDLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBWTtRQUM1QixJQUFHLElBQUksRUFBQyxDQUFDO1lBQ1AsSUFBSSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBSSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFMUMsSUFDRSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNwQixJQUFJLENBQUMsZ0JBQWdCLEtBQUsscUJBQXFCLENBQUMsS0FBSztnQkFDckQsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUN4RyxDQUFDO2dCQUNELFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbkQsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLE9BQU8sRUFDUCxVQUFVLENBQ1gsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsUUFBUSxFQUNSLFdBQVcsQ0FDWixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLE9BQU8sT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQ25FLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYSxFQUFFLE9BQWU7UUFDcEQsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDO1FBQzdCLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQztJQUN2QixDQUFDO0lBR0QsY0FBYztRQUNaLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRTlCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQzsrR0F0WFUsZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OzBCQWNJLFFBQVE7eUNBWkYsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQW9XTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZTtnQkFVN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJVmlldyB9IGZyb20gJy4uL2NvcmUvdWljb21wb3NpdGlvbi9tb2RlbHMvdWl2aWV3JztcbmltcG9ydCB7IFVJUGFkZGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlwYWRkaW5nJztcbmltcG9ydCB7IFVJQmFja2dyb3VuZCB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWliYWNrZ3JvdW5kJztcbmltcG9ydCB7IFVJQWN0aW9uIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aWFjdGlvbic7XG5pbXBvcnQgeyBVSUFsaWdubWVudCB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlhbGlnbm1lbnQnO1xuaW1wb3J0IHsgVUlTaGFkb3cgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3Vpc2hhZG93JztcbmltcG9ydCB7IFVJUmFkaXVzIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXJhZGl1cyc7XG5pbXBvcnQgeyBVSVNwYWNpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3Vpc3BhY2luZyc7XG5pbXBvcnQgeyBVSUNvbG9yIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL2VudW1zL3VpY29sb3InO1xuaW1wb3J0IHsgVUlKdXN0aWZ5IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL2VudW1zL3VpanVzdGlmeSc7XG5pbXBvcnQgeyBVSURpbWVuc2lvbiB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWRpbWVuc2lvbic7XG5pbXBvcnQgeyBzcGFjZU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zcGFjZS1tYXBwaW5nJztcbmltcG9ydCB7IGNvbG9yTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2NvbG9yLW1hcHBpbmcnO1xuaW1wb3J0IHsgcGFkTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3BhZC1tYXBwaW5nJztcbmltcG9ydCB7IHJhZGl1c01hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9yYWRpdXMtbWFwcGluZyc7XG5pbXBvcnQgeyBhbGlnbm1lbnRNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvYWxpZ25tZW50LW1hcHBpbmcnO1xuaW1wb3J0IHsgZGltZW5zaW9uTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2RpbWVuc2lvbi1tYXBwaW5nJztcbmltcG9ydCB7XG4gIHNoYWRvd09mZnNldE1hcHBpbmcsXG4gIHNoYWRvd0JsdXJSYWRpdXNNYXBwaW5nLFxufSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaGFkb3ctbWFwcGluZyc7XG5pbXBvcnQgeyBqdXN0aWZ5TWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2p1c3RpZnktbWFwcGluZyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVUlTY3JlZW5WaWV3TW9kZWwgfSBmcm9tICcuLi9jb3JlL3ZpZXctbW9kZWxzL3Vpc2NyZWVuLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBVSUFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL3VpLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVJU2l6ZSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aXNpemUnO1xuaW1wb3J0IHsgc2l6ZU1hcHBpbmdIZWlnaHQsIHNpemVNYXBwaW5nV2lkdGggfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaXplLW1hcHBpbmcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db250YWluZXJUeXBlIH0gZnJvbSAnLi4vY29yZS91aWNvbXBvc2l0aW9uL2VudW1zL3Vpc2NyZWVuLWNvbnRhaW5lci10eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VkbVNkdWlWaWV3XScsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBVSVZpZXdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBlZG1TZHVpVmlldz86IFVJVmlldztcbiAgQElucHV0KCkgZGlzYWJsZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBsYXN0VWlWaWV3OiBVSVZpZXcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB3YXNTbWFsbFNjcmVlbiA9IHRoaXMuaXNTbWFsbFNjcmVlbigpO1xuICBwcml2YXRlIGN1cnJlbnRDb250YWluZXI6IFVJU2NyZWVuQ29udGFpbmVyVHlwZSA9IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5DT05UQUlORUQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogVUlBY3Rpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgc2NyZWVuVmlld01vZGVsOiBVSVNjcmVlblZpZXdNb2RlbFxuICApIHtcbiAgICBpZiAodGhpcy5zY3JlZW5WaWV3TW9kZWwpIHtcbiAgICAgIHRoaXMuc2NyZWVuVmlld01vZGVsLnVpU2NyZWVuJC5zdWJzY3JpYmUoKHNjcmVlbikgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb250YWluZXIgPVxuICAgICAgICAgIHNjcmVlbj8uY29uZmlnPy5jb250YWluZXIgPz8gVUlTY3JlZW5Db250YWluZXJUeXBlLkNPTlRBSU5FRDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lZG1TZHVpVmlldykge1xuICAgICAgdGhpcy5sYXN0VWlWaWV3ID0gdGhpcy5lZG1TZHVpVmlldztcbiAgICAgIHRoaXMuYXBwbHlTdHlsZXModGhpcy5lZG1TZHVpVmlldyk7XG4gICAgICB0aGlzLndhc1NtYWxsU2NyZWVuID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVN0eWxlcyh1aVZpZXc6IFVJVmlldykge1xuICAgIGlmICh1aVZpZXcuaWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgU3RyaW5nKHVpVmlldy5pZClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5wYWRkaW5nKSB7XG4gICAgICB0aGlzLmFwcGx5UGFkZGluZyh1aVZpZXcucGFkZGluZyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5iYWNrZ3JvdW5kKSB7XG4gICAgICB0aGlzLmFwcGx5QmFja2dyb3VuZCh1aVZpZXcuYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5hY3Rpb24pIHtcbiAgICAgIHRoaXMuYXBwbHlBY3Rpb24odWlWaWV3LmFjdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5hbGlnbm1lbnQpIHtcbiAgICAgIHRoaXMuYXBwbHlBbGlnbm1lbnQodWlWaWV3LmFsaWdubWVudCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zaGFkb3cpIHtcbiAgICAgIHRoaXMuYXBwbHlTaGFkb3codWlWaWV3LnNoYWRvdyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5yYWRpdXMpIHtcbiAgICAgIHRoaXMuYXBwbHlSYWRpdXModWlWaWV3LnJhZGl1cyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zcGFjaW5nKSB7XG4gICAgICB0aGlzLmFwcGx5U3BhY2luZyh1aVZpZXcuc3BhY2luZyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5oZWlnaHQpIHtcbiAgICAgIHRoaXMuYXBwbHlIZWlnaHQodWlWaWV3LmhlaWdodCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy53aWR0aCkge1xuICAgICAgdGhpcy5hcHBseVdpZHRoKHVpVmlldy53aWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5ib3JkZXJXaWR0aCkge1xuICAgICAgdGhpcy5hcHBseUJvcmRlcldpZHRoKHVpVmlldy5ib3JkZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5ib3JkZXJDb2xvcikge1xuICAgICAgdGhpcy5hcHBseUJvcmRlckNvbG9yKHVpVmlldy5ib3JkZXJDb2xvcik7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5qdXN0aWZ5KSB7XG4gICAgICB0aGlzLmFwcGx5SnVzdGlmeSh1aVZpZXcuanVzdGlmeSk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zaXplKSB7XG4gICAgICB0aGlzLmFwcGx5U2l6ZSh1aVZpZXcuc2l6ZSk7XG4gICAgfVxuICAgIGlmICh1aVZpZXcuYXNwZWN0UmF0aW8gIT09IG51bGwgJiYgdWlWaWV3LmFzcGVjdFJhdGlvICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXBwbHlBc3BlY3RSYXRpbyh1aVZpZXcuYXNwZWN0UmF0aW8pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlQYWRkaW5nKHVpUGFkZGluZzogVUlQYWRkaW5nKSB7XG4gICAgaWYgKHVpUGFkZGluZy50b3ApIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcudG9wXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy10b3AnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5sZWZ0KSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLmxlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWxlZnQnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5yaWdodCkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy5yaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctcmlnaHQnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5ib3R0b20pIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcuYm90dG9tXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1ib3R0b20nLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QmFja2dyb3VuZCh1aUJhY2tncm91bmQ6IFVJQmFja2dyb3VuZCkge1xuICAgIGlmICh1aUJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBjb2xvck1hcHBpbmdbdWlCYWNrZ3JvdW5kLmJhY2tncm91bmRDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMSAmJiB1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjIpIHtcbiAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IxID0gY29sb3JNYXBwaW5nW3VpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMV07XG4gICAgICBjb25zdCBncmFkaWVudENvbG9yMiA9IGNvbG9yTWFwcGluZ1t1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjJdO1xuICAgICAgY29uc3QgZ3JhZGllbnRTdHlsZXMgPSBgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAke2dyYWRpZW50Q29sb3IxfSwgJHtncmFkaWVudENvbG9yMn0pYFxuICAgICAgY29uc29sZS5sb2coZ3JhZGllbnRDb2xvcjEsIGdyYWRpZW50Q29sb3IyLCBncmFkaWVudFN0eWxlcyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JhY2tncm91bmQnLFxuICAgICAgICBncmFkaWVudFN0eWxlc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QWN0aW9uKHVpQWN0aW9uOiBVSUFjdGlvbikge1xuICAgIGlmICh0aGlzLmRpc2FibGVDbGljaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjdXJzb3InLCAncG9pbnRlcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFsaWdubWVudCh1aUFsaWdubWVudDogVUlBbGlnbm1lbnQpIHtcbiAgICBpZiAodWlBbGlnbm1lbnQuYWxpZ25tZW50KSB7XG4gICAgICAvLyBjb25zb2xlLmRlYnVnKCdhbGlnbm1lbnQ6JywgdWlBbGlnbm1lbnQuYWxpZ25tZW50KTtcbiAgICAgIGNvbnN0IGFsaWdubWVudCA9IGFsaWdubWVudE1hcHBpbmdbdWlBbGlnbm1lbnQuYWxpZ25tZW50XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYWxpZ24taXRlbXMnLFxuICAgICAgICBhbGlnbm1lbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNoYWRvdyh1aVNoYWRvdzogVUlTaGFkb3cpIHtcbiAgICBpZiAodWlTaGFkb3cuY29sb3IgJiYgdWlTaGFkb3cub2Zmc2V0WCAmJiB1aVNoYWRvdy5vZmZzZXRZICYmIHVpU2hhZG93LmJsdXJSYWRpdXMpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JNYXBwaW5nW3VpU2hhZG93LmNvbG9yXTtcbiAgICAgIGNvbnN0IG9mZnNldFggPSBzaGFkb3dPZmZzZXRNYXBwaW5nW3VpU2hhZG93Lm9mZnNldFhdO1xuICAgICAgY29uc3Qgb2Zmc2V0WSA9IHNoYWRvd09mZnNldE1hcHBpbmdbdWlTaGFkb3cub2Zmc2V0WV07XG4gICAgICBjb25zdCBibHVyUmFkaXVzID0gc2hhZG93Qmx1clJhZGl1c01hcHBpbmdbdWlTaGFkb3cuYmx1clJhZGl1c107XG4gICAgICBjb25zdCBvcGFjaXR5ID0gdWlTaGFkb3cub3BhY2l0eSAhPT0gdW5kZWZpbmVkID8gdWlTaGFkb3cub3BhY2l0eSA6IDE7XG5cbiAgICAgIC8vIEZvcm1hdDogYm94LXNoYWRvdzogb2Zmc2V0WCBvZmZzZXRZIGJsdXJSYWRpdXMgY29sb3JcbiAgICAgIGNvbnN0IHNoYWRvd1ZhbHVlID0gYCR7b2Zmc2V0WH0gJHtvZmZzZXRZfSAke2JsdXJSYWRpdXN9ICR7Y29sb3J9YDtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3gtc2hhZG93JyxcbiAgICAgICAgc2hhZG93VmFsdWVcbiAgICAgICk7XG5cbiAgICAgIGlmIChvcGFjaXR5ICE9PSAxKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgJ29wYWNpdHknLFxuICAgICAgICAgIG9wYWNpdHkudG9TdHJpbmcoKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlSYWRpdXModWlSYWRpdXM6IFVJUmFkaXVzKSB7XG4gICAgaWYgKHVpUmFkaXVzLnRvcExlZnQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMudG9wTGVmdF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpUmFkaXVzLnRvcFJpZ2h0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLnRvcFJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpUmFkaXVzLmJvdHRvbUxlZnQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMuYm90dG9tTGVmdF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpUmFkaXVzLmJvdHRvbVJpZ2h0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLmJvdHRvbVJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGFwcGx5U3BhY2luZyh1aVNwYWNpbmc6IFVJU3BhY2luZykge1xuICAgIGlmICh1aVNwYWNpbmcuc3BhY2luZykge1xuICAgICAgY29uc3Qgc3BhY2luZ1ZhbHVlID0gc3BhY2VNYXBwaW5nW3VpU3BhY2luZy5zcGFjaW5nXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnZ2FwJyxcbiAgICAgICAgc3BhY2luZ1ZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlIZWlnaHQoaGVpZ2h0OiBVSURpbWVuc2lvbikge1xuICAgIGlmIChoZWlnaHQpIHtcbiAgICAgIGNvbnN0IGhlaWdodFZhbHVlID0gZGltZW5zaW9uTWFwcGluZ1toZWlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdoZWlnaHQnLFxuICAgICAgICBoZWlnaHRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5V2lkdGgod2lkdGg6IFVJRGltZW5zaW9uKSB7XG4gICAgaWYgKHdpZHRoKSB7XG4gICAgICBjb25zdCB3aWR0aFZhbHVlID0gZGltZW5zaW9uTWFwcGluZ1t3aWR0aF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgd2lkdGhWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Qm9yZGVyV2lkdGgoYm9yZGVyV2lkdGg6IG51bWJlcikge1xuICAgIGlmIChib3JkZXJXaWR0aCAhPT0gbnVsbCAmJiBib3JkZXJXaWR0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci13aWR0aCcsXG4gICAgICAgIGAke2JvcmRlcldpZHRofXB4YFxuICAgICAgKTtcblxuICAgICAgLy8gRW5zdXJlIGJvcmRlciBzdHlsZSBpcyBzZXQsIG90aGVyd2lzZSBib3JkZXItd2lkdGggd29uJ3QgYmUgdmlzaWJsZVxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItc3R5bGUnLFxuICAgICAgICAnc29saWQnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCb3JkZXJDb2xvcihib3JkZXJDb2xvcjogVUlDb2xvcikge1xuICAgIGlmIChib3JkZXJDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvck1hcHBpbmdbYm9yZGVyQ29sb3JdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItY29sb3InLFxuICAgICAgICBjb2xvclxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SnVzdGlmeShqdXN0aWZ5OiBVSUp1c3RpZnkpIHtcbiAgICBpZiAoanVzdGlmeSkge1xuICAgICAgY29uc3QganVzdGlmeVZhbHVlID0ganVzdGlmeU1hcHBpbmdbanVzdGlmeV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2p1c3RpZnktY29udGVudCcsXG4gICAgICAgIGp1c3RpZnlWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QXNwZWN0UmF0aW8oYXNwZWN0UmF0aW86IG51bWJlcikge1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNpemUoc2l6ZTogVUlTaXplKSB7XG4gICAgaWYoc2l6ZSl7XG4gICAgICBsZXQgd2lkdGhWYWx1ZSA9IHNpemVNYXBwaW5nV2lkdGhbc2l6ZV07XG4gICAgICBsZXQgaGVpZ2h0VmFsdWUgPSBzaXplTWFwcGluZ0hlaWdodFtzaXplXTtcblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzU21hbGxTY3JlZW4oKSAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRDb250YWluZXIgPT09IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5GTFVJRCAmJlxuICAgICAgICAoc2l6ZSA9PT0gVUlTaXplLkNBUkRfMSB8fCBzaXplID09PSBVSVNpemUuQ0FSRF8yIHx8IHNpemUgPT09IFVJU2l6ZS5USFVNQl8zIHx8IHNpemUgPT09IFVJU2l6ZS5USFVNQl80KVxuICAgICAgKSB7XG4gICAgICAgIHdpZHRoVmFsdWUgPSB0aGlzLnNjYWxlUGl4ZWxWYWx1ZSh3aWR0aFZhbHVlLCAxLjIpO1xuICAgICAgICBoZWlnaHRWYWx1ZSA9IHRoaXMuc2NhbGVQaXhlbFZhbHVlKGhlaWdodFZhbHVlLCAxLjIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgd2lkdGhWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgaGVpZ2h0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1NtYWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NjU7XG4gIH1cblxuICBwcml2YXRlIHNjYWxlUGl4ZWxWYWx1ZSh2YWx1ZTogc3RyaW5nLCBkaXZpc29yOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hdGNoID0gL14oXFxkKyg/OlxcLlxcZCspPylweCQvLmV4ZWModmFsdWUpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBudW0gPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBjb25zdCBzY2FsZWQgPSBudW0gKiBkaXZpc29yO1xuICAgIHJldHVybiBgJHtzY2FsZWR9cHhgO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU21hbGwgPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgICBpZiAodGhpcy5sYXN0VWlWaWV3ICYmIGlzU21hbGwgIT09IHRoaXMud2FzU21hbGxTY3JlZW4pIHtcbiAgICAgIHRoaXMuYXBwbHlTdHlsZXModGhpcy5sYXN0VWlWaWV3KTtcbiAgICAgIHRoaXMud2FzU21hbGxTY3JlZW4gPSBpc1NtYWxsO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQ2xpY2spIHJldHVybjtcblxuICAgIGlmICh0aGlzLmVkbVNkdWlWaWV3Py5hY3Rpb24pIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmV4ZWN1dGUodGhpcy5lZG1TZHVpVmlldy5hY3Rpb24pO1xuICAgIH1cbiAgfVxufVxuIl19
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2RpcmVjdGl2ZXMvdWl2aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFZdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsdUJBQXVCLEdBQ3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7OztBQU01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QUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7K0dBamFVLGVBQWU7bUdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFjSSxRQUFRO3lDQVpGLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkErWU4sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBVTdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSVZpZXcgfSBmcm9tICcuLi9jb3JlL3VpY29tcG9zaXRpb24vbW9kZWxzL3Vpdmlldyc7XG5pbXBvcnQgeyBVSVBhZGRpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpcGFkZGluZyc7XG5pbXBvcnQgeyBVSUJhY2tncm91bmQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYmFja2dyb3VuZCc7XG5pbXBvcnQgeyBVSUFjdGlvbiB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlhY3Rpb24nO1xuaW1wb3J0IHsgVUlBbGlnbm1lbnQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYWxpZ25tZW50JztcbmltcG9ydCB7IFVJU2hhZG93IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNoYWRvdyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlyYWRpdXMnO1xuaW1wb3J0IHsgVUlTcGFjaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNwYWNpbmcnO1xuaW1wb3J0IHsgVUlDb2xvciB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7IFVJSnVzdGlmeSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWp1c3RpZnknO1xuaW1wb3J0IHsgVUlEaW1lbnNpb24gfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlkaW1lbnNpb24nO1xuaW1wb3J0IHsgc3BhY2VNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvc3BhY2UtbWFwcGluZyc7XG5pbXBvcnQgeyBjb2xvck1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9jb2xvci1tYXBwaW5nJztcbmltcG9ydCB7IHBhZE1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9wYWQtbWFwcGluZyc7XG5pbXBvcnQgeyByYWRpdXNNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvcmFkaXVzLW1hcHBpbmcnO1xuaW1wb3J0IHsgYWxpZ25tZW50TWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2FsaWdubWVudC1tYXBwaW5nJztcbmltcG9ydCB7IGRpbWVuc2lvbk1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9kaW1lbnNpb24tbWFwcGluZyc7XG5pbXBvcnQge1xuICBzaGFkb3dPZmZzZXRNYXBwaW5nLFxuICBzaGFkb3dCbHVyUmFkaXVzTWFwcGluZyxcbn0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvc2hhZG93LW1hcHBpbmcnO1xuaW1wb3J0IHsganVzdGlmeU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9qdXN0aWZ5LW1hcHBpbmcnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVJU2NyZWVuVmlld01vZGVsIH0gZnJvbSAnLi4vY29yZS92aWV3LW1vZGVscy91aXNjcmVlbi52aWV3bW9kZWwnO1xuaW1wb3J0IHsgVUlBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXJ2aWNlcy91aS1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVSVNpemUgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlzaXplJztcbmltcG9ydCB7IHNpemVNYXBwaW5nSGVpZ2h0LCBzaXplTWFwcGluZ1dpZHRoIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvc2l6ZS1tYXBwaW5nJztcbmltcG9ydCB7IFVJU2NyZWVuQ29udGFpbmVyVHlwZSB9IGZyb20gJy4uL2NvcmUvdWljb21wb3NpdGlvbi9lbnVtcy91aXNjcmVlbi1jb250YWluZXItdHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlZG1TZHVpVmlld10nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVUlWaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZWRtU2R1aVZpZXc/OiBVSVZpZXc7XG4gIEBJbnB1dCgpIGRpc2FibGVDbGljazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgbGFzdFVpVmlldzogVUlWaWV3IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgd2FzU21hbGxTY3JlZW4gPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGFpbmVyOiBVSVNjcmVlbkNvbnRhaW5lclR5cGUgPSBVSVNjcmVlbkNvbnRhaW5lclR5cGUuQ09OVEFJTkVEO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IFVJQWN0aW9uU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHNjcmVlblZpZXdNb2RlbDogVUlTY3JlZW5WaWV3TW9kZWxcbiAgKSB7XG4gICAgaWYgKHRoaXMuc2NyZWVuVmlld01vZGVsKSB7XG4gICAgICB0aGlzLnNjcmVlblZpZXdNb2RlbC51aVNjcmVlbiQuc3Vic2NyaWJlKChzY3JlZW4pID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Q29udGFpbmVyID1cbiAgICAgICAgICBzY3JlZW4/LmNvbmZpZz8uY29udGFpbmVyID8/IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5DT05UQUlORUQ7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWRtU2R1aVZpZXcpIHtcbiAgICAgIHRoaXMubGFzdFVpVmlldyA9IHRoaXMuZWRtU2R1aVZpZXc7XG4gICAgICB0aGlzLmFwcGx5U3R5bGVzKHRoaXMuZWRtU2R1aVZpZXcpO1xuICAgICAgdGhpcy53YXNTbWFsbFNjcmVlbiA9IHRoaXMuaXNTbWFsbFNjcmVlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTdHlsZXModWlWaWV3OiBVSVZpZXcpIHtcbiAgICBpZiAodWlWaWV3LmlkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdpZCcsXG4gICAgICAgIFN0cmluZyh1aVZpZXcuaWQpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcucGFkZGluZykge1xuICAgICAgdGhpcy5hcHBseVBhZGRpbmcodWlWaWV3LnBhZGRpbmcpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYmFja2dyb3VuZCkge1xuICAgICAgdGhpcy5hcHBseUJhY2tncm91bmQodWlWaWV3LmJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYWN0aW9uKSB7XG4gICAgICB0aGlzLmFwcGx5QWN0aW9uKHVpVmlldy5hY3Rpb24pO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYWxpZ25tZW50KSB7XG4gICAgICB0aGlzLmFwcGx5QWxpZ25tZW50KHVpVmlldy5hbGlnbm1lbnQpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuc2hhZG93KSB7XG4gICAgICB0aGlzLmFwcGx5U2hhZG93KHVpVmlldy5zaGFkb3cpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcucmFkaXVzKSB7XG4gICAgICB0aGlzLmFwcGx5UmFkaXVzKHVpVmlldy5yYWRpdXMpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuc3BhY2luZykge1xuICAgICAgdGhpcy5hcHBseVNwYWNpbmcodWlWaWV3LnNwYWNpbmcpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuaGVpZ2h0KSB7XG4gICAgICB0aGlzLmFwcGx5SGVpZ2h0KHVpVmlldy5oZWlnaHQpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcud2lkdGgpIHtcbiAgICAgIHRoaXMuYXBwbHlXaWR0aCh1aVZpZXcud2lkdGgpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYm9yZGVyV2lkdGgpIHtcbiAgICAgIHRoaXMuYXBwbHlCb3JkZXJXaWR0aCh1aVZpZXcuYm9yZGVyV2lkdGgpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYm9yZGVyQ29sb3IpIHtcbiAgICAgIHRoaXMuYXBwbHlCb3JkZXJDb2xvcih1aVZpZXcuYm9yZGVyQ29sb3IpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuanVzdGlmeSkge1xuICAgICAgdGhpcy5hcHBseUp1c3RpZnkodWlWaWV3Lmp1c3RpZnkpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuc2l6ZSkge1xuICAgICAgdGhpcy5hcHBseVNpemUodWlWaWV3LnNpemUpO1xuICAgIH1cbiAgICBpZiAodWlWaWV3LmFzcGVjdFJhdGlvICE9PSBudWxsICYmIHVpVmlldy5hc3BlY3RSYXRpbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFwcGx5QXNwZWN0UmF0aW8odWlWaWV3LmFzcGVjdFJhdGlvKTtcbiAgICB9XG5cbiAgICBpZih1aVZpZXcuaG92ZXIpe1xuICAgICAgdGhpcy5hcHBseUhvdmVyVmFycyh1aVZpZXcpO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVBhZGRpbmcodWlQYWRkaW5nOiBVSVBhZGRpbmcpIHtcbiAgICBpZiAodWlQYWRkaW5nLnRvcCkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy50b3BdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLXRvcCcsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodWlQYWRkaW5nLmxlZnQpIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcubGVmdF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctbGVmdCcsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodWlQYWRkaW5nLnJpZ2h0KSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLnJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1yaWdodCcsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodWlQYWRkaW5nLmJvdHRvbSkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy5ib3R0b21dO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWJvdHRvbScsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCYWNrZ3JvdW5kKHVpQmFja2dyb3VuZDogVUlCYWNrZ3JvdW5kKSB7XG4gICAgaWYgKHVpQmFja2dyb3VuZC5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIGNvbnN0IGJhY2tncm91bmRDb2xvciA9IGNvbG9yTWFwcGluZ1t1aUJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgIGJhY2tncm91bmRDb2xvclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IxICYmIHVpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMikge1xuICAgICAgY29uc3QgZ3JhZGllbnRDb2xvcjEgPSBjb2xvck1hcHBpbmdbdWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IxXTtcbiAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IyID0gY29sb3JNYXBwaW5nW3VpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMl07XG4gICAgICBjb25zdCBncmFkaWVudFN0eWxlcyA9IGBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7Z3JhZGllbnRDb2xvcjF9LCAke2dyYWRpZW50Q29sb3IyfSlgXG4gICAgICBjb25zb2xlLmxvZyhncmFkaWVudENvbG9yMSwgZ3JhZGllbnRDb2xvcjIsIGdyYWRpZW50U3R5bGVzKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYmFja2dyb3VuZCcsXG4gICAgICAgIGdyYWRpZW50U3R5bGVzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBY3Rpb24odWlBY3Rpb246IFVJQWN0aW9uKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QWxpZ25tZW50KHVpQWxpZ25tZW50OiBVSUFsaWdubWVudCkge1xuICAgIGlmICh1aUFsaWdubWVudC5hbGlnbm1lbnQpIHtcbiAgICAgIC8vIGNvbnNvbGUuZGVidWcoJ2FsaWdubWVudDonLCB1aUFsaWdubWVudC5hbGlnbm1lbnQpO1xuICAgICAgY29uc3QgYWxpZ25tZW50ID0gYWxpZ25tZW50TWFwcGluZ1t1aUFsaWdubWVudC5hbGlnbm1lbnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdhbGlnbi1pdGVtcycsXG4gICAgICAgIGFsaWdubWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2hhZG93KHVpU2hhZG93OiBVSVNoYWRvdykge1xuICAgIGlmICh1aVNoYWRvdy5jb2xvciAmJiB1aVNoYWRvdy5vZmZzZXRYICYmIHVpU2hhZG93Lm9mZnNldFkgJiYgdWlTaGFkb3cuYmx1clJhZGl1cykge1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvck1hcHBpbmdbdWlTaGFkb3cuY29sb3JdO1xuICAgICAgY29uc3Qgb2Zmc2V0WCA9IHNoYWRvd09mZnNldE1hcHBpbmdbdWlTaGFkb3cub2Zmc2V0WF07XG4gICAgICBjb25zdCBvZmZzZXRZID0gc2hhZG93T2Zmc2V0TWFwcGluZ1t1aVNoYWRvdy5vZmZzZXRZXTtcbiAgICAgIGNvbnN0IGJsdXJSYWRpdXMgPSBzaGFkb3dCbHVyUmFkaXVzTWFwcGluZ1t1aVNoYWRvdy5ibHVyUmFkaXVzXTtcbiAgICAgIGNvbnN0IG9wYWNpdHkgPSB1aVNoYWRvdy5vcGFjaXR5ICE9PSB1bmRlZmluZWQgPyB1aVNoYWRvdy5vcGFjaXR5IDogMTtcblxuICAgICAgLy8gRm9ybWF0OiBib3gtc2hhZG93OiBvZmZzZXRYIG9mZnNldFkgYmx1clJhZGl1cyBjb2xvclxuICAgICAgY29uc3Qgc2hhZG93VmFsdWUgPSBgJHtvZmZzZXRYfSAke29mZnNldFl9ICR7Ymx1clJhZGl1c30gJHtjb2xvcn1gO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JveC1zaGFkb3cnLFxuICAgICAgICBzaGFkb3dWYWx1ZVxuICAgICAgKTtcblxuICAgICAgaWYgKG9wYWNpdHkgIT09IDEpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAnb3BhY2l0eScsXG4gICAgICAgICAgb3BhY2l0eS50b1N0cmluZygpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVJhZGl1cyh1aVJhZGl1czogVUlSYWRpdXMpIHtcbiAgICBpZiAodWlSYWRpdXMudG9wTGVmdCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy50b3BMZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMudG9wUmlnaHQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMudG9wUmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMuYm90dG9tTGVmdCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy5ib3R0b21MZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMuYm90dG9tUmlnaHQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMuYm90dG9tUmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTcGFjaW5nKHVpU3BhY2luZzogVUlTcGFjaW5nKSB7XG4gICAgaWYgKHVpU3BhY2luZy5zcGFjaW5nKSB7XG4gICAgICBjb25zdCBzcGFjaW5nVmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlTcGFjaW5nLnNwYWNpbmddO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdnYXAnLFxuICAgICAgICBzcGFjaW5nVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUhlaWdodChoZWlnaHQ6IFVJRGltZW5zaW9uKSB7XG4gICAgaWYgKGhlaWdodCkge1xuICAgICAgY29uc3QgaGVpZ2h0VmFsdWUgPSBkaW1lbnNpb25NYXBwaW5nW2hlaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgIGhlaWdodFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlXaWR0aCh3aWR0aDogVUlEaW1lbnNpb24pIHtcbiAgICBpZiAod2lkdGgpIHtcbiAgICAgIGNvbnN0IHdpZHRoVmFsdWUgPSBkaW1lbnNpb25NYXBwaW5nW3dpZHRoXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnd2lkdGgnLFxuICAgICAgICB3aWR0aFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCb3JkZXJXaWR0aChib3JkZXJXaWR0aDogbnVtYmVyKSB7XG4gICAgaWYgKGJvcmRlcldpZHRoICE9PSBudWxsICYmIGJvcmRlcldpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXdpZHRoJyxcbiAgICAgICAgYCR7Ym9yZGVyV2lkdGh9cHhgXG4gICAgICApO1xuXG4gICAgICAvLyBFbnN1cmUgYm9yZGVyIHN0eWxlIGlzIHNldCwgb3RoZXJ3aXNlIGJvcmRlci13aWR0aCB3b24ndCBiZSB2aXNpYmxlXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1zdHlsZScsXG4gICAgICAgICdzb2xpZCdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUJvcmRlckNvbG9yKGJvcmRlckNvbG9yOiBVSUNvbG9yKSB7XG4gICAgaWYgKGJvcmRlckNvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGNvbG9yTWFwcGluZ1tib3JkZXJDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1jb2xvcicsXG4gICAgICAgIGNvbG9yXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlKdXN0aWZ5KGp1c3RpZnk6IFVJSnVzdGlmeSkge1xuICAgIGlmIChqdXN0aWZ5KSB7XG4gICAgICBjb25zdCBqdXN0aWZ5VmFsdWUgPSBqdXN0aWZ5TWFwcGluZ1tqdXN0aWZ5XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnanVzdGlmeS1jb250ZW50JyxcbiAgICAgICAganVzdGlmeVZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBc3BlY3RSYXRpbyhhc3BlY3RSYXRpbzogbnVtYmVyKSB7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2l6ZShzaXplOiBVSVNpemUpIHtcbiAgICBpZihzaXplKXtcbiAgICAgIGxldCB3aWR0aFZhbHVlID0gc2l6ZU1hcHBpbmdXaWR0aFtzaXplXTtcbiAgICAgIGxldCBoZWlnaHRWYWx1ZSA9IHNpemVNYXBwaW5nSGVpZ2h0W3NpemVdO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaXNTbWFsbFNjcmVlbigpICYmXG4gICAgICAgIHRoaXMuY3VycmVudENvbnRhaW5lciA9PT0gVUlTY3JlZW5Db250YWluZXJUeXBlLkZMVUlEICYmXG4gICAgICAgIChzaXplID09PSBVSVNpemUuQ0FSRF8xIHx8IHNpemUgPT09IFVJU2l6ZS5DQVJEXzIgfHwgc2l6ZSA9PT0gVUlTaXplLlRIVU1CXzMgfHwgc2l6ZSA9PT0gVUlTaXplLlRIVU1CXzQpXG4gICAgICApIHtcbiAgICAgICAgd2lkdGhWYWx1ZSA9IHRoaXMuc2NhbGVQaXhlbFZhbHVlKHdpZHRoVmFsdWUsIDEuMik7XG4gICAgICAgIGhlaWdodFZhbHVlID0gdGhpcy5zY2FsZVBpeGVsVmFsdWUoaGVpZ2h0VmFsdWUsIDEuMik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnd2lkdGgnLFxuICAgICAgICB3aWR0aFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdoZWlnaHQnLFxuICAgICAgICBoZWlnaHRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SG92ZXJWYXJzKHVpVmlldzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaG92ZXIgPSB1aVZpZXc/LmhvdmVyID8/IHVpVmlldz8uZWxlbWVudD8uaG92ZXI7XG4gICAgY29uc29sZS5sb2coJ2hvdmVyOicsIGhvdmVyKTtcbiAgICBpZiAoIWhvdmVyKSByZXR1cm47XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLy8gbWFyY2EgcXVlIGVzc2UgZWxlbWVudG8gdGVtIGhvdmVyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgJ2VkbS1ob3ZlcicpO1xuXG4gICAgaWYgKGhvdmVyLmJvcmRlcl9jb2xvciB8fCBob3Zlci5ib3JkZXJDb2xvcikge1xuICAgICAgY29uc29sZS5sb2coaG92ZXIuYm9yZGVyX2NvbG9yLCBob3Zlci5ib3JkZXJDb2xvcik7XG4gICAgICBjb25zdCB0b2tlbiA9IGhvdmVyLmJvcmRlcl9jb2xvciA/PyBob3Zlci5ib3JkZXJDb2xvcjtcblxuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBgXG4gICAgICAgIDpyb290IHtcbiAgICAgICAgICAtLWVkbS1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLSR7dG9rZW4ucmVwbGFjZSgvXy9nLCAnLScpfSk7XG4gICAgICAgIH1cbiAgICAgIGA7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcblxuICAgIH1cblxuICAgIGlmIChob3Zlci5iYWNrZ3JvdW5kX2NvbG9yIHx8IGhvdmVyLmJhY2tncm91bmRDb2xvcikge1xuICAgICAgY29uc3QgdG9rZW4gPSBob3Zlci5iYWNrZ3JvdW5kX2NvbG9yID8/IGhvdmVyLmJhY2tncm91bmRDb2xvcjtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIGVsLFxuICAgICAgICAnLS1lZG0taG92ZXItYmctY29sb3InLFxuICAgICAgICBgdmFyKC0tJHt0b2tlbi5yZXBsYWNlKC9fL2csICctJyl9KWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGhvdmVyLnNjYWxlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnLS1lZG0taG92ZXItc2NhbGUnLCBob3Zlci5zY2FsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1NtYWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NjU7XG4gIH1cblxuICBwcml2YXRlIHNjYWxlUGl4ZWxWYWx1ZSh2YWx1ZTogc3RyaW5nLCBkaXZpc29yOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hdGNoID0gL14oXFxkKyg/OlxcLlxcZCspPylweCQvLmV4ZWModmFsdWUpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBudW0gPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBjb25zdCBzY2FsZWQgPSBudW0gKiBkaXZpc29yO1xuICAgIHJldHVybiBgJHtzY2FsZWR9cHhgO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU21hbGwgPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgICBpZiAodGhpcy5sYXN0VWlWaWV3ICYmIGlzU21hbGwgIT09IHRoaXMud2FzU21hbGxTY3JlZW4pIHtcbiAgICAgIHRoaXMuYXBwbHlTdHlsZXModGhpcy5sYXN0VWlWaWV3KTtcbiAgICAgIHRoaXMud2FzU21hbGxTY3JlZW4gPSBpc1NtYWxsO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQ2xpY2spIHJldHVybjtcblxuICAgIGlmICh0aGlzLmVkbVNkdWlWaWV3Py5hY3Rpb24pIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmV4ZWN1dGUodGhpcy5lZG1TZHVpVmlldy5hY3Rpb24pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -193,6 +193,7 @@ class UIScreenService {
193
193
  aspectRatio: json.aspect_ratio ?? null,
194
194
  progress: json.progress ?? null,
195
195
  progressColor: json.progress_color ? json.progress_color : null,
196
+ hover: json.hover ?? null,
196
197
  ...this.mapToUIView(json),
197
198
  };
198
199
  }
@@ -216,6 +217,7 @@ class UIScreenService {
216
217
  borderColor: json.border_color ? json.border_color : null,
217
218
  justify: json.justify ? json.justify : null,
218
219
  aspectRatio: json.aspect_ratio ?? null,
220
+ hover: json.hover ?? null,
219
221
  };
220
222
  }
221
223
  mapToUIScreenConfig(config) {
@@ -2008,6 +2010,9 @@ class UIViewDirective {
2008
2010
  if (uiView.aspectRatio !== null && uiView.aspectRatio !== undefined) {
2009
2011
  this.applyAspectRatio(uiView.aspectRatio);
2010
2012
  }
2013
+ if (uiView.hover) {
2014
+ this.applyHoverVars(uiView);
2015
+ }
2011
2016
  }
2012
2017
  applyPadding(uiPadding) {
2013
2018
  if (uiPadding.top) {
@@ -2139,6 +2144,33 @@ class UIViewDirective {
2139
2144
  this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
2140
2145
  }
2141
2146
  }
2147
+ applyHoverVars(uiView) {
2148
+ const hover = uiView?.hover ?? uiView?.element?.hover;
2149
+ console.log('hover:', hover);
2150
+ if (!hover)
2151
+ return;
2152
+ const el = this.elementRef.nativeElement;
2153
+ // marca que esse elemento tem hover
2154
+ this.renderer.addClass(el, 'edm-hover');
2155
+ if (hover.border_color || hover.borderColor) {
2156
+ console.log(hover.border_color, hover.borderColor);
2157
+ const token = hover.border_color ?? hover.borderColor;
2158
+ const style = document.createElement('style');
2159
+ style.textContent = `
2160
+ :root {
2161
+ --edm-hover-border-color: var(--${token.replace(/_/g, '-')});
2162
+ }
2163
+ `;
2164
+ document.head.appendChild(style);
2165
+ }
2166
+ if (hover.background_color || hover.backgroundColor) {
2167
+ const token = hover.background_color ?? hover.backgroundColor;
2168
+ this.renderer.setStyle(el, '--edm-hover-bg-color', `var(--${token.replace(/_/g, '-')})`);
2169
+ }
2170
+ if (hover.scale) {
2171
+ this.renderer.setStyle(el, '--edm-hover-scale', hover.scale);
2172
+ }
2173
+ }
2142
2174
  isSmallScreen() {
2143
2175
  return typeof window !== 'undefined' && window.innerWidth >= 565;
2144
2176
  }
@@ -2331,12 +2363,16 @@ class ColumnComponent {
2331
2363
  ngOnInit() {
2332
2364
  // console.debug('column.uiComponent: ', this.uiComponent);
2333
2365
  }
2366
+ shouldFill() {
2367
+ const comps = this.uiComponent?.components ?? [];
2368
+ return comps.some(c => c.type === 'SPACE' && (c.element?.grow ?? 0) > 0);
2369
+ }
2334
2370
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ColumnComponent, deps: [{ token: 'uiComponent' }], target: i0.ɵɵFactoryTarget.Component }); }
2335
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ColumnComponent, isStandalone: false, selector: "edm-sdui-column", ngImport: i0, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
2371
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ColumnComponent, isStandalone: false, selector: "edm-sdui-column", ngImport: i0, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\" [class.fill]=\"shouldFill()\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}.column.fill{flex:1 1 auto;min-height:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
2336
2372
  }
2337
2373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ColumnComponent, decorators: [{
2338
2374
  type: Component,
2339
- args: [{ selector: 'edm-sdui-column', standalone: false, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"] }]
2375
+ args: [{ selector: 'edm-sdui-column', standalone: false, template: "<div class=\"column\" *ngIf=\"uiComponent\" [edmSduiView]=\"uiComponent.element\" [class.fill]=\"shouldFill()\">\n <edm-sdui-component\n *ngFor=\"let child of uiComponent.components\"\n [uiComponent]=\"child\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.column{display:flex;flex-direction:column;overflow:clip;flex:0 0 auto}.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0}.column.fill{flex:1 1 auto;min-height:0}@media (max-width: 565px){.row-fixed :host .column,:host-context(.row-fixed) .column{flex:1 1 0%;min-width:0;width:100%;max-width:100%}}\n"] }]
2340
2376
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2341
2377
  type: Inject,
2342
2378
  args: ['uiComponent']