@fundamental-ngx/platform 0.47.4-rc.2 → 0.47.4-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -147,7 +147,7 @@ export class SmartFilterBarSettingsDialogComponent {
147
147
  }
148
148
  }
149
149
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SmartFilterBarSettingsDialogComponent, deps: [{ token: i1.DialogRef }, { token: FD_LANGUAGE }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: SmartFilterBarSettingsDialogComponent, isStandalone: true, selector: "fdp-smart-filter-bar-settings-dialog", providers: [{ provide: RESETTABLE_TOKEN, useExisting: SmartFilterBarSettingsDialogComponent }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>\n {{ 'platformSmartFilterBar.selectFiltersHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table\n *ngIf=\"loaded; else loadingTpl\"\n #table\n (rowSelectionChange)=\"_onRowSelectionChange($event)\"\n [dataSource]=\"source\"\n selectionMode=\"multiple\"\n >\n <fdp-table-toolbar\n [hideItemCount]=\"false\"\n [title]=\"'platformSmartFilterBar.selectFiltersAvailableFiltersText' | fdTranslate\"\n >\n <fdp-table-toolbar-actions>\n <fdp-select\n (selectionChange)=\"_onFilterVisibilityChange($event)\"\n [list]=\"_filterVisibilityOptions\"\n [value]=\"_filterVisibilityOptions[0].value\"\n >\n </fdp-select>\n </fdp-table-toolbar-actions>\n </fdp-table-toolbar>\n <fdp-column\n align=\"start\"\n key=\"label\"\n [label]=\"'platformSmartFilterBar.selectFiltersFilterColumnLabel' | fdTranslate\"\n name=\"label\"\n ></fdp-column>\n <fdp-column\n align=\"center\"\n key=\"active\"\n [label]=\"'platformSmartFilterBar.selectFiltersActiveColumnLabel' | fdTranslate\"\n name=\"active\"\n width=\"150px\"\n >\n <fdp-table-cell *fdpCellDef=\"let item\">\n <fd-icon *ngIf=\"item.active\" glyph=\"accept\"></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n (click)=\"_confirm()\"\n fdType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.selectFiltersSubmitButtonLabel' | fdTranslate\"\n ></fd-button-bar>\n\n <fd-button-bar\n (click)=\"_cancel()\"\n fdType=\"transparent\"\n [label]=\"'platformSmartFilterBar.selectFiltersCancelButton' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div [style.text-align]=\"'center'\" [style.margin.rem]=\"1\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ResetButtonComponent, selector: "fdp-table-reset-button" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "ariaLabelledBy", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed"] }, { kind: "directive", type: TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "component", type: TableToolbarComponent, selector: "fdp-table-toolbar", inputs: ["shouldOverflow", "title", "hideItemCount", "hideSearchInput", "showExpandCollapseButtons", "searchSuggestions", "editMode"] }, { kind: "component", type: TableToolbarActionsComponent, selector: "fdp-table-toolbar-actions" }, { kind: "component", type: SelectComponent, selector: "fdp-select", inputs: ["value", "inline"] }, { kind: "component", type: TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "directive", type: FdpTableCell, selector: "fdp-table-cell" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: SmartFilterBarSettingsDialogComponent, isStandalone: true, selector: "fdp-smart-filter-bar-settings-dialog", providers: [{ provide: RESETTABLE_TOKEN, useExisting: SmartFilterBarSettingsDialogComponent }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>\n {{ 'platformSmartFilterBar.selectFiltersHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table\n *ngIf=\"loaded; else loadingTpl\"\n #table\n (rowSelectionChange)=\"_onRowSelectionChange($event)\"\n [dataSource]=\"source\"\n selectionMode=\"multiple\"\n >\n <fdp-table-toolbar\n [hideItemCount]=\"false\"\n [title]=\"'platformSmartFilterBar.selectFiltersAvailableFiltersText' | fdTranslate\"\n >\n <fdp-table-toolbar-actions>\n <fdp-select\n (selectionChange)=\"_onFilterVisibilityChange($event)\"\n [list]=\"_filterVisibilityOptions\"\n [value]=\"_filterVisibilityOptions[0].value\"\n >\n </fdp-select>\n </fdp-table-toolbar-actions>\n </fdp-table-toolbar>\n <fdp-column\n align=\"start\"\n key=\"label\"\n [label]=\"'platformSmartFilterBar.selectFiltersFilterColumnLabel' | fdTranslate\"\n name=\"label\"\n ></fdp-column>\n <fdp-column\n align=\"center\"\n key=\"active\"\n [label]=\"'platformSmartFilterBar.selectFiltersActiveColumnLabel' | fdTranslate\"\n name=\"active\"\n width=\"150px\"\n >\n <fdp-table-cell *fdpCellDef=\"let item\">\n <fd-icon *ngIf=\"item.active\" glyph=\"accept\"></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n (click)=\"_confirm()\"\n fdType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.selectFiltersSubmitButtonLabel' | fdTranslate\"\n ></fd-button-bar>\n\n <fd-button-bar\n (click)=\"_cancel()\"\n fdType=\"transparent\"\n [label]=\"'platformSmartFilterBar.selectFiltersCancelButton' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div [style.text-align]=\"'center'\" [style.margin.rem]=\"1\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ResetButtonComponent, selector: "fdp-table-reset-button" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "ariaLabelledBy", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed", "cellFocused"] }, { kind: "directive", type: TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "component", type: TableToolbarComponent, selector: "fdp-table-toolbar", inputs: ["shouldOverflow", "title", "hideItemCount", "hideSearchInput", "showExpandCollapseButtons", "searchSuggestions", "editMode"] }, { kind: "component", type: TableToolbarActionsComponent, selector: "fdp-table-toolbar-actions" }, { kind: "component", type: SelectComponent, selector: "fdp-select", inputs: ["value", "inline"] }, { kind: "component", type: TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "directive", type: FdpTableCell, selector: "fdp-table-cell" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
151
151
  }
152
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SmartFilterBarSettingsDialogComponent, decorators: [{
153
153
  type: Component,
@@ -187,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
187
187
  type: ViewChild,
188
188
  args: ['table']
189
189
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci1zZXR0aW5ncy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3NtYXJ0LWZpbHRlci1iYXIvY29tcG9uZW50cy9zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZy9zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLFNBQVMsRUFDWixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUYsT0FBTyxFQUNILGdCQUFnQixFQUNoQixvQkFBb0IsRUFFcEIsS0FBSyxFQUNMLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsZUFBZSxFQUVmLDRCQUE0QixFQUM1QixxQkFBcUIs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QUFrQix5SUFDbEIsc0JBQXNCLDBJQUN0QixlQUFlOzsyRkFHVixxQ0FBcUM7a0JBckNqRCxTQUFTOytCQUNJLHNDQUFzQyxpQkFFakMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsdUNBQXVDLEVBQUUsQ0FBQyxjQUNsRixJQUFJLFdBQ1A7d0JBQ0wsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLElBQUk7d0JBQ0osd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLGNBQWM7d0JBQ2QsMEJBQTBCO3dCQUMxQixxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGVBQWU7cUJBQ2xCOzswQkF1REksTUFBTTsyQkFBQyxXQUFXOzRFQWpESCxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGFzeW5jU2NoZWR1bGVyLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIERpYWxvZ0hlYWRlckNvbXBvbmVudCxcbiAgICBEaWFsb2dSZWZcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBGZHBTZWxlY3Rpb25DaGFuZ2VFdmVudCwgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQge1xuICAgIFJFU0VUVEFCTEVfVE9LRU4sXG4gICAgUmVzZXRCdXR0b25Db21wb25lbnQsXG4gICAgUmVzZXR0YWJsZSxcbiAgICBUYWJsZSxcbiAgICBUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZURhdGFTb3VyY2UsXG4gICAgVGFibGVSb3dTZWxlY3Rpb25DaGFuZ2VFdmVudCxcbiAgICBUYWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50LFxuICAgIFRhYmxlVG9vbGJhckNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlJztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQge1xuICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICBCdXR0b25CYXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBCdXN5SW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1c3ktaW5kaWNhdG9yJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7XG4gICAgRkRfTEFOR1VBR0UsXG4gICAgRmRMYW5ndWFnZSxcbiAgICBGZExhbmd1YWdlS2V5SWRlbnRpZmllcixcbiAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgVHJhbnNsYXRpb25SZXNvbHZlclxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHtcbiAgICBGZHBDZWxsRGVmLFxuICAgIEZkcFRhYmxlQ2VsbCxcbiAgICBUYWJsZURhdGFTb3VyY2VEaXJlY3RpdmUsXG4gICAgVGFibGVIZWFkZXJSZXNpemVyRGlyZWN0aXZlLFxuICAgIFRhYmxlSW5pdGlhbFN0YXRlRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1maWVsZC1kZWZpbml0aW9uJztcbmltcG9ydCB7IEZpZWxkRmlsdGVySXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1maWVsZC1maWx0ZXItaXRlbSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlclNldHRpbmdzRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZy1jb25maWcnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItdmlzaWJpbGl0eS1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhck9wdGlvbnNEYXRhUHJvdmlkZXIgfSBmcm9tICcuL2RhdGEtcHJvdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUkVTRVRUQUJMRV9UT0tFTiwgdXNlRXhpc3Rpbmc6IFNtYXJ0RmlsdGVyQmFyU2V0dGluZ3NEaWFsb2dDb21wb25lbnQgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICAgICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgVGl0bGVDb21wb25lbnQsXG4gICAgICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgICAgICBSZXNldEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBUYWJsZURhdGFTb3VyY2VEaXJlY3RpdmUsXG4gICAgICAgIFRhYmxlSGVhZGVyUmVzaXplckRpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVDb21wb25lbnQsXG4gICAgICAgIFRhYmxlSW5pdGlhbFN0YXRlRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZVRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIFRhYmxlVG9vbGJhckFjdGlvbnNDb21wb25lbnQsXG4gICAgICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgICAgIEZkcENlbGxEZWYsXG4gICAgICAgIEZkcFRhYmxlQ2VsbCxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25CYXJDb21wb25lbnQsXG4gICAgICAgIEJ1c3lJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRGaWx0ZXJCYXJTZXR0aW5nc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIFJlc2V0dGFibGUsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVGFibGUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlITogVGFibGU7XG5cbiAgICAvKipcbiAgICAgKiBUYWJsZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBzb3VyY2UhOiBUYWJsZURhdGFTb3VyY2U8RmllbGRGaWx0ZXJJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2F2YWlsYWJsZUZpZWxkcyE6IEZpZWxkRmlsdGVySXRlbVtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZmlsdGVyVmlzaWJpbGl0eU9wdGlvbnM6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsb2FkZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJbmRpY2F0ZXMgd2hlbiByZXNldCBjb21tYW5kIGlzIGF2YWlsYWJsZSAqL1xuICAgIHJlYWRvbmx5IGlzUmVzZXRBdmFpbGFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jYXRlZ29yeUxhYmVsS2V5czogU21hcnRGaWx0ZXJCYXJWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMgPSB7XG4gICAgICAgIGFsbDogJ3NldHRpbmdzQ2F0ZWdvcnlBbGwnLFxuICAgICAgICB2aXNpYmxlOiAnc2V0dGluZ3NDYXRlZ29yeVZpc2libGUnLFxuICAgICAgICBhY3RpdmU6ICdzZXR0aW5nc0NhdGVnb3J5QWN0aXZlJyxcbiAgICAgICAgdmlzaWJsZUFuZEFjdGl2ZTogJ3NldHRpbmdzQ2F0ZWdvcnlWaXNpYmxlQW5kQWN0aXZlJyxcbiAgICAgICAgbWFuZGF0b3J5OiAnc2V0dGluZ3NDYXRlZ29yeU1hbmRhdG9yeSdcbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zb3VyY2VTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkRmlsdGVyczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zbGF0aW9uUmVzb2x2ZXIgPSBuZXcgVHJhbnNsYXRpb25SZXNvbHZlcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBEaWFsb2dSZWY8U21hcnRGaWx0ZXJTZXR0aW5nc0RpYWxvZ0NvbmZpZywgc3RyaW5nW10+LFxuICAgICAgICBASW5qZWN0KEZEX0xBTkdVQUdFKSBwcml2YXRlIHJlYWRvbmx5IF9sYW5ndWFnZSQ6IE9ic2VydmFibGU8RmRMYW5ndWFnZT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5pc1Jlc2V0QXZhaWxhYmxlJCA9IHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsVGFibGVTdGF0ZSgpO1xuICAgICAgICB0aGlzLl9pbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHRoZSBjaGVja2JveCBpbiB0aGUgdGFibGUgcm93IGlmIHRoZSBmaWVsZCBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBzZXRTZWxlY3RlZEZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NvdXJjZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc291cmNlU3Vic2NyaXB0aW9uID0gdGhpcy5zb3VyY2VcbiAgICAgICAgICAgIC5vcGVuKClcbiAgICAgICAgICAgIC5waXBlKG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoZmllbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC52aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnRvZ2dsZVNlbGVjdGFibGVSb3coaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0cyBmaWx0ZXJzIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsVGFibGVTdGF0ZSgpO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkRmlsdGVycygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgdGFibGUuXG4gICAgICovXG4gICAgc2V0SW5pdGlhbFRhYmxlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2F2YWlsYWJsZUZpZWxkcyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmZpZWxkc1xuICAgICAgICAgICAgLmZpbHRlcigoYzogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24pID0+IGMuZmlsdGVyYWJsZSlcbiAgICAgICAgICAgIC5tYXAoKGM6IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uKSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBjLmxhYmVsLFxuICAgICAgICAgICAgICAgIGFjdGl2ZTogISF0aGlzLl9kaWFsb2dSZWYuZGF0YS5maWx0ZXJCeS5maW5kKChmKSA9PiBmLmZpZWxkID09PSBjLm5hbWUpLFxuICAgICAgICAgICAgICAgIG1hbmRhdG9yeTogYy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiB0aGlzLl9kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEZpbHRlcnMuaW5jbHVkZXMoYy5uYW1lKSxcbiAgICAgICAgICAgICAgICBrZXk6IGMua2V5LFxuICAgICAgICAgICAgICAgIG5hbWU6IGMubmFtZVxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuc291cmNlID0gbmV3IFRhYmxlRGF0YVNvdXJjZShuZXcgU21hcnRGaWx0ZXJCYXJPcHRpb25zRGF0YVByb3ZpZGVyKHRoaXMuX2F2YWlsYWJsZUZpZWxkcykpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb25maXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodGhpcy5fc2VsZWN0ZWRGaWx0ZXJzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vblJvd1NlbGVjdGlvbkNoYW5nZShldmVudDogVGFibGVSb3dTZWxlY3Rpb25DaGFuZ2VFdmVudDxGaWVsZEZpbHRlckl0ZW0+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRmlsdGVycyA9IGV2ZW50LnNlbGVjdGlvbi5tYXAoKGMpID0+IGMubmFtZSk7XG4gICAgICAgIHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uRmlsdGVyVmlzaWJpbGl0eUNoYW5nZShldmVudDogRmRwU2VsZWN0aW9uQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKHRoaXMuc291cmNlLmRhdGFQcm92aWRlciBhcyBTbWFydEZpbHRlckJhck9wdGlvbnNEYXRhUHJvdmlkZXIpLmZpbHRlcihldmVudC5wYXlsb2FkKTtcbiAgICAgICAgdGhpcy5zb3VyY2UuZmV0Y2godGhpcy50YWJsZS5nZXRUYWJsZVN0YXRlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fdHJhbnNmb3JtVmlzaWJpbGl0eUxhYmVscygpO1xuICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm1zIHZpc2liaWxpdHkgb3B0aW9ucyBpbnRvIGFwcHJvcHJpYXRlIHNlbGVjdCBpdGVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF90cmFuc2Zvcm1WaXNpYmlsaXR5TGFiZWxzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBsYW5nID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fbGFuZ3VhZ2UkKTtcbiAgICAgICAgY29uc3QgbGFiZWxzID0geyAuLi50aGlzLl9jYXRlZ29yeUxhYmVsS2V5cyB9O1xuICAgICAgICBmb3IgKGNvbnN0IHN0cmF0ZWd5SXRlbSBpbiBsYWJlbHMpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobGFiZWxzLCBzdHJhdGVneUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSAoJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuJyArXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsc1tzdHJhdGVneUl0ZW0gYXMga2V5b2YgU21hcnRGaWx0ZXJCYXJWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHNdKSBhcyBGZExhbmd1YWdlS2V5SWRlbnRpZmllcjtcbiAgICAgICAgICAgICAgICBsYWJlbHNbc3RyYXRlZ3lJdGVtXSA9IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShsYW5nLCB0cmFuc2xhdGlvbktleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbc2VsZWN0VmFsdWUsIHNlbGVjdExhYmVsXSBvZiBPYmplY3QuZW50cmllcyhsYWJlbHMpKSB7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJWaXNpYmlsaXR5T3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogc2VsZWN0TGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1kaWFsb2cgY2xhc3M9XCJmZHAtdGFibGUtcDEzLWZpbHRlcmluZy1kaWFsb2dcIj5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGg0IFtoZWFkZXJTaXplXT1cIjRcIiBmZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLnNlbGVjdEZpbHRlcnNIZWFkZXInIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtcmVzZXQtYnV0dG9uPjwvZmRwLXRhYmxlLXJlc2V0LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuXG4gICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmRwLXRhYmxlXG4gICAgICAgICAgICAqbmdJZj1cImxvYWRlZDsgZWxzZSBsb2FkaW5nVHBsXCJcbiAgICAgICAgICAgICN0YWJsZVxuICAgICAgICAgICAgKHJvd1NlbGVjdGlvbkNoYW5nZSk9XCJfb25Sb3dTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJzb3VyY2VcIlxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZT1cIm11bHRpcGxlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkcC10YWJsZS10b29sYmFyXG4gICAgICAgICAgICAgICAgW2hpZGVJdGVtQ291bnRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzQXZhaWxhYmxlRmlsdGVyc1RleHQnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtdG9vbGJhci1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJfb25GaWx0ZXJWaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpc3RdPVwiX2ZpbHRlclZpc2liaWxpdHlPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJfZmlsdGVyVmlzaWJpbGl0eU9wdGlvbnNbMF0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZmRwLXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS10b29sYmFyLWFjdGlvbnM+XG4gICAgICAgICAgICA8L2ZkcC10YWJsZS10b29sYmFyPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW5cbiAgICAgICAgICAgICAgICBhbGlnbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICBrZXk9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLnNlbGVjdEZpbHRlcnNGaWx0ZXJDb2x1bW5MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImxhYmVsXCJcbiAgICAgICAgICAgID48L2ZkcC1jb2x1bW4+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtblxuICAgICAgICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBrZXk9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzQWN0aXZlQ29sdW1uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbCAqZmRwQ2VsbERlZj1cImxldCBpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaXRlbS5hY3RpdmVcIiBnbHlwaD1cImFjY2VwdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICA8L2ZkcC10YWJsZT5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAoY2xpY2spPVwiX2NvbmZpcm0oKVwiXG4gICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzU3VibWl0QnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuXG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAoY2xpY2spPVwiX2NhbmNlbCgpXCJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzQ2FuY2VsQnV0dG9uJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgIDxkaXYgW3N0eWxlLnRleHQtYWxpZ25dPVwiJ2NlbnRlcidcIiBbc3R5bGUubWFyZ2luLnJlbV09XCIxXCI+XG4gICAgICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJ0cnVlXCI+PC9mZC1idXN5LWluZGljYXRvcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci1zZXR0aW5ncy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3NtYXJ0LWZpbHRlci1iYXIvY29tcG9uZW50cy9zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZy9zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLFNBQVMsRUFDWixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUYsT0FBTyxFQUNILGdCQUFnQixFQUNoQixvQkFBb0IsRUFFcEIsS0FBSyxFQUNMLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsZUFBZSxFQUVmLDRCQUE0QixFQUM1QixxQkFBcUIs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QUFrQix5SUFDbEIsc0JBQXNCLDBJQUN0QixlQUFlOzsyRkFHVixxQ0FBcUM7a0JBckNqRCxTQUFTOytCQUNJLHNDQUFzQyxpQkFFakMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsdUNBQXVDLEVBQUUsQ0FBQyxjQUNsRixJQUFJLFdBQ1A7d0JBQ0wsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLElBQUk7d0JBQ0osd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLGNBQWM7d0JBQ2QsMEJBQTBCO3dCQUMxQixxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGVBQWU7cUJBQ2xCOzswQkF1REksTUFBTTsyQkFBQyxXQUFXOzRFQWpESCxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGFzeW5jU2NoZWR1bGVyLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIERpYWxvZ0hlYWRlckNvbXBvbmVudCxcbiAgICBEaWFsb2dSZWZcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBGZHBTZWxlY3Rpb25DaGFuZ2VFdmVudCwgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQge1xuICAgIFJFU0VUVEFCTEVfVE9LRU4sXG4gICAgUmVzZXRCdXR0b25Db21wb25lbnQsXG4gICAgUmVzZXR0YWJsZSxcbiAgICBUYWJsZSxcbiAgICBUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZURhdGFTb3VyY2UsXG4gICAgVGFibGVSb3dTZWxlY3Rpb25DaGFuZ2VFdmVudCxcbiAgICBUYWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50LFxuICAgIFRhYmxlVG9vbGJhckNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlJztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQge1xuICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICBCdXR0b25CYXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBCdXN5SW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1c3ktaW5kaWNhdG9yJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7XG4gICAgRkRfTEFOR1VBR0UsXG4gICAgRmRMYW5ndWFnZSxcbiAgICBGZExhbmd1YWdlS2V5SWRlbnRpZmllcixcbiAgICBGZFRyYW5zbGF0ZVBpcGUsXG4gICAgVHJhbnNsYXRpb25SZXNvbHZlclxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHtcbiAgICBGZHBDZWxsRGVmLFxuICAgIEZkcFRhYmxlQ2VsbCxcbiAgICBUYWJsZURhdGFTb3VyY2VEaXJlY3RpdmUsXG4gICAgVGFibGVIZWFkZXJSZXNpemVyRGlyZWN0aXZlLFxuICAgIFRhYmxlSW5pdGlhbFN0YXRlRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1maWVsZC1kZWZpbml0aW9uJztcbmltcG9ydCB7IEZpZWxkRmlsdGVySXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1maWVsZC1maWx0ZXItaXRlbSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlclNldHRpbmdzRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZy1jb25maWcnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItdmlzaWJpbGl0eS1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhck9wdGlvbnNEYXRhUHJvdmlkZXIgfSBmcm9tICcuL2RhdGEtcHJvdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1zbWFydC1maWx0ZXItYmFyLXNldHRpbmdzLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUkVTRVRUQUJMRV9UT0tFTiwgdXNlRXhpc3Rpbmc6IFNtYXJ0RmlsdGVyQmFyU2V0dGluZ3NEaWFsb2dDb21wb25lbnQgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICAgICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgVGl0bGVDb21wb25lbnQsXG4gICAgICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgICAgICBSZXNldEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBUYWJsZURhdGFTb3VyY2VEaXJlY3RpdmUsXG4gICAgICAgIFRhYmxlSGVhZGVyUmVzaXplckRpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVDb21wb25lbnQsXG4gICAgICAgIFRhYmxlSW5pdGlhbFN0YXRlRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZVRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIFRhYmxlVG9vbGJhckFjdGlvbnNDb21wb25lbnQsXG4gICAgICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgICAgIEZkcENlbGxEZWYsXG4gICAgICAgIEZkcFRhYmxlQ2VsbCxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25CYXJDb21wb25lbnQsXG4gICAgICAgIEJ1c3lJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRGaWx0ZXJCYXJTZXR0aW5nc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIFJlc2V0dGFibGUsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVGFibGUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlITogVGFibGU7XG5cbiAgICAvKipcbiAgICAgKiBUYWJsZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBzb3VyY2UhOiBUYWJsZURhdGFTb3VyY2U8RmllbGRGaWx0ZXJJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2F2YWlsYWJsZUZpZWxkcyE6IEZpZWxkRmlsdGVySXRlbVtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZmlsdGVyVmlzaWJpbGl0eU9wdGlvbnM6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsb2FkZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJbmRpY2F0ZXMgd2hlbiByZXNldCBjb21tYW5kIGlzIGF2YWlsYWJsZSAqL1xuICAgIHJlYWRvbmx5IGlzUmVzZXRBdmFpbGFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jYXRlZ29yeUxhYmVsS2V5czogU21hcnRGaWx0ZXJCYXJWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMgPSB7XG4gICAgICAgIGFsbDogJ3NldHRpbmdzQ2F0ZWdvcnlBbGwnLFxuICAgICAgICB2aXNpYmxlOiAnc2V0dGluZ3NDYXRlZ29yeVZpc2libGUnLFxuICAgICAgICBhY3RpdmU6ICdzZXR0aW5nc0NhdGVnb3J5QWN0aXZlJyxcbiAgICAgICAgdmlzaWJsZUFuZEFjdGl2ZTogJ3NldHRpbmdzQ2F0ZWdvcnlWaXNpYmxlQW5kQWN0aXZlJyxcbiAgICAgICAgbWFuZGF0b3J5OiAnc2V0dGluZ3NDYXRlZ29yeU1hbmRhdG9yeSdcbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zb3VyY2VTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkRmlsdGVyczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zbGF0aW9uUmVzb2x2ZXIgPSBuZXcgVHJhbnNsYXRpb25SZXNvbHZlcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBEaWFsb2dSZWY8U21hcnRGaWx0ZXJTZXR0aW5nc0RpYWxvZ0NvbmZpZywgc3RyaW5nW10+LFxuICAgICAgICBASW5qZWN0KEZEX0xBTkdVQUdFKSBwcml2YXRlIHJlYWRvbmx5IF9sYW5ndWFnZSQ6IE9ic2VydmFibGU8RmRMYW5ndWFnZT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5pc1Jlc2V0QXZhaWxhYmxlJCA9IHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsVGFibGVTdGF0ZSgpO1xuICAgICAgICB0aGlzLl9pbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHRoZSBjaGVja2JveCBpbiB0aGUgdGFibGUgcm93IGlmIHRoZSBmaWVsZCBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBzZXRTZWxlY3RlZEZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NvdXJjZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc291cmNlU3Vic2NyaXB0aW9uID0gdGhpcy5zb3VyY2VcbiAgICAgICAgICAgIC5vcGVuKClcbiAgICAgICAgICAgIC5waXBlKG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoZmllbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC52aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnRvZ2dsZVNlbGVjdGFibGVSb3coaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0cyBmaWx0ZXJzIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsVGFibGVTdGF0ZSgpO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkRmlsdGVycygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgdGFibGUuXG4gICAgICovXG4gICAgc2V0SW5pdGlhbFRhYmxlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2F2YWlsYWJsZUZpZWxkcyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmZpZWxkc1xuICAgICAgICAgICAgLmZpbHRlcigoYzogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24pID0+IGMuZmlsdGVyYWJsZSlcbiAgICAgICAgICAgIC5tYXAoKGM6IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uKSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBjLmxhYmVsLFxuICAgICAgICAgICAgICAgIGFjdGl2ZTogISF0aGlzLl9kaWFsb2dSZWYuZGF0YS5maWx0ZXJCeS5maW5kKChmKSA9PiBmLmZpZWxkID09PSBjLm5hbWUpLFxuICAgICAgICAgICAgICAgIG1hbmRhdG9yeTogYy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiB0aGlzLl9kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEZpbHRlcnMuaW5jbHVkZXMoYy5uYW1lKSxcbiAgICAgICAgICAgICAgICBrZXk6IGMua2V5LFxuICAgICAgICAgICAgICAgIG5hbWU6IGMubmFtZVxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuc291cmNlID0gbmV3IFRhYmxlRGF0YVNvdXJjZShuZXcgU21hcnRGaWx0ZXJCYXJPcHRpb25zRGF0YVByb3ZpZGVyKHRoaXMuX2F2YWlsYWJsZUZpZWxkcykpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb25maXJtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodGhpcy5fc2VsZWN0ZWRGaWx0ZXJzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vblJvd1NlbGVjdGlvbkNoYW5nZShldmVudDogVGFibGVSb3dTZWxlY3Rpb25DaGFuZ2VFdmVudDxGaWVsZEZpbHRlckl0ZW0+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRmlsdGVycyA9IGV2ZW50LnNlbGVjdGlvbi5tYXAoKGMpID0+IGMubmFtZSk7XG4gICAgICAgIHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uRmlsdGVyVmlzaWJpbGl0eUNoYW5nZShldmVudDogRmRwU2VsZWN0aW9uQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKHRoaXMuc291cmNlLmRhdGFQcm92aWRlciBhcyBTbWFydEZpbHRlckJhck9wdGlvbnNEYXRhUHJvdmlkZXIpLmZpbHRlcihldmVudC5wYXlsb2FkKTtcbiAgICAgICAgdGhpcy5zb3VyY2UuZmV0Y2godGhpcy50YWJsZS5nZXRUYWJsZVN0YXRlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fdHJhbnNmb3JtVmlzaWJpbGl0eUxhYmVscygpO1xuICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm1zIHZpc2liaWxpdHkgb3B0aW9ucyBpbnRvIGFwcHJvcHJpYXRlIHNlbGVjdCBpdGVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF90cmFuc2Zvcm1WaXNpYmlsaXR5TGFiZWxzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBsYW5nID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fbGFuZ3VhZ2UkKTtcbiAgICAgICAgY29uc3QgbGFiZWxzID0geyAuLi50aGlzLl9jYXRlZ29yeUxhYmVsS2V5cyB9O1xuICAgICAgICBmb3IgKGNvbnN0IHN0cmF0ZWd5SXRlbSBpbiBsYWJlbHMpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobGFiZWxzLCBzdHJhdGVneUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSAoJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuJyArXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsc1tzdHJhdGVneUl0ZW0gYXMga2V5b2YgU21hcnRGaWx0ZXJCYXJWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHNdKSBhcyBGZExhbmd1YWdlS2V5SWRlbnRpZmllcjtcbiAgICAgICAgICAgICAgICBsYWJlbHNbc3RyYXRlZ3lJdGVtXSA9IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShsYW5nLCB0cmFuc2xhdGlvbktleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbc2VsZWN0VmFsdWUsIHNlbGVjdExhYmVsXSBvZiBPYmplY3QuZW50cmllcyhsYWJlbHMpKSB7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJWaXNpYmlsaXR5T3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogc2VsZWN0TGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1kaWFsb2cgY2xhc3M9XCJmZHAtdGFibGUtcDEzLWZpbHRlcmluZy1kaWFsb2dcIj5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGg0IFtoZWFkZXJTaXplXT1cIjRcIiBmZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLnNlbGVjdEZpbHRlcnNIZWFkZXInIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtcmVzZXQtYnV0dG9uPjwvZmRwLXRhYmxlLXJlc2V0LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuXG4gICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmRwLXRhYmxlXG4gICAgICAgICAgICAqbmdJZj1cImxvYWRlZDsgZWxzZSBsb2FkaW5nVHBsXCJcbiAgICAgICAgICAgICN0YWJsZVxuICAgICAgICAgICAgKHJvd1NlbGVjdGlvbkNoYW5nZSk9XCJfb25Sb3dTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJzb3VyY2VcIlxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZT1cIm11bHRpcGxlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkcC10YWJsZS10b29sYmFyXG4gICAgICAgICAgICAgICAgW2hpZGVJdGVtQ291bnRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzQXZhaWxhYmxlRmlsdGVyc1RleHQnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtdG9vbGJhci1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJfb25GaWx0ZXJWaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpc3RdPVwiX2ZpbHRlclZpc2liaWxpdHlPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJfZmlsdGVyVmlzaWJpbGl0eU9wdGlvbnNbMF0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZmRwLXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS10b29sYmFyLWFjdGlvbnM+XG4gICAgICAgICAgICA8L2ZkcC10YWJsZS10b29sYmFyPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW5cbiAgICAgICAgICAgICAgICBhbGlnbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICBrZXk9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLnNlbGVjdEZpbHRlcnNGaWx0ZXJDb2x1bW5MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImxhYmVsXCJcbiAgICAgICAgICAgID48L2ZkcC1jb2x1bW4+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtblxuICAgICAgICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBrZXk9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzQWN0aXZlQ29sdW1uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwcHhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbCAqZmRwQ2VsbERlZj1cImxldCBpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaXRlbS5hY3RpdmVcIiBnbHlwaD1cImFjY2VwdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICA8L2ZkcC10YWJsZT5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAoY2xpY2spPVwiX2NvbmZpcm0oKVwiXG4gICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzU3VibWl0QnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuXG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAoY2xpY2spPVwiX2NhbmNlbCgpXCJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWxlY3RGaWx0ZXJzQ2FuY2VsQnV0dG9uJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgIDxkaXYgW3N0eWxlLnRleHQtYWxpZ25dPVwiJ2NlbnRlcidcIiBbc3R5bGUubWFyZ2luLnJlbV09XCIxXCI+XG4gICAgICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJ0cnVlXCI+PC9mZC1idXN5LWluZGljYXRvcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=