@po-ui/ng-components 16.2.1 → 16.4.0
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.
- package/esm2022/lib/components/po-accordion/index.mjs +2 -1
- package/esm2022/lib/components/po-accordion/interfaces/po-accordion-literals.interface.mjs +2 -0
- package/esm2022/lib/components/po-accordion/po-accordion-base.component.mjs +150 -2
- package/esm2022/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.mjs +63 -6
- package/esm2022/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.mjs +44 -10
- package/esm2022/lib/components/po-accordion/po-accordion-manager/po-accordion-manager.component.mjs +43 -0
- package/esm2022/lib/components/po-accordion/po-accordion.component.mjs +93 -27
- package/esm2022/lib/components/po-accordion/po-accordion.module.mjs +13 -7
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-base.component.mjs +24 -1
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.mjs +11 -6
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb.component.mjs +163 -65
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb.module.mjs +8 -15
- package/esm2022/lib/components/po-dynamic/index.mjs +2 -1
- package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +5 -5
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/interfaces/po-dynamic-view-request.interface.mjs +2 -0
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.mjs +94 -8
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.mjs +12 -3
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/services/po-dynamic-view.service.mjs +46 -0
- package/esm2022/lib/components/po-dynamic/po-dynamic.module.mjs +2 -2
- package/esm2022/lib/components/po-field/po-combo/po-combo-base.component.mjs +18 -2
- package/esm2022/lib/components/po-field/po-combo/po-combo.component.mjs +55 -21
- package/esm2022/lib/components/po-field/po-field.module.mjs +5 -4
- package/esm2022/lib/components/po-field/po-input/po-input-base.component.mjs +2 -1
- package/esm2022/lib/components/po-field/po-input/po-mask.mjs +1 -1
- package/esm2022/lib/components/po-field/po-input-generic/po-input-generic.mjs +20 -1
- package/esm2022/lib/components/po-field/po-lookup/po-lookup-base.component.mjs +15 -2
- package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs +7 -2
- package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs +4 -4
- package/esm2022/lib/components/po-field/po-lookup/po-lookup.component.mjs +3 -2
- package/esm2022/lib/components/po-field/po-lookup/services/po-lookup-modal.service.mjs +3 -2
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-base.component.mjs +18 -2
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +74 -32
- package/esm2022/lib/components/po-field/po-upload/po-upload-base.service.mjs +6 -2
- package/esm2022/lib/components/po-menu/po-menu-item/po-menu-item.component.mjs +3 -3
- package/esm2022/lib/components/po-popup/po-popup-base.component.mjs +7 -3
- package/esm2022/lib/components/po-popup/po-popup.component.mjs +2 -1
- package/esm2022/lib/components/po-table/po-table-base.component.mjs +12 -8
- package/esm2022/lib/components/po-table/po-table.component.mjs +7 -2
- package/esm2022/lib/components/po-tag/enums/po-tag-type.enum.mjs +4 -2
- package/esm2022/lib/components/po-tag/po-tag-base.component.mjs +3 -2
- package/esm2022/lib/components/po-tree-view/po-tree-view-base.component.mjs +37 -7
- package/esm2022/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.mjs +14 -6
- package/esm2022/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.mjs +1 -1
- package/esm2022/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.mjs +50 -16
- package/esm2022/lib/components/po-tree-view/po-tree-view.component.mjs +5 -5
- package/fesm2022/po-ui-ng-components.mjs +10484 -9823
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-accordion/index.d.ts +1 -0
- package/lib/components/po-accordion/interfaces/po-accordion-literals.interface.d.ts +13 -0
- package/lib/components/po-accordion/po-accordion-base.component.d.ts +105 -1
- package/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.d.ts +41 -1
- package/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.d.ts +7 -1
- package/lib/components/po-accordion/po-accordion-manager/po-accordion-manager.component.d.ts +11 -0
- package/lib/components/po-accordion/po-accordion.component.d.ts +15 -1
- package/lib/components/po-accordion/po-accordion.module.d.ts +6 -2
- package/lib/components/po-breadcrumb/po-breadcrumb-base.component.d.ts +3 -0
- package/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.d.ts +2 -1
- package/lib/components/po-breadcrumb/po-breadcrumb.component.d.ts +14 -6
- package/lib/components/po-breadcrumb/po-breadcrumb.module.d.ts +7 -6
- package/lib/components/po-dynamic/index.d.ts +1 -0
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +8 -0
- package/lib/components/po-dynamic/po-dynamic-view/interfaces/po-dynamic-view-request.interface.d.ts +18 -0
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.d.ts +13 -2
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.d.ts +44 -0
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.d.ts +4 -2
- package/lib/components/po-dynamic/po-dynamic-view/services/po-dynamic-view.service.d.ts +28 -0
- package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +15 -1
- package/lib/components/po-field/po-input-generic/po-input-generic.d.ts +2 -0
- package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +17 -1
- package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.d.ts +4 -1
- package/lib/components/po-field/po-lookup/services/po-lookup-modal.service.d.ts +1 -0
- package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +15 -1
- package/lib/components/po-popup/po-popup-base.component.d.ts +3 -1
- package/lib/components/po-table/po-table-base.component.d.ts +1 -1
- package/lib/components/po-tag/enums/po-tag-type.enum.d.ts +4 -2
- package/lib/components/po-tag/po-tag-base.component.d.ts +2 -1
- package/lib/components/po-tree-view/po-tree-view-base.component.d.ts +14 -1
- package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.d.ts +3 -1
- package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.d.ts +4 -0
- package/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.d.ts +4 -1
- package/package.json +4 -4
- package/po-ui-ng-components-16.4.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.mjs +0 -44
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.mjs +0 -109
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.service.mjs +0 -18
- package/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.d.ts +0 -14
- package/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.d.ts +0 -16
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.service.d.ts +0 -13
- package/po-ui-ng-components-16.2.1.tgz +0 -0
package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs
CHANGED
|
@@ -143,7 +143,7 @@ export class PoLookupModalComponent extends PoLookupModalBaseComponent {
|
|
|
143
143
|
let _t;
|
|
144
144
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputSearchEl = _t.first);
|
|
145
145
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
|
|
146
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars:
|
|
146
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 27, consts: [["p-click-out", "false", "p-hide-close", "false", "p-size", "lg", 3, "p-primary-action", "p-secondary-action", "p-title"], [3, "hidden"], [1, "po-lookup-header", "po-pull-right", 3, "p-optional"], [1, "po-lookup-filter-content"], [1, "po-field-icon-container-right"], [1, "po-icon", "po-field-icon", "po-icon-search", "po-icon-input", 3, "click"], ["iconLookup", ""], ["name", "contentSearch", "type", "text", 1, "po-input", "po-input-icon-right", 3, "ngModel", "placeholder", "ngModelChange"], ["inpsearch", ""], ["class", "po-lookup-advanced-search", 4, "ngIf"], ["class", "po-md-12", 3, "p-disclaimers", "p-title", "p-change", 4, "ngIf"], [1, "po-row", "po-lookup-container-table"], [1, "po-md-12", 3, "p-selectable", "p-hide-detail", "p-single-select", "p-hide-action-fixed-columns", "p-sort", "p-hide-table-search", "p-columns", "p-height", "p-hide-columns-manager", "p-items", "p-literals", "p-loading", "p-show-more-disabled", "p-infinite-scroll", "p-hide-batch-actions", "p-selected", "p-unselected", "p-all-selected", "p-all-unselected", "p-show-more", "p-sort-by", "p-change-visible-columns", "p-restore-column-manager"], ["poTable", ""], ["class", "po-md-12", 3, "p-disclaimers", "p-remove", "p-remove-all", 4, "ngIf"], ["container", ""], [1, "po-lookup-advanced-search"], ["tabindex", "0", 1, "po-lookup-advanced-search-link", "po-icon-input", 3, "click", "keydown.enter"], [1, "po-md-12", 3, "p-disclaimers", "p-title", "p-change"], [1, "po-md-12", 3, "p-disclaimers", "p-remove", "p-remove-all"]], template: function PoLookupModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
147
147
|
i0.ɵɵelementStart(0, "po-modal", 0)(1, "div", 1)(2, "po-field-container", 2)(3, "div", 3)(4, "div", 4)(5, "span", 5, 6);
|
|
148
148
|
i0.ɵɵlistener("click", function PoLookupModalComponent_Template_span_click_5_listener() { return ctx.search(); });
|
|
149
149
|
i0.ɵɵelementEnd()();
|
|
@@ -176,7 +176,7 @@ export class PoLookupModalComponent extends PoLookupModalBaseComponent {
|
|
|
176
176
|
i0.ɵɵadvance(1);
|
|
177
177
|
i0.ɵɵattribute("data-multiple", ctx.multiple);
|
|
178
178
|
i0.ɵɵadvance(1);
|
|
179
|
-
i0.ɵɵproperty("p-selectable", true)("p-hide-detail", true)("p-single-select", !ctx.multiple)("p-hide-action-fixed-columns", true)("p-sort", true)("p-hide-table-search", true)("p-columns", ctx.columns)("p-height", ctx.tableHeight)("p-items", ctx.items)("p-literals", ctx.tableLiterals)("p-loading", ctx.isLoading)("p-show-more-disabled", !ctx.hasNext)("p-infinite-scroll", ctx.infiniteScroll)("p-hide-batch-actions", true);
|
|
179
|
+
i0.ɵɵproperty("p-selectable", true)("p-hide-detail", true)("p-single-select", !ctx.multiple)("p-hide-action-fixed-columns", true)("p-sort", true)("p-hide-table-search", true)("p-columns", ctx.columns)("p-height", ctx.tableHeight)("p-hide-columns-manager", ctx.hideColumnsManager)("p-items", ctx.items)("p-literals", ctx.tableLiterals)("p-loading", ctx.isLoading)("p-show-more-disabled", !ctx.hasNext)("p-infinite-scroll", ctx.infiniteScroll)("p-hide-batch-actions", true);
|
|
180
180
|
i0.ɵɵadvance(2);
|
|
181
181
|
i0.ɵɵproperty("ngIf", ctx.multiple);
|
|
182
182
|
i0.ɵɵadvance(1);
|
|
@@ -185,7 +185,7 @@ export class PoLookupModalComponent extends PoLookupModalBaseComponent {
|
|
|
185
185
|
}
|
|
186
186
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoLookupModalComponent, [{
|
|
187
187
|
type: Component,
|
|
188
|
-
args: [{ selector: 'po-lookup-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<po-modal\n p-click-out=\"false\"\n p-hide-close=\"false\"\n p-size=\"lg\"\n [p-primary-action]=\"isAdvancedFilter ? primaryActionAdvancedFilter : primaryAction\"\n [p-secondary-action]=\"isAdvancedFilter ? secondaryActionAdvancedFilter : secondaryAction\"\n [p-title]=\"isAdvancedFilter ? advancedFilterModalTitle : title\"\n>\n <div [hidden]=\"isAdvancedFilter\">\n <po-field-container class=\"po-lookup-header po-pull-right\" [p-optional]=\"false\">\n <div class=\"po-lookup-filter-content\">\n <div class=\"po-field-icon-container-right\">\n <span #iconLookup class=\"po-icon po-field-icon po-icon-search po-icon-input\" (click)=\"search()\"> </span>\n </div>\n\n <input\n #inpsearch\n class=\"po-input po-input-icon-right\"\n name=\"contentSearch\"\n [(ngModel)]=\"searchValue\"\n [placeholder]=\"literals.modalPlaceholder\"\n type=\"text\"\n />\n </div>\n\n <div *ngIf=\"advancedFilters && advancedFilters.length > 0\" class=\"po-lookup-advanced-search\">\n <span\n class=\"po-lookup-advanced-search-link po-icon-input\"\n tabindex=\"0\"\n (click)=\"onAdvancedFilter()\"\n (keydown.enter)=\"onAdvancedFilter()\"\n >\n {{ literals.modalAdvancedSearch }}\n </span>\n </div>\n </po-field-container>\n\n <!-- DISCLAIMER -->\n <po-disclaimer-group\n *ngIf=\"!!disclaimerGroup\"\n class=\"po-md-12\"\n [p-disclaimers]=\"disclaimerGroup?.disclaimers\"\n [p-title]=\"disclaimerGroup?.title\"\n (p-change)=\"onChangeDisclaimerGroup()\"\n >\n </po-disclaimer-group>\n\n <div class=\"po-row po-lookup-container-table\" [attr.data-multiple]=\"multiple\">\n <po-table\n #poTable\n class=\"po-md-12\"\n [p-selectable]=\"true\"\n [p-hide-detail]=\"true\"\n [p-single-select]=\"!multiple\"\n [p-hide-action-fixed-columns]=\"true\"\n [p-sort]=\"true\"\n [p-hide-table-search]=\"true\"\n [p-columns]=\"columns\"\n [p-height]=\"tableHeight\"\n [p-items]=\"items\"\n [p-literals]=\"tableLiterals\"\n [p-loading]=\"isLoading\"\n [p-show-more-disabled]=\"!hasNext\"\n [p-infinite-scroll]=\"infiniteScroll\"\n [p-hide-batch-actions]=\"true\"\n (p-selected)=\"onSelect($event)\"\n (p-unselected)=\"onUnselect($event)\"\n (p-all-selected)=\"onAllSelected($event)\"\n (p-all-unselected)=\"onAllUnselected($event)\"\n (p-show-more)=\"showMoreEvent()\"\n (p-sort-by)=\"sortBy($event)\"\n (p-change-visible-columns)=\"changeVisibleColumns.emit($event)\"\n (p-restore-column-manager)=\"columnRestoreManager.emit($event)\"\n >\n </po-table>\n </div>\n\n <!-- DISCLAIMER -->\n <po-disclaimer-group\n *ngIf=\"multiple\"\n class=\"po-md-12\"\n [p-disclaimers]=\"selecteds\"\n (p-remove)=\"onUnselectFromDisclaimer($event.removedDisclaimer)\"\n (p-remove-all)=\"onAllUnselected($event)\"\n >\n </po-disclaimer-group>\n </div>\n <div [hidden]=\"!isAdvancedFilter\">\n <ng-container #container> </ng-container>\n </div>\n</po-modal>\n" }]
|
|
188
|
+
args: [{ selector: 'po-lookup-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<po-modal\n p-click-out=\"false\"\n p-hide-close=\"false\"\n p-size=\"lg\"\n [p-primary-action]=\"isAdvancedFilter ? primaryActionAdvancedFilter : primaryAction\"\n [p-secondary-action]=\"isAdvancedFilter ? secondaryActionAdvancedFilter : secondaryAction\"\n [p-title]=\"isAdvancedFilter ? advancedFilterModalTitle : title\"\n>\n <div [hidden]=\"isAdvancedFilter\">\n <po-field-container class=\"po-lookup-header po-pull-right\" [p-optional]=\"false\">\n <div class=\"po-lookup-filter-content\">\n <div class=\"po-field-icon-container-right\">\n <span #iconLookup class=\"po-icon po-field-icon po-icon-search po-icon-input\" (click)=\"search()\"> </span>\n </div>\n\n <input\n #inpsearch\n class=\"po-input po-input-icon-right\"\n name=\"contentSearch\"\n [(ngModel)]=\"searchValue\"\n [placeholder]=\"literals.modalPlaceholder\"\n type=\"text\"\n />\n </div>\n\n <div *ngIf=\"advancedFilters && advancedFilters.length > 0\" class=\"po-lookup-advanced-search\">\n <span\n class=\"po-lookup-advanced-search-link po-icon-input\"\n tabindex=\"0\"\n (click)=\"onAdvancedFilter()\"\n (keydown.enter)=\"onAdvancedFilter()\"\n >\n {{ literals.modalAdvancedSearch }}\n </span>\n </div>\n </po-field-container>\n\n <!-- DISCLAIMER -->\n <po-disclaimer-group\n *ngIf=\"!!disclaimerGroup\"\n class=\"po-md-12\"\n [p-disclaimers]=\"disclaimerGroup?.disclaimers\"\n [p-title]=\"disclaimerGroup?.title\"\n (p-change)=\"onChangeDisclaimerGroup()\"\n >\n </po-disclaimer-group>\n\n <div class=\"po-row po-lookup-container-table\" [attr.data-multiple]=\"multiple\">\n <po-table\n #poTable\n class=\"po-md-12\"\n [p-selectable]=\"true\"\n [p-hide-detail]=\"true\"\n [p-single-select]=\"!multiple\"\n [p-hide-action-fixed-columns]=\"true\"\n [p-sort]=\"true\"\n [p-hide-table-search]=\"true\"\n [p-columns]=\"columns\"\n [p-height]=\"tableHeight\"\n [p-hide-columns-manager]=\"hideColumnsManager\"\n [p-items]=\"items\"\n [p-literals]=\"tableLiterals\"\n [p-loading]=\"isLoading\"\n [p-show-more-disabled]=\"!hasNext\"\n [p-infinite-scroll]=\"infiniteScroll\"\n [p-hide-batch-actions]=\"true\"\n (p-selected)=\"onSelect($event)\"\n (p-unselected)=\"onUnselect($event)\"\n (p-all-selected)=\"onAllSelected($event)\"\n (p-all-unselected)=\"onAllUnselected($event)\"\n (p-show-more)=\"showMoreEvent()\"\n (p-sort-by)=\"sortBy($event)\"\n (p-change-visible-columns)=\"changeVisibleColumns.emit($event)\"\n (p-restore-column-manager)=\"columnRestoreManager.emit($event)\"\n >\n </po-table>\n </div>\n\n <!-- DISCLAIMER -->\n <po-disclaimer-group\n *ngIf=\"multiple\"\n class=\"po-md-12\"\n [p-disclaimers]=\"selecteds\"\n (p-remove)=\"onUnselectFromDisclaimer($event.removedDisclaimer)\"\n (p-remove-all)=\"onAllUnselected($event)\"\n >\n </po-disclaimer-group>\n </div>\n <div [hidden]=\"!isAdvancedFilter\">\n <ng-container #container> </ng-container>\n </div>\n</po-modal>\n" }]
|
|
189
189
|
}], function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.PoLanguageService }, { type: i0.ChangeDetectorRef }]; }, { inputSearchEl: [{
|
|
190
190
|
type: ViewChild,
|
|
191
191
|
args: ['inpsearch']
|
|
@@ -193,4 +193,4 @@ export class PoLookupModalComponent extends PoLookupModalBaseComponent {
|
|
|
193
193
|
type: ViewChild,
|
|
194
194
|
args: ['container', { read: ViewContainerRef }]
|
|
195
195
|
}] }); })();
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLW1vZGFsL3BvLWxvb2t1cC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbG9va3VwL3BvLWxvb2t1cC1tb2RhbC9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBS1QsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztJQ010RCwrQkFBNkYsZUFBQTtJQUl6RixpS0FBUyxlQUFBLHlCQUFrQixDQUFBLElBQUMsb0tBQ1gsZUFBQSx5QkFBa0IsQ0FBQSxJQURQO0lBRzVCLFlBQ0Y7SUFBQSxpQkFBTyxFQUFBOzs7SUFETCxlQUNGO0lBREUsb0VBQ0Y7Ozs7SUFLSiwrQ0FNQztJQURDLHlNQUFZLGVBQUEsaUNBQXlCLENBQUEsSUFBQztJQUV4QyxpQkFBc0I7OztJQUpwQiwwR0FBOEMsaUZBQUE7Ozs7SUFxQ2hELCtD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ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5Tb3J0IH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUvaW50ZXJmYWNlcy9wby10YWJsZS1jb2x1bW4tc29ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBNb2RhbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9wby1sb29rdXAtbW9kYWwvcG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uL3BvLWR5bmFtaWMvcG8tZHluYW1pYy1mb3JtL3BvLWR5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgc29ydEFycmF5T2ZPYmplY3RzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRvY3NFeHRlbmRzIFBvTG9va3VwTW9kYWxCYXNlQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWxvb2t1cC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQb0xvb2t1cE1vZGFsQ29tcG9uZW50IGV4dGVuZHMgUG9Mb29rdXBNb2RhbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdpbnBzZWFyY2gnKSBpbnB1dFNlYXJjaEVsOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGtleVVwT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbnVsbDtcblxuICB0YWJsZUhlaWdodDogbnVtYmVyO1xuXG4gIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFBvRHluYW1pY0Zvcm1Db21wb25lbnQ+O1xuICBkeW5hbWljRm9ybTogTmdGb3JtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHBvTGFuZ3VhZ2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihwb0xhbmd1YWdlLCBjaGFuZ2VEZXRlY3Rvcik7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc2V0VGFibGVIZWlnaHQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVFdmVudElucHV0KCk7XG4gIH1cblxuICAvLyBTZWxlY2lvbmEgdW0gaXRlbSBuYSB0YWJlbGFcbiAgb25TZWxlY3QoaXRlbSkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFsuLi50aGlzLnNlbGVjdGVkcywgeyB2YWx1ZTogaXRlbVt0aGlzLmZpZWxkVmFsdWVdLCBsYWJlbDogaXRlbVt0aGlzLmZpZWxkTGFiZWxdLCAuLi5pdGVtIH1dO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFt7IHZhbHVlOiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0sIGxhYmVsOiBpdGVtW3RoaXMuZmllbGRMYWJlbF0sIC4uLml0ZW0gfV07XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGEgc2VsZcOnw6NvIGRlIHVtIGl0ZW0gbmEgdGFiZWxhXG4gIG9uVW5zZWxlY3QodW5zZWxlY3RlZEl0ZW0pIHtcbiAgICB0aGlzLnNlbGVjdGVkcyA9IHRoaXMuc2VsZWN0ZWRzLmZpbHRlcihpdGVtU2VsZWN0ZWQgPT4gaXRlbVNlbGVjdGVkLnZhbHVlICE9PSB1bnNlbGVjdGVkSXRlbVt0aGlzLmZpZWxkVmFsdWVdKTtcbiAgfVxuXG4gIG9uVW5zZWxlY3RGcm9tRGlzY2xhaW1lcihyZW1vdmVkRGlzY2xhaW1lcikge1xuICAgIHRoaXMucG9UYWJsZS51bnNlbGVjdFJvd0l0ZW0oaXRlbSA9PiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0gPT09IHJlbW92ZWREaXNjbGFpbWVyLnZhbHVlKTtcbiAgfVxuXG4gIC8vIFNlbGVjaW9uYSB0b2RvcyBvcyBpdGVucyB2aXPDrXZlaXMgbmEgdGFiZWxhXG4gIG9uQWxsU2VsZWN0ZWQoaXRlbXMpIHtcbiAgICB0aGlzLnNlbGVjdGVkcyA9IGl0ZW1zLm1hcChpdGVtID0+ICh7IHZhbHVlOiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0sIGxhYmVsOiBpdGVtW3RoaXMuZmllbGRMYWJlbF0sIC4uLml0ZW0gfSkpO1xuICB9XG5cbiAgLy8gUmVtb3ZlIGEgc2VsZcOnw6NvIGRlIHRvZG9zIG9zIGl0ZW5zIHZpc8OtdmVpcyBuYSB0YWJlbGFcbiAgb25BbGxVbnNlbGVjdGVkKGl0ZW1zKSB7XG4gICAgdGhpcy5wb1RhYmxlLnVuc2VsZWN0Um93cygpO1xuICAgIHRoaXMuc2VsZWN0ZWRzID0gW107XG4gIH1cblxuICBpbml0aWFsaXplRXZlbnRJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmtleVVwT2JzZXJ2YWJsZSA9IGZyb21FdmVudCh0aGlzLmlucHV0U2VhcmNoRWwubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgIGZpbHRlcigoZTogYW55KSA9PiB0aGlzLnZhbGlkYXRlRW50ZXJQcmVzc2VkKGUpKSxcbiAgICAgIGRlYm91bmNlVGltZSg0MDApXG4gICAgKTtcblxuICAgIHRoaXMua2V5VXBPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaCgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5wb01vZGFsLm9wZW4oKTtcbiAgfVxuXG4gIHNvcnRCeShzb3J0OiBQb1RhYmxlQ29sdW1uU29ydCkge1xuICAgIGNvbnN0IG9yZGVyID0gc29ydC50eXBlID09PSAnYXNjZW5kaW5nJyA/IHRydWUgOiBmYWxzZTtcbiAgICBzb3J0QXJyYXlPZk9iamVjdHModGhpcy5pdGVtcywgc29ydC5jb2x1bW4ucHJvcGVydHksIG9yZGVyKTtcblxuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gIH1cblxuICBkZXN0cm95RHluYW1pY0Zvcm0oKSB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgb25BZHZhbmNlZEZpbHRlcigpIHtcbiAgICB0aGlzLnNldHVwTW9kYWxBZHZhbmNlZEZpbHRlcigpO1xuICAgIHRoaXMuY3JlYXRlRHluYW1pY0Zvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVIZWlnaHQoKSB7XG4gICAgdGhpcy50YWJsZUhlaWdodCA9IHRoaXMuaW5maW5pdGVTY3JvbGwgPyA1MTUgOiA2MTU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRW50ZXJQcmVzc2VkKGU6IGFueSkge1xuICAgIHJldHVybiBlLmtleUNvZGUgPT09IDEzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE1vZGFsQWR2YW5jZWRGaWx0ZXIoKSB7XG4gICAgdGhpcy5keW5hbWljRm9ybVZhbHVlID0ge307XG4gICAgdGhpcy5pc0FkdmFuY2VkRmlsdGVyID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0Zvcm0oKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5LnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBvRHluYW1pY0Zvcm1Db21wb25lbnQpO1xuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQ8UG9EeW5hbWljRm9ybUNvbXBvbmVudD4oY29tcG9uZW50KTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZHMgPSB0aGlzLmFkdmFuY2VkRmlsdGVycztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS52YWx1ZSA9IHRoaXMuZHluYW1pY0Zvcm1WYWx1ZTtcblxuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm1PdXRwdXRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZm9ybSA9PiB7XG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybSA9IGZvcm07XG4gICAgICAgICAgdGhpcy5wcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIuZGlzYWJsZWQgPSB0aGlzLmR5bmFtaWNGb3JtLmludmFsaWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoZm9ybSA9PiBmb3JtLnZhbHVlQ2hhbmdlcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByaW1hcnlBY3Rpb25BZHZhbmNlZEZpbHRlci5kaXNhYmxlZCA9IHRoaXMuZHluYW1pY0Zvcm0uaW52YWxpZDtcbiAgICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxwby1tb2RhbFxuICBwLWNsaWNrLW91dD1cImZhbHNlXCJcbiAgcC1oaWRlLWNsb3NlPVwiZmFsc2VcIlxuICBwLXNpemU9XCJsZ1wiXG4gIFtwLXByaW1hcnktYWN0aW9uXT1cImlzQWR2YW5jZWRGaWx0ZXIgPyBwcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgOiBwcmltYXJ5QWN0aW9uXCJcbiAgW3Atc2Vjb25kYXJ5LWFjdGlvbl09XCJpc0FkdmFuY2VkRmlsdGVyID8gc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgOiBzZWNvbmRhcnlBY3Rpb25cIlxuICBbcC10aXRsZV09XCJpc0FkdmFuY2VkRmlsdGVyID8gYWR2YW5jZWRGaWx0ZXJNb2RhbFRpdGxlIDogdGl0bGVcIlxuPlxuICA8ZGl2IFtoaWRkZW5dPVwiaXNBZHZhbmNlZEZpbHRlclwiPlxuICAgIDxwby1maWVsZC1jb250YWluZXIgY2xhc3M9XCJwby1sb29rdXAtaGVhZGVyIHBvLXB1bGwtcmlnaHRcIiBbcC1vcHRpb25hbF09XCJmYWxzZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvLWxvb2t1cC1maWx0ZXItY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cbiAgICAgICAgICA8c3BhbiAjaWNvbkxvb2t1cCBjbGFzcz1cInBvLWljb24gcG8tZmllbGQtaWNvbiBwby1pY29uLXNlYXJjaCBwby1pY29uLWlucHV0XCIgKGNsaWNrKT1cInNlYXJjaCgpXCI+IDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgI2lucHNlYXJjaFxuICAgICAgICAgIGNsYXNzPVwicG8taW5wdXQgcG8taW5wdXQtaWNvbi1yaWdodFwiXG4gICAgICAgICAgbmFtZT1cImNvbnRlbnRTZWFyY2hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsaXRlcmFscy5tb2RhbFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cImFkdmFuY2VkRmlsdGVycyAmJiBhZHZhbmNlZEZpbHRlcnMubGVuZ3RoID4gMFwiIGNsYXNzPVwicG8tbG9va3VwLWFkdmFuY2VkLXNlYXJjaFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwicG8tbG9va3VwLWFkdmFuY2VkLXNlYXJjaC1saW5rIHBvLWljb24taW5wdXRcIlxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQWR2YW5jZWRGaWx0ZXIoKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BZHZhbmNlZEZpbHRlcigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGxpdGVyYWxzLm1vZGFsQWR2YW5jZWRTZWFyY2ggfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9wby1maWVsZC1jb250YWluZXI+XG5cbiAgICA8IS0tIERJU0NMQUlNRVIgLS0+XG4gICAgPHBvLWRpc2NsYWltZXItZ3JvdXBcbiAgICAgICpuZ0lmPVwiISFkaXNjbGFpbWVyR3JvdXBcIlxuICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXG4gICAgICBbcC1kaXNjbGFpbWVyc109XCJkaXNjbGFpbWVyR3JvdXA/LmRpc2NsYWltZXJzXCJcbiAgICAgIFtwLXRpdGxlXT1cImRpc2NsYWltZXJHcm91cD8udGl0bGVcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRGlzY2xhaW1lckdyb3VwKClcIlxuICAgID5cbiAgICA8L3BvLWRpc2NsYWltZXItZ3JvdXA+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLWxvb2t1cC1jb250YWluZXItdGFibGVcIiBbYXR0ci5kYXRhLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgICA8cG8tdGFibGVcbiAgICAgICAgI3BvVGFibGVcbiAgICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXG4gICAgICAgIFtwLXNlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtwLWhpZGUtZGV0YWlsXT1cInRydWVcIlxuICAgICAgICBbcC1zaW5nbGUtc2VsZWN0XT1cIiFtdWx0aXBsZVwiXG4gICAgICAgIFtwLWhpZGUtYWN0aW9uLWZpeGVkLWNvbHVtbnNdPVwidHJ1ZVwiXG4gICAgICAgIFtwLXNvcnRdPVwidHJ1ZVwiXG4gICAgICAgIFtwLWhpZGUtdGFibGUtc2VhcmNoXT1cInRydWVcIlxuICAgICAgICBbcC1jb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICBbcC1oZWlnaHRdPVwidGFibGVIZWlnaHRcIlxuICAgICAgICBbcC1pdGVtc109XCJpdGVtc1wiXG4gICAgICAgIFtwLWxpdGVyYWxzXT1cInRhYmxlTGl0ZXJhbHNcIlxuICAgICAgICBbcC1sb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgIFtwLXNob3ctbW9yZS1kaXNhYmxlZF09XCIhaGFzTmV4dFwiXG4gICAgICAgIFtwLWluZmluaXRlLXNjcm9sbF09XCJpbmZpbml0ZVNjcm9sbFwiXG4gICAgICAgIFtwLWhpZGUtYmF0Y2gtYWN0aW9uc109XCJ0cnVlXCJcbiAgICAgICAgKHAtc2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIChwLXVuc2VsZWN0ZWQpPVwib25VbnNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgKHAtYWxsLXNlbGVjdGVkKT1cIm9uQWxsU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChwLWFsbC11bnNlbGVjdGVkKT1cIm9uQWxsVW5zZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgKHAtc2hvdy1tb3JlKT1cInNob3dNb3JlRXZlbnQoKVwiXG4gICAgICAgIChwLXNvcnQtYnkpPVwic29ydEJ5KCRldmVudClcIlxuICAgICAgICAocC1jaGFuZ2UtdmlzaWJsZS1jb2x1bW5zKT1cImNoYW5nZVZpc2libGVDb2x1bW5zLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChwLXJlc3RvcmUtY29sdW1uLW1hbmFnZXIpPVwiY29sdW1uUmVzdG9yZU1hbmFnZXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIERJU0NMQUlNRVIgLS0+XG4gICAgPHBvLWRpc2NsYWltZXItZ3JvdXBcbiAgICAgICpuZ0lmPVwibXVsdGlwbGVcIlxuICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXG4gICAgICBbcC1kaXNjbGFpbWVyc109XCJzZWxlY3RlZHNcIlxuICAgICAgKHAtcmVtb3ZlKT1cIm9uVW5zZWxlY3RGcm9tRGlzY2xhaW1lcigkZXZlbnQucmVtb3ZlZERpc2NsYWltZXIpXCJcbiAgICAgIChwLXJlbW92ZS1hbGwpPVwib25BbGxVbnNlbGVjdGVkKCRldmVudClcIlxuICAgID5cbiAgICA8L3BvLWRpc2NsYWltZXItZ3JvdXA+XG4gIDwvZGl2PlxuICA8ZGl2IFtoaWRkZW5dPVwiIWlzQWR2YW5jZWRGaWx0ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICNjb250YWluZXI+IDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvcG8tbW9kYWw+XG4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLW1vZGFsL3BvLWxvb2t1cC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbG9va3VwL3BvLWxvb2t1cC1tb2RhbC9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBS1QsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztJQ010RCwrQkFBNkYsZUFBQTtJQUl6RixpS0FBUyxlQUFBLHlCQUFrQixDQUFBLElBQUMsb0tBQ1gsZUFBQSx5QkFBa0IsQ0FBQSxJQURQO0lBRzVCLFlBQ0Y7SUFBQSxpQkFBTyxFQUFBOzs7SUFETCxlQUNGO0lBREUsb0VBQ0Y7Ozs7SUFLSiwrQ0FNQztJQURDLHlNQUFZLGVBQUEsaUNBQXlCLENBQUEsSUFBQztJQUV4QyxpQkFBc0I7OztJQUpwQiwwR0FBOEMsaUZBQUE7Ozs7SUFzQ2hELCtD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blN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5Tb3J0IH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUvaW50ZXJmYWNlcy9wby10YWJsZS1jb2x1bW4tc29ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBNb2RhbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9wby1sb29rdXAtbW9kYWwvcG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uL3BvLWR5bmFtaWMvcG8tZHluYW1pYy1mb3JtL3BvLWR5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgc29ydEFycmF5T2ZPYmplY3RzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRvY3NFeHRlbmRzIFBvTG9va3VwTW9kYWxCYXNlQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWxvb2t1cC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQb0xvb2t1cE1vZGFsQ29tcG9uZW50IGV4dGVuZHMgUG9Mb29rdXBNb2RhbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdpbnBzZWFyY2gnKSBpbnB1dFNlYXJjaEVsOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGtleVVwT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbnVsbDtcblxuICB0YWJsZUhlaWdodDogbnVtYmVyO1xuXG4gIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFBvRHluYW1pY0Zvcm1Db21wb25lbnQ+O1xuICBkeW5hbWljRm9ybTogTmdGb3JtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHBvTGFuZ3VhZ2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihwb0xhbmd1YWdlLCBjaGFuZ2VEZXRlY3Rvcik7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc2V0VGFibGVIZWlnaHQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVFdmVudElucHV0KCk7XG4gIH1cblxuICAvLyBTZWxlY2lvbmEgdW0gaXRlbSBuYSB0YWJlbGFcbiAgb25TZWxlY3QoaXRlbSkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFsuLi50aGlzLnNlbGVjdGVkcywgeyB2YWx1ZTogaXRlbVt0aGlzLmZpZWxkVmFsdWVdLCBsYWJlbDogaXRlbVt0aGlzLmZpZWxkTGFiZWxdLCAuLi5pdGVtIH1dO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFt7IHZhbHVlOiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0sIGxhYmVsOiBpdGVtW3RoaXMuZmllbGRMYWJlbF0sIC4uLml0ZW0gfV07XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGEgc2VsZcOnw6NvIGRlIHVtIGl0ZW0gbmEgdGFiZWxhXG4gIG9uVW5zZWxlY3QodW5zZWxlY3RlZEl0ZW0pIHtcbiAgICB0aGlzLnNlbGVjdGVkcyA9IHRoaXMuc2VsZWN0ZWRzLmZpbHRlcihpdGVtU2VsZWN0ZWQgPT4gaXRlbVNlbGVjdGVkLnZhbHVlICE9PSB1bnNlbGVjdGVkSXRlbVt0aGlzLmZpZWxkVmFsdWVdKTtcbiAgfVxuXG4gIG9uVW5zZWxlY3RGcm9tRGlzY2xhaW1lcihyZW1vdmVkRGlzY2xhaW1lcikge1xuICAgIHRoaXMucG9UYWJsZS51bnNlbGVjdFJvd0l0ZW0oaXRlbSA9PiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0gPT09IHJlbW92ZWREaXNjbGFpbWVyLnZhbHVlKTtcbiAgfVxuXG4gIC8vIFNlbGVjaW9uYSB0b2RvcyBvcyBpdGVucyB2aXPDrXZlaXMgbmEgdGFiZWxhXG4gIG9uQWxsU2VsZWN0ZWQoaXRlbXMpIHtcbiAgICB0aGlzLnNlbGVjdGVkcyA9IGl0ZW1zLm1hcChpdGVtID0+ICh7IHZhbHVlOiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0sIGxhYmVsOiBpdGVtW3RoaXMuZmllbGRMYWJlbF0sIC4uLml0ZW0gfSkpO1xuICB9XG5cbiAgLy8gUmVtb3ZlIGEgc2VsZcOnw6NvIGRlIHRvZG9zIG9zIGl0ZW5zIHZpc8OtdmVpcyBuYSB0YWJlbGFcbiAgb25BbGxVbnNlbGVjdGVkKGl0ZW1zKSB7XG4gICAgdGhpcy5wb1RhYmxlLnVuc2VsZWN0Um93cygpO1xuICAgIHRoaXMuc2VsZWN0ZWRzID0gW107XG4gIH1cblxuICBpbml0aWFsaXplRXZlbnRJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmtleVVwT2JzZXJ2YWJsZSA9IGZyb21FdmVudCh0aGlzLmlucHV0U2VhcmNoRWwubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgIGZpbHRlcigoZTogYW55KSA9PiB0aGlzLnZhbGlkYXRlRW50ZXJQcmVzc2VkKGUpKSxcbiAgICAgIGRlYm91bmNlVGltZSg0MDApXG4gICAgKTtcblxuICAgIHRoaXMua2V5VXBPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaCgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5wb01vZGFsLm9wZW4oKTtcbiAgfVxuXG4gIHNvcnRCeShzb3J0OiBQb1RhYmxlQ29sdW1uU29ydCkge1xuICAgIGNvbnN0IG9yZGVyID0gc29ydC50eXBlID09PSAnYXNjZW5kaW5nJyA/IHRydWUgOiBmYWxzZTtcbiAgICBzb3J0QXJyYXlPZk9iamVjdHModGhpcy5pdGVtcywgc29ydC5jb2x1bW4ucHJvcGVydHksIG9yZGVyKTtcblxuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gIH1cblxuICBkZXN0cm95RHluYW1pY0Zvcm0oKSB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgb25BZHZhbmNlZEZpbHRlcigpIHtcbiAgICB0aGlzLnNldHVwTW9kYWxBZHZhbmNlZEZpbHRlcigpO1xuICAgIHRoaXMuY3JlYXRlRHluYW1pY0Zvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVIZWlnaHQoKSB7XG4gICAgdGhpcy50YWJsZUhlaWdodCA9IHRoaXMuaW5maW5pdGVTY3JvbGwgPyA1MTUgOiA2MTU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRW50ZXJQcmVzc2VkKGU6IGFueSkge1xuICAgIHJldHVybiBlLmtleUNvZGUgPT09IDEzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE1vZGFsQWR2YW5jZWRGaWx0ZXIoKSB7XG4gICAgdGhpcy5keW5hbWljRm9ybVZhbHVlID0ge307XG4gICAgdGhpcy5pc0FkdmFuY2VkRmlsdGVyID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0Zvcm0oKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5LnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBvRHluYW1pY0Zvcm1Db21wb25lbnQpO1xuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQ8UG9EeW5hbWljRm9ybUNvbXBvbmVudD4oY29tcG9uZW50KTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZHMgPSB0aGlzLmFkdmFuY2VkRmlsdGVycztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS52YWx1ZSA9IHRoaXMuZHluYW1pY0Zvcm1WYWx1ZTtcblxuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm1PdXRwdXRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZm9ybSA9PiB7XG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybSA9IGZvcm07XG4gICAgICAgICAgdGhpcy5wcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIuZGlzYWJsZWQgPSB0aGlzLmR5bmFtaWNGb3JtLmludmFsaWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoZm9ybSA9PiBmb3JtLnZhbHVlQ2hhbmdlcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByaW1hcnlBY3Rpb25BZHZhbmNlZEZpbHRlci5kaXNhYmxlZCA9IHRoaXMuZHluYW1pY0Zvcm0uaW52YWxpZDtcbiAgICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxwby1tb2RhbFxuICBwLWNsaWNrLW91dD1cImZhbHNlXCJcbiAgcC1oaWRlLWNsb3NlPVwiZmFsc2VcIlxuICBwLXNpemU9XCJsZ1wiXG4gIFtwLXByaW1hcnktYWN0aW9uXT1cImlzQWR2YW5jZWRGaWx0ZXIgPyBwcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgOiBwcmltYXJ5QWN0aW9uXCJcbiAgW3Atc2Vjb25kYXJ5LWFjdGlvbl09XCJpc0FkdmFuY2VkRmlsdGVyID8gc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgOiBzZWNvbmRhcnlBY3Rpb25cIlxuICBbcC10aXRsZV09XCJpc0FkdmFuY2VkRmlsdGVyID8gYWR2YW5jZWRGaWx0ZXJNb2RhbFRpdGxlIDogdGl0bGVcIlxuPlxuICA8ZGl2IFtoaWRkZW5dPVwiaXNBZHZhbmNlZEZpbHRlclwiPlxuICAgIDxwby1maWVsZC1jb250YWluZXIgY2xhc3M9XCJwby1sb29rdXAtaGVhZGVyIHBvLXB1bGwtcmlnaHRcIiBbcC1vcHRpb25hbF09XCJmYWxzZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvLWxvb2t1cC1maWx0ZXItY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cbiAgICAgICAgICA8c3BhbiAjaWNvbkxvb2t1cCBjbGFzcz1cInBvLWljb24gcG8tZmllbGQtaWNvbiBwby1pY29uLXNlYXJjaCBwby1pY29uLWlucHV0XCIgKGNsaWNrKT1cInNlYXJjaCgpXCI+IDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgI2lucHNlYXJjaFxuICAgICAgICAgIGNsYXNzPVwicG8taW5wdXQgcG8taW5wdXQtaWNvbi1yaWdodFwiXG4gICAgICAgICAgbmFtZT1cImNvbnRlbnRTZWFyY2hcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsaXRlcmFscy5tb2RhbFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cImFkdmFuY2VkRmlsdGVycyAmJiBhZHZhbmNlZEZpbHRlcnMubGVuZ3RoID4gMFwiIGNsYXNzPVwicG8tbG9va3VwLWFkdmFuY2VkLXNlYXJjaFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwicG8tbG9va3VwLWFkdmFuY2VkLXNlYXJjaC1saW5rIHBvLWljb24taW5wdXRcIlxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQWR2YW5jZWRGaWx0ZXIoKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BZHZhbmNlZEZpbHRlcigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGxpdGVyYWxzLm1vZGFsQWR2YW5jZWRTZWFyY2ggfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9wby1maWVsZC1jb250YWluZXI+XG5cbiAgICA8IS0tIERJU0NMQUlNRVIgLS0+XG4gICAgPHBvLWRpc2NsYWltZXItZ3JvdXBcbiAgICAgICpuZ0lmPVwiISFkaXNjbGFpbWVyR3JvdXBcIlxuICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXG4gICAgICBbcC1kaXNjbGFpbWVyc109XCJkaXNjbGFpbWVyR3JvdXA/LmRpc2NsYWltZXJzXCJcbiAgICAgIFtwLXRpdGxlXT1cImRpc2NsYWltZXJHcm91cD8udGl0bGVcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uQ2hhbmdlRGlzY2xhaW1lckdyb3VwKClcIlxuICAgID5cbiAgICA8L3BvLWRpc2NsYWltZXItZ3JvdXA+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLWxvb2t1cC1jb250YWluZXItdGFibGVcIiBbYXR0ci5kYXRhLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgICA8cG8tdGFibGVcbiAgICAgICAgI3BvVGFibGVcbiAgICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXG4gICAgICAgIFtwLXNlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtwLWhpZGUtZGV0YWlsXT1cInRydWVcIlxuICAgICAgICBbcC1zaW5nbGUtc2VsZWN0XT1cIiFtdWx0aXBsZVwiXG4gICAgICAgIFtwLWhpZGUtYWN0aW9uLWZpeGVkLWNvbHVtbnNdPVwidHJ1ZVwiXG4gICAgICAgIFtwLXNvcnRdPVwidHJ1ZVwiXG4gICAgICAgIFtwLWhpZGUtdGFibGUtc2VhcmNoXT1cInRydWVcIlxuICAgICAgICBbcC1jb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICBbcC1oZWlnaHRdPVwidGFibGVIZWlnaHRcIlxuICAgICAgICBbcC1oaWRlLWNvbHVtbnMtbWFuYWdlcl09XCJoaWRlQ29sdW1uc01hbmFnZXJcIlxuICAgICAgICBbcC1pdGVtc109XCJpdGVtc1wiXG4gICAgICAgIFtwLWxpdGVyYWxzXT1cInRhYmxlTGl0ZXJhbHNcIlxuICAgICAgICBbcC1sb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgIFtwLXNob3ctbW9yZS1kaXNhYmxlZF09XCIhaGFzTmV4dFwiXG4gICAgICAgIFtwLWluZmluaXRlLXNjcm9sbF09XCJpbmZpbml0ZVNjcm9sbFwiXG4gICAgICAgIFtwLWhpZGUtYmF0Y2gtYWN0aW9uc109XCJ0cnVlXCJcbiAgICAgICAgKHAtc2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIChwLXVuc2VsZWN0ZWQpPVwib25VbnNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgKHAtYWxsLXNlbGVjdGVkKT1cIm9uQWxsU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChwLWFsbC11bnNlbGVjdGVkKT1cIm9uQWxsVW5zZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgKHAtc2hvdy1tb3JlKT1cInNob3dNb3JlRXZlbnQoKVwiXG4gICAgICAgIChwLXNvcnQtYnkpPVwic29ydEJ5KCRldmVudClcIlxuICAgICAgICAocC1jaGFuZ2UtdmlzaWJsZS1jb2x1bW5zKT1cImNoYW5nZVZpc2libGVDb2x1bW5zLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChwLXJlc3RvcmUtY29sdW1uLW1hbmFnZXIpPVwiY29sdW1uUmVzdG9yZU1hbmFnZXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIERJU0NMQUlNRVIgLS0+XG4gICAgPHBvLWRpc2NsYWltZXItZ3JvdXBcbiAgICAgICpuZ0lmPVwibXVsdGlwbGVcIlxuICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXG4gICAgICBbcC1kaXNjbGFpbWVyc109XCJzZWxlY3RlZHNcIlxuICAgICAgKHAtcmVtb3ZlKT1cIm9uVW5zZWxlY3RGcm9tRGlzY2xhaW1lcigkZXZlbnQucmVtb3ZlZERpc2NsYWltZXIpXCJcbiAgICAgIChwLXJlbW92ZS1hbGwpPVwib25BbGxVbnNlbGVjdGVkKCRldmVudClcIlxuICAgID5cbiAgICA8L3BvLWRpc2NsYWltZXItZ3JvdXA+XG4gIDwvZGl2PlxuICA8ZGl2IFtoaWRkZW5dPVwiIWlzQWR2YW5jZWRGaWx0ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICNjb250YWluZXI+IDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvcG8tbW9kYWw+XG4iXX0=
|
|
@@ -232,13 +232,14 @@ export class PoLookupComponent extends PoLookupBaseComponent {
|
|
|
232
232
|
}
|
|
233
233
|
openLookup() {
|
|
234
234
|
if (this.isAllowedOpenModal()) {
|
|
235
|
-
const { advancedFilters, service, columns, filterParams, literals, infiniteScroll, multiple, fieldLabel, fieldValue, changeVisibleColumns, columnRestoreManager } = this;
|
|
235
|
+
const { advancedFilters, service, columns, filterParams, hideColumnsManager, literals, infiniteScroll, multiple, fieldLabel, fieldValue, changeVisibleColumns, columnRestoreManager } = this;
|
|
236
236
|
const selectedItems = this.checkSelectedItems();
|
|
237
237
|
this.poLookupModalService.openModal({
|
|
238
238
|
advancedFilters,
|
|
239
239
|
service,
|
|
240
240
|
columns,
|
|
241
241
|
filterParams,
|
|
242
|
+
hideColumnsManager,
|
|
242
243
|
title: this.label,
|
|
243
244
|
literals,
|
|
244
245
|
infiniteScroll,
|
|
@@ -437,4 +438,4 @@ export class PoLookupComponent extends PoLookupBaseComponent {
|
|
|
437
438
|
type: ViewChild,
|
|
438
439
|
args: ['inp', { read: ElementRef, static: false }]
|
|
439
440
|
}] }); })();
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFLVixTQUFTLEVBQ1QsdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7SUNFcEUsb0NBS0M7SUFEQyw4TEFBa0IsZUFBQSxtQkFBWSxDQUFBLElBQUM7SUFFakMsaUJBQVc7OztJQUhULDhDQUF5Qjs7OztJQWxCL0IsOEJBQThGLGtCQUFBO0lBVzFGLDJKQUFRLGVBQUEsb0JBQWEsQ0FBQSxJQUFDO0lBVnhCLGlCQVdFO0lBRUYsOEJBQTJDO0lBQ3pDLGtGQU1XO0lBRVgsbUNBUUM7SUFGQyw2SkFBUyxlQUFBLG9CQUFZLENBQUEsSUFBQywySUFDYixlQUFBLFdBQVcsQ0FBQSxJQURFO0lBR3hCLGlCQUFPLEVBQUEsRUFBQTs7OztJQTVCUCxlQUFTO0lBQVQs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RUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQ2xFLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7MkVBaFRVLGlCQUFpQjs2REFBakIsaUJBQWlCO21DQUNGLFVBQVU7Ozs7OENBSHBDLFNBQVM7WUMzR1gsNkNBT0M7WUFDQyxtRUFrQ007WUFDTiwrQ0FBK0Y7WUFDakcsaUJBQXFCO1lBRXJCLG9IQXVDYzs7O1lBcEZaLHlDQUF1QixnQkFBQSxzQkFBQSw0QkFBQSw0QkFBQSxxQ0FBQTtZQU9rQixlQUEyQjtZQUEzQiw4Q0FBMkIsaUJBQUE7WUFtQ3pDLGVBQWU7WUFBZixpQ0FBZSw0QkFBQTs7O3VGRGtFL0IsaUJBQWlCO2NBTjdCLFNBQVM7MkJBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLGFBQy9DLFNBQVM7MExBRzhDLE9BQU87a0JBQTdELFNBQVM7bUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRG9DaGVjayxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHV1aWQgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9Mb29rdXBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1sb29rdXAtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1sb29rdXAtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLWxvb2t1cC1tb2RhbC5zZXJ2aWNlJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlLFxuICBQb0xvb2t1cE1vZGFsU2VydmljZSxcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvTG9va3VwQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9LFxuICB7XG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0xvb2t1cENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfSxcbiAge1xuICAgIHByb3ZpZGU6IE5nQ29udHJvbCxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0xvb2t1cENvbXBvbmVudCksXG4gICAgbXVsdGk6IGZhbHNlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTG9va3VwQmFzZUNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFF1YW5kbyBleGlzdGUgbXVpdG9zIGRhZG9zIG8gcG8tbG9va3VwIHBvciBwYWRyw6NvIHRyYXogYXBlbmFzIDEwIGl0ZW5zIG5hIHRhYmVsYSBlIG9zIGRlbWFpcyBzw6NvIGNhcnJlZ2Fkb3MgcG9yIGRlbWFuZGEgYXRyYXbDqXMgZG9cbiAqIGJvdMOjbyAnQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zJy4gUGFyYSBxdWUgZnVuY2lvbmUgY29ycmV0YW1lbnRlLCDDqSBpbXBvcnRhbnRlIHF1ZSBvIHNlcnZpw6dvIHNpZ2Egb1xuICogW0d1aWEgZGUgaW1wbGVtZW50YcOnw6NvIGRhcyBBUElzIFRPVFZTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICpcbiAqIEltcG9ydGFudGU6XG4gKlxuICogLSBDYXNvIG8gcG8tbG9va3VwIGNvbnRlbmhhIG8gWyhuZ01vZGVsKV0gc2VtIG8gYXRyaWJ1dG8gbmFtZSwgb2NvcnJlcsOhIHVtIGVycm8gZGUgYW5ndWxhci5cbiAqIEVudMOjbyBzZXLDoSBuZWNlc3PDoXJpbyBpbmZvcm1hciBvIGF0cmlidXRvIG5hbWUgb3UgbyBhdHJpYnV0byBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIuXG4gKiBgYGBcbiAqIDxwby1sb29rdXBcbiAqICAgWyhuZ01vZGVsKV09XCJwZXNzb2Eubm9tZVwiXG4gKiAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cbiAqIDwvcG8tbG9va3VwPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbG9va3VwLWJhc2ljXCIgdGl0bGU9XCJQTyBMb29rdXAgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1iYXNpYy9zYW1wbGUtcG8tbG9va3VwLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1iYXNpYy9zYW1wbGUtcG8tbG9va3VwLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWxvb2t1cC1sYWJzXCIgdGl0bGU9XCJQTyBMb29rdXAgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWxhYnMvc2FtcGxlLXBvLWxvb2t1cC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1sYWJzL3NhbXBsZS1wby1sb29rdXAtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtaGVyb1wiIHRpdGxlPVwiUE8gTG9va3VwIC0gSGVyb1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8vc2FtcGxlLXBvLWxvb2t1cC1oZXJvLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1oZXJvL3NhbXBsZS1wby1sb29rdXAtaGVyby5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtaGVyby1yZWFjdGl2ZS1mb3JtXCIgdGl0bGU9XCJQTyBMb29rdXAgLSBIZXJvIFJlYWN0aXZlIEZvcm1cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1oZXJvLXJlYWN0aXZlLWZvcm0vc2FtcGxlLXBvLWxvb2t1cC1oZXJvLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtc3ctZmlsbXNcIiB0aXRsZT1cIlBPIExvb2t1cCAtIFN0YXIgV2FycyBmaWxtc1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zL3NhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zL3NhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1zdy1maWxtcy9zYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtbXVsdGlwbGVcIiB0aXRsZT1cIlBPIExvb2t1cCAtIE11bHRpcGxlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUvc2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUvc2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLW11bHRpcGxlL3NhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzXG59KVxuZXhwb3J0IGNsYXNzIFBvTG9va3VwQ29tcG9uZW50IGV4dGVuZHMgUG9Mb29rdXBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIERvQ2hlY2sge1xuICBAVmlld0NoaWxkKCdpbnAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcblxuICBpbml0aWFsaXplZCA9IGZhbHNlO1xuICB0aW1lb3V0UmVzaXplO1xuICB2aXNpYmxlRWxlbWVudCA9IGZhbHNlO1xuXG4gIGRpc2NsYWltZXJzID0gW107XG4gIHZpc2libGVEaXNjbGFpbWVycyA9IFtdO1xuXG4gIGlkID0gYHBvLWxvb2t1cFske3V1aWQoKX1dYDtcblxuICBwcml2YXRlIG1vZGFsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGdldCBhdXRvY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9BdXRvY29tcGxldGUgPyAnb2ZmJyA6ICdvbic7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcG9Mb29rdXBGaWx0ZXJTZXJ2aWNlOiBQb0xvb2t1cEZpbHRlclNlcnZpY2UsXG4gICAgcG9Mb29rdXBNb2RhbFNlcnZpY2U6IFBvTG9va3VwTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihwb0xvb2t1cEZpbHRlclNlcnZpY2UsIGluamVjdG9yLCBwb0xvb2t1cE1vZGFsU2VydmljZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICBjb25zdCBpbnB1dFdpZHRoID0gdGhpcy5pbnB1dEVsPy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIC8vIFBlcm1pdGUgcXVlIG9zIGRpc2NsYWltZXJzIHNlamFtIGNhbGN1bGFkb3MgbmEgcHJpbWVpcmEgdmV6IHF1ZSBvIGNvbXBvbmVudGUgdG9ybmEtc2Ugdmlzw612ZWwsXG4gICAgLy8gZXZpdGFuZG8gY29tIGlzc28sIHByb2JsZW1hcyBjb20gVGFicyBvdSBEaXZzIHF1ZSBpbmljaWVtIGVzY29uZGlkYXMuXG4gICAgaWYgKChpbnB1dFdpZHRoICYmICF0aGlzLnZpc2libGVFbGVtZW50ICYmIHRoaXMuaW5pdGlhbGl6ZWQpIHx8IChpbnB1dFdpZHRoICYmIHRoaXMuaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXMpKSB7XG4gICAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG4gICAgICB0aGlzLnZpc2libGVFbGVtZW50ID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLm1vZGFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm1vZGFsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9Mb29rdXBDb21wb25lbnQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gICAqXG4gICAqIC4uLlxuICAgKlxuICAgKiBAVmlld0NoaWxkKFBvTG9va3VwQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBsb29rdXA6IFBvTG9va3VwQ29tcG9uZW50O1xuICAgKlxuICAgKiBmb2N1c0xvb2t1cCgpIHtcbiAgICogICB0aGlzLmxvb2t1cC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Mb29rdXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBbGxvd2VkT3Blbk1vZGFsKCkpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWR2YW5jZWRGaWx0ZXJzLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmaWx0ZXJQYXJhbXMsXG4gICAgICAgIGxpdGVyYWxzLFxuICAgICAgICBpbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIGZpZWxkTGFiZWwsXG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGNoYW5nZVZpc2libGVDb2x1bW5zLFxuICAgICAgICBjb2x1bW5SZXN0b3JlTWFuYWdlclxuICAgICAgfSA9IHRoaXM7XG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLmNoZWNrU2VsZWN0ZWRJdGVtcygpO1xuXG4gICAgICB0aGlzLnBvTG9va3VwTW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbCh7XG4gICAgICAgIGFkdmFuY2VkRmlsdGVycyxcbiAgICAgICAgc2VydmljZSxcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgZmlsdGVyUGFyYW1zLFxuICAgICAgICB0aXRsZTogdGhpcy5sYWJlbCxcbiAgICAgICAgbGl0ZXJhbHMsXG4gICAgICAgIGluZmluaXRlU2Nyb2xsLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgZmllbGRMYWJlbCxcbiAgICAgICAgZmllbGRWYWx1ZSxcbiAgICAgICAgY2hhbmdlVmlzaWJsZUNvbHVtbnMsXG4gICAgICAgIGNvbHVtblJlc3RvcmVNYW5hZ2VyXG4gICAgICB9KTtcblxuICAgICAgaWYgKCF0aGlzLm1vZGFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMubW9kYWxTdWJzY3JpcHRpb24gPSB0aGlzLnBvTG9va3VwTW9kYWxTZXJ2aWNlLnNlbGVjdFZhbHVlRXZlbnQuc3Vic2NyaWJlKHNlbGVjdGVkT3B0aW9ucyA9PiB7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAxIHx8IHRoaXMuZGlzY2xhaW1lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNldERpc2NsYWltZXJzKHNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuc2VsZWN0TW9kZWwoc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hlY2tTZWxlY3RlZEl0ZW1zKCkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAoIXRoaXMuZGlzY2xhaW1lcnMubGVuZ3RoICYmIHRoaXMudmFsdWVUb01vZGVsPy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFt7IHZhbHVlOiB0aGlzLnZhbHVlVG9Nb2RlbFswXSwgbGFiZWw6IHRoaXMub2xkVmFsdWUsIC4uLnRoaXMuc2VsZWN0ZWRPcHRpb25zWzBdIH1dO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5kaXNjbGFpbWVycztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWVUb01vZGVsO1xuICAgIH1cbiAgfVxuXG4gIHNldERpc2NsYWltZXJzKHNlbGVjdGVkT3B0aW9uczogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuZGlzY2xhaW1lcnMgPSBzZWxlY3RlZE9wdGlvbnMubWFwKHNlbGVjdGVkT3B0aW9uID0+ICh7XG4gICAgICB2YWx1ZTogc2VsZWN0ZWRPcHRpb25bdGhpcy5maWVsZFZhbHVlXSxcbiAgICAgIGxhYmVsOiBzZWxlY3RlZE9wdGlvblt0aGlzLmZpZWxkTGFiZWxdLFxuICAgICAgLi4uc2VsZWN0ZWRPcHRpb25cbiAgICB9KSk7XG5cbiAgICB0aGlzLnZpc2libGVEaXNjbGFpbWVycyA9IFsuLi50aGlzLmRpc2NsYWltZXJzXTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgc2V0Vmlld1ZhbHVlKHZhbHVlOiBhbnksIG9iamVjdDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRFbCAmJiB0aGlzLmZpZWxkRm9ybWF0KSB7XG4gICAgICB0aGlzLnNldElucHV0VmFsdWVXaXBvaWVsZEZvcm1hdChvYmplY3QpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWVUb01vZGVsIHx8IHRoaXMudmFsdWVUb01vZGVsID09PSAwID8gdmFsdWUgOiAnJztcbiAgICB9XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldFZpZXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgfVxuXG4gIHNlYXJjaEV2ZW50KCkge1xuICAgIHRoaXMub25Ub3VjaGVkPy4oKTtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0Vmlld1ZhbHVlKCk7XG5cbiAgICBpZiAodGhpcy5vbGRWYWx1ZT8udG9TdHJpbmcoKSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoQnlJZCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VEaXNjbGFpbWVyKHZhbHVlKSB7XG4gICAgdGhpcy5kaXNjbGFpbWVycyA9IHRoaXMuZGlzY2xhaW1lcnMuZmlsdGVyKGRpc2NsYWltZXIgPT4gZGlzY2xhaW1lci52YWx1ZSAhPT0gdmFsdWUpO1xuICAgIHRoaXMudmFsdWVUb01vZGVsID0gdGhpcy52YWx1ZVRvTW9kZWwuZmlsdGVyKG1vZGVsID0+IG1vZGVsICE9PSB2YWx1ZSk7XG5cbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMudmFsdWVUb01vZGVsLmxlbmd0aCA/IHRoaXMudmFsdWVUb01vZGVsIDogdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHVwZGF0ZVZpc2libGVJdGVtcygpIHtcbiAgICBpZiAodGhpcy5kaXNjbGFpbWVycyAmJiB0aGlzLmRpc2NsYWltZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmlzaWJsZURpc2NsYWltZXJzID0gW10uY29uY2F0KHRoaXMuZGlzY2xhaW1lcnMpO1xuICAgIH1cblxuICAgIHRoaXMuZGVib3VuY2VSZXNpemUoKTtcblxuICAgIGlmICghdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgIHRoaXMuaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXMgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGRlYm91bmNlUmVzaXplKCkge1xuICAgIGlmICghdGhpcy5hdXRvSGVpZ2h0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0UmVzaXplKTtcbiAgICAgIHRoaXMudGltZW91dFJlc2l6ZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVZpc2libGVJdGVtcygpO1xuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBnZXRJbnB1dFdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIDQwO1xuICB9XG5cbiAgZ2V0RGlzY2xhaW1lcnNXaWR0aCgpIHtcbiAgICBjb25zdCBkaXNjbGFpbWVycyA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3BvLWRpc2NsYWltZXInKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShkaXNjbGFpbWVycykubWFwKGRpc2NsYWltZXIgPT4gZGlzY2xhaW1lclsnb2Zmc2V0V2lkdGgnXSk7XG4gIH1cblxuICBjYWxjdWxhdGVWaXNpYmxlSXRlbXMoKSB7XG4gICAgY29uc3QgZGlzY2xhaW1lcnNXaWR0aCA9IHRoaXMuZ2V0RGlzY2xhaW1lcnNXaWR0aCgpO1xuICAgIGNvbnN0IGlucHV0V2lkdGggPSB0aGlzLmdldElucHV0V2lkdGgoKTtcbiAgICBjb25zdCBleHRyYURpc2NsYWltZXJTaXplID0gMzg7XG4gICAgY29uc3QgZGlzY2xhaW1lcnNWaXNpYmxlID0gZGlzY2xhaW1lcnNXaWR0aFswXTtcblxuICAgIGNvbnN0IG5ld0Rpc2NsYWltZXJzID0gW107XG4gICAgY29uc3QgZGlzY2xhaW1lcnMgPSB0aGlzLmRpc2NsYWltZXJzO1xuXG4gICAgaWYgKGlucHV0V2lkdGggPiAwKSB7XG4gICAgICBsZXQgc3VtID0gMDtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBkaXNjbGFpbWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBzdW0gKz0gZGlzY2xhaW1lcnNXaWR0aFtpXTtcbiAgICAgICAgbmV3RGlzY2xhaW1lcnMucHVzaChkaXNjbGFpbWVyc1tpXSk7XG5cbiAgICAgICAgaWYgKHN1bSA+IGlucHV0V2lkdGgpIHtcbiAgICAgICAgICBzdW0gLT0gZGlzY2xhaW1lcnNXaWR0aFtpXTtcbiAgICAgICAgICB0aGlzLmlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGRpc2NsYWltZXJzVmlzaWJsZSB8fCAhZGlzY2xhaW1lcnMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChpID09PSBkaXNjbGFpbWVycy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1bSArIGV4dHJhRGlzY2xhaW1lclNpemUgPiBpbnB1dFdpZHRoKSB7XG4gICAgICAgICAgbmV3RGlzY2xhaW1lcnMuc3BsaWNlKC0yLCAyKTtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9ICcrJyArIChkaXNjbGFpbWVycy5sZW5ndGggKyAxIC0gaSkudG9TdHJpbmcoKTtcbiAgICAgICAgICBuZXdEaXNjbGFpbWVycy5wdXNoKHsgdmFsdWU6ICcnLCBsYWJlbDogbGFiZWwgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3RGlzY2xhaW1lcnMuc3BsaWNlKC0xLCAxKTtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9ICcrJyArIChkaXNjbGFpbWVycy5sZW5ndGggLSBpKS50b1N0cmluZygpO1xuICAgICAgICAgIG5ld0Rpc2NsYWltZXJzLnB1c2goeyB2YWx1ZTogJycsIGxhYmVsOiBsYWJlbCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmlzaWJsZURpc2NsYWltZXJzID0gWy4uLm5ld0Rpc2NsYWltZXJzXTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbGxvd2VkT3Blbk1vZGFsKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zZXJ2aWNlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vIHNlcnZpY2UgaW5mb3JtZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gISEodGhpcy5zZXJ2aWNlICYmICF0aGlzLmRpc2FibGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RmllbGRzKG9iamVjdFNlbGVjdGVkLCBwcm9wZXJ0aWVzKSB7XG4gICAgbGV0IGZvcm1hdGVkRmllbGQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcykpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICBpZiAob2JqZWN0U2VsZWN0ZWQgJiYgb2JqZWN0U2VsZWN0ZWRbcHJvcGVydHldKSB7XG4gICAgICAgICAgaWYgKCFmb3JtYXRlZEZpZWxkKSB7XG4gICAgICAgICAgICBmb3JtYXRlZEZpZWxkID0gb2JqZWN0U2VsZWN0ZWRbcHJvcGVydHldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtYXRlZEZpZWxkID0gZm9ybWF0ZWRGaWVsZCArICcgLSAnICsgb2JqZWN0U2VsZWN0ZWRbcHJvcGVydHldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghZm9ybWF0ZWRGaWVsZCkge1xuICAgICAgZm9ybWF0ZWRGaWVsZCA9IG9iamVjdFNlbGVjdGVkW3RoaXMuZmllbGRWYWx1ZV07XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXRlZEZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbnB1dFZhbHVlV2lwb2llbGRGb3JtYXQob2JqZWN0U2VsZWN0ZWQ6IGFueSkge1xuICAgIGNvbnN0IGlzRW1wdHkgPSBPYmplY3Qua2V5cyhvYmplY3RTZWxlY3RlZCkubGVuZ3RoID09PSAwO1xuICAgIGxldCBmaWVsZEZvcm1hdGVkO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWVsZEZvcm1hdCkpIHtcbiAgICAgIGZpZWxkRm9ybWF0ZWQgPSB0aGlzLmZvcm1hdEZpZWxkcyhvYmplY3RTZWxlY3RlZCwgdGhpcy5maWVsZEZvcm1hdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpZWxkRm9ybWF0ZWQgPSB0aGlzLmZpZWxkRm9ybWF0KG9iamVjdFNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLm9sZFZhbHVlID0gaXNFbXB0eSA/ICcnIDogZmllbGRGb3JtYXRlZDtcbiAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IGlzRW1wdHkgPyAnJyA6IGZpZWxkRm9ybWF0ZWQ7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPHBvLWZpZWxkLWNvbnRhaW5lclxuICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtwLWlkXT1cImlkXCJcbiAgW3AtbGFiZWxdPVwibGFiZWxcIlxuICBbcC1vcHRpb25hbF09XCJvcHRpb25hbFwiXG4gIFtwLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgW3Atc2hvdy1yZXF1aXJlZF09XCJzaG93UmVxdWlyZWRcIlxuPlxuICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWNvbnRlbnRcIiAqbmdJZj1cIiFkaXNjbGFpbWVycy5sZW5ndGg7IGVsc2UgZGlzY2xhaW1lcnNUZW1wbGF0ZVwiPlxuICAgIDxpbnB1dFxuICAgICAgI2lucFxuICAgICAgY2xhc3M9XCJwby1pbnB1dFwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW25nQ2xhc3NdPVwiY2xlYW4gJiYgaW5wLnZhbHVlID8gJ3BvLWlucHV0LWRvdWJsZS1pY29uLXJpZ2h0JyA6ICdwby1pbnB1dC1pY29uLXJpZ2h0J1wiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImRpc2FibGVkID8gJycgOiBwbGFjZWhvbGRlclwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgKGJsdXIpPVwic2VhcmNoRXZlbnQoKVwiXG4gICAgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1pY29uLWNvbnRhaW5lci1yaWdodFwiPlxuICAgICAgPHBvLWNsZWFuXG4gICAgICAgIGNsYXNzPVwicG8taWNvbi1pbnB1dFwiXG4gICAgICAgICpuZ0lmPVwiY2xlYW4gJiYgIWRpc2FibGVkXCJcbiAgICAgICAgW3AtZWxlbWVudC1yZWZdPVwiaW5wdXRFbFwiXG4gICAgICAgIChwLWNoYW5nZS1ldmVudCk9XCJjbGVhbk1vZGVsKClcIlxuICAgICAgPlxuICAgICAgPC9wby1jbGVhbj5cblxuICAgICAgPHNwYW5cbiAgICAgICAgI2ljb25Mb29rdXBcbiAgICAgICAgY2xhc3M9XCJwby1pY29uIHBvLWZpZWxkLWljb24gcG8taWNvbi1zZWFyY2ggcG8taWNvbi1pbnB1dFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuTG9va3VwKClcIlxuICAgICAgICAoZm9jdXMpPVwiaW5wLmZvY3VzKClcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20gW3AtaGVscF09XCJoZWxwXCIgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48L3BvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20+XG48L3BvLWZpZWxkLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNkaXNjbGFpbWVyc1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWNvbnRlbnRcIj5cbiAgICA8ZGl2XG4gICAgICAjaW5wXG4gICAgICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgY2xhc3M9XCJwby1pbnB1dCBwby1pbnB1dC1pY29uLXJpZ2h0IHBvLWxvb2t1cC1pbnB1dCBwby1pY29uLWlucHV0XCJcbiAgICAgIFtjbGFzcy5wby1sb29rdXAtaW5wdXQtYXV0b109XCJhdXRvSGVpZ2h0XCJcbiAgICAgIFtjbGFzcy5wby1sb29rdXAtaW5wdXQtc3RhdGljXT1cIiFhdXRvSGVpZ2h0XCJcbiAgICAgIFtjbGFzcy5wby1sb29rdXAtaW5wdXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGxhY2Vob2xkZXIgJiYgIWRpc2NsYWltZXJzPy5sZW5ndGhcIiBjbGFzcz1cInBvLWxvb2t1cC1pbnB1dC1wbGFjZWhvbGRlclwiPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8cG8tZGlzY2xhaW1lclxuICAgICAgICAqbmdGb3I9XCJsZXQgZGlzY2xhaW1lciBvZiB2aXNpYmxlRGlzY2xhaW1lcnNcIlxuICAgICAgICBjbGFzcz1cInBvLWxvb2t1cC1pbnB1dC1kaXNjbGFpbWVyXCJcbiAgICAgICAgW3AtbGFiZWxdPVwiZGlzY2xhaW1lci5sYWJlbFwiXG4gICAgICAgIFtwLXZhbHVlXT1cImRpc2NsYWltZXIudmFsdWVcIlxuICAgICAgICBbcC1oaWRlLWNsb3NlXT1cImRpc2NsYWltZXIudmFsdWUgPT09ICcnIHx8IGRpc2FibGVkXCJcbiAgICAgICAgW2NsYXNzLnBvLWNsaWNrYWJsZV09XCJkaXNjbGFpbWVyLnZhbHVlID09PSAnJyAmJiAhZGlzYWJsZWRcIlxuICAgICAgICAocC1jbG9zZS1hY3Rpb24pPVwiY2xvc2VEaXNjbGFpbWVyKGRpc2NsYWltZXIudmFsdWUpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tZGlzY2xhaW1lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1pY29uLWNvbnRhaW5lci1yaWdodFwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgI2ljb25Mb29rdXBcbiAgICAgICAgY2xhc3M9XCJwby1pY29uIHBvLWZpZWxkLWljb24gcG8taWNvbi1zZWFyY2ggcG8taWNvbi1pbnB1dFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbl09XCIhZGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3MucG8tZmllbGQtaWNvbi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvcGVuTG9va3VwKClcIlxuICAgICAgICAoZm9jdXMpPVwiaW5wLmZvY3VzKClcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFLVixTQUFTLEVBQ1QsdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7SUNFcEUsb0NBS0M7SUFEQyw4TEFBa0IsZUFBQSxtQkFBWSxDQUFBLElBQUM7SUFFakMsaUJBQVc7OztJQUhULDhDQUF5Qjs7OztJQWxCL0IsOEJBQThGLGtCQUFBO0lBVzFGLDJKQUFRLGVBQUEsb0JBQWEsQ0FBQSxJQUFDO0lBVnhCLGlCQVdFO0lBRUYsOEJBQTJDO0lBQ3pDLGtGQU1XO0lBRVgsbUNBUUM7SUFGQyw2SkFBUyxlQUFBLG9CQUFZLENBQUEsSUFBQywySUFDYixlQUFBLFdBQVcsQ0FBQSxJQURFO0lBR3hCLGlCQUFPLEVBQUEsRUFBQTs7OztJQTVCUCxlQUFTO0lBQVQs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QUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQ2xFLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7MkVBbFRVLGlCQUFpQjs2REFBakIsaUJBQWlCO21DQUNGLFVBQVU7Ozs7OENBSHBDLFNBQVM7WUMzR1gsNkNBT0M7WUFDQyxtRUFrQ007WUFDTiwrQ0FBK0Y7WUFDakcsaUJBQXFCO1lBRXJCLG9IQXVDYzs7O1lBcEZaLHlDQUF1QixnQkFBQSxzQkFBQSw0QkFBQSw0QkFBQSxxQ0FBQTtZQU9rQixlQUEyQjtZQUEzQiw4Q0FBMkIsaUJBQUE7WUFtQ3pDLGVBQWU7WUFBZixpQ0FBZSw0QkFBQTs7O3VGRGtFL0IsaUJBQWlCO2NBTjdCLFNBQVM7MkJBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLGFBQy9DLFNBQVM7MExBRzhDLE9BQU87a0JBQTdELFNBQVM7bUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRG9DaGVjayxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHV1aWQgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9Mb29rdXBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1sb29rdXAtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1sb29rdXAtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLWxvb2t1cC1tb2RhbC5zZXJ2aWNlJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgUG9Mb29rdXBGaWx0ZXJTZXJ2aWNlLFxuICBQb0xvb2t1cE1vZGFsU2VydmljZSxcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvTG9va3VwQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9LFxuICB7XG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0xvb2t1cENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfSxcbiAge1xuICAgIHByb3ZpZGU6IE5nQ29udHJvbCxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0xvb2t1cENvbXBvbmVudCksXG4gICAgbXVsdGk6IGZhbHNlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTG9va3VwQmFzZUNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFF1YW5kbyBleGlzdGUgbXVpdG9zIGRhZG9zIG8gcG8tbG9va3VwIHBvciBwYWRyw6NvIHRyYXogYXBlbmFzIDEwIGl0ZW5zIG5hIHRhYmVsYSBlIG9zIGRlbWFpcyBzw6NvIGNhcnJlZ2Fkb3MgcG9yIGRlbWFuZGEgYXRyYXbDqXMgZG9cbiAqIGJvdMOjbyAnQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zJy4gUGFyYSBxdWUgZnVuY2lvbmUgY29ycmV0YW1lbnRlLCDDqSBpbXBvcnRhbnRlIHF1ZSBvIHNlcnZpw6dvIHNpZ2Egb1xuICogW0d1aWEgZGUgaW1wbGVtZW50YcOnw6NvIGRhcyBBUElzIFRPVFZTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICpcbiAqIEltcG9ydGFudGU6XG4gKlxuICogLSBDYXNvIG8gcG8tbG9va3VwIGNvbnRlbmhhIG8gWyhuZ01vZGVsKV0gc2VtIG8gYXRyaWJ1dG8gbmFtZSwgb2NvcnJlcsOhIHVtIGVycm8gZGUgYW5ndWxhci5cbiAqIEVudMOjbyBzZXLDoSBuZWNlc3PDoXJpbyBpbmZvcm1hciBvIGF0cmlidXRvIG5hbWUgb3UgbyBhdHJpYnV0byBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIuXG4gKiBgYGBcbiAqIDxwby1sb29rdXBcbiAqICAgWyhuZ01vZGVsKV09XCJwZXNzb2Eubm9tZVwiXG4gKiAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cbiAqIDwvcG8tbG9va3VwPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbG9va3VwLWJhc2ljXCIgdGl0bGU9XCJQTyBMb29rdXAgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1iYXNpYy9zYW1wbGUtcG8tbG9va3VwLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1iYXNpYy9zYW1wbGUtcG8tbG9va3VwLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWxvb2t1cC1sYWJzXCIgdGl0bGU9XCJQTyBMb29rdXAgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWxhYnMvc2FtcGxlLXBvLWxvb2t1cC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1sYWJzL3NhbXBsZS1wby1sb29rdXAtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtaGVyb1wiIHRpdGxlPVwiUE8gTG9va3VwIC0gSGVyb1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8vc2FtcGxlLXBvLWxvb2t1cC1oZXJvLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1oZXJvL3NhbXBsZS1wby1sb29rdXAtaGVyby5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtaGVyby1yZWFjdGl2ZS1mb3JtXCIgdGl0bGU9XCJQTyBMb29rdXAgLSBIZXJvIFJlYWN0aXZlIEZvcm1cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1oZXJvLXJlYWN0aXZlLWZvcm0vc2FtcGxlLXBvLWxvb2t1cC1oZXJvLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS9zYW1wbGUtcG8tbG9va3VwLWhlcm8tcmVhY3RpdmUtZm9ybS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtc3ctZmlsbXNcIiB0aXRsZT1cIlBPIExvb2t1cCAtIFN0YXIgV2FycyBmaWxtc1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zL3NhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zL3NhbXBsZS1wby1sb29rdXAtc3ctZmlsbXMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWxvb2t1cC1zdy1maWxtcy9zYW1wbGUtcG8tbG9va3VwLXN3LWZpbG1zLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1sb29rdXAtbXVsdGlwbGVcIiB0aXRsZT1cIlBPIExvb2t1cCAtIE11bHRpcGxlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUvc2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUvc2FtcGxlLXBvLWxvb2t1cC1tdWx0aXBsZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbG9va3VwLW11bHRpcGxlL3NhbXBsZS1wby1sb29rdXAtbXVsdGlwbGUuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzXG59KVxuZXhwb3J0IGNsYXNzIFBvTG9va3VwQ29tcG9uZW50IGV4dGVuZHMgUG9Mb29rdXBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIERvQ2hlY2sge1xuICBAVmlld0NoaWxkKCdpbnAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcblxuICBpbml0aWFsaXplZCA9IGZhbHNlO1xuICB0aW1lb3V0UmVzaXplO1xuICB2aXNpYmxlRWxlbWVudCA9IGZhbHNlO1xuXG4gIGRpc2NsYWltZXJzID0gW107XG4gIHZpc2libGVEaXNjbGFpbWVycyA9IFtdO1xuXG4gIGlkID0gYHBvLWxvb2t1cFske3V1aWQoKX1dYDtcblxuICBwcml2YXRlIG1vZGFsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGdldCBhdXRvY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9BdXRvY29tcGxldGUgPyAnb2ZmJyA6ICdvbic7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcG9Mb29rdXBGaWx0ZXJTZXJ2aWNlOiBQb0xvb2t1cEZpbHRlclNlcnZpY2UsXG4gICAgcG9Mb29rdXBNb2RhbFNlcnZpY2U6IFBvTG9va3VwTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihwb0xvb2t1cEZpbHRlclNlcnZpY2UsIGluamVjdG9yLCBwb0xvb2t1cE1vZGFsU2VydmljZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICBjb25zdCBpbnB1dFdpZHRoID0gdGhpcy5pbnB1dEVsPy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIC8vIFBlcm1pdGUgcXVlIG9zIGRpc2NsYWltZXJzIHNlamFtIGNhbGN1bGFkb3MgbmEgcHJpbWVpcmEgdmV6IHF1ZSBvIGNvbXBvbmVudGUgdG9ybmEtc2Ugdmlzw612ZWwsXG4gICAgLy8gZXZpdGFuZG8gY29tIGlzc28sIHByb2JsZW1hcyBjb20gVGFicyBvdSBEaXZzIHF1ZSBpbmljaWVtIGVzY29uZGlkYXMuXG4gICAgaWYgKChpbnB1dFdpZHRoICYmICF0aGlzLnZpc2libGVFbGVtZW50ICYmIHRoaXMuaW5pdGlhbGl6ZWQpIHx8IChpbnB1dFdpZHRoICYmIHRoaXMuaXNDYWxjdWxhdGVWaXNpYmxlSXRlbXMpKSB7XG4gICAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG4gICAgICB0aGlzLnZpc2libGVFbGVtZW50ID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLm1vZGFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm1vZGFsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9Mb29rdXBDb21wb25lbnQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gICAqXG4gICAqIC4uLlxuICAgKlxuICAgKiBAVmlld0NoaWxkKFBvTG9va3VwQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBsb29rdXA6IFBvTG9va3VwQ29tcG9uZW50O1xuICAgKlxuICAgKiBmb2N1c0xvb2t1cCgpIHtcbiAgICogICB0aGlzLmxvb2t1cC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Mb29rdXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBbGxvd2VkT3Blbk1vZGFsKCkpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWR2YW5jZWRGaWx0ZXJzLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmaWx0ZXJQYXJhbXMsXG4gICAgICAgIGhpZGVDb2x1bW5zTWFuYWdlcixcbiAgICAgICAgbGl0ZXJhbHMsXG4gICAgICAgIGluZmluaXRlU2Nyb2xsLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgZmllbGRMYWJlbCxcbiAgICAgICAgZmllbGRWYWx1ZSxcbiAgICAgICAgY2hhbmdlVmlzaWJsZUNvbHVtbnMsXG4gICAgICAgIGNvbHVtblJlc3RvcmVNYW5hZ2VyXG4gICAgICB9ID0gdGhpcztcblxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuY2hlY2tTZWxlY3RlZEl0ZW1zKCk7XG5cbiAgICAgIHRoaXMucG9Mb29rdXBNb2RhbFNlcnZpY2Uub3Blbk1vZGFsKHtcbiAgICAgICAgYWR2YW5jZWRGaWx0ZXJzLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBmaWx0ZXJQYXJhbXMsXG4gICAgICAgIGhpZGVDb2x1bW5zTWFuYWdlcixcbiAgICAgICAgdGl0bGU6IHRoaXMubGFiZWwsXG4gICAgICAgIGxpdGVyYWxzLFxuICAgICAgICBpbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgIGZpZWxkTGFiZWwsXG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGNoYW5nZVZpc2libGVDb2x1bW5zLFxuICAgICAgICBjb2x1bW5SZXN0b3JlTWFuYWdlclxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5tb2RhbFN1YnNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLm1vZGFsU3Vic2NyaXB0aW9uID0gdGhpcy5wb0xvb2t1cE1vZGFsU2VydmljZS5zZWxlY3RWYWx1ZUV2ZW50LnN1YnNjcmliZShzZWxlY3RlZE9wdGlvbnMgPT4ge1xuICAgICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMSB8fCB0aGlzLmRpc2NsYWltZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXNjbGFpbWVycyhzZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnNlbGVjdE1vZGVsKHNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrU2VsZWN0ZWRJdGVtcygpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgaWYgKCF0aGlzLmRpc2NsYWltZXJzLmxlbmd0aCAmJiB0aGlzLnZhbHVlVG9Nb2RlbD8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBbeyB2YWx1ZTogdGhpcy52YWx1ZVRvTW9kZWxbMF0sIGxhYmVsOiB0aGlzLm9sZFZhbHVlLCAuLi50aGlzLnNlbGVjdGVkT3B0aW9uc1swXSB9XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZGlzY2xhaW1lcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlVG9Nb2RlbDtcbiAgICB9XG4gIH1cblxuICBzZXREaXNjbGFpbWVycyhzZWxlY3RlZE9wdGlvbnM6IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLmRpc2NsYWltZXJzID0gc2VsZWN0ZWRPcHRpb25zLm1hcChzZWxlY3RlZE9wdGlvbiA9PiAoe1xuICAgICAgdmFsdWU6IHNlbGVjdGVkT3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0sXG4gICAgICBsYWJlbDogc2VsZWN0ZWRPcHRpb25bdGhpcy5maWVsZExhYmVsXSxcbiAgICAgIC4uLnNlbGVjdGVkT3B0aW9uXG4gICAgfSkpO1xuXG4gICAgdGhpcy52aXNpYmxlRGlzY2xhaW1lcnMgPSBbLi4udGhpcy5kaXNjbGFpbWVyc107XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNldFZpZXdWYWx1ZSh2YWx1ZTogYW55LCBvYmplY3Q6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0RWwgJiYgdGhpcy5maWVsZEZvcm1hdCkge1xuICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlV2lwb2llbGRGb3JtYXQob2JqZWN0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlVG9Nb2RlbCB8fCB0aGlzLnZhbHVlVG9Nb2RlbCA9PT0gMCA/IHZhbHVlIDogJyc7XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXRWaWV3VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBzZWFyY2hFdmVudCgpIHtcbiAgICB0aGlzLm9uVG91Y2hlZD8uKCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZpZXdWYWx1ZSgpO1xuXG4gICAgaWYgKHRoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaEJ5SWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlRGlzY2xhaW1lcih2YWx1ZSkge1xuICAgIHRoaXMuZGlzY2xhaW1lcnMgPSB0aGlzLmRpc2NsYWltZXJzLmZpbHRlcihkaXNjbGFpbWVyID0+IGRpc2NsYWltZXIudmFsdWUgIT09IHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlVG9Nb2RlbCA9IHRoaXMudmFsdWVUb01vZGVsLmZpbHRlcihtb2RlbCA9PiBtb2RlbCAhPT0gdmFsdWUpO1xuXG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLnZhbHVlVG9Nb2RlbC5sZW5ndGggPyB0aGlzLnZhbHVlVG9Nb2RlbCA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICB1cGRhdGVWaXNpYmxlSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzY2xhaW1lcnMgJiYgdGhpcy5kaXNjbGFpbWVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnZpc2libGVEaXNjbGFpbWVycyA9IFtdLmNvbmNhdCh0aGlzLmRpc2NsYWltZXJzKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYm91bmNlUmVzaXplKCk7XG5cbiAgICBpZiAoIXRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICB0aGlzLmlzQ2FsY3VsYXRlVmlzaWJsZUl0ZW1zID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBkZWJvdW5jZVJlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMuYXV0b0hlaWdodCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFJlc2l6ZSk7XG4gICAgICB0aGlzLnRpbWVvdXRSZXNpemUgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SW5wdXRXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA0MDtcbiAgfVxuXG4gIGdldERpc2NsYWltZXJzV2lkdGgoKSB7XG4gICAgY29uc3QgZGlzY2xhaW1lcnMgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwby1kaXNjbGFpbWVyJyk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZGlzY2xhaW1lcnMpLm1hcChkaXNjbGFpbWVyID0+IGRpc2NsYWltZXJbJ29mZnNldFdpZHRoJ10pO1xuICB9XG5cbiAgY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCkge1xuICAgIGNvbnN0IGRpc2NsYWltZXJzV2lkdGggPSB0aGlzLmdldERpc2NsYWltZXJzV2lkdGgoKTtcbiAgICBjb25zdCBpbnB1dFdpZHRoID0gdGhpcy5nZXRJbnB1dFdpZHRoKCk7XG4gICAgY29uc3QgZXh0cmFEaXNjbGFpbWVyU2l6ZSA9IDM4O1xuICAgIGNvbnN0IGRpc2NsYWltZXJzVmlzaWJsZSA9IGRpc2NsYWltZXJzV2lkdGhbMF07XG5cbiAgICBjb25zdCBuZXdEaXNjbGFpbWVycyA9IFtdO1xuICAgIGNvbnN0IGRpc2NsYWltZXJzID0gdGhpcy5kaXNjbGFpbWVycztcblxuICAgIGlmIChpbnB1dFdpZHRoID4gMCkge1xuICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZGlzY2xhaW1lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc3VtICs9IGRpc2NsYWltZXJzV2lkdGhbaV07XG4gICAgICAgIG5ld0Rpc2NsYWltZXJzLnB1c2goZGlzY2xhaW1lcnNbaV0pO1xuXG4gICAgICAgIGlmIChzdW0gPiBpbnB1dFdpZHRoKSB7XG4gICAgICAgICAgc3VtIC09IGRpc2NsYWltZXJzV2lkdGhbaV07XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXNjbGFpbWVyc1Zpc2libGUgfHwgIWRpc2NsYWltZXJzLmxlbmd0aCkge1xuICAgICAgICBpZiAoaSA9PT0gZGlzY2xhaW1lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5pc0NhbGN1bGF0ZVZpc2libGVJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdW0gKyBleHRyYURpc2NsYWltZXJTaXplID4gaW5wdXRXaWR0aCkge1xuICAgICAgICAgIG5ld0Rpc2NsYWltZXJzLnNwbGljZSgtMiwgMik7XG4gICAgICAgICAgY29uc3QgbGFiZWwgPSAnKycgKyAoZGlzY2xhaW1lcnMubGVuZ3RoICsgMSAtIGkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgbmV3RGlzY2xhaW1lcnMucHVzaCh7IHZhbHVlOiAnJywgbGFiZWw6IGxhYmVsIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0Rpc2NsYWltZXJzLnNwbGljZSgtMSwgMSk7XG4gICAgICAgICAgY29uc3QgbGFiZWwgPSAnKycgKyAoZGlzY2xhaW1lcnMubGVuZ3RoIC0gaSkudG9TdHJpbmcoKTtcbiAgICAgICAgICBuZXdEaXNjbGFpbWVycy5wdXNoKHsgdmFsdWU6ICcnLCBsYWJlbDogbGFiZWwgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZpc2libGVEaXNjbGFpbWVycyA9IFsuLi5uZXdEaXNjbGFpbWVyc107XG4gIH1cblxuICBwcml2YXRlIGlzQWxsb3dlZE9wZW5Nb2RhbCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgY29uc29sZS53YXJuKCdObyBzZXJ2aWNlIGluZm9ybWVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhKHRoaXMuc2VydmljZSAmJiAhdGhpcy5kaXNhYmxlZCk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEZpZWxkcyhvYmplY3RTZWxlY3RlZCwgcHJvcGVydGllcykge1xuICAgIGxldCBmb3JtYXRlZEZpZWxkO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG9iamVjdFNlbGVjdGVkICYmIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XSkge1xuICAgICAgICAgIGlmICghZm9ybWF0ZWRGaWVsZCkge1xuICAgICAgICAgICAgZm9ybWF0ZWRGaWVsZCA9IG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0ZWRGaWVsZCA9IGZvcm1hdGVkRmllbGQgKyAnIC0gJyArIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWZvcm1hdGVkRmllbGQpIHtcbiAgICAgIGZvcm1hdGVkRmllbGQgPSBvYmplY3RTZWxlY3RlZFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0ZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5wdXRWYWx1ZVdpcG9pZWxkRm9ybWF0KG9iamVjdFNlbGVjdGVkOiBhbnkpIHtcbiAgICBjb25zdCBpc0VtcHR5ID0gT2JqZWN0LmtleXMob2JqZWN0U2VsZWN0ZWQpLmxlbmd0aCA9PT0gMDtcbiAgICBsZXQgZmllbGRGb3JtYXRlZDtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZmllbGRGb3JtYXQpKSB7XG4gICAgICBmaWVsZEZvcm1hdGVkID0gdGhpcy5mb3JtYXRGaWVsZHMob2JqZWN0U2VsZWN0ZWQsIHRoaXMuZmllbGRGb3JtYXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZEZvcm1hdGVkID0gdGhpcy5maWVsZEZvcm1hdChvYmplY3RTZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vbGRWYWx1ZSA9IGlzRW1wdHkgPyAnJyA6IGZpZWxkRm9ybWF0ZWQ7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBpc0VtcHR5ID8gJycgOiBmaWVsZEZvcm1hdGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXJcbiAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbcC1pZF09XCJpZFwiXG4gIFtwLWxhYmVsXT1cImxhYmVsXCJcbiAgW3Atb3B0aW9uYWxdPVwib3B0aW9uYWxcIlxuICBbcC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtwLXNob3ctcmVxdWlyZWRdPVwic2hvd1JlcXVpcmVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCIgKm5nSWY9XCIhZGlzY2xhaW1lcnMubGVuZ3RoOyBlbHNlIGRpc2NsYWltZXJzVGVtcGxhdGVcIj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnBcbiAgICAgIGNsYXNzPVwicG8taW5wdXRcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFtuZ0NsYXNzXT1cImNsZWFuICYmIGlucC52YWx1ZSA/ICdwby1pbnB1dC1kb3VibGUtaWNvbi1yaWdodCcgOiAncG8taW5wdXQtaWNvbi1yaWdodCdcIlxuICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJkaXNhYmxlZCA/ICcnIDogcGxhY2Vob2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIChibHVyKT1cInNlYXJjaEV2ZW50KClcIlxuICAgIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cbiAgICAgIDxwby1jbGVhblxuICAgICAgICBjbGFzcz1cInBvLWljb24taW5wdXRcIlxuICAgICAgICAqbmdJZj1cImNsZWFuICYmICFkaXNhYmxlZFwiXG4gICAgICAgIFtwLWVsZW1lbnQtcmVmXT1cImlucHV0RWxcIlxuICAgICAgICAocC1jaGFuZ2UtZXZlbnQpPVwiY2xlYW5Nb2RlbCgpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tY2xlYW4+XG5cbiAgICAgIDxzcGFuXG4gICAgICAgICNpY29uTG9va3VwXG4gICAgICAgIGNsYXNzPVwicG8taWNvbiBwby1maWVsZC1pY29uIHBvLWljb24tc2VhcmNoIHBvLWljb24taW5wdXRcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgW2NsYXNzLnBvLWZpZWxkLWljb25dPVwiIWRpc2FibGVkXCJcbiAgICAgICAgW2NsYXNzLnBvLWZpZWxkLWljb24tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib3Blbkxvb2t1cCgpXCJcbiAgICAgICAgKGZvY3VzKT1cImlucC5mb2N1cygpXCJcbiAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxwby1maWVsZC1jb250YWluZXItYm90dG9tIFtwLWhlbHBdPVwiaGVscFwiIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCI+PC9wby1maWVsZC1jb250YWluZXItYm90dG9tPlxuPC9wby1maWVsZC1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZGlzY2xhaW1lcnNUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPGRpdlxuICAgICAgI2lucFxuICAgICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIGNsYXNzPVwicG8taW5wdXQgcG8taW5wdXQtaWNvbi1yaWdodCBwby1sb29rdXAtaW5wdXQgcG8taWNvbi1pbnB1dFwiXG4gICAgICBbY2xhc3MucG8tbG9va3VwLWlucHV0LWF1dG9dPVwiYXV0b0hlaWdodFwiXG4gICAgICBbY2xhc3MucG8tbG9va3VwLWlucHV0LXN0YXRpY109XCIhYXV0b0hlaWdodFwiXG4gICAgICBbY2xhc3MucG8tbG9va3VwLWlucHV0LWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cInBsYWNlaG9sZGVyICYmICFkaXNjbGFpbWVycz8ubGVuZ3RoXCIgY2xhc3M9XCJwby1sb29rdXAtaW5wdXQtcGxhY2Vob2xkZXJcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHBvLWRpc2NsYWltZXJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRpc2NsYWltZXIgb2YgdmlzaWJsZURpc2NsYWltZXJzXCJcbiAgICAgICAgY2xhc3M9XCJwby1sb29rdXAtaW5wdXQtZGlzY2xhaW1lclwiXG4gICAgICAgIFtwLWxhYmVsXT1cImRpc2NsYWltZXIubGFiZWxcIlxuICAgICAgICBbcC12YWx1ZV09XCJkaXNjbGFpbWVyLnZhbHVlXCJcbiAgICAgICAgW3AtaGlkZS1jbG9zZV09XCJkaXNjbGFpbWVyLnZhbHVlID09PSAnJyB8fCBkaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzcy5wby1jbGlja2FibGVdPVwiZGlzY2xhaW1lci52YWx1ZSA9PT0gJycgJiYgIWRpc2FibGVkXCJcbiAgICAgICAgKHAtY2xvc2UtYWN0aW9uKT1cImNsb3NlRGlzY2xhaW1lcihkaXNjbGFpbWVyLnZhbHVlKVwiXG4gICAgICA+XG4gICAgICA8L3BvLWRpc2NsYWltZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgICNpY29uTG9va3VwXG4gICAgICAgIGNsYXNzPVwicG8taWNvbiBwby1maWVsZC1pY29uIHBvLWljb24tc2VhcmNoIHBvLWljb24taW5wdXRcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgW2NsYXNzLnBvLWZpZWxkLWljb25dPVwiIWRpc2FibGVkXCJcbiAgICAgICAgW2NsYXNzLnBvLWZpZWxkLWljb24tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib3Blbkxvb2t1cCgpXCJcbiAgICAgICAgKGZvY3VzKT1cImlucC5mb2N1cygpXCJcbiAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -30,7 +30,7 @@ export class PoLookupModalService {
|
|
|
30
30
|
* @param columnRestoreManager {function} Função que será executada quando for restaurar as colunas padrão.
|
|
31
31
|
*/
|
|
32
32
|
openModal(params) {
|
|
33
|
-
const { advancedFilters, service, columns, filterParams, title, literals, infiniteScroll, multiple, selectedItems, fieldLabel, fieldValue, changeVisibleColumns, columnRestoreManager } = params;
|
|
33
|
+
const { advancedFilters, service, columns, filterParams, hideColumnsManager, title, literals, infiniteScroll, multiple, selectedItems, fieldLabel, fieldValue, changeVisibleColumns, columnRestoreManager } = params;
|
|
34
34
|
this.componentRef = this.poComponentInjector.createComponentInApplication(PoLookupModalComponent);
|
|
35
35
|
this.componentRef.instance.advancedFilters = advancedFilters;
|
|
36
36
|
this.componentRef.instance.title = title;
|
|
@@ -48,6 +48,7 @@ export class PoLookupModalService {
|
|
|
48
48
|
this.componentRef.instance.fieldValue = fieldValue;
|
|
49
49
|
this.componentRef.instance.changeVisibleColumns = changeVisibleColumns;
|
|
50
50
|
this.componentRef.instance.columnRestoreManager = columnRestoreManager;
|
|
51
|
+
this.componentRef.instance.hideColumnsManager = hideColumnsManager;
|
|
51
52
|
this.componentRef.changeDetectorRef.detectChanges();
|
|
52
53
|
this.componentRef.instance.openModal();
|
|
53
54
|
}
|
|
@@ -70,4 +71,4 @@ export class PoLookupModalService {
|
|
|
70
71
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoLookupModalService, [{
|
|
71
72
|
type: Injectable
|
|
72
73
|
}], function () { return [{ type: i1.PoComponentInjectorService }]; }, null); })();
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbG9va3VwL3NlcnZpY2VzL3BvLWxvb2t1cC1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU92RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBRXRGOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBS1g7SUFKcEIsZ0JBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFdEQsWUFBWSxHQUFzQixJQUFJLENBQUM7SUFFL0MsWUFBb0IsbUJBQStDO1FBQS9DLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNEI7SUFBRyxDQUFDO0lBRXZFOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsU0FBUyxDQUFDLE1BZVQ7UUFDQyxNQUFNLEVBQ0osZUFBZSxFQUNmLE9BQU8sRUFDUCxPQUFPLEVBQ1AsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixLQUFLLEVBQ0wsUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLFVBQVUsRUFDVixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNyQixHQUFHLE1BQU0sQ0FBQztRQUVYLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLDRCQUE0QixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQ25FLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQU87UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtZQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsc0VBQXNFO0lBQ3RFLFdBQVcsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhFQTFGVSxvQkFBb0I7Z0VBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7O3VGQUFwQixvQkFBb0I7Y0FEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIENvbXBvbmVudFJlZiwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1GaWVsZCB9IGZyb20gJy4vLi4vLi4vLi4vcG8tZHluYW1pYy9wby1keW5hbWljLWZvcm0vcG8tZHluYW1pYy1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NvbXBvbmVudEluamVjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWNvbXBvbmVudC1pbmplY3Rvci9wby1jb21wb25lbnQtaW5qZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBQb0xvb2t1cENvbHVtbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbG9va3VwL2ludGVyZmFjZXMvcG8tbG9va3VwLWNvbHVtbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLWxvb2t1cC9pbnRlcmZhY2VzL3BvLWxvb2t1cC1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTG9va3VwTGl0ZXJhbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3BvLWxvb2t1cC1tb2RhbC9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50JztcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBTZXJ2acOnbyByZXNwb25zw6F2ZWwgcG9yIGNvbnRyb2xhciBhIGFiZXJ0dXJhIGRvIGNvbXBvbmVudGUgUG8gTG9va3VwIE1vZGFsLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9Mb29rdXBNb2RhbFNlcnZpY2Uge1xuICBzZWxlY3RWYWx1ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb0NvbXBvbmVudEluamVjdG9yOiBQb0NvbXBvbmVudEluamVjdG9yU2VydmljZSkge31cblxuICAvKipcbiAgICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGFicmlyIGEgbW9kYWwgZGUgYnVzY2EgZGFzIGluZm9ybWHDp8O1ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBhZHZhbmNlZEZpbHRlcnMge0FycmF5PFBvRHluYW1pY0Zvcm1GaWVsZD59IE9iamV0byB1dGlsaXphZG8gcGFyYSBjcmlhciBvIGJ1c2NhIGF2YW7Dp2FkYS5cbiAgICogQHBhcmFtIHNlcnZpY2Uge1BvTG9va3VwRmlsdGVyfSBTZXJ2acOnbyByZXNwb25zw6F2ZWwgcG9yIHJlYWxpemFyIGEgYnVzY2Egbm8gc2VydmnDp28gZG9zIGRhZG9zLlxuICAgKiBAcGFyYW0gY29sdW1ucyB7QXJyYXk8UG9Mb29rdXBDb2x1bW4+fSBEZWZpbmnDp8OjbyBkYXMgY29sdW5hcyBuYSBtb2RhbCBkZSBidXNjYS5cbiAgICogQHBhcmFtIGZpbHRlclBhcmFtcyB7YW55fSBWYWxvciBxdWUgc2Vyw6EgcmVwYXNzYWRvIGFvcyBtw6l0b2RvcyBkbyBzZXJ2acOnbyBwYXJhIGF1eGlsaWFyIG5vIGZpbHRybyBkb3MgZGFkb3MuXG4gICAqIEBwYXJhbSB0aXRsZSB7c3RyaW5nfSBEZWZpbmnDp8OjbyBkbyB0w610dWxvIGRhIG1vZGFsLlxuICAgKiBAcGFyYW0gbGl0ZXJhbHMge1BvTG9va3VwTGl0ZXJhbHN9IExpdGVyYWlzIHV0aWxpemFkYXMgbm8gY29tcG9uZW50ZS5cbiAgICogQHBhcmFtIHNlbGVjdGVkSXRlbXMge2FueX0gVmFsb3IgcXVlIGVzdMOhIHNlbGVjaW9uYWRvIHF1ZSBzZXLDoSByZXBhc3NhZG8gcGFyYSBvIG1vZGFsIHBhcmEgYXByZXNlbnRhciBuYSB0YWJlbGEuXG4gICAqIEBwYXJhbSBmaWVsZExhYmVsIHtzdHJpbmd9IFZhbG9yIHF1ZSBzZXLDoSB1dGlsaXphZG8gY29tbyBkZXNjcmnDp8OjbyBkbyBjYW1wby5cbiAgICogQHBhcmFtIGZpZWxkVmFsdWUge3N0cmluZ30gVmFsb3IgcXVlIHNlcsOhIHV0aWxpemFkbyBjb21vIHZhbG9yIGRvIGNhbXBvLlxuICAgKiBAcGFyYW0gY2hhbmdlVmlzaWJsZUNvbHVtbnMge2Z1bmN0aW9ufSBGdW7Dp8OjbyBxdWUgc2Vyw6EgZXhlY3V0YWRhIHF1YW5kbyBmb3IgYWx0ZXJhZGEgYSB2aXNpYmlsaWRhZGUgZGFzIGNvbHVuYXMuXG4gICAqIEBwYXJhbSBjb2x1bW5SZXN0b3JlTWFuYWdlciB7ZnVuY3Rpb259IEZ1bsOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgcXVhbmRvIGZvciByZXN0YXVyYXIgYXMgY29sdW5hcyBwYWRyw6NvLlxuICAgKi9cbiAgb3Blbk1vZGFsKHBhcmFtczoge1xuICAgIGFkdmFuY2VkRmlsdGVyczogQXJyYXk8UG9EeW5hbWljRm9ybUZpZWxkPjtcbiAgICBzZXJ2aWNlOiBQb0xvb2t1cEZpbHRlcjtcbiAgICBjb2x1bW5zOiBBcnJheTxQb0xvb2t1cENvbHVtbj47XG4gICAgZmlsdGVyUGFyYW1zOiBhbnk7XG4gICAgaGlkZUNvbHVtbnNNYW5hZ2VyOiBib29sZWFuO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbGl0ZXJhbHM6IFBvTG9va3VwTGl0ZXJhbHM7XG4gICAgaW5maW5pdGVTY3JvbGw6IGJvb2xlYW47XG4gICAgbXVsdGlwbGU6IGJvb2xlYW47XG4gICAgc2VsZWN0ZWRJdGVtczogQXJyYXk8YW55PjtcbiAgICBmaWVsZExhYmVsOiBzdHJpbmc7XG4gICAgZmllbGRWYWx1ZTogc3RyaW5nO1xuICAgIGNoYW5nZVZpc2libGVDb2x1bW5zOiBGdW5jdGlvbjtcbiAgICBjb2x1bW5SZXN0b3JlTWFuYWdlcjogRnVuY3Rpb247XG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCB7XG4gICAgICBhZHZhbmNlZEZpbHRlcnMsXG4gICAgICBzZXJ2aWNlLFxuICAgICAgY29sdW1ucyxcbiAgICAgIGZpbHRlclBhcmFtcyxcbiAgICAgIGhpZGVDb2x1bW5zTWFuYWdlcixcbiAgICAgIHRpdGxlLFxuICAgICAgbGl0ZXJhbHMsXG4gICAgICBpbmZpbml0ZVNjcm9sbCxcbiAgICAgIG11bHRpcGxlLFxuICAgICAgc2VsZWN0ZWRJdGVtcyxcbiAgICAgIGZpZWxkTGFiZWwsXG4gICAgICBmaWVsZFZhbHVlLFxuICAgICAgY2hhbmdlVmlzaWJsZUNvbHVtbnMsXG4gICAgICBjb2x1bW5SZXN0b3JlTWFuYWdlclxuICAgIH0gPSBwYXJhbXM7XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMucG9Db21wb25lbnRJbmplY3Rvci5jcmVhdGVDb21wb25lbnRJbkFwcGxpY2F0aW9uKFBvTG9va3VwTW9kYWxDb21wb25lbnQpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmFkdmFuY2VkRmlsdGVycyA9IGFkdmFuY2VkRmlsdGVycztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50aXRsZSA9IHRpdGxlO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlclNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlclBhcmFtcyA9IGZpbHRlclBhcmFtcztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5saXRlcmFscyA9IGxpdGVyYWxzO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLm1vZGVsLnN1YnNjcmliZSgkZXZlbnQgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RWYWx1ZSgkZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmluZmluaXRlU2Nyb2xsID0gaW5maW5pdGVTY3JvbGw7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubXVsdGlwbGUgPSBtdWx0aXBsZTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZExhYmVsID0gZmllbGRMYWJlbDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZFZhbHVlID0gZmllbGRWYWx1ZTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jaGFuZ2VWaXNpYmxlQ29sdW1ucyA9IGNoYW5nZVZpc2libGVDb2x1bW5zO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbHVtblJlc3RvcmVNYW5hZ2VyID0gY29sdW1uUmVzdG9yZU1hbmFnZXI7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaGlkZUNvbHVtbnNNYW5hZ2VyID0gaGlkZUNvbHVtbnNNYW5hZ2VyO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIHNldENoYW5nZUNvbHVtbnMoY29sdW1ucykge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRXN0ZSBtZXRvZG8gw6kgY2hhbWFkbyBxdWFuZG8gw6kgc2VsZWNpb25hZG8gdW0gaXRlbSBuYSBsb29rdXAgbW9kYWwuXG4gIHNlbGVjdFZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdFZhbHVlRXZlbnQuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
|