@po-ui/ng-components 18.3.0 → 18.5.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.
Files changed (35) hide show
  1. package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.mjs +27 -2
  2. package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.mjs +7 -3
  3. package/esm2022/lib/components/po-field/po-combo/po-combo-base.component.mjs +2 -1
  4. package/esm2022/lib/components/po-field/po-combo/po-combo.component.mjs +66 -47
  5. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.mjs +8 -4
  6. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +52 -34
  7. package/esm2022/lib/components/po-listbox/po-listbox-base.component.mjs +6 -2
  8. package/esm2022/lib/components/po-listbox/po-listbox.component.mjs +23 -5
  9. package/esm2022/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.mjs +10 -4
  10. package/esm2022/lib/components/po-tabs/po-tabs.component.mjs +2 -3
  11. package/fesm2022/po-ui-ng-components.mjs +217 -119
  12. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  13. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.d.ts +23 -1
  14. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.d.ts +1 -0
  15. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +1 -0
  16. package/lib/components/po-field/po-combo/po-combo.component.d.ts +3 -0
  17. package/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.d.ts +2 -1
  18. package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +3 -0
  19. package/lib/components/po-listbox/po-listbox-base.component.d.ts +2 -1
  20. package/lib/components/po-listbox/po-listbox.component.d.ts +2 -0
  21. package/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.d.ts +9 -3
  22. package/package.json +4 -4
  23. package/po-ui-ng-components-18.5.0.tgz +0 -0
  24. package/schematics/ng-add/index.js +1 -1
  25. package/schematics/ng-update/v14/index.js +1 -1
  26. package/schematics/ng-update/v15/index.js +1 -1
  27. package/schematics/ng-update/v16/index.js +1 -1
  28. package/schematics/ng-update/v17/index.js +1 -1
  29. package/schematics/ng-update/v18/index.js +2 -2
  30. package/schematics/ng-update/v2/index.js +1 -1
  31. package/schematics/ng-update/v3/index.js +1 -1
  32. package/schematics/ng-update/v4/index.js +1 -1
  33. package/schematics/ng-update/v5/index.js +1 -1
  34. package/schematics/ng-update/v6/index.js +1 -1
  35. package/po-ui-ng-components-18.3.0.tgz +0 -0
@@ -95,6 +95,8 @@ function PoListBoxComponent_div_5_Template(rf, ctx) { if (rf & 1) {
95
95
  } if (rf & 2) {
96
96
  const ctx_r1 = i0.ɵɵnextContext();
97
97
  i0.ɵɵclassProp("po-listbox-container-loading-default", !ctx_r1.infiniteLoading);
98
+ i0.ɵɵadvance();
99
+ i0.ɵɵproperty("p-size", ctx_r1.getSizeLoading())("p-text", ctx_r1.getTextLoading());
98
100
  } }
99
101
  function PoListBoxComponent_ng_template_6_div_0_Template(rf, ctx) { if (rf & 1) {
100
102
  i0.ɵɵelementStart(0, "div", 21)(1, "span");
@@ -242,6 +244,22 @@ export class PoListBoxComponent extends PoListBoxBaseComponent {
242
244
  this.includeInfiniteScroll();
243
245
  }
244
246
  }
247
+ getSizeLoading() {
248
+ const width = this.listbox.nativeElement.offsetWidth || this.containerWidth;
249
+ if (width > 180) {
250
+ return 'md';
251
+ }
252
+ else if (width >= 140) {
253
+ return 'sm';
254
+ }
255
+ else {
256
+ return 'xs';
257
+ }
258
+ }
259
+ getTextLoading() {
260
+ const width = this.listbox.nativeElement.offsetWidth || this.containerWidth;
261
+ return width < 140 ? ' ' : '';
262
+ }
245
263
  hasInfiniteScroll() {
246
264
  this.changeDetector.detectChanges();
247
265
  return this.infiniteScroll && this.listboxItemList?.nativeElement.scrollHeight;
@@ -312,11 +330,11 @@ export class PoListBoxComponent extends PoListBoxBaseComponent {
312
330
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listbox = _t.first);
313
331
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listboxItemList = _t.first);
314
332
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchElement = _t.first);
315
- } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c4, decls: 8, vars: 8, consts: [["listbox", ""], ["noDataTemplate", ""], ["searchElement", ""], ["listboxItemList", ""], [1, "po-listbox", 3, "hidden"], [3, "p-literals", "p-field-value", "p-placeholder", "p-change", 4, "ngIf"], [4, "ngIf", "ngIfElse"], [3, "po-listbox-container-loading-default", 4, "ngIf"], [3, "p-change", "p-literals", "p-field-value", "p-placeholder"], ["cdkListbox", "", 1, "po-listbox-list", 3, "cdkListboxMultiple"], ["cdkOption", "selectAll", 3, "click", "keydown", 4, "ngIf"], [3, "po-listbox-item", "cdkOption", "cdkOptionDisabled", "click", "keydown", 4, "ngFor", "ngForOf"], ["cdkOption", "selectAll", 3, "click", "keydown"], ["p-type", "check", "p-value", "selectAll", 3, "p-selected", "p-label", "p-checkbox-value"], [3, "click", "keydown", "cdkOption", "cdkOptionDisabled"], ["class", "po-combo-item-title", 4, "ngIf"], [3, "p-disabled", "p-visible", "p-checkbox-value", "p-label", "p-value", "p-selected", "p-active-tabs", "p-separator", "p-danger", "p-icon", "p-type", "p-item", "p-tab-hide", "p-is-tabs", "p-field-value", "p-field-label", "p-template", "p-template-context", "p-search-value", "p-filter-mode", "p-filtering", "p-should-mark-letter", "p-compare-cache", "p-combo-service", "p-selectcheckbox-item", "p-selectcombo-item", "p-emit-item-tabs", "p-activated-tabs", 4, "ngIf"], [1, "po-combo-item-title"], [3, "p-selectcheckbox-item", "p-selectcombo-item", "p-emit-item-tabs", "p-activated-tabs", "p-disabled", "p-visible", "p-checkbox-value", "p-label", "p-value", "p-selected", "p-active-tabs", "p-separator", "p-danger", "p-icon", "p-type", "p-item", "p-tab-hide", "p-is-tabs", "p-field-value", "p-field-label", "p-template", "p-template-context", "p-search-value", "p-filter-mode", "p-filtering", "p-should-mark-letter", "p-compare-cache", "p-combo-service"], ["p-size", "md"], ["class", "po-listbox-container-no-data po-text-center", 4, "ngIf"], [1, "po-listbox-container-no-data", "po-text-center"]], template: function PoListBoxComponent_Template(rf, ctx) { if (rf & 1) {
333
+ } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c4, decls: 8, vars: 8, consts: [["listbox", ""], ["noDataTemplate", ""], ["searchElement", ""], ["listboxItemList", ""], [1, "po-listbox", 3, "hidden"], [3, "p-literals", "p-field-value", "p-placeholder", "p-change", 4, "ngIf"], [4, "ngIf", "ngIfElse"], [3, "po-listbox-container-loading-default", 4, "ngIf"], [3, "p-change", "p-literals", "p-field-value", "p-placeholder"], ["cdkListbox", "", 1, "po-listbox-list", 3, "cdkListboxMultiple"], ["cdkOption", "selectAll", 3, "click", "keydown", 4, "ngIf"], [3, "po-listbox-item", "cdkOption", "cdkOptionDisabled", "click", "keydown", 4, "ngFor", "ngForOf"], ["cdkOption", "selectAll", 3, "click", "keydown"], ["p-type", "check", "p-value", "selectAll", 3, "p-selected", "p-label", "p-checkbox-value"], [3, "click", "keydown", "cdkOption", "cdkOptionDisabled"], ["class", "po-combo-item-title", 4, "ngIf"], [3, "p-disabled", "p-visible", "p-checkbox-value", "p-label", "p-value", "p-selected", "p-active-tabs", "p-separator", "p-danger", "p-icon", "p-type", "p-item", "p-tab-hide", "p-is-tabs", "p-field-value", "p-field-label", "p-template", "p-template-context", "p-search-value", "p-filter-mode", "p-filtering", "p-should-mark-letter", "p-compare-cache", "p-combo-service", "p-selectcheckbox-item", "p-selectcombo-item", "p-emit-item-tabs", "p-activated-tabs", 4, "ngIf"], [1, "po-combo-item-title"], [3, "p-selectcheckbox-item", "p-selectcombo-item", "p-emit-item-tabs", "p-activated-tabs", "p-disabled", "p-visible", "p-checkbox-value", "p-label", "p-value", "p-selected", "p-active-tabs", "p-separator", "p-danger", "p-icon", "p-type", "p-item", "p-tab-hide", "p-is-tabs", "p-field-value", "p-field-label", "p-template", "p-template-context", "p-search-value", "p-filter-mode", "p-filtering", "p-should-mark-letter", "p-compare-cache", "p-combo-service"], [3, "p-size", "p-text"], ["class", "po-listbox-container-no-data po-text-center", 4, "ngIf"], [1, "po-listbox-container-no-data", "po-text-center"]], template: function PoListBoxComponent_Template(rf, ctx) { if (rf & 1) {
316
334
  i0.ɵɵprojectionDef(_c3);
317
335
  i0.ɵɵelementStart(0, "div", 4, 0);
318
336
  i0.ɵɵprojection(2);
319
- i0.ɵɵtemplate(3, PoListBoxComponent_po_search_list_3_Template, 2, 3, "po-search-list", 5)(4, PoListBoxComponent_ng_container_4_Template, 5, 3, "ng-container", 6)(5, PoListBoxComponent_div_5_Template, 2, 2, "div", 7)(6, PoListBoxComponent_ng_template_6_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
337
+ i0.ɵɵtemplate(3, PoListBoxComponent_po_search_list_3_Template, 2, 3, "po-search-list", 5)(4, PoListBoxComponent_ng_container_4_Template, 5, 3, "ng-container", 6)(5, PoListBoxComponent_div_5_Template, 2, 4, "div", 7)(6, PoListBoxComponent_ng_template_6_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
320
338
  i0.ɵɵelementEnd();
321
339
  } if (rf & 2) {
322
340
  const noDataTemplate_r7 = i0.ɵɵreference(7);
@@ -333,7 +351,7 @@ export class PoListBoxComponent extends PoListBoxBaseComponent {
333
351
  }
334
352
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoListBoxComponent, [{
335
353
  type: Component,
336
- args: [{ selector: 'po-listbox', template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [hidden]=\"visible\"\n>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n\n <po-search-list\n #searchElement\n *ngIf=\"!hideSearch && type === 'check'\"\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n ></po-search-list>\n\n <ng-container *ngIf=\"checkTemplate(); else noDataTemplate\">\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n <li\n cdkOption=\"selectAll\"\n *ngIf=\"type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n (keydown)=\"onSelectAllCheckboxKeyDown($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n >\n </po-item-list>\n </li>\n <li\n [class.po-listbox-item]=\"visible\"\n *ngFor=\"let item of items\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"\n returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false || item.options\n \"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n <label *ngIf=\"item.options\" class=\"po-combo-item-title\">\n {{ item.label }}\n </label>\n <po-item-list\n *ngIf=\"returnBooleanValue(item, 'visible') !== false && !item.options\"\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-checkbox-value]=\"isSelectedItem(item)\"\n [attr.data-item-list]=\"formatItemList(item)\"\n [p-label]=\"item[fieldLabel]\"\n [p-value]=\"item[fieldValue]\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n [p-active-tabs]=\"item.active\"\n [p-separator]=\"item.separator\"\n [p-danger]=\"item.danger || item.type === 'danger'\"\n [p-icon]=\"item.icon\"\n [p-type]=\"type\"\n [p-item]=\"item\"\n [p-tab-hide]=\"item.hide\"\n [p-is-tabs]=\"isTabs\"\n [p-field-value]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-template]=\"template\"\n [p-template-context]=\"item\"\n (p-selectcheckbox-item)=\"checkboxClicked($event)\"\n (p-selectcombo-item)=\"optionClicked(item)\"\n (p-emit-item-tabs)=\"onSelectTabs($event)\"\n (p-activated-tabs)=\"onActivatedTabs($event)\"\n [p-search-value]=\"searchValue\"\n [p-filter-mode]=\"filterMode\"\n [p-filtering]=\"isFiltering\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareCache\"\n [p-combo-service]=\"comboService\"\n ></po-item-list>\n </li>\n </ul>\n </ng-container>\n\n <div *ngIf=\"isServerSearching && type !== 'action'\" [class.po-listbox-container-loading-default]=\"!infiniteLoading\">\n <po-loading-overlay p-size=\"md\"></po-loading-overlay>\n </div>\n\n <ng-template #noDataTemplate>\n <div\n *ngIf=\"!items.length && !isServerSearching && type !== 'action'\"\n class=\"po-listbox-container-no-data po-text-center\"\n >\n <span> {{ literals.noItems }}</span>\n </div>\n </ng-template>\n</div>\n" }]
354
+ args: [{ selector: 'po-listbox', template: "<div\n #listbox\n class=\"po-listbox\"\n [class.po-listbox-check]=\"type === 'check' || type === 'option'\"\n [attr.data-type]=\"type\"\n [hidden]=\"visible\"\n>\n <ng-content select=\"[p-popup-header-template]\"></ng-content>\n\n <po-search-list\n #searchElement\n *ngIf=\"!hideSearch && type === 'check'\"\n (p-change)=\"callChangeSearch($event)\"\n [p-literals]=\"literalSearch\"\n [p-field-value]=\"fieldValueSearch\"\n [p-placeholder]=\"placeholderSearch\"\n ></po-search-list>\n\n <ng-container *ngIf=\"checkTemplate(); else noDataTemplate\">\n <ul #listboxItemList cdkListbox [cdkListboxMultiple]=\"type === 'check'\" class=\"po-listbox-list\">\n <li\n cdkOption=\"selectAll\"\n *ngIf=\"type === 'check' && items.length && !searchElement?.inputValue && !hideSelectAll\"\n [attr.aria-checked]=\"checkboxAllValue === null ? 'mixed' : checkboxAllValue\"\n (click)=\"changeAll.emit()\"\n (keydown)=\"changeAllEmit($event)\"\n (keydown)=\"onSelectAllCheckboxKeyDown($event)\"\n >\n <po-item-list\n [p-selected]=\"checkboxAllValue\"\n p-type=\"check\"\n [p-label]=\"literals.selectAll\"\n p-value=\"selectAll\"\n [p-checkbox-value]=\"checkboxAllValue\"\n >\n </po-item-list>\n </li>\n <li\n [class.po-listbox-item]=\"visible\"\n *ngFor=\"let item of items\"\n [cdkOption]=\"item[fieldLabel]\"\n [cdkOptionDisabled]=\"\n returnBooleanValue(item, 'disabled') || returnBooleanValue(item, 'visible') === false || item.options\n \"\n [attr.aria-selected]=\"isSelectedItem(item) || item.selected\"\n (click)=\"onSelectItem(item)\"\n (keydown)=\"onKeyDown(item, $event)\"\n >\n <label *ngIf=\"item.options\" class=\"po-combo-item-title\">\n {{ item.label }}\n </label>\n <po-item-list\n *ngIf=\"returnBooleanValue(item, 'visible') !== false && !item.options\"\n [p-disabled]=\"returnBooleanValue(item, 'disabled')\"\n [p-visible]=\"returnBooleanValue(item, 'visible')\"\n [p-checkbox-value]=\"isSelectedItem(item)\"\n [attr.data-item-list]=\"formatItemList(item)\"\n [p-label]=\"item[fieldLabel]\"\n [p-value]=\"item[fieldValue]\"\n [p-selected]=\"isSelectedItem(item) || item.selected\"\n [p-active-tabs]=\"item.active\"\n [p-separator]=\"item.separator\"\n [p-danger]=\"item.danger || item.type === 'danger'\"\n [p-icon]=\"item.icon\"\n [p-type]=\"type\"\n [p-item]=\"item\"\n [p-tab-hide]=\"item.hide\"\n [p-is-tabs]=\"isTabs\"\n [p-field-value]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-template]=\"template\"\n [p-template-context]=\"item\"\n (p-selectcheckbox-item)=\"checkboxClicked($event)\"\n (p-selectcombo-item)=\"optionClicked(item)\"\n (p-emit-item-tabs)=\"onSelectTabs($event)\"\n (p-activated-tabs)=\"onActivatedTabs($event)\"\n [p-search-value]=\"searchValue\"\n [p-filter-mode]=\"filterMode\"\n [p-filtering]=\"isFiltering\"\n [p-should-mark-letter]=\"shouldMarkLetters\"\n [p-compare-cache]=\"compareCache\"\n [p-combo-service]=\"comboService\"\n ></po-item-list>\n </li>\n </ul>\n </ng-container>\n\n <div *ngIf=\"isServerSearching && type !== 'action'\" [class.po-listbox-container-loading-default]=\"!infiniteLoading\">\n <po-loading-overlay [p-size]=\"getSizeLoading()\" [p-text]=\"getTextLoading()\"></po-loading-overlay>\n </div>\n\n <ng-template #noDataTemplate>\n <div\n *ngIf=\"!items.length && !isServerSearching && type !== 'action'\"\n class=\"po-listbox-container-no-data po-text-center\"\n >\n <span> {{ literals.noItems }}</span>\n </div>\n </ng-template>\n</div>\n" }]
337
355
  }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.PoLanguageService }, { type: i2.Router }, { type: i0.ChangeDetectorRef }], { listbox: [{
338
356
  type: ViewChild,
339
357
  args: ['listbox', { static: true }]
@@ -344,5 +362,5 @@ export class PoListBoxComponent extends PoListBoxBaseComponent {
344
362
  type: ViewChild,
345
363
  args: ['searchElement']
346
364
  }] }); })();
347
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoListBoxComponent, { className: "PoListBoxComponent", filePath: "lib/components/po-listbox/po-listbox.component.ts", lineNumber: 29 }); })();
348
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbGlzdGJveC9wby1saXN0Ym94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWxpc3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFNVCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQTRCLFlBQVksRUFBRSxTQUFTLEVBQVMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNiOUUsNENBT0M7SUFKQyw2TUFBWSwrQkFBd0IsS0FBQztJQUl0QyxpQkFBaUI7OztJQURoQixBQURBLEFBREEsaURBQTRCLDBDQUNNLDJDQUNDOzs7O0lBS2pDLDhCQU9DO0lBREMsQUFEQSxBQURBLHlMQUFTLHVCQUFnQixLQUFDLHNMQUNmLDRCQUFxQixLQUFDLHNMQUN0Qix5Q0FBa0MsS0FBQztJQUU5QyxtQ0FPZTtJQUNqQixpQkFBSzs7OztJQVBELGNBQStCO0lBSS9CLEFBRkEsQUFGQSxvREFBK0Isc0NBRUQsNkNBRU87OztJQWV2QyxpQ0FBd0Q7SUFDdEQsWUFDRjtJQUFBLGlCQUFROzs7SUFETixjQUNGO0lBREUsOENBQ0Y7Ozs7SUFDQSx3Q0ErQkM7SUFQQyxBQURBLEFBREEsQUFEQSx3UEFBeUIsOEJBQXVCLEtBQUMsNlFBQzNCLDZCQUFtQixLQUFDLGlPQUN0QiwyQkFBb0IsS0FBQyxpT0FDckIs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WUFBckMsOERBQXFDO1lBT3pCLGNBQXVCO1lBQUEsQUFBdkIsMENBQXVCLCtCQUFtQjtZQXFFbkQsY0FBNEM7WUFBNUMscUVBQTRDOzs7aUZEM0R2QyxrQkFBa0I7Y0FKOUIsU0FBUzsyQkFDRSxZQUFZO3dKQUlrQixPQUFPO2tCQUE5QyxTQUFTO21CQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDVyxlQUFlO2tCQUEvRCxTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNuQixhQUFhO2tCQUF4QyxTQUFTO21CQUFDLGVBQWU7O2tGQUhmLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBQb0xpc3RCb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1saXN0Ym94LWJhc2UuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIH0gZnJvbSAnLi9wby1pdGVtLWxpc3QvaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0l0ZW1MaXN0T3B0aW9uIH0gZnJvbSAnLi9wby1pdGVtLWxpc3QvaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNFeHRlcm5hbExpbmssIGlzVHlwZW9mLCBvcGVuRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb1NlYXJjaExpc3RDb21wb25lbnQgfSBmcm9tICcuL3BvLXNlYXJjaC1saXN0L3BvLXNlYXJjaC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1saXN0Ym94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWxpc3Rib3guY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvTGlzdEJveENvbXBvbmVudCBleHRlbmRzIFBvTGlzdEJveEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2xpc3Rib3gnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0Ym94OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdsaXN0Ym94SXRlbUxpc3QnLCB7IHN0YXRpYzogZmFsc2UgfSkgbGlzdGJveEl0ZW1MaXN0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWFyY2hFbGVtZW50Jykgc2VhcmNoRWxlbWVudDogUG9TZWFyY2hMaXN0Q29tcG9uZW50O1xuXG4gIHByaXZhdGUgc2Nyb2xsRXZlbnQkOiBPYnNlcnZhYmxlPGFueT47XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQ6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGxhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMaXN0Qm94TWF4SGVpZ2h0KCk7XG4gICAgdGhpcy5saXN0Ym94SXRlbUxpc3Q/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM/OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXM/Lml0ZW1zKSB7XG4gICAgICB0aGlzLnNldExpc3RCb3hNYXhIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52aXNpYmxlICYmIHRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgIHRoaXMuY2hlY2tJbmZpbml0ZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50ICYmIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQudW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdEl0ZW0oaXRlbUxpc3RBY3Rpb246IFBvSXRlbUxpc3RPcHRpb24gfCBQb0l0ZW1MaXN0T3B0aW9uR3JvdXAgfCBhbnkpIHtcbiAgICBjb25zdCBpc0Rpc2FibGVkID1cbiAgICAgIGl0ZW1MaXN0QWN0aW9uLmhhc093blByb3BlcnR5KCdkaXNhYmxlZCcpICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi5kaXNhYmxlZCAhPT0gbnVsbCAmJlxuICAgICAgaXRlbUxpc3RBY3Rpb24uZGlzYWJsZWQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMucmV0dXJuQm9vbGVhblZhbHVlKGl0ZW1MaXN0QWN0aW9uLCAnZGlzYWJsZWQnKVxuICAgICAgICA6IGZhbHNlO1xuICAgIGNvbnN0IGlzVmlzaWJsZSA9XG4gICAgICBpdGVtTGlzdEFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgndmlzaWJsZScpICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi52aXNpYmxlICE9PSBudWxsICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi52aXNpYmxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLnJldHVybkJvb2xlYW5WYWx1ZShpdGVtTGlzdEFjdGlvbiwgJ3Zpc2libGUnKVxuICAgICAgICA6IHRydWU7XG5cbiAgICBpZiAodGhpcy5pc1RhYnMgJiYgIWl0ZW1MaXN0QWN0aW9uLmRpc2FibGVkICYmICFpdGVtTGlzdEFjdGlvbi5oaWRlKSB7XG4gICAgICB0aGlzLm9uQ2xpY2tUYWJzKGl0ZW1MaXN0QWN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoaXRlbUxpc3RBY3Rpb24gJiYgaXRlbUxpc3RBY3Rpb24uYWN0aW9uICYmICFpc0Rpc2FibGVkICYmIGlzVmlzaWJsZSkge1xuICAgICAgaXRlbUxpc3RBY3Rpb24uYWN0aW9uKHRoaXMucGFyYW0gfHwgaXRlbUxpc3RBY3Rpb24pO1xuICAgIH1cblxuICAgIGlmIChpdGVtTGlzdEFjdGlvbiAmJiBpdGVtTGlzdEFjdGlvbi51cmwgJiYgIWlzRGlzYWJsZWQgJiYgaXNWaXNpYmxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcGVuVXJsKGl0ZW1MaXN0QWN0aW9uLnVybCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RBbGxDaGVja2JveEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ1RhYicpIHtcbiAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25LZXlEb3duKGl0ZW1MaXN0QWN0aW9uOiBQb0l0ZW1MaXN0T3B0aW9uIHwgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIHwgYW55LCBldmVudD86IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRW50ZXInKSB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICBjYXNlICdjaGVjayc6XG4gICAgICAgICAgdGhpcy5vblNlbGVjdENoZWNrQm94SXRlbShpdGVtTGlzdEFjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAgICAgdGhpcy5vcHRpb25DbGlja2VkKGl0ZW1MaXN0QWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYWN0aW9uJzpcbiAgICAgICAgICB0aGlzLm9uU2VsZWN0SXRlbShpdGVtTGlzdEFjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRXNjYXBlJykgfHwgZXZlbnQuY29kZSA9PT0gJ1RhYicpIHtcbiAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tib3hDbGlja2VkKHsgb3B0aW9uLCBzZWxlY3RlZCB9KSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2NoZWNrJykge1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh7IHNlbGVjdGVkLCBvcHRpb24gfSk7XG4gICAgfVxuICB9XG5cbiAgb3B0aW9uQ2xpY2tlZChvcHRpb246IGFueSkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvcHRpb24nKSB7XG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+XG4gICAgICAgIGl0ZW1bdGhpcy5maWVsZFZhbHVlXSA9PT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0gPyAoaXRlbVsnc2VsZWN0ZWQnXSA9IHRydWUpIDogKGl0ZW1bJ3NlbGVjdGVkJ10gPSBmYWxzZSlcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdENvbWJvLmVtaXQoeyAuLi5vcHRpb24gfSk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RDaGVja0JveEl0ZW0ob3B0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSAhdGhpcy5pc1NlbGVjdGVkSXRlbShvcHRpb24pO1xuICAgIHRoaXMuY2hlY2tib3hDbGlja2VkKHsgb3B0aW9uLCBzZWxlY3RlZCB9KTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWRJdGVtKG9wdGlvbikge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5zb21lKHNlbGVjdGVkSXRlbSA9PiBzZWxlY3RlZEl0ZW1bdGhpcy5maWVsZFZhbHVlXSA9PT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pO1xuICB9XG5cbiAgY2hhbmdlQWxsRW1pdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZXZlbnQgJiYgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykgfHwgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgdGhpcy5jaGFuZ2VBbGwuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0VGFicyh0YWIpIHtcbiAgICBpZiAodGhpcy5pc1RhYnMgJiYgdGFiKSB7XG4gICAgICB0aGlzLmNoYW5nZVN0YXRlVGFicy5lbWl0KHRhYik7XG4gICAgfVxuICB9XG5cbiAgb25BY3RpdmF0ZWRUYWJzKHRhYikge1xuICAgIHRoaXMuYWN0aXZhdGVkVGFiLmVtaXQodGFiKTtcbiAgfVxuXG4gIGNhbGxDaGFuZ2VTZWFyY2goZXZlbnQpIHtcbiAgICB0aGlzLmNoYW5nZVNlYXJjaC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHNob3dNb3JlSW5maW5pdGVTY3JvbGwoeyB0YXJnZXQgfSk6IHZvaWQge1xuICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gdGFyZ2V0Lm9mZnNldEhlaWdodCArIHRhcmdldC5zY3JvbGxUb3A7XG4gICAgaWYgKHNjcm9sbFBvc2l0aW9uID49IHRhcmdldC5zY3JvbGxIZWlnaHQgKiAodGhpcy5pbmZpbml0ZVNjcm9sbERpc3RhbmNlIC8gMTEwKSkge1xuICAgICAgdGhpcy5VcGRhdGVJbmZpbml0ZVNjcm9sbC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsTGlzdGVuZXIoY29tcG9uZW50TGlzdG5lcjogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQoY29tcG9uZW50TGlzdG5lciwgJ3Njcm9sbCcpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpO1xuICB9XG5cbiAgc2V0Rm9jdXMoKSB7XG4gICAgdGhpcy5saXN0Ym94SXRlbUxpc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzSW5maW5pdGVTY3JvbGwoKSkge1xuICAgICAgdGhpcy5pbmNsdWRlSW5maW5pdGVTY3JvbGwoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc0luZmluaXRlU2Nyb2xsKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLmluZmluaXRlU2Nyb2xsICYmIHRoaXMubGlzdGJveEl0ZW1MaXN0Py5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgfVxuXG4gIGNoZWNrVGVtcGxhdGUoKSB7XG4gICAgaWYgKHRoaXMuY2FjaGUgfHwgdGhpcy5pbmZpbml0ZVNjcm9sbCkge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNTZXJ2ZXJTZWFyY2hpbmcgJiYgdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmNsdWRlSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxFdmVudCQgPSB0aGlzLnNjcm9sbExpc3RlbmVyKHRoaXMubGlzdGJveEl0ZW1MaXN0Py5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQgPSB0aGlzLnNjcm9sbEV2ZW50JC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5zaG93TW9yZUluZmluaXRlU2Nyb2xsKGV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXR1cm5Cb29sZWFuVmFsdWUoaXRlbUxpc3RBY3Rpb246IGFueSwgcHJvcGVydHk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1R5cGVvZihpdGVtTGlzdEFjdGlvbltwcm9wZXJ0eV0sICdmdW5jdGlvbicpXG4gICAgICA/IGl0ZW1MaXN0QWN0aW9uW3Byb3BlcnR5XSh0aGlzLnBhcmFtIHx8IGl0ZW1MaXN0QWN0aW9uKVxuICAgICAgOiBpdGVtTGlzdEFjdGlvbltwcm9wZXJ0eV07XG4gIH1cblxuICBwcml2YXRlIHNldExpc3RCb3hNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXNMZW5ndGggPSB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICBpZiAoaXRlbXNMZW5ndGggPiA2KSB7XG4gICAgICBpZiAodGhpcy50eXBlID09PSAnY2hlY2snICYmICF0aGlzLmhpZGVTZWFyY2gpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmxpc3Rib3gubmF0aXZlRWxlbWVudCwgJ21heEhlaWdodCcsIGAkezQ0ICogNiAtIDQ0IC8gMyArIDYwfXB4YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGlzdGJveC5uYXRpdmVFbGVtZW50LCAnbWF4SGVpZ2h0JywgYCR7NDQgKiA2IC0gNDQgLyAzfXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVXJsKHVybDogc3RyaW5nKSB7XG4gICAgaWYgKGlzRXh0ZXJuYWxMaW5rKHVybCkpIHtcbiAgICAgIHJldHVybiBvcGVuRXh0ZXJuYWxMaW5rKHVybCk7XG4gICAgfVxuXG4gICAgaWYgKHVybCkge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrVGFicyh0YWIpIHtcbiAgICBpZiAoIXRhYi5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbGlja1RhYi5lbWl0KHRhYik7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0SXRlbUxpc3QoaXRlbTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc1RhYnMpIHtcbiAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoaXRlbSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2xpc3Rib3hcbiAgY2xhc3M9XCJwby1saXN0Ym94XCJcbiAgW2NsYXNzLnBvLWxpc3Rib3gtY2hlY2tdPVwidHlwZSA9PT0gJ2NoZWNrJyB8fCB0eXBlID09PSAnb3B0aW9uJ1wiXG4gIFthdHRyLmRhdGEtdHlwZV09XCJ0eXBlXCJcbiAgW2hpZGRlbl09XCJ2aXNpYmxlXCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3AtcG9wdXAtaGVhZGVyLXRlbXBsYXRlXVwiPjwvbmctY29udGVudD5cblxuICA8cG8tc2VhcmNoLWxpc3RcbiAgICAjc2VhcmNoRWxlbWVudFxuICAgICpuZ0lmPVwiIWhpZGVTZWFyY2ggJiYgdHlwZSA9PT0gJ2NoZWNrJ1wiXG4gICAgKHAtY2hhbmdlKT1cImNhbGxDaGFuZ2VTZWFyY2goJGV2ZW50KVwiXG4gICAgW3AtbGl0ZXJhbHNdPVwibGl0ZXJhbFNlYXJjaFwiXG4gICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGRWYWx1ZVNlYXJjaFwiXG4gICAgW3AtcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTZWFyY2hcIlxuICA+PC9wby1zZWFyY2gtbGlzdD5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tUZW1wbGF0ZSgpOyBlbHNlIG5vRGF0YVRlbXBsYXRlXCI+XG4gICAgPHVsICNsaXN0Ym94SXRlbUxpc3QgY2RrTGlzdGJveCBbY2RrTGlzdGJveE11bHRpcGxlXT1cInR5cGUgPT09ICdjaGVjaydcIiBjbGFzcz1cInBvLWxpc3Rib3gtbGlzdFwiPlxuICAgICAgPGxpXG4gICAgICAgIGNka09wdGlvbj1cInNlbGVjdEFsbFwiXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2NoZWNrJyAmJiBpdGVtcy5sZW5ndGggJiYgIXNlYXJjaEVsZW1lbnQ/LmlucHV0VmFsdWUgJiYgIWhpZGVTZWxlY3RBbGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tib3hBbGxWYWx1ZSA9PT0gbnVsbCA/ICdtaXhlZCcgOiBjaGVja2JveEFsbFZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZUFsbC5lbWl0KClcIlxuICAgICAgICAoa2V5ZG93bik9XCJjaGFuZ2VBbGxFbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bik9XCJvblNlbGVjdEFsbENoZWNrYm94S2V5RG93bigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPHBvLWl0ZW0tbGlzdFxuICAgICAgICAgIFtwLXNlbGVjdGVkXT1cImNoZWNrYm94QWxsVmFsdWVcIlxuICAgICAgICAgIHAtdHlwZT1cImNoZWNrXCJcbiAgICAgICAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5zZWxlY3RBbGxcIlxuICAgICAgICAgIHAtdmFsdWU9XCJzZWxlY3RBbGxcIlxuICAgICAgICAgIFtwLWNoZWNrYm94LXZhbHVlXT1cImNoZWNrYm94QWxsVmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvcG8taXRlbS1saXN0PlxuICAgICAgPC9saT5cbiAgICAgIDxsaVxuICAgICAgICBbY2xhc3MucG8tbGlzdGJveC1pdGVtXT1cInZpc2libGVcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgICAgIFtjZGtPcHRpb25dPVwiaXRlbVtmaWVsZExhYmVsXVwiXG4gICAgICAgIFtjZGtPcHRpb25EaXNhYmxlZF09XCJcbiAgICAgICAgICByZXR1cm5Cb29sZWFuVmFsdWUoaXRlbSwgJ2Rpc2FibGVkJykgfHwgcmV0dXJuQm9vbGVhblZhbHVlKGl0ZW0sICd2aXNpYmxlJykgPT09IGZhbHNlIHx8IGl0ZW0ub3B0aW9uc1xuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWRJdGVtKGl0ZW0pIHx8IGl0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAoY2xpY2spPVwib25TZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKGl0ZW0sICRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJpdGVtLm9wdGlvbnNcIiBjbGFzcz1cInBvLWNvbWJvLWl0ZW0tdGl0bGVcIj5cbiAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwby1pdGVtLWxpc3RcbiAgICAgICAgICAqbmdJZj1cInJldHVybkJvb2xlYW5WYWx1ZShpdGVtLCAndmlzaWJsZScpICE9PSBmYWxzZSAmJiAhaXRlbS5vcHRpb25zXCJcbiAgICAgICAgICBbcC1kaXNhYmxlZF09XCJyZXR1cm5Cb29sZWFuVmFsdWUoaXRlbSwgJ2Rpc2FibGVkJylcIlxuICAgICAgICAgIFtwLXZpc2libGVdPVwicmV0dXJuQm9vbGVhblZhbHVlKGl0ZW0sICd2aXNpYmxlJylcIlxuICAgICAgICAgIFtwLWNoZWNrYm94LXZhbHVlXT1cImlzU2VsZWN0ZWRJdGVtKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWl0ZW0tbGlzdF09XCJmb3JtYXRJdGVtTGlzdChpdGVtKVwiXG4gICAgICAgICAgW3AtbGFiZWxdPVwiaXRlbVtmaWVsZExhYmVsXVwiXG4gICAgICAgICAgW3AtdmFsdWVdPVwiaXRlbVtmaWVsZFZhbHVlXVwiXG4gICAgICAgICAgW3Atc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZEl0ZW0oaXRlbSkgfHwgaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgW3AtYWN0aXZlLXRhYnNdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgICAgIFtwLXNlcGFyYXRvcl09XCJpdGVtLnNlcGFyYXRvclwiXG4gICAgICAgICAgW3AtZGFuZ2VyXT1cIml0ZW0uZGFuZ2VyIHx8IGl0ZW0udHlwZSA9PT0gJ2RhbmdlcidcIlxuICAgICAgICAgIFtwLWljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICBbcC10eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFtwLWl0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgW3AtdGFiLWhpZGVdPVwiaXRlbS5oaWRlXCJcbiAgICAgICAgICBbcC1pcy10YWJzXT1cImlzVGFic1wiXG4gICAgICAgICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGRWYWx1ZVwiXG4gICAgICAgICAgW3AtZmllbGQtbGFiZWxdPVwiZmllbGRMYWJlbFwiXG4gICAgICAgICAgW3AtdGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgICAgIFtwLXRlbXBsYXRlLWNvbnRleHRdPVwiaXRlbVwiXG4gICAgICAgICAgKHAtc2VsZWN0Y2hlY2tib3gtaXRlbSk9XCJjaGVja2JveENsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKHAtc2VsZWN0Y29tYm8taXRlbSk9XCJvcHRpb25DbGlja2VkKGl0ZW0pXCJcbiAgICAgICAgICAocC1lbWl0LWl0ZW0tdGFicyk9XCJvblNlbGVjdFRhYnMoJGV2ZW50KVwiXG4gICAgICAgICAgKHAtYWN0aXZhdGVkLXRhYnMpPVwib25BY3RpdmF0ZWRUYWJzKCRldmVudClcIlxuICAgICAgICAgIFtwLXNlYXJjaC12YWx1ZV09XCJzZWFyY2hWYWx1ZVwiXG4gICAgICAgICAgW3AtZmlsdGVyLW1vZGVdPVwiZmlsdGVyTW9kZVwiXG4gICAgICAgICAgW3AtZmlsdGVyaW5nXT1cImlzRmlsdGVyaW5nXCJcbiAgICAgICAgICBbcC1zaG91bGQtbWFyay1sZXR0ZXJdPVwic2hvdWxkTWFya0xldHRlcnNcIlxuICAgICAgICAgIFtwLWNvbXBhcmUtY2FjaGVdPVwiY29tcGFyZUNhY2hlXCJcbiAgICAgICAgICBbcC1jb21iby1zZXJ2aWNlXT1cImNvbWJvU2VydmljZVwiXG4gICAgICAgID48L3BvLWl0ZW0tbGlzdD5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiAqbmdJZj1cImlzU2VydmVyU2VhcmNoaW5nICYmIHR5cGUgIT09ICdhY3Rpb24nXCIgW2NsYXNzLnBvLWxpc3Rib3gtY29udGFpbmVyLWxvYWRpbmctZGVmYXVsdF09XCIhaW5maW5pdGVMb2FkaW5nXCI+XG4gICAgPHBvLWxvYWRpbmctb3ZlcmxheSBwLXNpemU9XCJtZFwiPjwvcG8tbG9hZGluZy1vdmVybGF5PlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI25vRGF0YVRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIWl0ZW1zLmxlbmd0aCAmJiAhaXNTZXJ2ZXJTZWFyY2hpbmcgJiYgdHlwZSAhPT0gJ2FjdGlvbidcIlxuICAgICAgY2xhc3M9XCJwby1saXN0Ym94LWNvbnRhaW5lci1uby1kYXRhIHBvLXRleHQtY2VudGVyXCJcbiAgICA+XG4gICAgICA8c3Bhbj4ge3sgbGl0ZXJhbHMubm9JdGVtcyB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
365
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoListBoxComponent, { className: "PoListBoxComponent", filePath: "lib/components/po-listbox/po-listbox.component.ts", lineNumber: 27 }); })();
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbGlzdGJveC9wby1saXN0Ym94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWxpc3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFNVCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQTRCLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNYdkUsNENBT0M7SUFKQyw2TUFBWSwrQkFBd0IsS0FBQztJQUl0QyxpQkFBaUI7OztJQURoQixBQURBLEFBREEsaURBQTRCLDBDQUNNLDJDQUNDOzs7O0lBS2pDLDhCQU9DO0lBREMsQUFEQSxBQURBLHlMQUFTLHVCQUFnQixLQUFDLHNMQUNmLDRCQUFxQixLQUFDLHNMQUN0Qix5Q0FBa0MsS0FBQztJQUU5QyxtQ0FPZTtJQUNqQixpQkFBSzs7OztJQVBELGNBQStCO0lBSS9CLEFBRkEsQUFGQSxvREFBK0Isc0NBRUQsNkNBRU87OztJQWV2QyxpQ0FBd0Q7SUFDdEQsWUFDRjtJQUFBLGlCQUFROzs7SUFETixjQUNGO0lBREUsOENBQ0Y7Ozs7SUFDQSx3Q0ErQkM7SUFQQyxBQURBLEFBREEsQUFEQSx3UEFBeUIsOEJBQXVCLEtBQUMsNlFBQzNCLDZCQUFtQixLQUFDLGlPQUN0QiwyQkFBb0IsS0FBQyxpT0FDckIs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LENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7NEVBbFBVLGtCQUFrQjs2REFBbEIsa0JBQWtCOzs7Ozs7Ozs7OztZQzFCL0IsaUNBTUM7WUFDQyxrQkFBNEQ7WUFvRjVELEFBSkEsQUFyRUEsQUFUQSx5RkFPQyx3RUFFMEQsc0RBcUV5RCx1R0FJdkY7WUFRL0IsaUJBQU07OztZQWhHSixpRkFBZ0U7WUFFaEUsb0NBQWtCOztZQU1mLGVBQXFDO1lBQXJDLDhEQUFxQztZQU96QixjQUF1QjtZQUFBLEFBQXZCLDBDQUF1QiwrQkFBbUI7WUFxRW5ELGNBQTRDO1lBQTVDLHFFQUE0Qzs7O2lGRDdEdkMsa0JBQWtCO2NBSjlCLFNBQVM7MkJBQ0UsWUFBWTt3SkFJa0IsT0FBTztrQkFBOUMsU0FBUzttQkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ1csZUFBZTtrQkFBL0QsU0FBUzttQkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDbkIsYUFBYTtrQkFBeEMsU0FBUzttQkFBQyxlQUFlOztrRkFIZixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBQb0xpc3RCb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1saXN0Ym94LWJhc2UuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIH0gZnJvbSAnLi9wby1pdGVtLWxpc3QvaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0l0ZW1MaXN0T3B0aW9uIH0gZnJvbSAnLi9wby1pdGVtLWxpc3QvaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNFeHRlcm5hbExpbmssIGlzVHlwZW9mLCBvcGVuRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb1NlYXJjaExpc3RDb21wb25lbnQgfSBmcm9tICcuL3BvLXNlYXJjaC1saXN0L3BvLXNlYXJjaC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWxpc3Rib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tbGlzdGJveC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9MaXN0Qm94Q29tcG9uZW50IGV4dGVuZHMgUG9MaXN0Qm94QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnbGlzdGJveCcsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3Rib3g6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2xpc3Rib3hJdGVtTGlzdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBsaXN0Ym94SXRlbUxpc3Q6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaEVsZW1lbnQnKSBzZWFyY2hFbGVtZW50OiBQb1NlYXJjaExpc3RDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzY3JvbGxFdmVudCQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25TY3JvbGxFdmVudDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIobGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldExpc3RCb3hNYXhIZWlnaHQoKTtcbiAgICB0aGlzLmxpc3Rib3hJdGVtTGlzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlcz86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcz8uaXRlbXMpIHtcbiAgICAgIHRoaXMuc2V0TGlzdEJveE1heEhlaWdodCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZpc2libGUgJiYgdGhpcy5pbmZpbml0ZVNjcm9sbCkge1xuICAgICAgdGhpcy5jaGVja0luZmluaXRlU2Nyb2xsKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uU2Nyb2xsRXZlbnQgJiYgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudC51bnN1YnNjcmliZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25TY3JvbGxFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0SXRlbShpdGVtTGlzdEFjdGlvbjogUG9JdGVtTGlzdE9wdGlvbiB8IFBvSXRlbUxpc3RPcHRpb25Hcm91cCB8IGFueSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPVxuICAgICAgaXRlbUxpc3RBY3Rpb24uaGFzT3duUHJvcGVydHkoJ2Rpc2FibGVkJykgJiZcbiAgICAgIGl0ZW1MaXN0QWN0aW9uLmRpc2FibGVkICE9PSBudWxsICYmXG4gICAgICBpdGVtTGlzdEFjdGlvbi5kaXNhYmxlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gdGhpcy5yZXR1cm5Cb29sZWFuVmFsdWUoaXRlbUxpc3RBY3Rpb24sICdkaXNhYmxlZCcpXG4gICAgICAgIDogZmFsc2U7XG4gICAgY29uc3QgaXNWaXNpYmxlID1cbiAgICAgIGl0ZW1MaXN0QWN0aW9uLmhhc093blByb3BlcnR5KCd2aXNpYmxlJykgJiZcbiAgICAgIGl0ZW1MaXN0QWN0aW9uLnZpc2libGUgIT09IG51bGwgJiZcbiAgICAgIGl0ZW1MaXN0QWN0aW9uLnZpc2libGUgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMucmV0dXJuQm9vbGVhblZhbHVlKGl0ZW1MaXN0QWN0aW9uLCAndmlzaWJsZScpXG4gICAgICAgIDogdHJ1ZTtcblxuICAgIGlmICh0aGlzLmlzVGFicyAmJiAhaXRlbUxpc3RBY3Rpb24uZGlzYWJsZWQgJiYgIWl0ZW1MaXN0QWN0aW9uLmhpZGUpIHtcbiAgICAgIHRoaXMub25DbGlja1RhYnMoaXRlbUxpc3RBY3Rpb24pO1xuICAgIH1cblxuICAgIGlmIChpdGVtTGlzdEFjdGlvbiAmJiBpdGVtTGlzdEFjdGlvbi5hY3Rpb24gJiYgIWlzRGlzYWJsZWQgJiYgaXNWaXNpYmxlKSB7XG4gICAgICBpdGVtTGlzdEFjdGlvbi5hY3Rpb24odGhpcy5wYXJhbSB8fCBpdGVtTGlzdEFjdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKGl0ZW1MaXN0QWN0aW9uICYmIGl0ZW1MaXN0QWN0aW9uLnVybCAmJiAhaXNEaXNhYmxlZCAmJiBpc1Zpc2libGUpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wZW5VcmwoaXRlbUxpc3RBY3Rpb24udXJsKTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdEFsbENoZWNrYm94S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbktleURvd24oaXRlbUxpc3RBY3Rpb246IFBvSXRlbUxpc3RPcHRpb24gfCBQb0l0ZW1MaXN0T3B0aW9uR3JvdXAgfCBhbnksIGV2ZW50PzogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoKGV2ZW50ICYmIGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHx8IGV2ZW50LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NoZWNrJzpcbiAgICAgICAgICB0aGlzLm9uU2VsZWN0Q2hlY2tCb3hJdGVtKGl0ZW1MaXN0QWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgICB0aGlzLm9wdGlvbkNsaWNrZWQoaXRlbUxpc3RBY3Rpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhY3Rpb24nOlxuICAgICAgICAgIHRoaXMub25TZWxlY3RJdGVtKGl0ZW1MaXN0QWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoKGV2ZW50ICYmIGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnKSB8fCBldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBjaGVja2JveENsaWNrZWQoeyBvcHRpb24sIHNlbGVjdGVkIH0pIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnY2hlY2snKSB7XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHsgc2VsZWN0ZWQsIG9wdGlvbiB9KTtcbiAgICB9XG4gIH1cblxuICBvcHRpb25DbGlja2VkKG9wdGlvbjogYW55KSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ29wdGlvbicpIHtcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT5cbiAgICAgICAgaXRlbVt0aGlzLmZpZWxkVmFsdWVdID09PSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXSA/IChpdGVtWydzZWxlY3RlZCddID0gdHJ1ZSkgOiAoaXRlbVsnc2VsZWN0ZWQnXSA9IGZhbHNlKVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0Q29tYm8uZW1pdCh7IC4uLm9wdGlvbiB9KTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdENoZWNrQm94SXRlbShvcHRpb24pIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9ICF0aGlzLmlzU2VsZWN0ZWRJdGVtKG9wdGlvbik7XG4gICAgdGhpcy5jaGVja2JveENsaWNrZWQoeyBvcHRpb24sIHNlbGVjdGVkIH0pO1xuICB9XG5cbiAgaXNTZWxlY3RlZEl0ZW0ob3B0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnNvbWUoc2VsZWN0ZWRJdGVtID0+IHNlbGVjdGVkSXRlbVt0aGlzLmZpZWxkVmFsdWVdID09PSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXSk7XG4gIH1cblxuICBjaGFuZ2VBbGxFbWl0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRW50ZXInKSB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICB0aGlzLmNoYW5nZUFsbC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RUYWJzKHRhYikge1xuICAgIGlmICh0aGlzLmlzVGFicyAmJiB0YWIpIHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdGVUYWJzLmVtaXQodGFiKTtcbiAgICB9XG4gIH1cblxuICBvbkFjdGl2YXRlZFRhYnModGFiKSB7XG4gICAgdGhpcy5hY3RpdmF0ZWRUYWIuZW1pdCh0YWIpO1xuICB9XG5cbiAgY2FsbENoYW5nZVNlYXJjaChldmVudCkge1xuICAgIHRoaXMuY2hhbmdlU2VhcmNoLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgc2hvd01vcmVJbmZpbml0ZVNjcm9sbCh7IHRhcmdldCB9KTogdm9pZCB7XG4gICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0YXJnZXQub2Zmc2V0SGVpZ2h0ICsgdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPj0gdGFyZ2V0LnNjcm9sbEhlaWdodCAqICh0aGlzLmluZmluaXRlU2Nyb2xsRGlzdGFuY2UgLyAxMTApKSB7XG4gICAgICB0aGlzLlVwZGF0ZUluZmluaXRlU2Nyb2xsLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBzY3JvbGxMaXN0ZW5lcihjb21wb25lbnRMaXN0bmVyOiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb21FdmVudChjb21wb25lbnRMaXN0bmVyLCAnc2Nyb2xsJykucGlwZShkZWJvdW5jZVRpbWUoMTAwKSk7XG4gIH1cblxuICBzZXRGb2N1cygpIHtcbiAgICB0aGlzLmxpc3Rib3hJdGVtTGlzdC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNJbmZpbml0ZVNjcm9sbCgpKSB7XG4gICAgICB0aGlzLmluY2x1ZGVJbmZpbml0ZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTaXplTG9hZGluZygpIHtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMubGlzdGJveC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIHx8IHRoaXMuY29udGFpbmVyV2lkdGg7XG5cbiAgICBpZiAod2lkdGggPiAxODApIHtcbiAgICAgIHJldHVybiAnbWQnO1xuICAgIH0gZWxzZSBpZiAod2lkdGggPj0gMTQwKSB7XG4gICAgICByZXR1cm4gJ3NtJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICd4cyc7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRleHRMb2FkaW5nKCkge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5saXN0Ym94Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggfHwgdGhpcy5jb250YWluZXJXaWR0aDtcblxuICAgIHJldHVybiB3aWR0aCA8IDE0MCA/ICcgJyA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNJbmZpbml0ZVNjcm9sbCgpOiBib29sZWFuIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICByZXR1cm4gdGhpcy5pbmZpbml0ZVNjcm9sbCAmJiB0aGlzLmxpc3Rib3hJdGVtTGlzdD8ubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gIH1cblxuICBjaGVja1RlbXBsYXRlKCkge1xuICAgIGlmICh0aGlzLmNhY2hlIHx8IHRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICF0aGlzLmlzU2VydmVyU2VhcmNoaW5nICYmIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5jbHVkZUluZmluaXRlU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsRXZlbnQkID0gdGhpcy5zY3JvbGxMaXN0ZW5lcih0aGlzLmxpc3Rib3hJdGVtTGlzdD8ubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvblNjcm9sbEV2ZW50ID0gdGhpcy5zY3JvbGxFdmVudCQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuc2hvd01vcmVJbmZpbml0ZVNjcm9sbChldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmV0dXJuQm9vbGVhblZhbHVlKGl0ZW1MaXN0QWN0aW9uOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNUeXBlb2YoaXRlbUxpc3RBY3Rpb25bcHJvcGVydHldLCAnZnVuY3Rpb24nKVxuICAgICAgPyBpdGVtTGlzdEFjdGlvbltwcm9wZXJ0eV0odGhpcy5wYXJhbSB8fCBpdGVtTGlzdEFjdGlvbilcbiAgICAgIDogaXRlbUxpc3RBY3Rpb25bcHJvcGVydHldO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMaXN0Qm94TWF4SGVpZ2h0KCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zTGVuZ3RoID0gdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgaWYgKGl0ZW1zTGVuZ3RoID4gNikge1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2NoZWNrJyAmJiAhdGhpcy5oaWRlU2VhcmNoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5saXN0Ym94Lm5hdGl2ZUVsZW1lbnQsICdtYXhIZWlnaHQnLCBgJHs0NCAqIDYgLSA0NCAvIDMgKyA2MH1weGApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmxpc3Rib3gubmF0aXZlRWxlbWVudCwgJ21heEhlaWdodCcsIGAkezQ0ICogNiAtIDQ0IC8gM31weGApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlblVybCh1cmw6IHN0cmluZykge1xuICAgIGlmIChpc0V4dGVybmFsTGluayh1cmwpKSB7XG4gICAgICByZXR1cm4gb3BlbkV4dGVybmFsTGluayh1cmwpO1xuICAgIH1cblxuICAgIGlmICh1cmwpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdXJsXSk7XG4gICAgfVxuICB9XG5cbiAgb25DbGlja1RhYnModGFiKSB7XG4gICAgaWYgKCF0YWIuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2xpY2tUYWIuZW1pdCh0YWIpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdEl0ZW1MaXN0KGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNUYWJzKSB7XG4gICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGl0ZW0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICNsaXN0Ym94XG4gIGNsYXNzPVwicG8tbGlzdGJveFwiXG4gIFtjbGFzcy5wby1saXN0Ym94LWNoZWNrXT1cInR5cGUgPT09ICdjaGVjaycgfHwgdHlwZSA9PT0gJ29wdGlvbidcIlxuICBbYXR0ci5kYXRhLXR5cGVdPVwidHlwZVwiXG4gIFtoaWRkZW5dPVwidmlzaWJsZVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltwLXBvcHVwLWhlYWRlci10ZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XG5cbiAgPHBvLXNlYXJjaC1saXN0XG4gICAgI3NlYXJjaEVsZW1lbnRcbiAgICAqbmdJZj1cIiFoaWRlU2VhcmNoICYmIHR5cGUgPT09ICdjaGVjaydcIlxuICAgIChwLWNoYW5nZSk9XCJjYWxsQ2hhbmdlU2VhcmNoKCRldmVudClcIlxuICAgIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxTZWFyY2hcIlxuICAgIFtwLWZpZWxkLXZhbHVlXT1cImZpZWxkVmFsdWVTZWFyY2hcIlxuICAgIFtwLXBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyU2VhcmNoXCJcbiAgPjwvcG8tc2VhcmNoLWxpc3Q+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNoZWNrVGVtcGxhdGUoKTsgZWxzZSBub0RhdGFUZW1wbGF0ZVwiPlxuICAgIDx1bCAjbGlzdGJveEl0ZW1MaXN0IGNka0xpc3Rib3ggW2Nka0xpc3Rib3hNdWx0aXBsZV09XCJ0eXBlID09PSAnY2hlY2snXCIgY2xhc3M9XCJwby1saXN0Ym94LWxpc3RcIj5cbiAgICAgIDxsaVxuICAgICAgICBjZGtPcHRpb249XCJzZWxlY3RBbGxcIlxuICAgICAgICAqbmdJZj1cInR5cGUgPT09ICdjaGVjaycgJiYgaXRlbXMubGVuZ3RoICYmICFzZWFyY2hFbGVtZW50Py5pbnB1dFZhbHVlICYmICFoaWRlU2VsZWN0QWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNoZWNrYm94QWxsVmFsdWUgPT09IG51bGwgPyAnbWl4ZWQnIDogY2hlY2tib3hBbGxWYWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VBbGwuZW1pdCgpXCJcbiAgICAgICAgKGtleWRvd24pPVwiY2hhbmdlQWxsRW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25TZWxlY3RBbGxDaGVja2JveEtleURvd24oJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxwby1pdGVtLWxpc3RcbiAgICAgICAgICBbcC1zZWxlY3RlZF09XCJjaGVja2JveEFsbFZhbHVlXCJcbiAgICAgICAgICBwLXR5cGU9XCJjaGVja1wiXG4gICAgICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMuc2VsZWN0QWxsXCJcbiAgICAgICAgICBwLXZhbHVlPVwic2VsZWN0QWxsXCJcbiAgICAgICAgICBbcC1jaGVja2JveC12YWx1ZV09XCJjaGVja2JveEFsbFZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3BvLWl0ZW0tbGlzdD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGlcbiAgICAgICAgW2NsYXNzLnBvLWxpc3Rib3gtaXRlbV09XCJ2aXNpYmxlXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgICAgICBbY2RrT3B0aW9uXT1cIml0ZW1bZmllbGRMYWJlbF1cIlxuICAgICAgICBbY2RrT3B0aW9uRGlzYWJsZWRdPVwiXG4gICAgICAgICAgcmV0dXJuQm9vbGVhblZhbHVlKGl0ZW0sICdkaXNhYmxlZCcpIHx8IHJldHVybkJvb2xlYW5WYWx1ZShpdGVtLCAndmlzaWJsZScpID09PSBmYWxzZSB8fCBpdGVtLm9wdGlvbnNcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc1NlbGVjdGVkSXRlbShpdGVtKSB8fCBpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bihpdGVtLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiaXRlbS5vcHRpb25zXCIgY2xhc3M9XCJwby1jb21iby1pdGVtLXRpdGxlXCI+XG4gICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cG8taXRlbS1saXN0XG4gICAgICAgICAgKm5nSWY9XCJyZXR1cm5Cb29sZWFuVmFsdWUoaXRlbSwgJ3Zpc2libGUnKSAhPT0gZmFsc2UgJiYgIWl0ZW0ub3B0aW9uc1wiXG4gICAgICAgICAgW3AtZGlzYWJsZWRdPVwicmV0dXJuQm9vbGVhblZhbHVlKGl0ZW0sICdkaXNhYmxlZCcpXCJcbiAgICAgICAgICBbcC12aXNpYmxlXT1cInJldHVybkJvb2xlYW5WYWx1ZShpdGVtLCAndmlzaWJsZScpXCJcbiAgICAgICAgICBbcC1jaGVja2JveC12YWx1ZV09XCJpc1NlbGVjdGVkSXRlbShpdGVtKVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1pdGVtLWxpc3RdPVwiZm9ybWF0SXRlbUxpc3QoaXRlbSlcIlxuICAgICAgICAgIFtwLWxhYmVsXT1cIml0ZW1bZmllbGRMYWJlbF1cIlxuICAgICAgICAgIFtwLXZhbHVlXT1cIml0ZW1bZmllbGRWYWx1ZV1cIlxuICAgICAgICAgIFtwLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWRJdGVtKGl0ZW0pIHx8IGl0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgIFtwLWFjdGl2ZS10YWJzXT1cIml0ZW0uYWN0aXZlXCJcbiAgICAgICAgICBbcC1zZXBhcmF0b3JdPVwiaXRlbS5zZXBhcmF0b3JcIlxuICAgICAgICAgIFtwLWRhbmdlcl09XCJpdGVtLmRhbmdlciB8fCBpdGVtLnR5cGUgPT09ICdkYW5nZXInXCJcbiAgICAgICAgICBbcC1pY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgW3AtdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICBbcC1pdGVtXT1cIml0ZW1cIlxuICAgICAgICAgIFtwLXRhYi1oaWRlXT1cIml0ZW0uaGlkZVwiXG4gICAgICAgICAgW3AtaXMtdGFic109XCJpc1RhYnNcIlxuICAgICAgICAgIFtwLWZpZWxkLXZhbHVlXT1cImZpZWxkVmFsdWVcIlxuICAgICAgICAgIFtwLWZpZWxkLWxhYmVsXT1cImZpZWxkTGFiZWxcIlxuICAgICAgICAgIFtwLXRlbXBsYXRlXT1cInRlbXBsYXRlXCJcbiAgICAgICAgICBbcC10ZW1wbGF0ZS1jb250ZXh0XT1cIml0ZW1cIlxuICAgICAgICAgIChwLXNlbGVjdGNoZWNrYm94LWl0ZW0pPVwiY2hlY2tib3hDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgIChwLXNlbGVjdGNvbWJvLWl0ZW0pPVwib3B0aW9uQ2xpY2tlZChpdGVtKVwiXG4gICAgICAgICAgKHAtZW1pdC1pdGVtLXRhYnMpPVwib25TZWxlY3RUYWJzKCRldmVudClcIlxuICAgICAgICAgIChwLWFjdGl2YXRlZC10YWJzKT1cIm9uQWN0aXZhdGVkVGFicygkZXZlbnQpXCJcbiAgICAgICAgICBbcC1zZWFyY2gtdmFsdWVdPVwic2VhcmNoVmFsdWVcIlxuICAgICAgICAgIFtwLWZpbHRlci1tb2RlXT1cImZpbHRlck1vZGVcIlxuICAgICAgICAgIFtwLWZpbHRlcmluZ109XCJpc0ZpbHRlcmluZ1wiXG4gICAgICAgICAgW3Atc2hvdWxkLW1hcmstbGV0dGVyXT1cInNob3VsZE1hcmtMZXR0ZXJzXCJcbiAgICAgICAgICBbcC1jb21wYXJlLWNhY2hlXT1cImNvbXBhcmVDYWNoZVwiXG4gICAgICAgICAgW3AtY29tYm8tc2VydmljZV09XCJjb21ib1NlcnZpY2VcIlxuICAgICAgICA+PC9wby1pdGVtLWxpc3Q+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgKm5nSWY9XCJpc1NlcnZlclNlYXJjaGluZyAmJiB0eXBlICE9PSAnYWN0aW9uJ1wiIFtjbGFzcy5wby1saXN0Ym94LWNvbnRhaW5lci1sb2FkaW5nLWRlZmF1bHRdPVwiIWluZmluaXRlTG9hZGluZ1wiPlxuICAgIDxwby1sb2FkaW5nLW92ZXJsYXkgW3Atc2l6ZV09XCJnZXRTaXplTG9hZGluZygpXCIgW3AtdGV4dF09XCJnZXRUZXh0TG9hZGluZygpXCI+PC9wby1sb2FkaW5nLW92ZXJsYXk+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9EYXRhVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhaXRlbXMubGVuZ3RoICYmICFpc1NlcnZlclNlYXJjaGluZyAmJiB0eXBlICE9PSAnYWN0aW9uJ1wiXG4gICAgICBjbGFzcz1cInBvLWxpc3Rib3gtY29udGFpbmVyLW5vLWRhdGEgcG8tdGV4dC1jZW50ZXJcIlxuICAgID5cbiAgICAgIDxzcGFuPiB7eyBsaXRlcmFscy5ub0l0ZW1zIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -55,7 +55,7 @@ export class PoLoadingOverlayBaseComponent {
55
55
  *
56
56
  * @description
57
57
  *
58
- * Define se o *overlay* será aplicado a um *container* ou a página inteira.
58
+ * Define se o *overlay* será aplicado a um *container* ou à página inteira.
59
59
  *
60
60
  * Para utilizar o componente como um *container*, o elemento pai deverá receber uma posição relativa, por exemplo:
61
61
  *
@@ -85,7 +85,7 @@ export class PoLoadingOverlayBaseComponent {
85
85
  *
86
86
  * Texto a ser exibido no componente.
87
87
  *
88
- * > O valor padrão será traduzido acordo com o idioma configurado no [**PoI18n**](/documentation/po-i18n) ou navegador.
88
+ * > O valor padrão será traduzido de acordo com o idioma configurado no [**PoI18n**](/documentation/po-i18n) ou navegador.
89
89
  *
90
90
  * @default `Carregando`
91
91
  */
@@ -100,7 +100,13 @@ export class PoLoadingOverlayBaseComponent {
100
100
  *
101
101
  * @description
102
102
  *
103
- * Define o tamnho do componente.
103
+ * Define o tamanho do componente com base no tamanho do ícone de *loading*.
104
+ *
105
+ * Tamanhos disponíveis para o *loading*:
106
+ * - `xs`: 16px
107
+ * - `sm`: 24px
108
+ * - `md`: 48px
109
+ * - `lg`: 80px (valor padrão)
104
110
  *
105
111
  * @default `lg`
106
112
  */
@@ -133,4 +139,4 @@ export class PoLoadingOverlayBaseComponent {
133
139
  type: Input,
134
140
  args: ['p-size']
135
141
  }] }); })();
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9hZGluZy1vdmVybGF5LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWxvYWRpbmcvcG8tbG9hZGluZy1vdmVybGF5L3BvLWxvYWRpbmctb3ZlcmxheS1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBTXpELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBQzdDLEVBQUUsRUFBNEI7UUFDNUIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxFQUFFLEVBQTRCO1FBQzVCLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0lBQ0QsRUFBRSxFQUE0QjtRQUM1QixPQUFPLEVBQUUsWUFBWTtLQUN0QjtJQUNELEVBQUUsRUFBNEI7UUFDNUIsT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFFSCxNQUFNLE9BQU8sNkJBQTZCO0lBdUVwQjtJQXRFWixXQUFXLEdBQWEsS0FBSyxDQUFDO0lBQzlCLEtBQUssQ0FBVTtJQUNmLEtBQUssQ0FBVTtJQUV2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0gsSUFBNEIsVUFBVSxDQUFDLFVBQW1CO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQXFCLElBQUksQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILElBQXFCLElBQUksQ0FBQyxLQUFvQjtRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQW9CLGVBQWtDO1FBQWxDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFekQsT0FBTywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDM0QsQ0FBQzt1RkEvRVUsNkJBQTZCOzZEQUE3Qiw2QkFBNkI7O2lGQUE3Qiw2QkFBNkI7Y0FEekMsU0FBUztrREE0Qm9CLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQW1CRCxJQUFJO2tCQUF4QixLQUFLO21CQUFDLFFBQVE7WUFpQk0sSUFBSTtrQkFBeEIsS0FBSzttQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi8uLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUG9Mb2FkaW5nT3ZlcmxheUxpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWxvYWRpbmctb3ZlcmxheS1saXRlcmFscy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgcG9Mb2FkaW5nT3ZlcmxheUxpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb0xvYWRpbmdPdmVybGF5TGl0ZXJhbHM+e1xuICAgIGxvYWRpbmc6ICdMb2FkaW5nJ1xuICB9LFxuICBlczogPFBvTG9hZGluZ092ZXJsYXlMaXRlcmFscz57XG4gICAgbG9hZGluZzogJ0NhcmdhbmRvJ1xuICB9LFxuICBwdDogPFBvTG9hZGluZ092ZXJsYXlMaXRlcmFscz57XG4gICAgbG9hZGluZzogJ0NhcnJlZ2FuZG8nXG4gIH0sXG4gIHJ1OiA8UG9Mb2FkaW5nT3ZlcmxheUxpdGVyYWxzPntcbiAgICBsb2FkaW5nOiAn0JfQsNCz0YDRg9C30LrQsCdcbiAgfVxufTtcblxuLyoqXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIG1vc3RyYSBhbyB1c3XDoXJpbyB1bWEgaW1hZ2VtIGRlIF9sb2FkaW5nXyBlIGJsb3F1ZWlhIGEgcMOhZ2luYSBpbnRlaXJhIG91IG8gY29udGFpbmVyIGVzY29saGlkbyxcbiAqIGVucXVhbnRvIGFndWFyZGEgYSByZXNwb3N0YSBkZSBhbGd1bWEgcmVxdWlzacOnw6NvLlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTogPGJyPlxuICogT2JzOiBTw7Mgw6kgcG9zc8OtdmVsIHJlYWxpemFyIGFsdGVyYcOnw7VlcyBhbyBhZGljaW9uYXIgYSBjbGFzc2UgYC5wby1sb2FkaW5nYFxuICpcbiAqID4gUGFyYSBtYWlvcmVzIGluZm9ybWHDp8O1ZXMsIGFjZXNzZSBvIGd1aWEgW1BlcnNvbmFsaXphbmRvIG8gVGVtYSBQYWRyw6NvIGNvbSBUb2tlbnMgQ1NTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy90aGVtZS1jdXN0b21pemF0aW9uKS5cbiAqXG4gKiB8IFByb3ByaWVkYWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3Jpw6fDo28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFZhbG9yIFBhZHLDo28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKkRlZmF1bHQgVmFsdWVzKiogICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtZmFtaWx5YCAgICAgICAgICAgICAgICAgICAgICAgIHwgRmFtw61saWEgdGlwb2dyw6FmaWNhIHVzYWRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LWZhbWlseS10aGVtZSlgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXdlaWdodGAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlc28gZGEgZm9udGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbClgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLXJhZGl1c2AgICAgICAgICAgICAgICAgICAgICAgfCBDb250w6ltIG8gdmFsb3IgZG8gcmFpbyBkb3MgY2FudG9zIGRvIGVsZW1lbnRvJm5ic3A7ICAgfCBgdmFyKC0tYm9yZGVyLXJhZGl1cy1tZClgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLXdpZHRoYCAgICAgICAgICAgICAgICAgICAgICAgfCBDb250w6ltIG8gdmFsb3IgZGEgbGFyZ3VyYSBkb3MgY2FudG9zIGRvIGVsZW1lbnRvJm5ic3A7fCBgdmFyKC0tYm9yZGVyLXdpZHRoLXNtKWAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGEgYm9yZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTIwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kYCAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMDApYCAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXNoYWRvd2AgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29udMOpbSBvIHZhbG9yIGRhIHNvbWJyYSBkbyBlbGVtZW50byAgICAgICAgICAgICAgICAgIHwgYHZhcigtLXNoYWRvdy1tZClgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqcG8tbG9hZGluZy1pY29uKiogICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIGRvIHNwaW5uZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGVmYXVsdClgICAgICAgICAgICAgICAgICAgICAgfFxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9Mb2FkaW5nT3ZlcmxheUJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIF9zY3JlZW5Mb2NrPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF90ZXh0Pzogc3RyaW5nO1xuICBwcml2YXRlIF9zaXplPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBzZSBvICpvdmVybGF5KiBzZXLDoSBhcGxpY2FkbyBhIHVtICpjb250YWluZXIqIG91IGEgcMOhZ2luYSBpbnRlaXJhLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpemFyIG8gY29tcG9uZW50ZSBjb21vIHVtICpjb250YWluZXIqLCBvIGVsZW1lbnRvIHBhaSBkZXZlcsOhIHJlY2ViZXIgdW1hIHBvc2nDp8OjbyByZWxhdGl2YSwgcG9yIGV4ZW1wbG86XG4gICAqXG4gICAqIGBgYFxuICAgKiA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XG4gICAqXG4gICAqICA8cG8tY2hhcnQgW3Atc2VyaWVzXT1cIlt7IHZhbHVlOiAxMCwgY2F0ZWdvcnk6ICdFeGFtcGxlJyB9XVwiPlxuICAgKiAgPC9wby1jaGFydD5cbiAgICpcbiAgICogIDxwby1sb2FkaW5nLW92ZXJsYXk+XG4gICAqICA8L3BvLWxvYWRpbmctb3ZlcmxheT5cbiAgICogPC9kaXY+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc2NyZWVuLWxvY2snKSBzZXQgc2NyZWVuTG9jayhzY3JlZW5Mb2NrOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2NyZWVuTG9jayA9IGNvbnZlcnRUb0Jvb2xlYW4oc2NyZWVuTG9jayk7XG4gIH1cblxuICBnZXQgc2NyZWVuTG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2NyZWVuTG9jaztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFRleHRvIGEgc2VyIGV4aWJpZG8gbm8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogPiBPIHZhbG9yIHBhZHLDo28gc2Vyw6EgdHJhZHV6aWRvIGFjb3JkbyBjb20gbyBpZGlvbWEgY29uZmlndXJhZG8gbm8gWyoqUG9JMThuKipdKC9kb2N1bWVudGF0aW9uL3BvLWkxOG4pIG91IG5hdmVnYWRvci5cbiAgICpcbiAgICogQGRlZmF1bHQgYENhcnJlZ2FuZG9gXG4gICAqL1xuICBASW5wdXQoJ3AtdGV4dCcpIHNldCB0ZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90ZXh0ID0gdmFsdWUgfHwgdGhpcy5nZXRUZXh0RGVmYXVsdCgpO1xuICB9XG5cbiAgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIHRhbW5obyBkbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgbGdgXG4gICAqL1xuICBASW5wdXQoJ3Atc2l6ZScpIHNldCBzaXplKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlID09PSAnJyB8fCAhdmFsdWUgPyAnbGcnIDogdmFsdWU7XG4gIH1cblxuICBnZXQgc2l6ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy50ZXh0ID0gdGhpcy5nZXRUZXh0RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0RGVmYXVsdCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuXG4gICAgcmV0dXJuIHBvTG9hZGluZ092ZXJsYXlMaXRlcmFsc0RlZmF1bHRbbGFuZ3VhZ2VdLmxvYWRpbmc7XG4gIH1cbn1cbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9hZGluZy1vdmVybGF5LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWxvYWRpbmcvcG8tbG9hZGluZy1vdmVybGF5L3BvLWxvYWRpbmctb3ZlcmxheS1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBTXpELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBQzdDLEVBQUUsRUFBNEI7UUFDNUIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxFQUFFLEVBQTRCO1FBQzVCLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0lBQ0QsRUFBRSxFQUE0QjtRQUM1QixPQUFPLEVBQUUsWUFBWTtLQUN0QjtJQUNELEVBQUUsRUFBNEI7UUFDNUIsT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFFSCxNQUFNLE9BQU8sNkJBQTZCO0lBNkVwQjtJQTVFWixXQUFXLEdBQWEsS0FBSyxDQUFDO0lBQzlCLEtBQUssQ0FBVTtJQUNmLEtBQUssQ0FBVTtJQUV2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0gsSUFBNEIsVUFBVSxDQUFDLFVBQW1CO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQXFCLElBQUksQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILElBQXFCLElBQUksQ0FBQyxLQUFvQjtRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQW9CLGVBQWtDO1FBQWxDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFekQsT0FBTywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDM0QsQ0FBQzt1RkFyRlUsNkJBQTZCOzZEQUE3Qiw2QkFBNkI7O2lGQUE3Qiw2QkFBNkI7Y0FEekMsU0FBUztrREE0Qm9CLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQW1CRCxJQUFJO2tCQUF4QixLQUFLO21CQUFDLFFBQVE7WUF1Qk0sSUFBSTtrQkFBeEIsS0FBSzttQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi8uLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUG9Mb2FkaW5nT3ZlcmxheUxpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWxvYWRpbmctb3ZlcmxheS1saXRlcmFscy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgcG9Mb2FkaW5nT3ZlcmxheUxpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb0xvYWRpbmdPdmVybGF5TGl0ZXJhbHM+e1xuICAgIGxvYWRpbmc6ICdMb2FkaW5nJ1xuICB9LFxuICBlczogPFBvTG9hZGluZ092ZXJsYXlMaXRlcmFscz57XG4gICAgbG9hZGluZzogJ0NhcmdhbmRvJ1xuICB9LFxuICBwdDogPFBvTG9hZGluZ092ZXJsYXlMaXRlcmFscz57XG4gICAgbG9hZGluZzogJ0NhcnJlZ2FuZG8nXG4gIH0sXG4gIHJ1OiA8UG9Mb2FkaW5nT3ZlcmxheUxpdGVyYWxzPntcbiAgICBsb2FkaW5nOiAn0JfQsNCz0YDRg9C30LrQsCdcbiAgfVxufTtcblxuLyoqXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIG1vc3RyYSBhbyB1c3XDoXJpbyB1bWEgaW1hZ2VtIGRlIF9sb2FkaW5nXyBlIGJsb3F1ZWlhIGEgcMOhZ2luYSBpbnRlaXJhIG91IG8gY29udGFpbmVyIGVzY29saGlkbyxcbiAqIGVucXVhbnRvIGFndWFyZGEgYSByZXNwb3N0YSBkZSBhbGd1bWEgcmVxdWlzacOnw6NvLlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTogPGJyPlxuICogT2JzOiBTw7Mgw6kgcG9zc8OtdmVsIHJlYWxpemFyIGFsdGVyYcOnw7VlcyBhbyBhZGljaW9uYXIgYSBjbGFzc2UgYC5wby1sb2FkaW5nYFxuICpcbiAqID4gUGFyYSBtYWlvcmVzIGluZm9ybWHDp8O1ZXMsIGFjZXNzZSBvIGd1aWEgW1BlcnNvbmFsaXphbmRvIG8gVGVtYSBQYWRyw6NvIGNvbSBUb2tlbnMgQ1NTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy90aGVtZS1jdXN0b21pemF0aW9uKS5cbiAqXG4gKiB8IFByb3ByaWVkYWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3Jpw6fDo28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFZhbG9yIFBhZHLDo28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKkRlZmF1bHQgVmFsdWVzKiogICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtZmFtaWx5YCAgICAgICAgICAgICAgICAgICAgICAgIHwgRmFtw61saWEgdGlwb2dyw6FmaWNhIHVzYWRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LWZhbWlseS10aGVtZSlgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXdlaWdodGAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlc28gZGEgZm9udGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbClgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLXJhZGl1c2AgICAgICAgICAgICAgICAgICAgICAgfCBDb250w6ltIG8gdmFsb3IgZG8gcmFpbyBkb3MgY2FudG9zIGRvIGVsZW1lbnRvJm5ic3A7ICAgfCBgdmFyKC0tYm9yZGVyLXJhZGl1cy1tZClgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLXdpZHRoYCAgICAgICAgICAgICAgICAgICAgICAgfCBDb250w6ltIG8gdmFsb3IgZGEgbGFyZ3VyYSBkb3MgY2FudG9zIGRvIGVsZW1lbnRvJm5ic3A7fCBgdmFyKC0tYm9yZGVyLXdpZHRoLXNtKWAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGEgYm9yZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTIwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kYCAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMDApYCAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXNoYWRvd2AgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29udMOpbSBvIHZhbG9yIGRhIHNvbWJyYSBkbyBlbGVtZW50byAgICAgICAgICAgICAgICAgIHwgYHZhcigtLXNoYWRvdy1tZClgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqcG8tbG9hZGluZy1pY29uKiogICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIGRvIHNwaW5uZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGVmYXVsdClgICAgICAgICAgICAgICAgICAgICAgfFxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9Mb2FkaW5nT3ZlcmxheUJhc2VDb21wb25lbnQge1xuICBwcml2YXRlIF9zY3JlZW5Mb2NrPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF90ZXh0Pzogc3RyaW5nO1xuICBwcml2YXRlIF9zaXplPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBzZSBvICpvdmVybGF5KiBzZXLDoSBhcGxpY2FkbyBhIHVtICpjb250YWluZXIqIG91IMOgIHDDoWdpbmEgaW50ZWlyYS5cbiAgICpcbiAgICogUGFyYSB1dGlsaXphciBvIGNvbXBvbmVudGUgY29tbyB1bSAqY29udGFpbmVyKiwgbyBlbGVtZW50byBwYWkgZGV2ZXLDoSByZWNlYmVyIHVtYSBwb3Npw6fDo28gcmVsYXRpdmEsIHBvciBleGVtcGxvOlxuICAgKlxuICAgKiBgYGBcbiAgICogPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxuICAgKlxuICAgKiAgPHBvLWNoYXJ0IFtwLXNlcmllc109XCJbeyB2YWx1ZTogMTAsIGNhdGVnb3J5OiAnRXhhbXBsZScgfV1cIj5cbiAgICogIDwvcG8tY2hhcnQ+XG4gICAqXG4gICAqICA8cG8tbG9hZGluZy1vdmVybGF5PlxuICAgKiAgPC9wby1sb2FkaW5nLW92ZXJsYXk+XG4gICAqIDwvZGl2PlxuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXNjcmVlbi1sb2NrJykgc2V0IHNjcmVlbkxvY2soc2NyZWVuTG9jazogYm9vbGVhbikge1xuICAgIHRoaXMuX3NjcmVlbkxvY2sgPSBjb252ZXJ0VG9Cb29sZWFuKHNjcmVlbkxvY2spO1xuICB9XG5cbiAgZ2V0IHNjcmVlbkxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NjcmVlbkxvY2s7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBUZXh0byBhIHNlciBleGliaWRvIG5vIGNvbXBvbmVudGUuXG4gICAqXG4gICAqID4gTyB2YWxvciBwYWRyw6NvIHNlcsOhIHRyYWR1emlkbyBkZSBhY29yZG8gY29tIG8gaWRpb21hIGNvbmZpZ3VyYWRvIG5vIFsqKlBvSTE4bioqXSgvZG9jdW1lbnRhdGlvbi9wby1pMThuKSBvdSBuYXZlZ2Fkb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBDYXJyZWdhbmRvYFxuICAgKi9cbiAgQElucHV0KCdwLXRleHQnKSBzZXQgdGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGV4dCA9IHZhbHVlIHx8IHRoaXMuZ2V0VGV4dERlZmF1bHQoKTtcbiAgfVxuXG4gIGdldCB0ZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RleHQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyB0YW1hbmhvIGRvIGNvbXBvbmVudGUgY29tIGJhc2Ugbm8gdGFtYW5obyBkbyDDrWNvbmUgZGUgKmxvYWRpbmcqLlxuICAgKlxuICAgKiBUYW1hbmhvcyBkaXNwb27DrXZlaXMgcGFyYSBvICpsb2FkaW5nKjpcbiAgICogLSBgeHNgOiAxNnB4XG4gICAqIC0gYHNtYDogMjRweFxuICAgKiAtIGBtZGA6IDQ4cHhcbiAgICogLSBgbGdgOiA4MHB4ICh2YWxvciBwYWRyw6NvKVxuICAgKlxuICAgKiBAZGVmYXVsdCBgbGdgXG4gICAqL1xuICBASW5wdXQoJ3Atc2l6ZScpIHNldCBzaXplKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlID09PSAnJyB8fCAhdmFsdWUgPyAnbGcnIDogdmFsdWU7XG4gIH1cblxuICBnZXQgc2l6ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy50ZXh0ID0gdGhpcy5nZXRUZXh0RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0RGVmYXVsdCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuXG4gICAgcmV0dXJuIHBvTG9hZGluZ092ZXJsYXlMaXRlcmFsc0RlZmF1bHRbbGFuZ3VhZ2VdLmxvYWRpbmc7XG4gIH1cbn1cbiJdfQ==
@@ -254,10 +254,9 @@ export class PoTabsComponent extends PoTabsBaseComponent {
254
254
  lastTabChildren.widthButton = this.defaultLastTabWidth;
255
255
  }
256
256
  if (this.tabsChildren) {
257
- const _tabsChildren = this.tabsChildrenArray;
257
+ const _tabsChildren = [...this.tabsChildrenArray];
258
258
  if (initialState) {
259
259
  this.tabsDefault = _tabsChildren;
260
- this.tabsDropdown = _tabsChildren;
261
260
  }
262
261
  else {
263
262
  this.tabsDefault = _tabsChildren.slice(0, this.quantityTabsButton);
@@ -452,4 +451,4 @@ export class PoTabsComponent extends PoTabsBaseComponent {
452
451
  args: ['containerTabs', { read: ElementRef, static: true }]
453
452
  }] }); })();
454
453
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoTabsComponent, { className: "PoTabsComponent", filePath: "lib/components/po-tabs/po-tabs.component.ts", lineNumber: 69 }); })();
455
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tdGFicy9wby10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJzL3BvLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUlWLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0lDaEJ6RCw2QkFBMkQ7SUFDekQsMkNBZUM7SUFEQyxBQURBLEFBREEsQUFEQSx1TUFBZSxxQkFBYyxLQUFDLG1OQUNmLDBCQUFnQixLQUFDLHlOQUNkLCtCQUFxQixLQUFDLDJNQUM3QiwwQkFBZ0IsS0FBQztJQUU5QixpQkFBZ0I7Ozs7SUFiZCxjQUF1QjtJQU92QixBQURBLEFBRkEsQUFEQSxBQURBLEFBREEsQUFEQSx3Q0FBdUIsK0JBQ0ksdUJBQ1IsbUJBQ0osdUJBQ0kseUJBRUUsaUJBQ1I7Ozs7O0lBU2pCLDhDQVNDO0lBREMsQUFEQSx3TkFBa0IsK0JBQXdCLEtBQUMsNkxBQ2hDLG9DQUE2QixLQUFDO0lBRTNDLGlCQUFrQjs7O0lBTmhCLDBHQUFxRDtJQUVyRCxBQURBLGtEQUE2QixpQ0FDSjs7QURQakMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFXO0lBQ3BDLEVBQUUsRUFBTztRQUNQLFFBQVEsRUFBRSxNQUFNO0tBQ2pC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QUMzQixpQkFBTTs7WUFwQzhCLGVBQVM7WUFBQSxBQUFULGtDQUFTLCtCQUFrQjtZQXNCdEQsY0FBdUI7WUFBdkIsNENBQXVCOzs7aUZEMkNuQixlQUFlO2NBSjNCLFNBQVM7MkJBQ0UsU0FBUzs4R0FLYyxZQUFZO2tCQUE1QyxlQUFlO21CQUFDLGNBQWM7WUFDa0IsU0FBUztrQkFBekQsWUFBWTttQkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBRUgsV0FBVztrQkFBdEQsU0FBUzttQkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ3NCLGFBQWE7a0JBQTVFLFNBQVM7bUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztrRkFObkQsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb1RhYkRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9wby10YWItZHJvcGRvd24vcG8tdGFiLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1RhYkNvbXBvbmVudCB9IGZyb20gJy4vcG8tdGFiL3BvLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9UYWJzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tdGFicy1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1RhYnNTZXJ2aWNlIH0gZnJvbSAnLi9wby10YWJzLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgcG9UYWJzTGl0ZXJhbHM6IE9iamVjdCA9IHtcbiAgZW46IDxhbnk+e1xuICAgIG1vcmVUYWJzOiAnTW9yZSdcbiAgfSxcbiAgZXM6IDxhbnk+e1xuICAgIG1vcmVUYWJzOiAnTcOhcydcbiAgfSxcbiAgcHQ6IDxhbnk+e1xuICAgIG1vcmVUYWJzOiAnTWFpcydcbiAgfSxcbiAgcnU6IDxhbnk+e1xuICAgIG1vcmVUYWJzOiAn0JXRidGRJ1xuICB9XG59O1xuXG5jb25zdCBwb1RhYnNNYXhOdW1iZXJPZlRhYnMgPSA1O1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1RhYnNCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFicy1iYXNpY1wiIHRpdGxlPVwiUE8gVGFicyBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFicy1iYXNpYy9zYW1wbGUtcG8tdGFicy1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJzLWJhc2ljL3NhbXBsZS1wby10YWJzLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYnMtbGFic1wiIHRpdGxlPVwiUE8gVGFicyBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJzLWxhYnMvc2FtcGxlLXBvLXRhYnMtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJzLWxhYnMvc2FtcGxlLXBvLXRhYnMtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJzLXRyYXZlbFwiIHRpdGxlPVwiUE8gVGFicyAtIFRyYXZlbFwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFicy10cmF2ZWwvc2FtcGxlLXBvLXRhYnMtdHJhdmVsLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYnMtdHJhdmVsL3NhbXBsZS1wby10YWJzLXRyYXZlbC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJzLWJ1c2luZXNzLWNvbmZcIiB0aXRsZT1cIlBPIFRhYnMgLSBCdXNpbmVzcyBDb25mZXJlbmNlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJzLWJ1c2luZXNzLWNvbmYvc2FtcGxlLXBvLXRhYnMtYnVzaW5lc3MtY29uZi5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJzLWJ1c2luZXNzLWNvbmYvc2FtcGxlLXBvLXRhYnMtYnVzaW5lc3MtY29uZi5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXRhYnMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvVGFic0NvbXBvbmVudCBleHRlbmRzIFBvVGFic0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8vIFRhYnMgdXRpbGl6YWRvcyBubyBuZy1jb250ZW50XG4gIEBDb250ZW50Q2hpbGRyZW4oUG9UYWJDb21wb25lbnQpIHRhYnNDaGlsZHJlbjogUXVlcnlMaXN0PFBvVGFiQ29tcG9uZW50PjtcbiAgQFZpZXdDaGlsZHJlbigndGFiQnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRhYkJ1dHRvbjogUXVlcnlMaXN0PGFueT47XG5cbiAgQFZpZXdDaGlsZCgndGFiRHJvcGRvd24nLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJEcm9wZG93bjogUG9UYWJEcm9wZG93bkNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyVGFicycsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGNvbnRhaW5lclRhYnM6IEVsZW1lbnRSZWY7XG5cbiAgbWF4TnVtYmVyT2ZUYWJzID0gcG9UYWJzTWF4TnVtYmVyT2ZUYWJzO1xuICBsaXRlcmFscztcbiAgdGFic0RlZmF1bHQgPSBbXTtcbiAgdGFic0Ryb3Bkb3duID0gW107XG4gIGluaXRpYWxpemVDYWxjdWxhdGlvbiA9IHRydWU7XG4gIGluaXRpYWxpemVDb21wb25lbnQgPSBmYWxzZTtcblxuICBxdWFudGl0eVRhYnNCdXR0b247XG4gIGRlZmF1bHRMYXN0VGFiV2lkdGghOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBwcmV2aW91c0FjdGl2ZVRhYjogUG9UYWJDb21wb25lbnQ7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uVGFic1NlcnZpY2U6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25UYWJBY3RpdmU6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFic1NlcnZpY2U6IFBvVGFic1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG5cbiAgICB0aGlzLmxpdGVyYWxzID0ge1xuICAgICAgLi4ucG9UYWJzTGl0ZXJhbHNbbGFuZ3VhZ2VdXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uVGFic1NlcnZpY2UgPSB0aGlzLnRhYnNTZXJ2aWNlLm9uQ2hhbmdlc1RyaWdnZXJlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVGFic1N0YXRlKCk7XG4gICAgICBpZiAodGhpcy5pbml0aWFsaXplQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlS2V5Ym9hcmROYXZpZ2F0aW9uVGFiKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvblRhYkFjdGl2ZSA9IHRoaXMudGFic1NlcnZpY2UudHJpZ2dlckFjdGl2ZU9uQ2hhbmdlcyQuc3Vic2NyaWJlKHRhYiA9PiB7XG4gICAgICBjb25zdCBpc1RhYkluRHJvcGRvd24gPSB0aGlzLnRhYnNEcm9wZG93bi5zb21lKHQgPT4gdC5pZCA9PT0gdGFiLmlkKTtcbiAgICAgIGlmIChpc1RhYkluRHJvcGRvd24pIHtcbiAgICAgICAgdGhpcy5vblRhYkFjdGl2ZUJ5RHJvcGRvd24odGFiLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjdWxhdGVUYWJzKHRoaXMuaW5pdGlhbGl6ZUNhbGN1bGF0aW9uKTtcbiAgICB0aGlzLmluaXRpYWxpemVDYWxjdWxhdGlvbiA9IGZhbHNlO1xuXG4gICAgdGhpcy51cGRhdGVUYWJzU3RhdGUoKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmhhbmRsZUtleWJvYXJkTmF2aWdhdGlvblRhYigpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCA9IHRydWU7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVUYWJzU3RhdGUodHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uVGFic1NlcnZpY2UudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvblRhYkFjdGl2ZS51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IGlzU2hvd1RhYkRyb3Bkb3duKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNDaGlsZHJlblsnX3Jlc3VsdHMnXS5zbGljZSh0aGlzLnF1YW50aXR5VGFic0J1dHRvbikuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uaGlkZSkubGVuZ3RoO1xuICB9XG5cbiAgLy8gdGFicyBxdWUgc2Vyw6NvIGFwcmVzZW50YWRhcyBuYSBhYmEgXCJNYWlzXCJcbiAgZ2V0IG92ZXJmbG93ZWRUYWJzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNDaGlsZHJlblsnX3Jlc3VsdHMnXS5zbGljZSh0aGlzLnF1YW50aXR5VGFic0J1dHRvbik7XG4gIH1cblxuICBnZXQgdGFicygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzQ2hpbGRyZW5bJ19yZXN1bHRzJ10uc2xpY2UoMCwgdGhpcy5xdWFudGl0eVRhYnNCdXR0b24pO1xuICB9XG5cbiAgZ2V0IHRhYnNDaGlsZHJlbkFycmF5KCk6IEFycmF5PFBvVGFiQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMudGFic0NoaWxkcmVuLnRvQXJyYXkoKTtcbiAgfVxuXG4gIGNsb3NlTGlzdGJveCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJEcm9wZG93biAmJiB0aGlzLnRhYkRyb3Bkb3duLmlzRHJvcGRvd25PcGVuKSB7XG4gICAgICB0aGlzLnRhYkRyb3Bkb3duLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBpc1Zpc2libGVUYWIodGFiKSB7XG4gICAgcmV0dXJuICF0YWIuaGlkZTtcbiAgfVxuXG4gIG9uVGFiQWN0aXZlQnlEcm9wZG93bih0YWI6IFBvVGFiQ29tcG9uZW50LCBldmVudEVtaXR0ZXIgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VUYWJQb3NpdGlvbkJ5RHJvcGRvd24odGFiKTtcbiAgICBjb25zdCBsYXN0VGFiV2lkdGggPVxuICAgICAgdGhpcy5kZWZhdWx0TGFzdFRhYldpZHRoID4gMFxuICAgICAgICA/IHRoaXMuZGVmYXVsdExhc3RUYWJXaWR0aFxuICAgICAgICA6IHRoaXMudGFic0NoaWxkcmVuLmZpbmQoZSA9PiBlID09PSB0aGlzLnRhYnNDaGlsZHJlbkFycmF5W3RoaXMucXVhbnRpdHlUYWJzQnV0dG9uIC0gMV0pPy53aWR0aEJ1dHRvbjtcblxuICAgIHRoaXMucmVvcmRlclRhYnModGFiKTtcbiAgICB0YWIud2lkdGhCdXR0b24gPSBsYXN0VGFiV2lkdGg7XG4gICAgdGhpcy50YWJCdXR0b24ubGFzdC5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7bGFzdFRhYldpZHRofXB4YDtcbiAgICB0aGlzLmhhbmRsZUtleWJvYXJkTmF2aWdhdGlvblRhYigpO1xuXG4gICAgaWYgKGV2ZW50RW1pdHRlcikge1xuICAgICAgdGFiLmNsaWNrLmVtaXQodGFiKTtcbiAgICB9XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBkaXNwYXJhZGEgcXVhbmRvIGFsZ3VtYSB0YWIgZmljYXIgYXRpdmFcbiAgb25UYWJBY3RpdmUodGFiOiBQb1RhYkNvbXBvbmVudCkge1xuICAgIHRoaXMucHJldmlvdXNBY3RpdmVUYWIgPSB0aGlzLnRhYnNDaGlsZHJlbi5maW5kKHRhYkNoaWxkID0+IHRhYkNoaWxkLmFjdGl2ZSAmJiB0YWJDaGlsZC5pZCAhPT0gdGFiLmlkKTtcbiAgICB0aGlzLmRlYWN0aXZhdGVUYWIoKTtcbiAgfVxuXG4gIC8vIGZ1bmNhbyBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIG11ZGFyIG8gZXN0YWRvIGRvIHBvVGFiIHBhcmEgZGVzYWJpbGl0YWRvIG91IGVzY29uZGlkby5cbiAgb25UYWJDaGFuZ2VTdGF0ZSh0YWI6IFBvVGFiQ29tcG9uZW50IHwgYW55KSB7XG4gICAgaWYgKHRhYi5hY3RpdmUpIHtcbiAgICAgIHRhYi5hY3RpdmUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5hY3RpdmVEaXN0aW5jdFRhYigpO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICByZW9yZGVyVGFicyh0YWJUb1Jlb3JkZXI6IFBvVGFiQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFic0FycmF5ID0gdGhpcy50YWJzQ2hpbGRyZW5BcnJheTtcbiAgICBjb25zdCB0YWJJbmRleCA9IHRhYnNBcnJheS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB0YWJUb1Jlb3JkZXIuaWQpO1xuICAgIGlmICh0YWJJbmRleCAhPT0gLTEpIHtcbiAgICAgIGNvbnN0IFt0YWJdID0gdGFic0FycmF5LnNwbGljZSh0YWJJbmRleCwgMSk7XG4gICAgICB0YWJzQXJyYXkuc3BsaWNlKHRoaXMucXVhbnRpdHlUYWJzQnV0dG9uIC0gMSwgMCwgdGFiKTtcbiAgICB9XG4gICAgdGhpcy50YWJzQ2hpbGRyZW4ucmVzZXQodGFic0FycmF5KTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8vIHNlbGVjdGlvbmEgYSBhYmEgaW5mb3JtYWRhIHBvciBwYXJhbWV0cm8sIGNhc28gaG91dmVyIGNsaWNrIGZheiBhIGVtacOnw6NvIGRvIGV2ZW50by5cbiAgc2VsZWN0ZWRUYWIodGFiOiBQb1RhYkNvbXBvbmVudCB8IGFueSkge1xuICAgIHRhYi5hY3RpdmUgPSB0cnVlO1xuXG4gICAgaWYgKHRhYi5jbGljaykge1xuICAgICAgdGFiLmNsaWNrLmVtaXQodGFiKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc1RhYkluRHJvcGRvd24gPSB0aGlzLm92ZXJmbG93ZWRUYWJzLnNvbWUodCA9PiB0LmlkID09PSB0YWIuaWQpO1xuICAgIGlmIChpc1RhYkluRHJvcGRvd24pIHtcbiAgICAgIHRoaXMub25UYWJBY3RpdmVCeURyb3Bkb3duKHRhYik7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0cmFja0J5Rm4oX2ksIHRhYjogUG9UYWJDb21wb25lbnQpIHtcbiAgICByZXR1cm4gdGFiLmlkO1xuICB9XG5cbiAgLy8gYXRpdmEgYSBwcmV2aW91c0FjdGl2ZVRhYiBvdSBwcmltZWlyYSB0YWIgZW5jb250cmFkYS5cbiAgcHJpdmF0ZSBhY3RpdmVEaXN0aW5jdFRhYigpIHtcbiAgICBpZiAodGhpcy5wcmV2aW91c0FjdGl2ZVRhYikge1xuICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZVRhYi5hY3RpdmUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpcnN0VGFiKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQXRpdmEgYSBwcmltZWlyYSBUYWIgcXVlIG7Do28gZXN0aXZlciBkZXNhYmlsaXRhZGEgb3UgZXNjb25kaWRhLlxuICBwcml2YXRlIGFjdGl2ZUZpcnN0VGFiKCkge1xuICAgIHRoaXMudGFicy5zb21lKHRhYkNoaWxkID0+IHtcbiAgICAgIGlmICghdGFiQ2hpbGQuZGlzYWJsZWQgJiYgIXRhYkNoaWxkLmhpZGUpIHtcbiAgICAgICAgdGFiQ2hpbGQuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBNb3ZpbWVudGEgYSB0YWIgZGEgdmlzw6NvIGRlIHRhYnMgcGFyYSBvIGRyb3Bkb3duLCBlIHZpY2UtdmVyc2EuXG4gIHByaXZhdGUgY2hhbmdlVGFiUG9zaXRpb25CeURyb3Bkb3duKHRhYlRvQWN0aXZhdGU6IFBvVGFiQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgbGFzdFRhYiA9IHRoaXMudGFic0RlZmF1bHRbdGhpcy50YWJzRGVmYXVsdC5sZW5ndGggLSAxXTtcbiAgICB0aGlzLnRhYnNEZWZhdWx0ID0gdGhpcy50YWJzRGVmYXVsdC5maWx0ZXIodGFiID0+IHRhYi5pZCAhPT0gbGFzdFRhYi5pZCk7XG4gICAgdGhpcy50YWJzRGVmYXVsdC5wdXNoKHRhYlRvQWN0aXZhdGUpO1xuXG4gICAgY29uc3QgX3RhYnNEcm9wZG93biA9IHRoaXMudGFic0Ryb3Bkb3duLmZpbHRlcih0YWIgPT4gdGFiLmlkICE9PSB0YWJUb0FjdGl2YXRlLmlkKTtcbiAgICBfdGFic0Ryb3Bkb3duLnVuc2hpZnQobGFzdFRhYik7XG4gICAgdGhpcy50YWJzRHJvcGRvd24gPSBfdGFic0Ryb3Bkb3duO1xuXG4gICAgdGFiVG9BY3RpdmF0ZS5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMub25UYWJBY3RpdmUodGFiVG9BY3RpdmF0ZSk7XG4gIH1cblxuICAvLyBkZXNhdGl2YSBwcmV2aW91c0FjdGl2ZVRhYiBlIGRpc3BhcmEgYSBkZXRlY8Onw6NvIGRlIG11ZGFuw6dhLlxuICBwcml2YXRlIGRlYWN0aXZhdGVUYWIoKSB7XG4gICAgaWYgKHRoaXMucHJldmlvdXNBY3RpdmVUYWIpIHtcbiAgICAgIHRoaXMucHJldmlvdXNBY3RpdmVUYWIuYWN0aXZlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFic1N0YXRlKGluaXRpYWxTdGF0ZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5kZWZhdWx0TGFzdFRhYldpZHRoID0gdGhpcy50YWJCdXR0b24/Lmxhc3Q/Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIGlmICh0aGlzLmRlZmF1bHRMYXN0VGFiV2lkdGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxhc3RUYWJDaGlsZHJlbjogUG9UYWJDb21wb25lbnQgPSB0aGlzLnRhYnNDaGlsZHJlbkFycmF5W3RoaXMucXVhbnRpdHlUYWJzQnV0dG9uIC0gMV07XG4gICAgaWYgKGxhc3RUYWJDaGlsZHJlbikge1xuICAgICAgbGFzdFRhYkNoaWxkcmVuLndpZHRoQnV0dG9uID0gdGhpcy5kZWZhdWx0TGFzdFRhYldpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhYnNDaGlsZHJlbikge1xuICAgICAgY29uc3QgX3RhYnNDaGlsZHJlbiA9IHRoaXMudGFic0NoaWxkcmVuQXJyYXk7XG4gICAgICBpZiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICAgIHRoaXMudGFic0RlZmF1bHQgPSBfdGFic0NoaWxkcmVuO1xuICAgICAgICB0aGlzLnRhYnNEcm9wZG93biA9IF90YWJzQ2hpbGRyZW47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRhYnNEZWZhdWx0ID0gX3RhYnNDaGlsZHJlbi5zbGljZSgwLCB0aGlzLnF1YW50aXR5VGFic0J1dHRvbik7XG4gICAgICAgIHRoaXMudGFic0Ryb3Bkb3duID0gX3RhYnNDaGlsZHJlbi5zbGljZSh0aGlzLnF1YW50aXR5VGFic0J1dHRvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlVGFicyhpbml0aWFsaXplQ2FsY3VsYXRpb24/OiBib29sZWFuKSB7XG4gICAgaWYgKGluaXRpYWxpemVDYWxjdWxhdGlvbikge1xuICAgICAgbGV0IHN1bU9mV2lkdGggPSAxNTA7XG4gICAgICBjb25zdCBzY3JlZW5TaXplID0gdGhpcy5jb250YWluZXJUYWJzLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICBjb25zdCBsaXN0VGFiQnV0dG9uID0gW107XG4gICAgICBpZiAodGhpcy50YWJCdXR0b24/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLnRhYkJ1dHRvbi5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgIGlmIChzdW1PZldpZHRoICsgd2lkdGggPD0gc2NyZWVuU2l6ZSB8fCBzY3JlZW5TaXplIDwgMSkge1xuICAgICAgICAgICAgbGlzdFRhYkJ1dHRvbi5wdXNoKGVsZW1lbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN1bU9mV2lkdGggKz0gd2lkdGg7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5xdWFudGl0eVRhYnNCdXR0b24gPSBsaXN0VGFiQnV0dG9uLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlib2FyZE5hdmlnYXRpb25UYWIoaW5pdGlhbEluZGV4ID0gMCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgaWYgKHRoaXMudGFiQnV0dG9uPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHRhYkZvY3VzYWJsZSA9IHRoaXMudGFiQnV0dG9uXG4gICAgICAgIC5maWx0ZXIoKGVsZW1lbnQsIGluZGV4KSA9PiBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0/LmlkID09PSB0aGlzLnRhYnNDaGlsZHJlblsnX3Jlc3VsdHMnXVtpbmRleF0/LmlkKVxuICAgICAgICAubWFwKGVsID0+IHtcbiAgICAgICAgICBpZiAoZWwubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGFzc0xpc3QuY29udGFpbnMoJ3BvLXRhYi1mb2N1c2FibGUnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgaWYgKHRhYkZvY3VzYWJsZSkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVUYWJBY2Nlc3NpYmlsaXR5RWxlbWVudHModGFiRm9jdXNhYmxlLCBpbml0aWFsSW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBvIG7Dum1lcm8gZGUgdGFicyBmb3JhIGRvIGRyb3Bkb3duLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpesOhLWxhIMOpIG5lY2Vzc8OhcmlvIHRlciBhIGluc3TDom5jaWEgZG8gY29tcG9uZW50ZSBubyBET00sIHBvZGVuZG8gc2VyIHV0aWxpemFkbyBvIFZpZXdDaGlsZCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIGltcG9ydCB7IFBvVGFic0NvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoJ3BvVGFiJywgeyBzdGF0aWM6IHRydWUgfSkgcG9UYWI6IFBvVGFic0NvbXBvbmVudDtcbiAgICpcbiAgICogY2hhbmdlUXVhbnRpdHlUYWJzKCkge1xuICAgKiAgIHRoaXMucG9UYWIuc2V0UXVhbnRpdHlUYWJzQnV0dG9uKDEpOyAvL07Dum1lcm8gZGUgdGFic1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgc2V0UXVhbnRpdHlUYWJzQnV0dG9uKG51bWJlcjogTnVtYmVyKSB7XG4gICAgdGhpcy5xdWFudGl0eVRhYnNCdXR0b24gPSBudW1iZXI7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUYWJBY2Nlc3NpYmlsaXR5RWxlbWVudHModGFiUmVtb3ZlRWxlbWVudHMsIGluaXRpYWxJbmRleCkge1xuICAgIHRhYlJlbW92ZUVsZW1lbnRzLmZvckVhY2goKHRhYlJlbW92ZUVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaW5kZXggPT09IGluaXRpYWxJbmRleCkge1xuICAgICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luaXRpYWxJbmRleF0sIDApO1xuICAgICAgfSBlbHNlIGlmICh0YWJSZW1vdmVFbGVtZW50cy5sZW5ndGggPT09IGluaXRpYWxJbmRleCkge1xuICAgICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luaXRpYWxJbmRleCAtIDFdLCAwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudCwgLTEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIGZyb21FdmVudCh0YWJSZW1vdmVFbGVtZW50LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUtleURvd24oZXZlbnQsIHRhYlJlbW92ZUVsZW1lbnRzLCBpbmRleCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBpZiAoaW5kZXggIT09IDApIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgIGZyb21FdmVudCh0YWJSZW1vdmVFbGVtZW50cywgJ2JsdXInKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1tpbmRleF0sIC0xKTtcbiAgICAgICAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbMF0sIDApO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFRhYkluZGV4KGVsZW1lbnQsIHRhYkluZGV4KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgdGFiSW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB0YWJSZW1vdmVFbGVtZW50cywgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IEtFWV9TUEFDRSA9ICdTcGFjZSc7XG4gICAgY29uc3QgS0VZX0FSUk9XX0xFRlQgPSAnQXJyb3dMZWZ0JztcbiAgICBjb25zdCBLRVlfQVJST1dfUklHSFQgPSAnQXJyb3dSaWdodCc7XG4gICAgY29uc3QgS0VZX0hPTUUgPSAnSG9tZSc7XG4gICAgY29uc3QgS0VZX0VORCA9ICdFbmQnO1xuXG4gICAgaWYgKGV2ZW50LmNvZGUgPT09IEtFWV9TUEFDRSB8fCBldmVudC5jb2RlID09PSBLRVlfSE9NRSB8fCBldmVudC5jb2RlID09PSBLRVlfRU5EKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZX0FSUk9XX0xFRlQpIHtcbiAgICAgIHRoaXMuaGFuZGxlQXJyb3dMZWZ0KHRhYlJlbW92ZUVsZW1lbnRzLCBpbmRleCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IEtFWV9BUlJPV19SSUdIVCkge1xuICAgICAgdGhpcy5oYW5kbGVBcnJvd1JpZ2h0KHRhYlJlbW92ZUVsZW1lbnRzLCBpbmRleCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IEtFWV9IT01FKSB7XG4gICAgICB0aGlzLmhhbmRsZUhvbWVLZXkodGFiUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS0VZX0VORCkge1xuICAgICAgdGhpcy5oYW5kbGVFbmRLZXkodGFiUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFycm93TGVmdCh0YWJSZW1vdmVFbGVtZW50cywgaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4XSwgLTEpO1xuICAgICAgdGFiUmVtb3ZlRWxlbWVudHNbaW5kZXggLSAxXS5mb2N1cygpO1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1tpbmRleCAtIDFdLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1tpbmRleF0sIC0xKTtcbiAgICAgIHRhYlJlbW92ZUVsZW1lbnRzW3RhYlJlbW92ZUVsZW1lbnRzLmxlbmd0aCAtIDFdLmZvY3VzKCk7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW3RhYlJlbW92ZUVsZW1lbnRzLmxlbmd0aCAtIDFdLCAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUhvbWVLZXkodGFiUmVtb3ZlRWxlbWVudHMsIGluZGV4KSB7XG4gICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1tpbmRleF0sIC0xKTtcbiAgICAgIHRhYlJlbW92ZUVsZW1lbnRzWzBdLmZvY3VzKCk7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzWzBdLCAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVuZEtleSh0YWJSZW1vdmVFbGVtZW50cywgaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPCB0YWJSZW1vdmVFbGVtZW50cy5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4XSwgLTEpO1xuICAgICAgdGFiUmVtb3ZlRWxlbWVudHNbdGFiUmVtb3ZlRWxlbWVudHMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbdGFiUmVtb3ZlRWxlbWVudHMubGVuZ3RoIC0gMV0sIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXJyb3dSaWdodCh0YWJSZW1vdmVFbGVtZW50cywgaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPCB0YWJSZW1vdmVFbGVtZW50cy5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4XSwgLTEpO1xuICAgICAgdGFiUmVtb3ZlRWxlbWVudHNbaW5kZXggKyAxXS5mb2N1cygpO1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1tpbmRleCArIDFdLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1tpbmRleF0sIC0xKTtcbiAgICAgIHRhYlJlbW92ZUVsZW1lbnRzWzBdLmZvY3VzKCk7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzWzBdLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwby10YWJzLWNvbnRhaW5lclwiPlxuICA8ZGl2ICNjb250YWluZXJUYWJzIGNsYXNzPVwicG8tdGFicy1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tdGFicy1idXR0b24td3JhcHBlclwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDxwby10YWItYnV0dG9uXG4gICAgICAgICAgI3RhYkJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwicG8tdGFiLWJ1dHRvblwiXG4gICAgICAgICAgW3AtYWN0aXZlXT1cInRhYi5hY3RpdmVcIlxuICAgICAgICAgIFtwLWRpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiXG4gICAgICAgICAgW3AtaGlkZV09XCJ0YWIuaGlkZVwiXG4gICAgICAgICAgW3AtaWRdPVwidGFiLmlkXCJcbiAgICAgICAgICBbaGlkZGVuXT1cInRhYi5oaWRlXCJcbiAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJ0YWIuZGlzYWJsZWRcIlxuICAgICAgICAgIFtwLWxhYmVsXT1cInRhYi5sYWJlbFwiXG4gICAgICAgICAgW2lkXT1cInRhYi5pZFwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cImNsb3NlTGlzdGJveCgpXCJcbiAgICAgICAgICAocC1hY3RpdmF0ZWQpPVwib25UYWJBY3RpdmUodGFiKVwiXG4gICAgICAgICAgKHAtY2hhbmdlLXN0YXRlKT1cIm9uVGFiQ2hhbmdlU3RhdGUodGFiKVwiXG4gICAgICAgICAgKHAtY2xpY2spPVwic2VsZWN0ZWRUYWIodGFiKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wby10YWItYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxwby10YWItZHJvcGRvd25cbiAgICAgICAgI3RhYkRyb3Bkb3duXG4gICAgICAgICpuZ0lmPVwiaXNTaG93VGFiRHJvcGRvd25cIlxuICAgICAgICBjbGFzcz1cInBvLXRhYi1kcm9wZG93blwiXG4gICAgICAgIFtjbGFzcy5wby10YWItZHJvcGRvd24tZGV2aWNlXT1cIiF0YWJzRGVmYXVsdD8ubGVuZ3RoXCJcbiAgICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMubW9yZVRhYnNcIlxuICAgICAgICBbcC10YWJzXT1cIm92ZXJmbG93ZWRUYWJzXCJcbiAgICAgICAgKHAtY2hhbmdlLXN0YXRlKT1cIm9uVGFiQ2hhbmdlU3RhdGUoJGV2ZW50KVwiXG4gICAgICAgIChwLWNsaWNrKT1cIm9uVGFiQWN0aXZlQnlEcm9wZG93bigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tdGFiLWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBvLXRhYnMtY29udGVudFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
454
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tdGFicy9wby10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJzL3BvLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUlWLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0lDaEJ6RCw2QkFBMkQ7SUFDekQsMkNBZUM7SUFEQyxBQURBLEFBREEsQUFEQSx1TUFBZSxxQkFBYyxLQUFDLG1OQUNmLDBCQUFnQixLQUFDLHlOQUNkLCtCQUFxQixLQUFDLDJNQUM3QiwwQkFBZ0IsS0FBQztJQUU5QixpQkFBZ0I7Ozs7SUFiZCxjQUF1QjtJQU92QixBQURBLEFBRkEsQUFEQSxBQURBLEFBREEsQUFEQSx3Q0FBdUIsK0JBQ0ksdUJBQ1IsbUJBQ0osdUJBQ0kseUJBRUUsaUJBQ1I7Ozs7O0lBU2pCLDhDQVNDO0lBREMsQUFEQSx3TkFBa0IsK0JBQXdCLEtBQUMsNkxBQ2hDLG9DQUE2QixLQUFDO0lBRTNDLGlCQUFrQjs7O0lBTmhCLDBHQUFxRDtJQUVyRCxBQURBLGtEQUE2QixpQ0FDSjs7QURQakMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFXO0lBQ3BDLEVBQUUsRUFBTztRQUNQLFFBQVEsRUFBRSxNQUFNO0tBQ2pC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UztZQUFBLEFBQVQsa0NBQVMsK0JBQWtCO1lBc0J0RCxjQUF1QjtZQUF2Qiw0Q0FBdUI7OztpRkQyQ25CLGVBQWU7Y0FKM0IsU0FBUzsyQkFDRSxTQUFTOzhHQUtjLFlBQVk7a0JBQTVDLGVBQWU7bUJBQUMsY0FBYztZQUNrQixTQUFTO2tCQUF6RCxZQUFZO21CQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFFSCxXQUFXO2tCQUF0RCxTQUFTO21CQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDc0IsYUFBYTtrQkFBNUUsU0FBUzttQkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O2tGQU5uRCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBvVGFiRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3BvLXRhYi1kcm9wZG93bi9wby10YWItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFBvVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9wby10YWIvcG8tdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1RhYnNCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby10YWJzLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvVGFic1NlcnZpY2UgfSBmcm9tICcuL3BvLXRhYnMuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBwb1RhYnNMaXRlcmFsczogT2JqZWN0ID0ge1xuICBlbjogPGFueT57XG4gICAgbW9yZVRhYnM6ICdNb3JlJ1xuICB9LFxuICBlczogPGFueT57XG4gICAgbW9yZVRhYnM6ICdNw6FzJ1xuICB9LFxuICBwdDogPGFueT57XG4gICAgbW9yZVRhYnM6ICdNYWlzJ1xuICB9LFxuICBydTogPGFueT57XG4gICAgbW9yZVRhYnM6ICfQldGJ0ZEnXG4gIH1cbn07XG5cbmNvbnN0IHBvVGFic01heE51bWJlck9mVGFicyA9IDU7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvVGFic0Jhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10YWJzLWJhc2ljXCIgdGl0bGU9XCJQTyBUYWJzIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJzLWJhc2ljL3NhbXBsZS1wby10YWJzLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYnMtYmFzaWMvc2FtcGxlLXBvLXRhYnMtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdGFicy1sYWJzXCIgdGl0bGU9XCJQTyBUYWJzIExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYnMtbGFicy9zYW1wbGUtcG8tdGFicy1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYnMtbGFicy9zYW1wbGUtcG8tdGFicy1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYnMtdHJhdmVsXCIgdGl0bGU9XCJQTyBUYWJzIC0gVHJhdmVsXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10YWJzLXRyYXZlbC9zYW1wbGUtcG8tdGFicy10cmF2ZWwuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdGFicy10cmF2ZWwvc2FtcGxlLXBvLXRhYnMtdHJhdmVsLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRhYnMtYnVzaW5lc3MtY29uZlwiIHRpdGxlPVwiUE8gVGFicyAtIEJ1c2luZXNzIENvbmZlcmVuY2VcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYnMtYnVzaW5lc3MtY29uZi9zYW1wbGUtcG8tdGFicy1idXNpbmVzcy1jb25mLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRhYnMtYnVzaW5lc3MtY29uZi9zYW1wbGUtcG8tdGFicy1idXNpbmVzcy1jb25mLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tdGFicy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9UYWJzQ29tcG9uZW50IGV4dGVuZHMgUG9UYWJzQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgLy8gVGFicyB1dGlsaXphZG9zIG5vIG5nLWNvbnRlbnRcbiAgQENvbnRlbnRDaGlsZHJlbihQb1RhYkNvbXBvbmVudCkgdGFic0NoaWxkcmVuOiBRdWVyeUxpc3Q8UG9UYWJDb21wb25lbnQ+O1xuICBAVmlld0NoaWxkcmVuKCd0YWJCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgdGFiQnV0dG9uOiBRdWVyeUxpc3Q8YW55PjtcblxuICBAVmlld0NoaWxkKCd0YWJEcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pIHRhYkRyb3Bkb3duOiBQb1RhYkRyb3Bkb3duQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdjb250YWluZXJUYWJzJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgY29udGFpbmVyVGFiczogRWxlbWVudFJlZjtcblxuICBtYXhOdW1iZXJPZlRhYnMgPSBwb1RhYnNNYXhOdW1iZXJPZlRhYnM7XG4gIGxpdGVyYWxzO1xuICB0YWJzRGVmYXVsdCA9IFtdO1xuICB0YWJzRHJvcGRvd24gPSBbXTtcbiAgaW5pdGlhbGl6ZUNhbGN1bGF0aW9uID0gdHJ1ZTtcbiAgaW5pdGlhbGl6ZUNvbXBvbmVudCA9IGZhbHNlO1xuXG4gIHF1YW50aXR5VGFic0J1dHRvbjtcbiAgZGVmYXVsdExhc3RUYWJXaWR0aCE6IG51bWJlcjtcblxuICBwcml2YXRlIHByZXZpb3VzQWN0aXZlVGFiOiBQb1RhYkNvbXBvbmVudDtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25UYWJzU2VydmljZTogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvblRhYkFjdGl2ZTogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0YWJzU2VydmljZTogUG9UYWJzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IGxhbmd1YWdlID0gbGFuZ3VhZ2VTZXJ2aWNlLmdldFNob3J0TGFuZ3VhZ2UoKTtcblxuICAgIHRoaXMubGl0ZXJhbHMgPSB7XG4gICAgICAuLi5wb1RhYnNMaXRlcmFsc1tsYW5ndWFnZV1cbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25UYWJzU2VydmljZSA9IHRoaXMudGFic1NlcnZpY2Uub25DaGFuZ2VzVHJpZ2dlcmVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVUYWJzU3RhdGUoKTtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxpemVDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVLZXlib2FyZE5hdmlnYXRpb25UYWIoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uVGFiQWN0aXZlID0gdGhpcy50YWJzU2VydmljZS50cmlnZ2VyQWN0aXZlT25DaGFuZ2VzJC5zdWJzY3JpYmUodGFiID0+IHtcbiAgICAgIGNvbnN0IGlzVGFiSW5Ecm9wZG93biA9IHRoaXMudGFic0Ryb3Bkb3duLnNvbWUodCA9PiB0LmlkID09PSB0YWIuaWQpO1xuICAgICAgaWYgKGlzVGFiSW5Ecm9wZG93bikge1xuICAgICAgICB0aGlzLm9uVGFiQWN0aXZlQnlEcm9wZG93bih0YWIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGN1bGF0ZVRhYnModGhpcy5pbml0aWFsaXplQ2FsY3VsYXRpb24pO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNhbGN1bGF0aW9uID0gZmFsc2U7XG5cbiAgICB0aGlzLnVwZGF0ZVRhYnNTdGF0ZSgpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuaGFuZGxlS2V5Ym9hcmROYXZpZ2F0aW9uVGFiKCk7XG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZVRhYnNTdGF0ZSh0cnVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25UYWJzU2VydmljZS51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uVGFiQWN0aXZlLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgaXNTaG93VGFiRHJvcGRvd24oKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic0NoaWxkcmVuWydfcmVzdWx0cyddLnNsaWNlKHRoaXMucXVhbnRpdHlUYWJzQnV0dG9uKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5oaWRlKS5sZW5ndGg7XG4gIH1cblxuICAvLyB0YWJzIHF1ZSBzZXLDo28gYXByZXNlbnRhZGFzIG5hIGFiYSBcIk1haXNcIlxuICBnZXQgb3ZlcmZsb3dlZFRhYnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic0NoaWxkcmVuWydfcmVzdWx0cyddLnNsaWNlKHRoaXMucXVhbnRpdHlUYWJzQnV0dG9uKTtcbiAgfVxuXG4gIGdldCB0YWJzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNDaGlsZHJlblsnX3Jlc3VsdHMnXS5zbGljZSgwLCB0aGlzLnF1YW50aXR5VGFic0J1dHRvbik7XG4gIH1cblxuICBnZXQgdGFic0NoaWxkcmVuQXJyYXkoKTogQXJyYXk8UG9UYWJDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy50YWJzQ2hpbGRyZW4udG9BcnJheSgpO1xuICB9XG5cbiAgY2xvc2VMaXN0Ym94KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRhYkRyb3Bkb3duICYmIHRoaXMudGFiRHJvcGRvd24uaXNEcm9wZG93bk9wZW4pIHtcbiAgICAgIHRoaXMudGFiRHJvcGRvd24uY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIGlzVmlzaWJsZVRhYih0YWIpIHtcbiAgICByZXR1cm4gIXRhYi5oaWRlO1xuICB9XG5cbiAgb25UYWJBY3RpdmVCeURyb3Bkb3duKHRhYjogUG9UYWJDb21wb25lbnQsIGV2ZW50RW1pdHRlciA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZVRhYlBvc2l0aW9uQnlEcm9wZG93bih0YWIpO1xuICAgIGNvbnN0IGxhc3RUYWJXaWR0aCA9XG4gICAgICB0aGlzLmRlZmF1bHRMYXN0VGFiV2lkdGggPiAwXG4gICAgICAgID8gdGhpcy5kZWZhdWx0TGFzdFRhYldpZHRoXG4gICAgICAgIDogdGhpcy50YWJzQ2hpbGRyZW4uZmluZChlID0+IGUgPT09IHRoaXMudGFic0NoaWxkcmVuQXJyYXlbdGhpcy5xdWFudGl0eVRhYnNCdXR0b24gLSAxXSk/LndpZHRoQnV0dG9uO1xuXG4gICAgdGhpcy5yZW9yZGVyVGFicyh0YWIpO1xuICAgIHRhYi53aWR0aEJ1dHRvbiA9IGxhc3RUYWJXaWR0aDtcbiAgICB0aGlzLnRhYkJ1dHRvbi5sYXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtsYXN0VGFiV2lkdGh9cHhgO1xuICAgIHRoaXMuaGFuZGxlS2V5Ym9hcmROYXZpZ2F0aW9uVGFiKCk7XG5cbiAgICBpZiAoZXZlbnRFbWl0dGVyKSB7XG4gICAgICB0YWIuY2xpY2suZW1pdCh0YWIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZ1bsOnw6NvIGRpc3BhcmFkYSBxdWFuZG8gYWxndW1hIHRhYiBmaWNhciBhdGl2YVxuICBvblRhYkFjdGl2ZSh0YWI6IFBvVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy5wcmV2aW91c0FjdGl2ZVRhYiA9IHRoaXMudGFic0NoaWxkcmVuLmZpbmQodGFiQ2hpbGQgPT4gdGFiQ2hpbGQuYWN0aXZlICYmIHRhYkNoaWxkLmlkICE9PSB0YWIuaWQpO1xuICAgIHRoaXMuZGVhY3RpdmF0ZVRhYigpO1xuICB9XG5cbiAgLy8gZnVuY2FvIHNlcsOhIGRpc3BhcmFkYSBxdWFuZG8gbXVkYXIgbyBlc3RhZG8gZG8gcG9UYWIgcGFyYSBkZXNhYmlsaXRhZG8gb3UgZXNjb25kaWRvLlxuICBvblRhYkNoYW5nZVN0YXRlKHRhYjogUG9UYWJDb21wb25lbnQgfCBhbnkpIHtcbiAgICBpZiAodGFiLmFjdGl2ZSkge1xuICAgICAgdGFiLmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmFjdGl2ZURpc3RpbmN0VGFiKCk7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHJlb3JkZXJUYWJzKHRhYlRvUmVvcmRlcjogUG9UYWJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YWJzQXJyYXkgPSB0aGlzLnRhYnNDaGlsZHJlbkFycmF5O1xuICAgIGNvbnN0IHRhYkluZGV4ID0gdGFic0FycmF5LmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IHRhYlRvUmVvcmRlci5pZCk7XG4gICAgaWYgKHRhYkluZGV4ICE9PSAtMSkge1xuICAgICAgY29uc3QgW3RhYl0gPSB0YWJzQXJyYXkuc3BsaWNlKHRhYkluZGV4LCAxKTtcbiAgICAgIHRhYnNBcnJheS5zcGxpY2UodGhpcy5xdWFudGl0eVRhYnNCdXR0b24gLSAxLCAwLCB0YWIpO1xuICAgIH1cbiAgICB0aGlzLnRhYnNDaGlsZHJlbi5yZXNldCh0YWJzQXJyYXkpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gc2VsZWN0aW9uYSBhIGFiYSBpbmZvcm1hZGEgcG9yIHBhcmFtZXRybywgY2FzbyBob3V2ZXIgY2xpY2sgZmF6IGEgZW1pw6fDo28gZG8gZXZlbnRvLlxuICBzZWxlY3RlZFRhYih0YWI6IFBvVGFiQ29tcG9uZW50IHwgYW55KSB7XG4gICAgdGFiLmFjdGl2ZSA9IHRydWU7XG5cbiAgICBpZiAodGFiLmNsaWNrKSB7XG4gICAgICB0YWIuY2xpY2suZW1pdCh0YWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzVGFiSW5Ecm9wZG93biA9IHRoaXMub3ZlcmZsb3dlZFRhYnMuc29tZSh0ID0+IHQuaWQgPT09IHRhYi5pZCk7XG4gICAgaWYgKGlzVGFiSW5Ecm9wZG93bikge1xuICAgICAgdGhpcy5vblRhYkFjdGl2ZUJ5RHJvcGRvd24odGFiKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRyYWNrQnlGbihfaSwgdGFiOiBQb1RhYkNvbXBvbmVudCkge1xuICAgIHJldHVybiB0YWIuaWQ7XG4gIH1cblxuICAvLyBhdGl2YSBhIHByZXZpb3VzQWN0aXZlVGFiIG91IHByaW1laXJhIHRhYiBlbmNvbnRyYWRhLlxuICBwcml2YXRlIGFjdGl2ZURpc3RpbmN0VGFiKCkge1xuICAgIGlmICh0aGlzLnByZXZpb3VzQWN0aXZlVGFiKSB7XG4gICAgICB0aGlzLnByZXZpb3VzQWN0aXZlVGFiLmFjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlyc3RUYWIoKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdGl2YSBhIHByaW1laXJhIFRhYiBxdWUgbsOjbyBlc3RpdmVyIGRlc2FiaWxpdGFkYSBvdSBlc2NvbmRpZGEuXG4gIHByaXZhdGUgYWN0aXZlRmlyc3RUYWIoKSB7XG4gICAgdGhpcy50YWJzLnNvbWUodGFiQ2hpbGQgPT4ge1xuICAgICAgaWYgKCF0YWJDaGlsZC5kaXNhYmxlZCAmJiAhdGFiQ2hpbGQuaGlkZSkge1xuICAgICAgICB0YWJDaGlsZC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIE1vdmltZW50YSBhIHRhYiBkYSB2aXPDo28gZGUgdGFicyBwYXJhIG8gZHJvcGRvd24sIGUgdmljZS12ZXJzYS5cbiAgcHJpdmF0ZSBjaGFuZ2VUYWJQb3NpdGlvbkJ5RHJvcGRvd24odGFiVG9BY3RpdmF0ZTogUG9UYWJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBsYXN0VGFiID0gdGhpcy50YWJzRGVmYXVsdFt0aGlzLnRhYnNEZWZhdWx0Lmxlbmd0aCAtIDFdO1xuICAgIHRoaXMudGFic0RlZmF1bHQgPSB0aGlzLnRhYnNEZWZhdWx0LmZpbHRlcih0YWIgPT4gdGFiLmlkICE9PSBsYXN0VGFiLmlkKTtcbiAgICB0aGlzLnRhYnNEZWZhdWx0LnB1c2godGFiVG9BY3RpdmF0ZSk7XG5cbiAgICBjb25zdCBfdGFic0Ryb3Bkb3duID0gdGhpcy50YWJzRHJvcGRvd24uZmlsdGVyKHRhYiA9PiB0YWIuaWQgIT09IHRhYlRvQWN0aXZhdGUuaWQpO1xuICAgIF90YWJzRHJvcGRvd24udW5zaGlmdChsYXN0VGFiKTtcbiAgICB0aGlzLnRhYnNEcm9wZG93biA9IF90YWJzRHJvcGRvd247XG5cbiAgICB0YWJUb0FjdGl2YXRlLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy5vblRhYkFjdGl2ZSh0YWJUb0FjdGl2YXRlKTtcbiAgfVxuXG4gIC8vIGRlc2F0aXZhIHByZXZpb3VzQWN0aXZlVGFiIGUgZGlzcGFyYSBhIGRldGVjw6fDo28gZGUgbXVkYW7Dp2EuXG4gIHByaXZhdGUgZGVhY3RpdmF0ZVRhYigpIHtcbiAgICBpZiAodGhpcy5wcmV2aW91c0FjdGl2ZVRhYikge1xuICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZVRhYi5hY3RpdmUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYWJzU3RhdGUoaW5pdGlhbFN0YXRlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmRlZmF1bHRMYXN0VGFiV2lkdGggPSB0aGlzLnRhYkJ1dHRvbj8ubGFzdD8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgaWYgKHRoaXMuZGVmYXVsdExhc3RUYWJXaWR0aCA8PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdFRhYkNoaWxkcmVuOiBQb1RhYkNvbXBvbmVudCA9IHRoaXMudGFic0NoaWxkcmVuQXJyYXlbdGhpcy5xdWFudGl0eVRhYnNCdXR0b24gLSAxXTtcbiAgICBpZiAobGFzdFRhYkNoaWxkcmVuKSB7XG4gICAgICBsYXN0VGFiQ2hpbGRyZW4ud2lkdGhCdXR0b24gPSB0aGlzLmRlZmF1bHRMYXN0VGFiV2lkdGg7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFic0NoaWxkcmVuKSB7XG4gICAgICBjb25zdCBfdGFic0NoaWxkcmVuID0gWy4uLnRoaXMudGFic0NoaWxkcmVuQXJyYXldO1xuICAgICAgaWYgKGluaXRpYWxTdGF0ZSkge1xuICAgICAgICB0aGlzLnRhYnNEZWZhdWx0ID0gX3RhYnNDaGlsZHJlbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGFic0RlZmF1bHQgPSBfdGFic0NoaWxkcmVuLnNsaWNlKDAsIHRoaXMucXVhbnRpdHlUYWJzQnV0dG9uKTtcbiAgICAgICAgdGhpcy50YWJzRHJvcGRvd24gPSBfdGFic0NoaWxkcmVuLnNsaWNlKHRoaXMucXVhbnRpdHlUYWJzQnV0dG9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVUYWJzKGluaXRpYWxpemVDYWxjdWxhdGlvbj86IGJvb2xlYW4pIHtcbiAgICBpZiAoaW5pdGlhbGl6ZUNhbGN1bGF0aW9uKSB7XG4gICAgICBsZXQgc3VtT2ZXaWR0aCA9IDE1MDtcbiAgICAgIGNvbnN0IHNjcmVlblNpemUgPSB0aGlzLmNvbnRhaW5lclRhYnMubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIGNvbnN0IGxpc3RUYWJCdXR0b24gPSBbXTtcbiAgICAgIGlmICh0aGlzLnRhYkJ1dHRvbj8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMudGFiQnV0dG9uLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgaWYgKHN1bU9mV2lkdGggKyB3aWR0aCA8PSBzY3JlZW5TaXplIHx8IHNjcmVlblNpemUgPCAxKSB7XG4gICAgICAgICAgICBsaXN0VGFiQnV0dG9uLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3VtT2ZXaWR0aCArPSB3aWR0aDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnF1YW50aXR5VGFic0J1dHRvbiA9IGxpc3RUYWJCdXR0b24ubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleWJvYXJkTmF2aWdhdGlvblRhYihpbml0aWFsSW5kZXggPSAwKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBpZiAodGhpcy50YWJCdXR0b24/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgdGFiRm9jdXNhYmxlID0gdGhpcy50YWJCdXR0b25cbiAgICAgICAgLmZpbHRlcigoZWxlbWVudCwgaW5kZXgpID0+IGVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXT8uaWQgPT09IHRoaXMudGFic0NoaWxkcmVuWydfcmVzdWx0cyddW2luZGV4XT8uaWQpXG4gICAgICAgIC5tYXAoZWwgPT4ge1xuICAgICAgICAgIGlmIChlbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsYXNzTGlzdC5jb250YWlucygncG8tdGFiLWZvY3VzYWJsZScpKSB7XG4gICAgICAgICAgICByZXR1cm4gZWwubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gICAgICBpZiAodGFiRm9jdXNhYmxlKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRhYkFjY2Vzc2liaWxpdHlFbGVtZW50cyh0YWJGb2N1c2FibGUsIGluaXRpYWxJbmRleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bsOnw6NvIHF1ZSBhdHJpYnVpIG8gbsO6bWVybyBkZSB0YWJzIGZvcmEgZG8gZHJvcGRvd24uXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9UYWJzQ29tcG9uZW50IH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuICAgKlxuICAgKiAuLi5cbiAgICpcbiAgICogQFZpZXdDaGlsZCgncG9UYWInLCB7IHN0YXRpYzogdHJ1ZSB9KSBwb1RhYjogUG9UYWJzQ29tcG9uZW50O1xuICAgKlxuICAgKiBjaGFuZ2VRdWFudGl0eVRhYnMoKSB7XG4gICAqICAgdGhpcy5wb1RhYi5zZXRRdWFudGl0eVRhYnNCdXR0b24oMSk7IC8vTsO6bWVybyBkZSB0YWJzXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBzZXRRdWFudGl0eVRhYnNCdXR0b24obnVtYmVyOiBOdW1iZXIpIHtcbiAgICB0aGlzLnF1YW50aXR5VGFic0J1dHRvbiA9IG51bWJlcjtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVRhYkFjY2Vzc2liaWxpdHlFbGVtZW50cyh0YWJSZW1vdmVFbGVtZW50cywgaW5pdGlhbEluZGV4KSB7XG4gICAgdGFiUmVtb3ZlRWxlbWVudHMuZm9yRWFjaCgodGFiUmVtb3ZlRWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gaW5pdGlhbEluZGV4KSB7XG4gICAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbaW5pdGlhbEluZGV4XSwgMCk7XG4gICAgICB9IGVsc2UgaWYgKHRhYlJlbW92ZUVsZW1lbnRzLmxlbmd0aCA9PT0gaW5pdGlhbEluZGV4KSB7XG4gICAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbaW5pdGlhbEluZGV4IC0gMV0sIDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50LCAtMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgZnJvbUV2ZW50KHRhYlJlbW92ZUVsZW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlS2V5RG93bihldmVudCwgdGFiUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChpbmRleCAhPT0gMCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgZnJvbUV2ZW50KHRhYlJlbW92ZUVsZW1lbnRzLCAnYmx1cicpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4XSwgLTEpO1xuICAgICAgICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1swXSwgMCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFiSW5kZXgoZWxlbWVudCwgdGFiSW5kZXgpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCB0YWJJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRhYlJlbW92ZUVsZW1lbnRzLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgS0VZX1NQQUNFID0gJ1NwYWNlJztcbiAgICBjb25zdCBLRVlfQVJST1dfTEVGVCA9ICdBcnJvd0xlZnQnO1xuICAgIGNvbnN0IEtFWV9BUlJPV19SSUdIVCA9ICdBcnJvd1JpZ2h0JztcbiAgICBjb25zdCBLRVlfSE9NRSA9ICdIb21lJztcbiAgICBjb25zdCBLRVlfRU5EID0gJ0VuZCc7XG5cbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gS0VZX1NQQUNFIHx8IGV2ZW50LmNvZGUgPT09IEtFWV9IT01FIHx8IGV2ZW50LmNvZGUgPT09IEtFWV9FTkQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlfQVJST1dfTEVGVCkge1xuICAgICAgdGhpcy5oYW5kbGVBcnJvd0xlZnQodGFiUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS0VZX0FSUk9XX1JJR0hUKSB7XG4gICAgICB0aGlzLmhhbmRsZUFycm93UmlnaHQodGFiUmVtb3ZlRWxlbWVudHMsIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS0VZX0hPTUUpIHtcbiAgICAgIHRoaXMuaGFuZGxlSG9tZUtleSh0YWJSZW1vdmVFbGVtZW50cywgaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBLRVlfRU5EKSB7XG4gICAgICB0aGlzLmhhbmRsZUVuZEtleSh0YWJSZW1vdmVFbGVtZW50cywgaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXJyb3dMZWZ0KHRhYlJlbW92ZUVsZW1lbnRzLCBpbmRleCkge1xuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbaW5kZXhdLCAtMSk7XG4gICAgICB0YWJSZW1vdmVFbGVtZW50c1tpbmRleCAtIDFdLmZvY3VzKCk7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4IC0gMV0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4XSwgLTEpO1xuICAgICAgdGFiUmVtb3ZlRWxlbWVudHNbdGFiUmVtb3ZlRWxlbWVudHMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbdGFiUmVtb3ZlRWxlbWVudHMubGVuZ3RoIC0gMV0sIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSG9tZUtleSh0YWJSZW1vdmVFbGVtZW50cywgaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4XSwgLTEpO1xuICAgICAgdGFiUmVtb3ZlRWxlbWVudHNbMF0uZm9jdXMoKTtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbMF0sIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRW5kS2V5KHRhYlJlbW92ZUVsZW1lbnRzLCBpbmRleCkge1xuICAgIGlmIChpbmRleCA8IHRhYlJlbW92ZUVsZW1lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbaW5kZXhdLCAtMSk7XG4gICAgICB0YWJSZW1vdmVFbGVtZW50c1t0YWJSZW1vdmVFbGVtZW50cy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCh0YWJSZW1vdmVFbGVtZW50c1t0YWJSZW1vdmVFbGVtZW50cy5sZW5ndGggLSAxXSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBcnJvd1JpZ2h0KHRhYlJlbW92ZUVsZW1lbnRzLCBpbmRleCkge1xuICAgIGlmIChpbmRleCA8IHRhYlJlbW92ZUVsZW1lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbaW5kZXhdLCAtMSk7XG4gICAgICB0YWJSZW1vdmVFbGVtZW50c1tpbmRleCArIDFdLmZvY3VzKCk7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4ICsgMV0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KHRhYlJlbW92ZUVsZW1lbnRzW2luZGV4XSwgLTEpO1xuICAgICAgdGFiUmVtb3ZlRWxlbWVudHNbMF0uZm9jdXMoKTtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXgodGFiUmVtb3ZlRWxlbWVudHNbMF0sIDApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBvLXRhYnMtY29udGFpbmVyXCI+XG4gIDxkaXYgI2NvbnRhaW5lclRhYnMgY2xhc3M9XCJwby10YWJzLWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwby10YWJzLWJ1dHRvbi13cmFwcGVyXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgPHBvLXRhYi1idXR0b25cbiAgICAgICAgICAjdGFiQnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJwby10YWItYnV0dG9uXCJcbiAgICAgICAgICBbcC1hY3RpdmVdPVwidGFiLmFjdGl2ZVwiXG4gICAgICAgICAgW3AtZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkXCJcbiAgICAgICAgICBbcC1oaWRlXT1cInRhYi5oaWRlXCJcbiAgICAgICAgICBbcC1pZF09XCJ0YWIuaWRcIlxuICAgICAgICAgIFtoaWRkZW5dPVwidGFiLmhpZGVcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiXG4gICAgICAgICAgW3AtbGFiZWxdPVwidGFiLmxhYmVsXCJcbiAgICAgICAgICBbaWRdPVwidGFiLmlkXCJcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiY2xvc2VMaXN0Ym94KClcIlxuICAgICAgICAgIChwLWFjdGl2YXRlZCk9XCJvblRhYkFjdGl2ZSh0YWIpXCJcbiAgICAgICAgICAocC1jaGFuZ2Utc3RhdGUpPVwib25UYWJDaGFuZ2VTdGF0ZSh0YWIpXCJcbiAgICAgICAgICAocC1jbGljayk9XCJzZWxlY3RlZFRhYih0YWIpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3BvLXRhYi1idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHBvLXRhYi1kcm9wZG93blxuICAgICAgICAjdGFiRHJvcGRvd25cbiAgICAgICAgKm5nSWY9XCJpc1Nob3dUYWJEcm9wZG93blwiXG4gICAgICAgIGNsYXNzPVwicG8tdGFiLWRyb3Bkb3duXCJcbiAgICAgICAgW2NsYXNzLnBvLXRhYi1kcm9wZG93bi1kZXZpY2VdPVwiIXRhYnNEZWZhdWx0Py5sZW5ndGhcIlxuICAgICAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5tb3JlVGFic1wiXG4gICAgICAgIFtwLXRhYnNdPVwib3ZlcmZsb3dlZFRhYnNcIlxuICAgICAgICAocC1jaGFuZ2Utc3RhdGUpPVwib25UYWJDaGFuZ2VTdGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgKHAtY2xpY2spPVwib25UYWJBY3RpdmVCeURyb3Bkb3duKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9wby10YWItZHJvcGRvd24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicG8tdGFicy1jb250ZW50XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19