@po-ui/ng-components 16.4.1 → 16.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 (42) hide show
  1. package/esm2022/lib/components/po-field/po-field.module.mjs +17 -13
  2. package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs +4 -4
  3. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-base.component.mjs +30 -7
  4. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.mjs +4 -4
  5. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.mjs +1 -1
  6. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +220 -51
  7. package/esm2022/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +3 -3
  8. package/esm2022/lib/components/po-listbox/po-item-list/po-item-list.component.mjs +2 -2
  9. package/esm2022/lib/components/po-table/po-table-base.component.mjs +5 -5
  10. package/esm2022/lib/components/po-tag/index.mjs +2 -1
  11. package/esm2022/lib/components/po-tag/interfaces/po-tag-literals.interface.mjs +2 -0
  12. package/esm2022/lib/components/po-tag/po-tag-base.component.mjs +70 -4
  13. package/esm2022/lib/components/po-tag/po-tag.component.mjs +52 -44
  14. package/esm2022/lib/enums/po-key-code.enum.mjs +5 -1
  15. package/fesm2022/po-ui-ng-components.mjs +701 -532
  16. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  17. package/lib/components/po-field/po-field.module.d.ts +44 -44
  18. package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +21 -2
  19. package/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.d.ts +2 -0
  20. package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +18 -6
  21. package/lib/components/po-table/po-table-base.component.d.ts +2 -2
  22. package/lib/components/po-tag/index.d.ts +1 -0
  23. package/lib/components/po-tag/interfaces/po-tag-literals.interface.d.ts +11 -0
  24. package/lib/components/po-tag/po-tag-base.component.d.ts +50 -2
  25. package/lib/components/po-tag/po-tag.component.d.ts +6 -6
  26. package/lib/enums/po-key-code.enum.d.ts +5 -1
  27. package/package.json +4 -4
  28. package/po-ui-ng-components-16.5.0.tgz +0 -0
  29. package/schematics/ng-add/index.js +1 -1
  30. package/schematics/ng-update/v14/index.js +1 -1
  31. package/schematics/ng-update/v15/index.js +1 -1
  32. package/schematics/ng-update/v16/index.js +1 -1
  33. package/schematics/ng-update/v2/index.js +1 -1
  34. package/schematics/ng-update/v3/index.js +1 -1
  35. package/schematics/ng-update/v4/index.js +1 -1
  36. package/schematics/ng-update/v5/index.js +1 -1
  37. package/schematics/ng-update/v6/index.js +1 -1
  38. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.mjs +0 -91
  39. package/esm2022/lib/components/po-tag/po-tag.literals.mjs +0 -15
  40. package/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.d.ts +0 -40
  41. package/lib/components/po-tag/po-tag.literals.d.ts +0 -14
  42. package/po-ui-ng-components-16.4.1.tgz +0 -0
@@ -208,7 +208,7 @@ export class PoRichTextToolbarComponent {
208
208
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarElement = _t.first);
209
209
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.richTextImageModal = _t.first);
210
210
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.richTextLinkModal = _t.first);
211
- } }, inputs: { disabledTextAlign: ["p-disabled-text-align", "disabledTextAlign"], readonly: ["p-readonly", "readonly"] }, outputs: { command: "p-command", modal: "p-modal", linkEditing: "p-link-editing" }, decls: 16, vars: 6, consts: [[1, "po-rich-text-toolbar"], ["toolbarElement", ""], ["data-rich-text-toolbar", "format", 1, "po-rich-text-toolbar-button-align"], ["p-toggle", "multiple", 3, "p-buttons"], ["class", "po-rich-text-toolbar-button-align", "data-rich-text-toolbar", "color", 4, "ngIf"], ["class", "po-rich-text-toolbar-button-align", "data-rich-text-toolbar", "align", 4, "ngIf"], ["data-rich-text-toolbar", "list", 1, "po-rich-text-toolbar-button-align"], ["p-toggle", "single", 3, "p-buttons"], ["data-rich-text-toolbar", "link", 1, "po-rich-text-toolbar-button-align"], [3, "p-buttons"], ["data-rich-text-toolbar", "media", 1, "po-rich-text-toolbar-button-align"], [3, "p-command"], ["richTextImageModal", ""], [3, "p-command", "p-link-editing"], ["richTextLinkModal", ""], ["data-rich-text-toolbar", "color", 1, "po-rich-text-toolbar-button-align"], [1, "po-rich-text-toolbar-color-picker-container"], [1, "po-button", "po-button-default", "po-rich-text-toolbar-color-picker-button", 3, "disabled", "p-tooltip"], ["type", "color", 1, "po-rich-text-toolbar-color-picker-input", 3, "disabled", "change"], ["colorPickerInput", ""], ["data-rich-text-toolbar", "align", 1, "po-rich-text-toolbar-button-align"]], template: function PoRichTextToolbarComponent_Template(rf, ctx) { if (rf & 1) {
211
+ } }, inputs: { disabledTextAlign: ["p-disabled-text-align", "disabledTextAlign"], readonly: ["p-readonly", "readonly"] }, outputs: { command: "p-command", modal: "p-modal", linkEditing: "p-link-editing" }, decls: 16, vars: 6, consts: [[1, "po-rich-text-toolbar"], ["toolbarElement", ""], ["data-rich-text-toolbar", "format", 1, "po-rich-text-toolbar-button-align"], ["p-toggle", "multiple", 3, "p-buttons"], ["class", "po-rich-text-toolbar-button-align", "data-rich-text-toolbar", "color", 4, "ngIf"], ["class", "po-rich-text-toolbar-button-align", "data-rich-text-toolbar", "align", 4, "ngIf"], ["data-rich-text-toolbar", "list", 1, "po-rich-text-toolbar-button-align"], ["p-toggle", "single", 3, "p-buttons"], ["data-rich-text-toolbar", "link", 1, "po-rich-text-toolbar-button-align"], [3, "p-buttons"], ["data-rich-text-toolbar", "media", 1, "po-rich-text-toolbar-button-align"], [3, "p-command"], ["richTextImageModal", ""], [3, "p-command", "p-link-editing"], ["richTextLinkModal", ""], ["data-rich-text-toolbar", "color", 1, "po-rich-text-toolbar-button-align"], [1, "po-rich-text-toolbar-color-picker-container"], ["type", "button", 1, "po-button", "po-button-default", "po-rich-text-toolbar-color-picker-button", 3, "disabled", "p-tooltip"], ["type", "color", 1, "po-rich-text-toolbar-color-picker-input", 3, "disabled", "change"], ["colorPickerInput", ""], ["data-rich-text-toolbar", "align", 1, "po-rich-text-toolbar-button-align"]], template: function PoRichTextToolbarComponent_Template(rf, ctx) { if (rf & 1) {
212
212
  i0.ɵɵelementStart(0, "div", 0, 1)(2, "div", 2);
213
213
  i0.ɵɵelement(3, "po-button-group", 3);
214
214
  i0.ɵɵelementEnd();
@@ -246,7 +246,7 @@ export class PoRichTextToolbarComponent {
246
246
  }
247
247
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoRichTextToolbarComponent, [{
248
248
  type: Component,
249
- args: [{ selector: 'po-rich-text-toolbar', template: "<div class=\"po-rich-text-toolbar\" #toolbarElement>\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"format\">\n <po-button-group p-toggle=\"multiple\" [p-buttons]=\"formatButtons\"> </po-button-group>\n </div>\n\n <div *ngIf=\"!isInternetExplorer\" class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"color\">\n <div class=\"po-rich-text-toolbar-color-picker-container\">\n <button\n class=\"po-button po-button-default po-rich-text-toolbar-color-picker-button\"\n [disabled]=\"readonly\"\n [p-tooltip]=\"literals.textColor\"\n [attr.aria-label]=\"literals.textColor\"\n >\n <input\n #colorPickerInput\n class=\"po-rich-text-toolbar-color-picker-input\"\n type=\"color\"\n [disabled]=\"readonly\"\n (change)=\"changeTextColor($event.target.value)\"\n [attr.aria-label]=\"literals.textColor\"\n />\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!disabledTextAlign\" class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"align\">\n <po-button-group p-toggle=\"single\" [p-buttons]=\"alignButtons\"> </po-button-group>\n </div>\n\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"list\">\n <po-button-group p-toggle=\"single\" [p-buttons]=\"listButtons\"> </po-button-group>\n </div>\n\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"link\">\n <po-button-group [p-buttons]=\"linkButtons\"> </po-button-group>\n </div>\n\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"media\">\n <po-button-group [p-buttons]=\"mediaButtons\"> </po-button-group>\n </div>\n</div>\n\n<po-rich-text-image-modal #richTextImageModal (p-command)=\"emitCommand($event)\"> </po-rich-text-image-modal>\n\n<po-rich-text-link-modal\n #richTextLinkModal\n (p-command)=\"emitCommand($event)\"\n (p-link-editing)=\"emitLinkEditing($event)\"\n>\n</po-rich-text-link-modal>\n" }]
249
+ args: [{ selector: 'po-rich-text-toolbar', template: "<div class=\"po-rich-text-toolbar\" #toolbarElement>\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"format\">\n <po-button-group p-toggle=\"multiple\" [p-buttons]=\"formatButtons\"> </po-button-group>\n </div>\n\n <div *ngIf=\"!isInternetExplorer\" class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"color\">\n <div class=\"po-rich-text-toolbar-color-picker-container\">\n <button\n type=\"button\"\n class=\"po-button po-button-default po-rich-text-toolbar-color-picker-button\"\n [disabled]=\"readonly\"\n [p-tooltip]=\"literals.textColor\"\n [attr.aria-label]=\"literals.textColor\"\n >\n <input\n #colorPickerInput\n class=\"po-rich-text-toolbar-color-picker-input\"\n type=\"color\"\n [disabled]=\"readonly\"\n (change)=\"changeTextColor($event.target.value)\"\n [attr.aria-label]=\"literals.textColor\"\n />\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!disabledTextAlign\" class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"align\">\n <po-button-group p-toggle=\"single\" [p-buttons]=\"alignButtons\"> </po-button-group>\n </div>\n\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"list\">\n <po-button-group p-toggle=\"single\" [p-buttons]=\"listButtons\"> </po-button-group>\n </div>\n\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"link\">\n <po-button-group [p-buttons]=\"linkButtons\"> </po-button-group>\n </div>\n\n <div class=\"po-rich-text-toolbar-button-align\" data-rich-text-toolbar=\"media\">\n <po-button-group [p-buttons]=\"mediaButtons\"> </po-button-group>\n </div>\n</div>\n\n<po-rich-text-image-modal #richTextImageModal (p-command)=\"emitCommand($event)\"> </po-rich-text-image-modal>\n\n<po-rich-text-link-modal\n #richTextLinkModal\n (p-command)=\"emitCommand($event)\"\n (p-link-editing)=\"emitLinkEditing($event)\"\n>\n</po-rich-text-link-modal>\n" }]
250
250
  }], function () { return [{ type: i1.PoLanguageService }]; }, { colorPickerInput: [{
251
251
  type: ViewChild,
252
252
  args: ['colorPickerInput', { read: ElementRef }]
@@ -275,4 +275,4 @@ export class PoRichTextToolbarComponent {
275
275
  type: Input,
276
276
  args: ['p-readonly']
277
277
  }] }); })();
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcmljaC10ZXh0LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXJpY2gtdGV4dC9wby1yaWNoLXRleHQtdG9vbGJhci9wby1yaWNoLXRleHQtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tcmljaC10ZXh0L3BvLXJpY2gtdGV4dC10b29sYmFyL3BvLXJpY2gtdGV4dC10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTlDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7Ozs7Ozs7SUNKMUcsK0JBQTBHLGNBQUEsaUJBQUEsb0JBQUE7SUFhbEcsOEtBQVUsZUFBQSwyQ0FBb0MsQ0FBQSxJQUFDO0lBTGpELGlCQU9FLEVBQUEsRUFBQSxFQUFBOzs7SUFYRixlQUFxQjtJQUFyQiwwQ0FBcUIsd0NBQUE7SUFFckIsdURBQXNDO0lBTXBDLGVBQXFCO0lBQXJCLDBDQUFxQjtJQUVyQix1REFBc0M7OztJQU05QywrQkFBeUc7SUFDdkcscUNBQWlGO0lBQ25GLGlCQUFNOzs7SUFEK0IsZUFBMEI7SUFBMUIsK0NBQTBCOztB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UjtZQUduQyxpQkFBMEI7O1lBL0NlLGVBQTJCO1lBQTNCLDZDQUEyQjtZQUc1RCxlQUF5QjtZQUF6Qiw4Q0FBeUI7WUFvQnpCLGVBQXdCO1lBQXhCLDZDQUF3QjtZQUtPLGVBQXlCO1lBQXpCLDJDQUF5QjtZQUkzQyxlQUF5QjtZQUF6QiwyQ0FBeUI7WUFJekIsZUFBMEI7WUFBMUIsNENBQTBCOzs7dUZEckJsQywwQkFBMEI7Y0FKdEMsU0FBUzsyQkFDRSxzQkFBc0I7b0VBSXFCLGdCQUFnQjtrQkFBcEUsU0FBUzttQkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFFSixjQUFjO2tCQUE1RCxTQUFTO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUVlLGtCQUFrQjtrQkFBN0UsU0FBUzttQkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFFQyxpQkFBaUI7a0JBQTNFLFNBQVM7bUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBRXBDLE9BQU87a0JBQTNCLE1BQU07bUJBQUMsV0FBVztZQUVBLEtBQUs7a0JBQXZCLE1BQU07bUJBQUMsU0FBUztZQUVTLFdBQVc7a0JBQXBDLE1BQU07bUJBQUMsZ0JBQWdCO1lBa0JZLGlCQUFpQjtrQkFBcEQsS0FBSzttQkFBQyx1QkFBdUI7WUFRTCxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzSUUgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IFBvQnV0dG9uR3JvdXBJdGVtIH0gZnJvbSAnLi4vLi4vLi4vcG8tYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IHBvUmljaFRleHRMaXRlcmFsc0RlZmF1bHQgfSBmcm9tICcuLi9wby1yaWNoLXRleHQtbGl0ZXJhbHMnO1xuaW1wb3J0IHsgUG9SaWNoVGV4dFRvb2xiYXJCdXR0b25Hcm91cEl0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLXJpY2gtdGV4dC10b29sYmFyLWJ1dHRvbi1ncm91cC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1JpY2hUZXh0SW1hZ2VNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3BvLXJpY2gtdGV4dC1pbWFnZS1tb2RhbC9wby1yaWNoLXRleHQtaW1hZ2UtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBvUmljaFRleHRMaW5rTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9wby1yaWNoLXRleHQtbGluay1tb2RhbC9wby1yaWNoLXRleHQtbGluay1tb2RhbC5jb21wb25lbnQnO1xuXG5jb25zdCBwb1JpY2hUZXh0RGVmYXVsdENvbG9yID0gJyMwMDAwMDAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1yaWNoLXRleHQtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1yaWNoLXRleHQtdG9vbGJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9SaWNoVGV4dFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnY29sb3JQaWNrZXJJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjb2xvclBpY2tlcklucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3Rvb2xiYXJFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgdG9vbGJhckVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZChQb1JpY2hUZXh0SW1hZ2VNb2RhbENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcmljaFRleHRJbWFnZU1vZGFsOiBQb1JpY2hUZXh0SW1hZ2VNb2RhbENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFBvUmljaFRleHRMaW5rTW9kYWxDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHJpY2hUZXh0TGlua01vZGFsOiBQb1JpY2hUZXh0TGlua01vZGFsQ29tcG9uZW50O1xuXG4gIEBPdXRwdXQoJ3AtY29tbWFuZCcpIGNvbW1hbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHsgY29tbWFuZDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KCk7XG5cbiAgQE91dHB1dCgncC1tb2RhbCcpIG1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgncC1saW5rLWVkaXRpbmcnKSBsaW5rRWRpdGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHJlYWRvbmx5IGxpdGVyYWxzPzogYW55O1xuXG4gIGFsaWduQnV0dG9uczogQXJyYXk8UG9SaWNoVGV4dFRvb2xiYXJCdXR0b25Hcm91cEl0ZW0+O1xuXG4gIGZvcm1hdEJ1dHRvbnM6IEFycmF5PFBvUmljaFRleHRUb29sYmFyQnV0dG9uR3JvdXBJdGVtPjtcblxuICBsaXN0QnV0dG9uczogQXJyYXk8UG9SaWNoVGV4dFRvb2xiYXJCdXR0b25Hcm91cEl0ZW0+O1xuXG4gIGxpbmtCdXR0b25zOiBBcnJheTxQb1JpY2hUZXh0VG9vbGJhckJ1dHRvbkdyb3VwSXRlbT47XG5cbiAgbWVkaWFCdXR0b25zOiBBcnJheTxQb0J1dHRvbkdyb3VwSXRlbT47XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWRUZXh0QWxpZ246IGJvb2xlYW47XG4gIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuO1xuICBwcml2YXRlIHNlbGVjdGVkTGlua0VsZW1lbnQ7XG5cbiAgQElucHV0KCdwLWRpc2FibGVkLXRleHQtYWxpZ24nKSBzZXQgZGlzYWJsZWRUZXh0QWxpZ24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZFRleHRBbGlnbiA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkVGV4dEFsaWduKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZFRleHRBbGlnbjtcbiAgfVxuXG4gIEBJbnB1dCgncC1yZWFkb25seScpIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gdmFsdWU7XG4gICAgdGhpcy50b2dnbGVEaXNhYmxlQnV0dG9ucyh0aGlzLl9yZWFkb25seSk7XG4gIH1cblxuICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IGlzSW50ZXJuZXRFeHBsb3JlcigpIHtcbiAgICByZXR1cm4gaXNJRSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5saXRlcmFscyA9IHtcbiAgICAgIC4uLnBvUmljaFRleHRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZVNlcnZpY2U/LmdldFNob3J0TGFuZ3VhZ2UoKV1cbiAgICB9O1xuICAgIHRoaXMuYWxpZ25CdXR0b25zID0gW1xuICAgICAge1xuICAgICAgICBjb21tYW5kOiAnanVzdGlmeWxlZnQnLFxuICAgICAgICBpY29uOiAncG8taWNvbi1hbGlnbi1sZWZ0JyxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5saXRlcmFscy5sZWZ0LFxuICAgICAgICBhY3Rpb246IHRoaXMuZW1pdEFsaWduQ29tbWFuZC5iaW5kKHRoaXMsICdqdXN0aWZ5bGVmdCcpLFxuICAgICAgICBzZWxlY3RlZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogJ2p1c3RpZnljZW50ZXInLFxuICAgICAgICBpY29uOiAncG8taWNvbi1hbGlnbi1jZW50ZXInLFxuICAgICAgICB0b29sdGlwOiB0aGlzLmxpdGVyYWxzLmNlbnRlcixcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRBbGlnbkNvbW1hbmQuYmluZCh0aGlzLCAnanVzdGlmeWNlbnRlcicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb21tYW5kOiAnanVzdGlmeXJpZ2h0JyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tYWxpZ24tcmlnaHQnLFxuICAgICAgICB0b29sdGlwOiB0aGlzLmxpdGVyYWxzLnJpZ2h0LFxuICAgICAgICBhY3Rpb246IHRoaXMuZW1pdEFsaWduQ29tbWFuZC5iaW5kKHRoaXMsICdqdXN0aWZ5cmlnaHQnKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogJ2p1c3RpZnlmdWxsJyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tYWxpZ24tanVzdGlmeScsXG4gICAgICAgIHRvb2x0aXA6IHRoaXMubGl0ZXJhbHMuanVzdGlmeSxcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRBbGlnbkNvbW1hbmQuYmluZCh0aGlzLCAnanVzdGlmeWZ1bGwnKVxuICAgICAgfVxuICAgIF07XG5cbiAgICB0aGlzLmZvcm1hdEJ1dHRvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6ICdib2xkJyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tdGV4dC1ib2xkJyxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5saXRlcmFscy5ib2xkLFxuICAgICAgICBhY3Rpb246IHRoaXMuZW1pdENvbW1hbmQuYmluZCh0aGlzLCAnYm9sZCcpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb21tYW5kOiAnaXRhbGljJyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tdGV4dC1pdGFsaWMnLFxuICAgICAgICB0b29sdGlwOiB0aGlzLmxpdGVyYWxzLml0YWxpYyxcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRDb21tYW5kLmJpbmQodGhpcywgJ2l0YWxpYycpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb21tYW5kOiAndW5kZXJsaW5lJyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tdGV4dC11bmRlcmxpbmUnLFxuICAgICAgICB0b29sdGlwOiB0aGlzLmxpdGVyYWxzLnVuZGVybGluZSxcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRDb21tYW5kLmJpbmQodGhpcywgJ3VuZGVybGluZScpXG4gICAgICB9XG4gICAgXTtcblxuICAgIHRoaXMubGlzdEJ1dHRvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6ICdpbnNlcnRVbm9yZGVyZWRMaXN0JyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tbGlzdCcsXG4gICAgICAgIHRvb2x0aXA6IHRoaXMubGl0ZXJhbHMudW5vcmRlcmVkTGlzdCxcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRDb21tYW5kLmJpbmQodGhpcywgJ2luc2VydFVub3JkZXJlZExpc3QnKVxuICAgICAgfVxuICAgIF07XG5cbiAgICB0aGlzLm1lZGlhQnV0dG9ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgdG9vbHRpcDogdGhpcy5saXRlcmFscy5pbnNlcnRJbWFnZSxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tcGljdHVyZScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5yaWNoVGV4dEltYWdlTW9kYWwub3Blbk1vZGFsKClcbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5saW5rQnV0dG9ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogJ0NyZWF0ZWxpbmsnLFxuICAgICAgICBpY29uOiAncG8taWNvbi1saW5rJyxcbiAgICAgICAgdG9vbHRpcDogYCR7dGhpcy5saXRlcmFscy5pbnNlcnRMaW5rfSAoQ3RybCArIEspYCxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnJpY2hUZXh0TGlua01vZGFsLm9wZW5Nb2RhbCh0aGlzLnNlbGVjdGVkTGlua0VsZW1lbnQpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnJlbW92ZUJ1dHRvbkZvY3VzKCk7XG4gICAgdGhpcy5zZXRDb2xvckluQ29sb3JQaWNrZXIocG9SaWNoVGV4dERlZmF1bHRDb2xvcik7XG4gIH1cblxuICBjaGFuZ2VUZXh0Q29sb3IodmFsdWUpIHtcbiAgICBjb25zdCBjb21tYW5kID0gJ2ZvcmVDb2xvcic7XG5cbiAgICB0aGlzLmNvbW1hbmQuZW1pdCh7IGNvbW1hbmQsIHZhbHVlIH0pO1xuICB9XG5cbiAgZW1pdExpbmtFZGl0aW5nKGlzTGlua0VkaXQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxpbmtFZGl0aW5nLmVtaXQoaXNMaW5rRWRpdCk7XG4gIH1cblxuICBzZWxlY3RlZExpbmsoc2VsZWN0ZWRMaW5rRWxlbWVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRMaW5rRWxlbWVudCA9IHNlbGVjdGVkTGlua0VsZW1lbnQ7XG4gIH1cblxuICBzZXRCdXR0b25zU3RhdGVzKG9iajogeyBjb21tYW5kczogQXJyYXk8c3RyaW5nPjsgaGV4Q29sb3I6IHN0cmluZyB9KSB7XG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmFsaWduQnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiAoYnV0dG9uLnNlbGVjdGVkID0gb2JqLmNvbW1hbmRzLmluY2x1ZGVzKGJ1dHRvbi5jb21tYW5kKSkpO1xuICAgICAgdGhpcy5mb3JtYXRCdXR0b25zLmZvckVhY2goYnV0dG9uID0+IChidXR0b24uc2VsZWN0ZWQgPSBvYmouY29tbWFuZHMuaW5jbHVkZXMoYnV0dG9uLmNvbW1hbmQpKSk7XG4gICAgICB0aGlzLmxpc3RCdXR0b25zWzBdLnNlbGVjdGVkID0gb2JqLmNvbW1hbmRzLmluY2x1ZGVzKHRoaXMubGlzdEJ1dHRvbnNbMF0uY29tbWFuZCk7XG4gICAgICB0aGlzLmxpbmtCdXR0b25zWzBdLnNlbGVjdGVkID0gb2JqLmNvbW1hbmRzLmluY2x1ZGVzKHRoaXMubGlua0J1dHRvbnNbMF0uY29tbWFuZCk7XG4gICAgICB0aGlzLnNldENvbG9ySW5Db2xvclBpY2tlcihvYmouaGV4Q29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIHNob3J0Y3V0VHJpZ2dlcigpIHtcbiAgICB0aGlzLnJpY2hUZXh0TGlua01vZGFsLm9wZW5Nb2RhbCh0aGlzLnNlbGVjdGVkTGlua0VsZW1lbnQpO1xuICB9XG5cbiAgZW1pdENvbW1hbmQoY29tbWFuZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb21tYW5kLmVtaXQoY29tbWFuZCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRBbGlnbkNvbW1hbmQoY29tbWFuZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmFsaWduQnV0dG9ucy5maW5kSW5kZXgoYnRuID0+IGJ0bi5jb21tYW5kID09PSBjb21tYW5kKTtcblxuICAgIGlmICghdGhpcy5hbGlnbkJ1dHRvbnNbaW5kZXhdLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmFsaWduQnV0dG9uc1tpbmRleF0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbW1hbmQuZW1pdChjb21tYW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQnV0dG9uRm9jdXMoKSB7XG4gICAgY29uc3QgYnV0dG9ucyA9IHRoaXMudG9vbGJhckVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKTtcblxuICAgIGJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gYnV0dG9uLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKSk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbG9ySW5Db2xvclBpY2tlcihjb2xvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb2xvclBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBjb2xvcjtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlRGlzYWJsZUJ1dHRvbnMoc3RhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFsaWduQnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiAoYnV0dG9uLmRpc2FibGVkID0gc3RhdGUpKTtcbiAgICB0aGlzLmZvcm1hdEJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gKGJ1dHRvbi5kaXNhYmxlZCA9IHN0YXRlKSk7XG4gICAgdGhpcy5saXN0QnV0dG9uc1swXS5kaXNhYmxlZCA9IHN0YXRlO1xuICAgIHRoaXMubGlua0J1dHRvbnNbMF0uZGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB0aGlzLm1lZGlhQnV0dG9uc1swXS5kaXNhYmxlZCA9IHN0YXRlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicG8tcmljaC10ZXh0LXRvb2xiYXJcIiAjdG9vbGJhckVsZW1lbnQ+XG4gIDxkaXYgY2xhc3M9XCJwby1yaWNoLXRleHQtdG9vbGJhci1idXR0b24tYWxpZ25cIiBkYXRhLXJpY2gtdGV4dC10b29sYmFyPVwiZm9ybWF0XCI+XG4gICAgPHBvLWJ1dHRvbi1ncm91cCBwLXRvZ2dsZT1cIm11bHRpcGxlXCIgW3AtYnV0dG9uc109XCJmb3JtYXRCdXR0b25zXCI+IDwvcG8tYnV0dG9uLWdyb3VwPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiIWlzSW50ZXJuZXRFeHBsb3JlclwiIGNsYXNzPVwicG8tcmljaC10ZXh0LXRvb2xiYXItYnV0dG9uLWFsaWduXCIgZGF0YS1yaWNoLXRleHQtdG9vbGJhcj1cImNvbG9yXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvLXJpY2gtdGV4dC10b29sYmFyLWNvbG9yLXBpY2tlci1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJwby1idXR0b24gcG8tYnV0dG9uLWRlZmF1bHQgcG8tcmljaC10ZXh0LXRvb2xiYXItY29sb3ItcGlja2VyLWJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgICAgIFtwLXRvb2x0aXBdPVwibGl0ZXJhbHMudGV4dENvbG9yXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaXRlcmFscy50ZXh0Q29sb3JcIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjY29sb3JQaWNrZXJJbnB1dFxuICAgICAgICAgIGNsYXNzPVwicG8tcmljaC10ZXh0LXRvb2xiYXItY29sb3ItcGlja2VyLWlucHV0XCJcbiAgICAgICAgICB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VUZXh0Q29sb3IoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGl0ZXJhbHMudGV4dENvbG9yXCJcbiAgICAgICAgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkVGV4dEFsaWduXCIgY2xhc3M9XCJwby1yaWNoLXRleHQtdG9vbGJhci1idXR0b24tYWxpZ25cIiBkYXRhLXJpY2gtdGV4dC10b29sYmFyPVwiYWxpZ25cIj5cbiAgICA8cG8tYnV0dG9uLWdyb3VwIHAtdG9nZ2xlPVwic2luZ2xlXCIgW3AtYnV0dG9uc109XCJhbGlnbkJ1dHRvbnNcIj4gPC9wby1idXR0b24tZ3JvdXA+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwby1yaWNoLXRleHQtdG9vbGJhci1idXR0b24tYWxpZ25cIiBkYXRhLXJpY2gtdGV4dC10b29sYmFyPVwibGlzdFwiPlxuICAgIDxwby1idXR0b24tZ3JvdXAgcC10b2dnbGU9XCJzaW5nbGVcIiBbcC1idXR0b25zXT1cImxpc3RCdXR0b25zXCI+IDwvcG8tYnV0dG9uLWdyb3VwPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicG8tcmljaC10ZXh0LXRvb2xiYXItYnV0dG9uLWFsaWduXCIgZGF0YS1yaWNoLXRleHQtdG9vbGJhcj1cImxpbmtcIj5cbiAgICA8cG8tYnV0dG9uLWdyb3VwIFtwLWJ1dHRvbnNdPVwibGlua0J1dHRvbnNcIj4gPC9wby1idXR0b24tZ3JvdXA+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwby1yaWNoLXRleHQtdG9vbGJhci1idXR0b24tYWxpZ25cIiBkYXRhLXJpY2gtdGV4dC10b29sYmFyPVwibWVkaWFcIj5cbiAgICA8cG8tYnV0dG9uLWdyb3VwIFtwLWJ1dHRvbnNdPVwibWVkaWFCdXR0b25zXCI+IDwvcG8tYnV0dG9uLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48cG8tcmljaC10ZXh0LWltYWdlLW1vZGFsICNyaWNoVGV4dEltYWdlTW9kYWwgKHAtY29tbWFuZCk9XCJlbWl0Q29tbWFuZCgkZXZlbnQpXCI+IDwvcG8tcmljaC10ZXh0LWltYWdlLW1vZGFsPlxuXG48cG8tcmljaC10ZXh0LWxpbmstbW9kYWxcbiAgI3JpY2hUZXh0TGlua01vZGFsXG4gIChwLWNvbW1hbmQpPVwiZW1pdENvbW1hbmQoJGV2ZW50KVwiXG4gIChwLWxpbmstZWRpdGluZyk9XCJlbWl0TGlua0VkaXRpbmcoJGV2ZW50KVwiXG4+XG48L3BvLXJpY2gtdGV4dC1saW5rLW1vZGFsPlxuIl19
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcmljaC10ZXh0LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXJpY2gtdGV4dC9wby1yaWNoLXRleHQtdG9vbGJhci9wby1yaWNoLXRleHQtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tcmljaC10ZXh0L3BvLXJpY2gtdGV4dC10b29sYmFyL3BvLXJpY2gtdGV4dC10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTlDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7Ozs7Ozs7SUNKMUcsK0JBQTBHLGNBQUEsaUJBQUEsb0JBQUE7SUFjbEcsOEtBQVUsZUFBQSwyQ0FBb0MsQ0FBQSxJQUFDO0lBTGpELGlCQU9FLEVBQUEsRUFBQSxFQUFBOzs7SUFYRixlQUFxQjtJQUFyQiwwQ0FBcUIsd0NBQUE7SUFFckIsdURBQXNDO0lBTXBDLGVBQXFCO0lBQXJCLDBDQUFxQjtJQUVyQix1REFBc0M7OztJQU05QywrQkFBeUc7SUFDdkcscUNBQWlGO0lBQ25GLGlCQUFNOzs7SUFEK0IsZUFBMEI7SUFBMUIsK0NBQTBCOztB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RFI7WUFHbkMsaUJBQTBCOztZQWhEZSxlQUEyQjtZQUEzQiw2Q0FBMkI7WUFHNUQsZUFBeUI7WUFBekIsOENBQXlCO1lBcUJ6QixlQUF3QjtZQUF4Qiw2Q0FBd0I7WUFLTyxlQUF5QjtZQUF6QiwyQ0FBeUI7WUFJM0MsZUFBeUI7WUFBekIsMkNBQXlCO1lBSXpCLGVBQTBCO1lBQTFCLDRDQUEwQjs7O3VGRHRCbEMsMEJBQTBCO2NBSnRDLFNBQVM7MkJBQ0Usc0JBQXNCO29FQUlxQixnQkFBZ0I7a0JBQXBFLFNBQVM7bUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBRUosY0FBYztrQkFBNUQsU0FBUzttQkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFFZSxrQkFBa0I7a0JBQTdFLFNBQVM7bUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBRUMsaUJBQWlCO2tCQUEzRSxTQUFTO21CQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUVwQyxPQUFPO2tCQUEzQixNQUFNO21CQUFDLFdBQVc7WUFFQSxLQUFLO2tCQUF2QixNQUFNO21CQUFDLFNBQVM7WUFFUyxXQUFXO2tCQUFwQyxNQUFNO21CQUFDLGdCQUFnQjtZQWtCWSxpQkFBaUI7a0JBQXBELEtBQUs7bUJBQUMsdUJBQXVCO1lBUUwsUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpc0lFIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBQb0J1dHRvbkdyb3VwSXRlbSB9IGZyb20gJy4uLy4uLy4uL3BvLWJ1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBwb1JpY2hUZXh0TGl0ZXJhbHNEZWZhdWx0IH0gZnJvbSAnLi4vcG8tcmljaC10ZXh0LWxpdGVyYWxzJztcbmltcG9ydCB7IFBvUmljaFRleHRUb29sYmFyQnV0dG9uR3JvdXBJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1yaWNoLXRleHQtdG9vbGJhci1idXR0b24tZ3JvdXAtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9SaWNoVGV4dEltYWdlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9wby1yaWNoLXRleHQtaW1hZ2UtbW9kYWwvcG8tcmljaC10ZXh0LWltYWdlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1JpY2hUZXh0TGlua01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vcG8tcmljaC10ZXh0LWxpbmstbW9kYWwvcG8tcmljaC10ZXh0LWxpbmstbW9kYWwuY29tcG9uZW50JztcblxuY29uc3QgcG9SaWNoVGV4dERlZmF1bHRDb2xvciA9ICcjMDAwMDAwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcmljaC10ZXh0LXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tcmljaC10ZXh0LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvUmljaFRleHRUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbG9yUGlja2VySW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY29sb3JQaWNrZXJJbnB1dDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0b29sYmFyRWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHRvb2xiYXJFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoUG9SaWNoVGV4dEltYWdlTW9kYWxDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHJpY2hUZXh0SW1hZ2VNb2RhbDogUG9SaWNoVGV4dEltYWdlTW9kYWxDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChQb1JpY2hUZXh0TGlua01vZGFsQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSByaWNoVGV4dExpbmtNb2RhbDogUG9SaWNoVGV4dExpbmtNb2RhbENvbXBvbmVudDtcblxuICBAT3V0cHV0KCdwLWNvbW1hbmQnKSBjb21tYW5kID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCB7IGNvbW1hbmQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PigpO1xuXG4gIEBPdXRwdXQoJ3AtbW9kYWwnKSBtb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoJ3AtbGluay1lZGl0aW5nJykgbGlua0VkaXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICByZWFkb25seSBsaXRlcmFscz86IGFueTtcblxuICBhbGlnbkJ1dHRvbnM6IEFycmF5PFBvUmljaFRleHRUb29sYmFyQnV0dG9uR3JvdXBJdGVtPjtcblxuICBmb3JtYXRCdXR0b25zOiBBcnJheTxQb1JpY2hUZXh0VG9vbGJhckJ1dHRvbkdyb3VwSXRlbT47XG5cbiAgbGlzdEJ1dHRvbnM6IEFycmF5PFBvUmljaFRleHRUb29sYmFyQnV0dG9uR3JvdXBJdGVtPjtcblxuICBsaW5rQnV0dG9uczogQXJyYXk8UG9SaWNoVGV4dFRvb2xiYXJCdXR0b25Hcm91cEl0ZW0+O1xuXG4gIG1lZGlhQnV0dG9uczogQXJyYXk8UG9CdXR0b25Hcm91cEl0ZW0+O1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkVGV4dEFsaWduOiBib29sZWFuO1xuICBwcml2YXRlIF9yZWFkb25seTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzZWxlY3RlZExpbmtFbGVtZW50O1xuXG4gIEBJbnB1dCgncC1kaXNhYmxlZC10ZXh0LWFsaWduJykgc2V0IGRpc2FibGVkVGV4dEFsaWduKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWRUZXh0QWxpZ24gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZFRleHRBbGlnbigpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRUZXh0QWxpZ247XG4gIH1cblxuICBASW5wdXQoJ3AtcmVhZG9ubHknKSBzZXQgcmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZWFkb25seSA9IHZhbHVlO1xuICAgIHRoaXMudG9nZ2xlRGlzYWJsZUJ1dHRvbnModGhpcy5fcmVhZG9ubHkpO1xuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgfVxuXG4gIGdldCBpc0ludGVybmV0RXhwbG9yZXIoKSB7XG4gICAgcmV0dXJuIGlzSUUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHRoaXMubGl0ZXJhbHMgPSB7XG4gICAgICAuLi5wb1JpY2hUZXh0TGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VTZXJ2aWNlPy5nZXRTaG9ydExhbmd1YWdlKCldXG4gICAgfTtcbiAgICB0aGlzLmFsaWduQnV0dG9ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogJ2p1c3RpZnlsZWZ0JyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tYWxpZ24tbGVmdCcsXG4gICAgICAgIHRvb2x0aXA6IHRoaXMubGl0ZXJhbHMubGVmdCxcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRBbGlnbkNvbW1hbmQuYmluZCh0aGlzLCAnanVzdGlmeWxlZnQnKSxcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6ICdqdXN0aWZ5Y2VudGVyJyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tYWxpZ24tY2VudGVyJyxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5saXRlcmFscy5jZW50ZXIsXG4gICAgICAgIGFjdGlvbjogdGhpcy5lbWl0QWxpZ25Db21tYW5kLmJpbmQodGhpcywgJ2p1c3RpZnljZW50ZXInKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogJ2p1c3RpZnlyaWdodCcsXG4gICAgICAgIGljb246ICdwby1pY29uLWFsaWduLXJpZ2h0JyxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5saXRlcmFscy5yaWdodCxcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRBbGlnbkNvbW1hbmQuYmluZCh0aGlzLCAnanVzdGlmeXJpZ2h0JylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6ICdqdXN0aWZ5ZnVsbCcsXG4gICAgICAgIGljb246ICdwby1pY29uLWFsaWduLWp1c3RpZnknLFxuICAgICAgICB0b29sdGlwOiB0aGlzLmxpdGVyYWxzLmp1c3RpZnksXG4gICAgICAgIGFjdGlvbjogdGhpcy5lbWl0QWxpZ25Db21tYW5kLmJpbmQodGhpcywgJ2p1c3RpZnlmdWxsJylcbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5mb3JtYXRCdXR0b25zID0gW1xuICAgICAge1xuICAgICAgICBjb21tYW5kOiAnYm9sZCcsXG4gICAgICAgIGljb246ICdwby1pY29uLXRleHQtYm9sZCcsXG4gICAgICAgIHRvb2x0aXA6IHRoaXMubGl0ZXJhbHMuYm9sZCxcbiAgICAgICAgYWN0aW9uOiB0aGlzLmVtaXRDb21tYW5kLmJpbmQodGhpcywgJ2JvbGQnKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogJ2l0YWxpYycsXG4gICAgICAgIGljb246ICdwby1pY29uLXRleHQtaXRhbGljJyxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5saXRlcmFscy5pdGFsaWMsXG4gICAgICAgIGFjdGlvbjogdGhpcy5lbWl0Q29tbWFuZC5iaW5kKHRoaXMsICdpdGFsaWMnKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29tbWFuZDogJ3VuZGVybGluZScsXG4gICAgICAgIGljb246ICdwby1pY29uLXRleHQtdW5kZXJsaW5lJyxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5saXRlcmFscy51bmRlcmxpbmUsXG4gICAgICAgIGFjdGlvbjogdGhpcy5lbWl0Q29tbWFuZC5iaW5kKHRoaXMsICd1bmRlcmxpbmUnKVxuICAgICAgfVxuICAgIF07XG5cbiAgICB0aGlzLmxpc3RCdXR0b25zID0gW1xuICAgICAge1xuICAgICAgICBjb21tYW5kOiAnaW5zZXJ0VW5vcmRlcmVkTGlzdCcsXG4gICAgICAgIGljb246ICdwby1pY29uLWxpc3QnLFxuICAgICAgICB0b29sdGlwOiB0aGlzLmxpdGVyYWxzLnVub3JkZXJlZExpc3QsXG4gICAgICAgIGFjdGlvbjogdGhpcy5lbWl0Q29tbWFuZC5iaW5kKHRoaXMsICdpbnNlcnRVbm9yZGVyZWRMaXN0JylcbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5tZWRpYUJ1dHRvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIHRvb2x0aXA6IHRoaXMubGl0ZXJhbHMuaW5zZXJ0SW1hZ2UsXG4gICAgICAgIGljb246ICdwby1pY29uLXBpY3R1cmUnLFxuICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMucmljaFRleHRJbWFnZU1vZGFsLm9wZW5Nb2RhbCgpXG4gICAgICB9XG4gICAgXTtcblxuICAgIHRoaXMubGlua0J1dHRvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6ICdDcmVhdGVsaW5rJyxcbiAgICAgICAgaWNvbjogJ3BvLWljb24tbGluaycsXG4gICAgICAgIHRvb2x0aXA6IGAke3RoaXMubGl0ZXJhbHMuaW5zZXJ0TGlua30gKEN0cmwgKyBLKWAsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5yaWNoVGV4dExpbmtNb2RhbC5vcGVuTW9kYWwodGhpcy5zZWxlY3RlZExpbmtFbGVtZW50KVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZW1vdmVCdXR0b25Gb2N1cygpO1xuICAgIHRoaXMuc2V0Q29sb3JJbkNvbG9yUGlja2VyKHBvUmljaFRleHREZWZhdWx0Q29sb3IpO1xuICB9XG5cbiAgY2hhbmdlVGV4dENvbG9yKHZhbHVlKSB7XG4gICAgY29uc3QgY29tbWFuZCA9ICdmb3JlQ29sb3InO1xuXG4gICAgdGhpcy5jb21tYW5kLmVtaXQoeyBjb21tYW5kLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIGVtaXRMaW5rRWRpdGluZyhpc0xpbmtFZGl0OiBib29sZWFuKSB7XG4gICAgdGhpcy5saW5rRWRpdGluZy5lbWl0KGlzTGlua0VkaXQpO1xuICB9XG5cbiAgc2VsZWN0ZWRMaW5rKHNlbGVjdGVkTGlua0VsZW1lbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkTGlua0VsZW1lbnQgPSBzZWxlY3RlZExpbmtFbGVtZW50O1xuICB9XG5cbiAgc2V0QnV0dG9uc1N0YXRlcyhvYmo6IHsgY29tbWFuZHM6IEFycmF5PHN0cmluZz47IGhleENvbG9yOiBzdHJpbmcgfSkge1xuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5hbGlnbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gKGJ1dHRvbi5zZWxlY3RlZCA9IG9iai5jb21tYW5kcy5pbmNsdWRlcyhidXR0b24uY29tbWFuZCkpKTtcbiAgICAgIHRoaXMuZm9ybWF0QnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiAoYnV0dG9uLnNlbGVjdGVkID0gb2JqLmNvbW1hbmRzLmluY2x1ZGVzKGJ1dHRvbi5jb21tYW5kKSkpO1xuICAgICAgdGhpcy5saXN0QnV0dG9uc1swXS5zZWxlY3RlZCA9IG9iai5jb21tYW5kcy5pbmNsdWRlcyh0aGlzLmxpc3RCdXR0b25zWzBdLmNvbW1hbmQpO1xuICAgICAgdGhpcy5saW5rQnV0dG9uc1swXS5zZWxlY3RlZCA9IG9iai5jb21tYW5kcy5pbmNsdWRlcyh0aGlzLmxpbmtCdXR0b25zWzBdLmNvbW1hbmQpO1xuICAgICAgdGhpcy5zZXRDb2xvckluQ29sb3JQaWNrZXIob2JqLmhleENvbG9yKTtcbiAgICB9XG4gIH1cblxuICBzaG9ydGN1dFRyaWdnZXIoKSB7XG4gICAgdGhpcy5yaWNoVGV4dExpbmtNb2RhbC5vcGVuTW9kYWwodGhpcy5zZWxlY3RlZExpbmtFbGVtZW50KTtcbiAgfVxuXG4gIGVtaXRDb21tYW5kKGNvbW1hbmQ6IHN0cmluZykge1xuICAgIHRoaXMuY29tbWFuZC5lbWl0KGNvbW1hbmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0QWxpZ25Db21tYW5kKGNvbW1hbmQ6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hbGlnbkJ1dHRvbnMuZmluZEluZGV4KGJ0biA9PiBidG4uY29tbWFuZCA9PT0gY29tbWFuZCk7XG5cbiAgICBpZiAoIXRoaXMuYWxpZ25CdXR0b25zW2luZGV4XS5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5hbGlnbkJ1dHRvbnNbaW5kZXhdLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5jb21tYW5kLmVtaXQoY29tbWFuZCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJ1dHRvbkZvY3VzKCkge1xuICAgIGNvbnN0IGJ1dHRvbnMgPSB0aGlzLnRvb2xiYXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJyk7XG5cbiAgICBidXR0b25zLmZvckVhY2goYnV0dG9uID0+IGJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb2xvckluQ29sb3JQaWNrZXIoY29sb3I6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29sb3JQaWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gY29sb3I7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZURpc2FibGVCdXR0b25zKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5hbGlnbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gKGJ1dHRvbi5kaXNhYmxlZCA9IHN0YXRlKSk7XG4gICAgdGhpcy5mb3JtYXRCdXR0b25zLmZvckVhY2goYnV0dG9uID0+IChidXR0b24uZGlzYWJsZWQgPSBzdGF0ZSkpO1xuICAgIHRoaXMubGlzdEJ1dHRvbnNbMF0uZGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB0aGlzLmxpbmtCdXR0b25zWzBdLmRpc2FibGVkID0gc3RhdGU7XG4gICAgdGhpcy5tZWRpYUJ1dHRvbnNbMF0uZGlzYWJsZWQgPSBzdGF0ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBvLXJpY2gtdGV4dC10b29sYmFyXCIgI3Rvb2xiYXJFbGVtZW50PlxuICA8ZGl2IGNsYXNzPVwicG8tcmljaC10ZXh0LXRvb2xiYXItYnV0dG9uLWFsaWduXCIgZGF0YS1yaWNoLXRleHQtdG9vbGJhcj1cImZvcm1hdFwiPlxuICAgIDxwby1idXR0b24tZ3JvdXAgcC10b2dnbGU9XCJtdWx0aXBsZVwiIFtwLWJ1dHRvbnNdPVwiZm9ybWF0QnV0dG9uc1wiPiA8L3BvLWJ1dHRvbi1ncm91cD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIiFpc0ludGVybmV0RXhwbG9yZXJcIiBjbGFzcz1cInBvLXJpY2gtdGV4dC10b29sYmFyLWJ1dHRvbi1hbGlnblwiIGRhdGEtcmljaC10ZXh0LXRvb2xiYXI9XCJjb2xvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwby1yaWNoLXRleHQtdG9vbGJhci1jb2xvci1waWNrZXItY29udGFpbmVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInBvLWJ1dHRvbiBwby1idXR0b24tZGVmYXVsdCBwby1yaWNoLXRleHQtdG9vbGJhci1jb2xvci1waWNrZXItYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICAgICAgW3AtdG9vbHRpcF09XCJsaXRlcmFscy50ZXh0Q29sb3JcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpdGVyYWxzLnRleHRDb2xvclwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICNjb2xvclBpY2tlcklucHV0XG4gICAgICAgICAgY2xhc3M9XCJwby1yaWNoLXRleHQtdG9vbGJhci1jb2xvci1waWNrZXItaW5wdXRcIlxuICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZVRleHRDb2xvcigkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaXRlcmFscy50ZXh0Q29sb3JcIlxuICAgICAgICAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWRUZXh0QWxpZ25cIiBjbGFzcz1cInBvLXJpY2gtdGV4dC10b29sYmFyLWJ1dHRvbi1hbGlnblwiIGRhdGEtcmljaC10ZXh0LXRvb2xiYXI9XCJhbGlnblwiPlxuICAgIDxwby1idXR0b24tZ3JvdXAgcC10b2dnbGU9XCJzaW5nbGVcIiBbcC1idXR0b25zXT1cImFsaWduQnV0dG9uc1wiPiA8L3BvLWJ1dHRvbi1ncm91cD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInBvLXJpY2gtdGV4dC10b29sYmFyLWJ1dHRvbi1hbGlnblwiIGRhdGEtcmljaC10ZXh0LXRvb2xiYXI9XCJsaXN0XCI+XG4gICAgPHBvLWJ1dHRvbi1ncm91cCBwLXRvZ2dsZT1cInNpbmdsZVwiIFtwLWJ1dHRvbnNdPVwibGlzdEJ1dHRvbnNcIj4gPC9wby1idXR0b24tZ3JvdXA+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwby1yaWNoLXRleHQtdG9vbGJhci1idXR0b24tYWxpZ25cIiBkYXRhLXJpY2gtdGV4dC10b29sYmFyPVwibGlua1wiPlxuICAgIDxwby1idXR0b24tZ3JvdXAgW3AtYnV0dG9uc109XCJsaW5rQnV0dG9uc1wiPiA8L3BvLWJ1dHRvbi1ncm91cD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInBvLXJpY2gtdGV4dC10b29sYmFyLWJ1dHRvbi1hbGlnblwiIGRhdGEtcmljaC10ZXh0LXRvb2xiYXI9XCJtZWRpYVwiPlxuICAgIDxwby1idXR0b24tZ3JvdXAgW3AtYnV0dG9uc109XCJtZWRpYUJ1dHRvbnNcIj4gPC9wby1idXR0b24tZ3JvdXA+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxwby1yaWNoLXRleHQtaW1hZ2UtbW9kYWwgI3JpY2hUZXh0SW1hZ2VNb2RhbCAocC1jb21tYW5kKT1cImVtaXRDb21tYW5kKCRldmVudClcIj4gPC9wby1yaWNoLXRleHQtaW1hZ2UtbW9kYWw+XG5cbjxwby1yaWNoLXRleHQtbGluay1tb2RhbFxuICAjcmljaFRleHRMaW5rTW9kYWxcbiAgKHAtY29tbWFuZCk9XCJlbWl0Q29tbWFuZCgkZXZlbnQpXCJcbiAgKHAtbGluay1lZGl0aW5nKT1cImVtaXRMaW5rRWRpdGluZygkZXZlbnQpXCJcbj5cbjwvcG8tcmljaC10ZXh0LWxpbmstbW9kYWw+XG4iXX0=
@@ -181,9 +181,9 @@ export class PoItemListComponent extends PoItemListBaseComponent {
181
181
  }
182
182
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoItemListComponent, [{
183
183
  type: Component,
184
- args: [{ selector: 'po-item-list', template: "<ng-container [ngSwitch]=\"type\" (keydown)=\"onCheckboxItemEmit($event)\">\n <div\n *ngSwitchDefault\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n <po-icon *ngIf=\"icon\" class=\"po-popup-icon-item po-icon\" [p-icon]=\"icon\"></po-icon>\n <span class=\"po-item-list-label\">{{ label }}</span>\n </div>\n <div\n *ngSwitchCase=\"'option'\"\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n <span *ngIf=\"!template\" class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n\n <div\n *ngSwitchCase=\"'check'\"\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n (p-change)=\"onSelectItem({label})\"\n ></po-checkbox>\n\n <span class=\"po-item-list__label\" *ngIf=\"!template\">{{ label }}</span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n</ng-container>\n" }]
184
+ args: [{ selector: 'po-item-list', template: "<ng-container [ngSwitch]=\"type\" (keydown)=\"onCheckboxItemEmit($event)\">\n <div\n *ngSwitchDefault\n #itemList\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__disabled]=\"disabled || !visible\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled || !visible\"\n [attr.aria-label]=\"label\"\n [class.po-item-list__danger]=\"danger\"\n class=\"po-item-list po-item-list__action\"\n >\n <po-icon *ngIf=\"icon\" class=\"po-popup-icon-item po-icon\" [p-icon]=\"icon\"></po-icon>\n <span class=\"po-item-list-label\">{{ label }}</span>\n </div>\n\n <div\n *ngSwitchCase=\"'option'\"\n #itemList\n class=\"po-item-list po-item-list__option\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onComboItem(item, $event)\"\n >\n <span *ngIf=\"!template\" class=\"po-item-list-label\" [innerHTML]=\"getLabelFormatted(label)\"></span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n\n <div\n *ngSwitchCase=\"'check'\"\n class=\"po-item-list po-item-list__check\"\n [class.po-item-list__separator]=\"separator\"\n [class.po-item-list__selected]=\"selected && !disabled\"\n [class.po-item-list__disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n (click)=\"onCheckboxItem()\"\n (keydown)=\"onCheckboxItemEmit($event)\"\n (keyup)=\"onCheckboxItemEmit($event)\"\n >\n <po-checkbox\n [p-disabled-tabindex]=\"true\"\n [p-checkboxValue]=\"checkboxValue === null ? 'mixed' : checkboxValue\"\n [p-disabled]=\"disabled\"\n (p-change)=\"onSelectItem({label})\"\n ></po-checkbox>\n\n <span class=\"po-item-list__label\" *ngIf=\"!template\">{{ label }}</span>\n\n <ng-template [ngTemplateOutlet]=\"template?.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: templateContext }\">\n </ng-template>\n </div>\n</ng-container>\n" }]
185
185
  }], function () { return [{ type: i1.DomSanitizer }]; }, { itemList: [{
186
186
  type: ViewChild,
187
187
  args: ['itemList', { static: true }]
188
188
  }] }); })();
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taXRlbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWl0ZW0tbGlzdC9wby1pdGVtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWxpc3Rib3gvcG8taXRlbS1saXN0L3BvLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU1qRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7SUNLMUUsNkJBQW1GOzs7SUFBMUIsb0NBQWU7OztJQVgxRSxpQ0FVQztJQUNDLGtGQUFtRjtJQUNuRiwrQkFBaUM7SUFBQSxZQUFXO0lBQUEsaUJBQU8sRUFBQTs7O0lBVG5ELDJEQUEyQyw4REFBQSwrREFBQSx1Q0FBQTtJQUczQyxtRUFBMkMsNEJBQUE7SUFLakMsZUFBVTtJQUFWLGtDQUFVO0lBQ2EsZUFBVztJQUFYLGtDQUFXOzs7SUFZNUMsMkJBQWlHOzs7SUFBOUMscUZBQXNDOzs7Ozs7SUFWM0YsaUNBU0M7SUFEQyxtS0FBUyxlQUFBLHVDQUF5QixDQUFBLElBQUM7SUFFbkMsNkVBQWlHO0lBRWpHLDJGQUNjO0lBQ2hCLGlCQUFNOzs7SUFWSiwyREFBMkMsK0RBQUE7SUFFM0MsZ0RBQStCLDRCQUFBO0lBSXhCLGVBQWU7SUFBZix1Q0FBZTtJQUVULGVBQTBDO0lBQTFDLCtGQUEwQywrRUFBQTs7O0lBdUJ2RCxnQ0FBb0Q7SUFBQSxZQUFXO0lBQUEsaUJBQU87OztJQUFsQixlQUFX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WUFBWSxHQUFHLFlBQVksQ0FBQztxQkFDbEU7b0JBQ0QsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQy9GLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sZUFBZSxDQUFDLFFBQWdCLEVBQUU7UUFDeEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7NkVBL0ZVLG1CQUFtQjs2REFBbkIsbUJBQW1COzs7Ozs7WUNiaEMsZ0NBQXVFO1lBQXZDLGdIQUFXLDhCQUEwQixJQUFDO1lBQ3BFLHFFQWFNO1lBQ04scUVBY007WUFFTixxRUF1Qk07WUFDUiwwQkFBZTs7WUF2REQsbUNBQWlCO1lBZ0IxQixlQUFzQjtZQUF0Qix1Q0FBc0I7WUFnQnRCLGVBQXFCO1lBQXJCLHNDQUFxQjs7O3VGRG5CYixtQkFBbUI7Y0FKL0IsU0FBUzsyQkFDRSxjQUFjOytEQUlpQixRQUFRO2tCQUFoRCxTQUFTO21CQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWl0ZW0tbGlzdC1vcHRpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSXRlbUxpc3RPcHRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8taXRlbS1saXN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9JdGVtTGlzdEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLWl0ZW0tbGlzdC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb0l0ZW1MaXN0RmlsdGVyTW9kZSB9IGZyb20gJy4uL2VudW1zL3BvLWl0ZW0tbGlzdC1maWx0ZXItbW9kZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8taXRlbS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9JdGVtTGlzdENvbXBvbmVudCBleHRlbmRzIFBvSXRlbUxpc3RCYXNlQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnaXRlbUxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpdGVtTGlzdDogRWxlbWVudFJlZjtcblxuICBzZWxlY3RlZFZpZXc6IFBvSXRlbUxpc3RPcHRpb247XG5cbiAgcHJvdGVjdGVkIHBhcmFtO1xuICBwcm90ZWN0ZWQgY2xpY2tMaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplZDogRG9tU2FuaXRpemVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbShpdGVtTGlzdE9wdGlvbjogUG9JdGVtTGlzdE9wdGlvbiB8IFBvSXRlbUxpc3RPcHRpb25Hcm91cCB8IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gaXRlbUxpc3RPcHRpb247XG4gICAgdGhpcy5zZWxlY3RJdGVtLmVtaXQoaXRlbUxpc3RPcHRpb24pO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW0oKSB7XG4gICAgY29uc3Qgb3B0aW9uID0geyBbdGhpcy5maWVsZFZhbHVlXTogdGhpcy52YWx1ZSwgW3RoaXMuZmllbGRMYWJlbF06IHRoaXMubGFiZWwgfTtcbiAgICBjb25zdCBzZWxlY3RlZCA9ICF0aGlzLmNoZWNrYm94VmFsdWU7XG4gICAgdGhpcy5jaGVja2JveEl0ZW0uZW1pdCh7IG9wdGlvbiwgc2VsZWN0ZWQgfSk7XG4gIH1cblxuICBvbkNvbWJvSXRlbShvcHRpb25zOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb24gPSB7IFt0aGlzLmZpZWxkVmFsdWVdOiB0aGlzLnZhbHVlLCBbdGhpcy5maWVsZExhYmVsXTogdGhpcy5sYWJlbCB9O1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gb3B0aW9ucztcbiAgICB0aGlzLmNvbWJvSXRlbS5lbWl0KHsgLi4ub3B0aW9uLCBldmVudCB9KTtcbiAgfVxuXG4gIGNvbXBhcmVPYmplY3RzKG9iajE6IGFueSwgb2JqMjogYW55KSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iajEpID09PSBKU09OLnN0cmluZ2lmeShvYmoyKTtcbiAgfVxuXG4gIG9uQ2hlY2tib3hJdGVtRW1pdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZXZlbnQgJiYgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykgfHwgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgdGhpcy5vbkNoZWNrYm94SXRlbSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldExhYmVsRm9ybWF0dGVkKGxhYmVsOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgY29uc3Qgc2FuaXRpemVkTGFiZWwgPSB0aGlzLnNhbml0aXplVGFnSFRNTChsYWJlbCk7XG4gICAgbGV0IGZvcm1hdDogc3RyaW5nID0gc2FuaXRpemVkTGFiZWw7XG5cbiAgICBpZiAodGhpcy5pc0ZpbHRlcmluZyB8fCB0aGlzLnZhbGlkYXRlRm9yT3B0aW9uc0xhYmVsKCkpIHtcbiAgICAgIGNvbnN0IGxhYmVsSW5wdXQgPSB0aGlzLnNhbml0aXplVGFnSFRNTCh0aGlzLnNlYXJjaFZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBsYWJlbExvd2VyQ2FzZSA9IHNhbml0aXplZExhYmVsLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IG9wZW5UYWdCb2xkID0gJzxzcGFuIGNsYXNzPVwicG8tZm9udC10ZXh0LWxhcmdlLWJvbGRcIj4nO1xuICAgICAgY29uc3QgY2xvc2VUYWdCb2xkID0gJzwvc3Bhbj4nO1xuXG4gICAgICBsZXQgc3RhcnRTdHJpbmc7XG4gICAgICBsZXQgbWlkZGxlU3RyaW5nO1xuICAgICAgbGV0IGVuZFN0cmluZztcblxuICAgICAgc3dpdGNoICh0aGlzLmZpbHRlck1vZGUpIHtcbiAgICAgICAgY2FzZSBQb0l0ZW1MaXN0RmlsdGVyTW9kZS5zdGFydHNXaXRoOlxuICAgICAgICBjYXNlIFBvSXRlbUxpc3RGaWx0ZXJNb2RlLmNvbnRhaW5zOlxuICAgICAgICAgIGNvbnN0IGluZGV4T2ZMYWJlbElucHV0ID0gbGFiZWxMb3dlckNhc2UuaW5kZXhPZihsYWJlbElucHV0KTtcblxuICAgICAgICAgIGlmIChpbmRleE9mTGFiZWxJbnB1dCA+IC0xKSB7XG4gICAgICAgICAgICBzdGFydFN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZygwLCBpbmRleE9mTGFiZWxJbnB1dCk7XG5cbiAgICAgICAgICAgIG1pZGRsZVN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZyhpbmRleE9mTGFiZWxJbnB1dCwgaW5kZXhPZkxhYmVsSW5wdXQgKyBsYWJlbElucHV0Lmxlbmd0aCk7XG4gICAgICAgICAgICBlbmRTdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbC5zdWJzdHJpbmcoaW5kZXhPZkxhYmVsSW5wdXQgKyBsYWJlbElucHV0Lmxlbmd0aCk7XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IHN0YXJ0U3RyaW5nICsgb3BlblRhZ0JvbGQgKyBtaWRkbGVTdHJpbmcgKyBjbG9zZVRhZ0JvbGQgKyBlbmRTdHJpbmc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUG9JdGVtTGlzdEZpbHRlck1vZGUuZW5kc1dpdGg6XG4gICAgICAgICAgY29uc3QgbGFzdEluZGV4T2ZMYWJlbElucHV0ID0gbGFiZWxMb3dlckNhc2UubGFzdEluZGV4T2YobGFiZWxJbnB1dCk7XG5cbiAgICAgICAgICBpZiAobGFzdEluZGV4T2ZMYWJlbElucHV0ID4gLTEpIHtcbiAgICAgICAgICAgIHN0YXJ0U3RyaW5nID0gc2FuaXRpemVkTGFiZWwuc3Vic3RyaW5nKDAsIGxhc3RJbmRleE9mTGFiZWxJbnB1dCk7XG4gICAgICAgICAgICBtaWRkbGVTdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbC5zdWJzdHJpbmcobGFzdEluZGV4T2ZMYWJlbElucHV0KTtcblxuICAgICAgICAgICAgZm9ybWF0ID0gc3RhcnRTdHJpbmcgKyBvcGVuVGFnQm9sZCArIG1pZGRsZVN0cmluZyArIGNsb3NlVGFnQm9sZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2FmZUh0bWwoZm9ybWF0KTtcbiAgfVxuXG4gIHZhbGlkYXRlRm9yT3B0aW9uc0xhYmVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbWJvU2VydmljZSAmJiB0aGlzLnNlYXJjaFZhbHVlICYmICF0aGlzLmNvbXBhcmVDYWNoZSAmJiB0aGlzLnNob3VsZE1hcmtMZXR0ZXJzO1xuICB9XG5cbiAgc2FmZUh0bWwodmFsdWUpOiBTYWZlSHRtbCB7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVkLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2FuaXRpemVUYWdIVE1MKHZhbHVlOiBzdHJpbmcgPSAnJykge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXDwvZ20sICcmbHQ7JykucmVwbGFjZSgvXFw+L2csICcmZ3Q7Jyk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIiAoa2V5ZG93bik9XCJvbkNoZWNrYm94SXRlbUVtaXQoJGV2ZW50KVwiPlxuICA8ZGl2XG4gICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgICNpdGVtTGlzdFxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlcGFyYXRvcl09XCJzZXBhcmF0b3JcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICF2aXNpYmxlXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19zZWxlY3RlZF09XCJzZWxlY3RlZCAmJiAhZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIXZpc2libGVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX2Rhbmdlcl09XCJkYW5nZXJcIlxuICAgIGNsYXNzPVwicG8taXRlbS1saXN0IHBvLWl0ZW0tbGlzdF9fYWN0aW9uXCJcbiAgPlxuICAgIDxwby1pY29uICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwicG8tcG9wdXAtaWNvbi1pdGVtIHBvLWljb25cIiBbcC1pY29uXT1cImljb25cIj48L3BvLWljb24+XG4gICAgPHNwYW4gY2xhc3M9XCJwby1pdGVtLWxpc3QtbGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ29wdGlvbidcIlxuICAgICNpdGVtTGlzdFxuICAgIGNsYXNzPVwicG8taXRlbS1saXN0IHBvLWl0ZW0tbGlzdF9fb3B0aW9uXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19zZXBhcmF0b3JdPVwic2VwYXJhdG9yXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19zZWxlY3RlZF09XCJzZWxlY3RlZCAmJiAhZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIlxuICAgIChjbGljayk9XCJvbkNvbWJvSXRlbShpdGVtLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwiIXRlbXBsYXRlXCIgY2xhc3M9XCJwby1pdGVtLWxpc3QtbGFiZWxcIiBbaW5uZXJIVE1MXT1cImdldExhYmVsRm9ybWF0dGVkKGxhYmVsKVwiPjwvc3Bhbj5cblxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRlbXBsYXRlQ29udGV4dCB9XCI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgICpuZ1N3aXRjaENhc2U9XCInY2hlY2snXCJcbiAgICBjbGFzcz1cInBvLWl0ZW0tbGlzdCBwby1pdGVtLWxpc3RfX2NoZWNrXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19zZXBhcmF0b3JdPVwic2VwYXJhdG9yXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19zZWxlY3RlZF09XCJzZWxlY3RlZCAmJiAhZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAoY2xpY2spPVwib25DaGVja2JveEl0ZW0oKVwiXG4gICAgKGtleWRvd24pPVwib25DaGVja2JveEl0ZW1FbWl0KCRldmVudClcIlxuICAgIChrZXl1cCk9XCJvbkNoZWNrYm94SXRlbUVtaXQoJGV2ZW50KVwiXG4gID5cbiAgICA8cG8tY2hlY2tib3hcbiAgICAgIFtwLWRpc2FibGVkLXRhYmluZGV4XT1cInRydWVcIlxuICAgICAgW3AtY2hlY2tib3hWYWx1ZV09XCJjaGVja2JveFZhbHVlID09PSBudWxsID8gJ21peGVkJyA6IGNoZWNrYm94VmFsdWVcIlxuICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKHAtY2hhbmdlKT1cIm9uU2VsZWN0SXRlbSh7bGFiZWx9KVwiXG4gICAgPjwvcG8tY2hlY2tib3g+XG5cbiAgICA8c3BhbiBjbGFzcz1cInBvLWl0ZW0tbGlzdF9fbGFiZWxcIiAqbmdJZj1cIiF0ZW1wbGF0ZVwiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlPy50ZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdGVtcGxhdGVDb250ZXh0IH1cIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taXRlbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1saXN0Ym94L3BvLWl0ZW0tbGlzdC9wby1pdGVtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWxpc3Rib3gvcG8taXRlbS1saXN0L3BvLWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7SUNNMUUsNkJBQW1GOzs7SUFBMUIsb0NBQWU7OztJQVgxRSxpQ0FVQztJQUNDLGtGQUFtRjtJQUNuRiwrQkFBaUM7SUFBQSxZQUFXO0lBQUEsaUJBQU8sRUFBQTs7O0lBVG5ELDJEQUEyQyw4REFBQSwrREFBQSx1Q0FBQTtJQUczQyxtRUFBMkMsNEJBQUE7SUFLakMsZUFBVTtJQUFWLGtDQUFVO0lBQ2EsZUFBVztJQUFYLGtDQUFXOzs7SUFhNUMsMkJBQWlHOzs7SUFBOUMscUZBQXNDOzs7Ozs7SUFWM0YsaUNBU0M7SUFEQyxtS0FBUyxlQUFBLHVDQUF5QixDQUFBLElBQUM7SUFFbkMsNkVBQWlHO0lBRWpHLDJGQUNjO0lBQ2hCLGlCQUFNOzs7SUFWSiwyREFBMkMsK0RBQUE7SUFFM0MsZ0RBQStCLDRCQUFBO0lBSXhCLGVBQWU7SUFBZix1Q0FBZTtJQUVULGVBQTBDO0lBQTFDLCtGQUEwQywrRUFBQTs7O0lBdUJ2RCxnQ0FBb0Q7SUFBQSxZQUFXO0lBQUEsaUJBQU87OztJQUFsQixlQUFX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WUFBWSxHQUFHLFlBQVksQ0FBQztxQkFDbEU7b0JBQ0QsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQy9GLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sZUFBZSxDQUFDLFFBQWdCLEVBQUU7UUFDeEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7NkVBL0ZVLG1CQUFtQjs2REFBbkIsbUJBQW1COzs7Ozs7WUNaaEMsZ0NBQXVFO1lBQXZDLGdIQUFXLDhCQUEwQixJQUFDO1lBQ3BFLHFFQWFNO1lBRU4scUVBY007WUFFTixxRUF1Qk07WUFDUiwwQkFBZTs7WUF4REQsbUNBQWlCO1lBaUIxQixlQUFzQjtZQUF0Qix1Q0FBc0I7WUFnQnRCLGVBQXFCO1lBQXJCLHNDQUFxQjs7O3VGRHJCYixtQkFBbUI7Y0FKL0IsU0FBUzsyQkFDRSxjQUFjOytEQUlpQixRQUFRO2tCQUFoRCxTQUFTO21CQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBQb0l0ZW1MaXN0T3B0aW9uR3JvdXAgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8taXRlbS1saXN0LW9wdGlvbi1ncm91cC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9JdGVtTGlzdE9wdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1pdGVtLWxpc3Qtb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0l0ZW1MaXN0QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8taXRlbS1saXN0LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvSXRlbUxpc3RGaWx0ZXJNb2RlIH0gZnJvbSAnLi4vZW51bXMvcG8taXRlbS1saXN0LWZpbHRlci1tb2RlLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1pdGVtLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8taXRlbS1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb0l0ZW1MaXN0Q29tcG9uZW50IGV4dGVuZHMgUG9JdGVtTGlzdEJhc2VDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdpdGVtTGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pIGl0ZW1MaXN0OiBFbGVtZW50UmVmO1xuXG4gIHNlbGVjdGVkVmlldzogUG9JdGVtTGlzdE9wdGlvbjtcblxuICBwcm90ZWN0ZWQgcGFyYW07XG4gIHByb3RlY3RlZCBjbGlja0xpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVkOiBEb21TYW5pdGl6ZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb25TZWxlY3RJdGVtKGl0ZW1MaXN0T3B0aW9uOiBQb0l0ZW1MaXN0T3B0aW9uIHwgUG9JdGVtTGlzdE9wdGlvbkdyb3VwIHwgYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBpdGVtTGlzdE9wdGlvbjtcbiAgICB0aGlzLnNlbGVjdEl0ZW0uZW1pdChpdGVtTGlzdE9wdGlvbik7XG4gIH1cblxuICBvbkNoZWNrYm94SXRlbSgpIHtcbiAgICBjb25zdCBvcHRpb24gPSB7IFt0aGlzLmZpZWxkVmFsdWVdOiB0aGlzLnZhbHVlLCBbdGhpcy5maWVsZExhYmVsXTogdGhpcy5sYWJlbCB9O1xuICAgIGNvbnN0IHNlbGVjdGVkID0gIXRoaXMuY2hlY2tib3hWYWx1ZTtcbiAgICB0aGlzLmNoZWNrYm94SXRlbS5lbWl0KHsgb3B0aW9uLCBzZWxlY3RlZCB9KTtcbiAgfVxuXG4gIG9uQ29tYm9JdGVtKG9wdGlvbnM6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IG9wdGlvbiA9IHsgW3RoaXMuZmllbGRWYWx1ZV06IHRoaXMudmFsdWUsIFt0aGlzLmZpZWxkTGFiZWxdOiB0aGlzLmxhYmVsIH07XG4gICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBvcHRpb25zO1xuICAgIHRoaXMuY29tYm9JdGVtLmVtaXQoeyAuLi5vcHRpb24sIGV2ZW50IH0pO1xuICB9XG5cbiAgY29tcGFyZU9iamVjdHMob2JqMTogYW55LCBvYmoyOiBhbnkpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqMSkgPT09IEpTT04uc3RyaW5naWZ5KG9iajIpO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW1FbWl0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChldmVudCAmJiBldmVudC5jb2RlID09PSAnRW50ZXInKSB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICB0aGlzLm9uQ2hlY2tib3hJdGVtKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TGFiZWxGb3JtYXR0ZWQobGFiZWw6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICBjb25zdCBzYW5pdGl6ZWRMYWJlbCA9IHRoaXMuc2FuaXRpemVUYWdIVE1MKGxhYmVsKTtcbiAgICBsZXQgZm9ybWF0OiBzdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbDtcblxuICAgIGlmICh0aGlzLmlzRmlsdGVyaW5nIHx8IHRoaXMudmFsaWRhdGVGb3JPcHRpb25zTGFiZWwoKSkge1xuICAgICAgY29uc3QgbGFiZWxJbnB1dCA9IHRoaXMuc2FuaXRpemVUYWdIVE1MKHRoaXMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNvbnN0IGxhYmVsTG93ZXJDYXNlID0gc2FuaXRpemVkTGFiZWwudG9Mb3dlckNhc2UoKTtcblxuICAgICAgY29uc3Qgb3BlblRhZ0JvbGQgPSAnPHNwYW4gY2xhc3M9XCJwby1mb250LXRleHQtbGFyZ2UtYm9sZFwiPic7XG4gICAgICBjb25zdCBjbG9zZVRhZ0JvbGQgPSAnPC9zcGFuPic7XG5cbiAgICAgIGxldCBzdGFydFN0cmluZztcbiAgICAgIGxldCBtaWRkbGVTdHJpbmc7XG4gICAgICBsZXQgZW5kU3RyaW5nO1xuXG4gICAgICBzd2l0Y2ggKHRoaXMuZmlsdGVyTW9kZSkge1xuICAgICAgICBjYXNlIFBvSXRlbUxpc3RGaWx0ZXJNb2RlLnN0YXJ0c1dpdGg6XG4gICAgICAgIGNhc2UgUG9JdGVtTGlzdEZpbHRlck1vZGUuY29udGFpbnM6XG4gICAgICAgICAgY29uc3QgaW5kZXhPZkxhYmVsSW5wdXQgPSBsYWJlbExvd2VyQ2FzZS5pbmRleE9mKGxhYmVsSW5wdXQpO1xuXG4gICAgICAgICAgaWYgKGluZGV4T2ZMYWJlbElucHV0ID4gLTEpIHtcbiAgICAgICAgICAgIHN0YXJ0U3RyaW5nID0gc2FuaXRpemVkTGFiZWwuc3Vic3RyaW5nKDAsIGluZGV4T2ZMYWJlbElucHV0KTtcblxuICAgICAgICAgICAgbWlkZGxlU3RyaW5nID0gc2FuaXRpemVkTGFiZWwuc3Vic3RyaW5nKGluZGV4T2ZMYWJlbElucHV0LCBpbmRleE9mTGFiZWxJbnB1dCArIGxhYmVsSW5wdXQubGVuZ3RoKTtcbiAgICAgICAgICAgIGVuZFN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZyhpbmRleE9mTGFiZWxJbnB1dCArIGxhYmVsSW5wdXQubGVuZ3RoKTtcblxuICAgICAgICAgICAgZm9ybWF0ID0gc3RhcnRTdHJpbmcgKyBvcGVuVGFnQm9sZCArIG1pZGRsZVN0cmluZyArIGNsb3NlVGFnQm9sZCArIGVuZFN0cmluZztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQb0l0ZW1MaXN0RmlsdGVyTW9kZS5lbmRzV2l0aDpcbiAgICAgICAgICBjb25zdCBsYXN0SW5kZXhPZkxhYmVsSW5wdXQgPSBsYWJlbExvd2VyQ2FzZS5sYXN0SW5kZXhPZihsYWJlbElucHV0KTtcblxuICAgICAgICAgIGlmIChsYXN0SW5kZXhPZkxhYmVsSW5wdXQgPiAtMSkge1xuICAgICAgICAgICAgc3RhcnRTdHJpbmcgPSBzYW5pdGl6ZWRMYWJlbC5zdWJzdHJpbmcoMCwgbGFzdEluZGV4T2ZMYWJlbElucHV0KTtcbiAgICAgICAgICAgIG1pZGRsZVN0cmluZyA9IHNhbml0aXplZExhYmVsLnN1YnN0cmluZyhsYXN0SW5kZXhPZkxhYmVsSW5wdXQpO1xuXG4gICAgICAgICAgICBmb3JtYXQgPSBzdGFydFN0cmluZyArIG9wZW5UYWdCb2xkICsgbWlkZGxlU3RyaW5nICsgY2xvc2VUYWdCb2xkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zYWZlSHRtbChmb3JtYXQpO1xuICB9XG5cbiAgdmFsaWRhdGVGb3JPcHRpb25zTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29tYm9TZXJ2aWNlICYmIHRoaXMuc2VhcmNoVmFsdWUgJiYgIXRoaXMuY29tcGFyZUNhY2hlICYmIHRoaXMuc2hvdWxkTWFya0xldHRlcnM7XG4gIH1cblxuICBzYWZlSHRtbCh2YWx1ZSk6IFNhZmVIdG1sIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZWQuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW5pdGl6ZVRhZ0hUTUwodmFsdWU6IHN0cmluZyA9ICcnKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1xcPC9nbSwgJyZsdDsnKS5yZXBsYWNlKC9cXD4vZywgJyZndDsnKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiIChrZXlkb3duKT1cIm9uQ2hlY2tib3hJdGVtRW1pdCgkZXZlbnQpXCI+XG4gIDxkaXZcbiAgICAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgI2l0ZW1MaXN0XG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VwYXJhdG9yXT1cInNlcGFyYXRvclwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIXZpc2libGVcIlxuICAgIFtjbGFzcy5wby1pdGVtLWxpc3RfX3NlbGVjdGVkXT1cInNlbGVjdGVkICYmICFkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhdmlzaWJsZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fZGFuZ2VyXT1cImRhbmdlclwiXG4gICAgY2xhc3M9XCJwby1pdGVtLWxpc3QgcG8taXRlbS1saXN0X19hY3Rpb25cIlxuICA+XG4gICAgPHBvLWljb24gKm5nSWY9XCJpY29uXCIgY2xhc3M9XCJwby1wb3B1cC1pY29uLWl0ZW0gcG8taWNvblwiIFtwLWljb25dPVwiaWNvblwiPjwvcG8taWNvbj5cbiAgICA8c3BhbiBjbGFzcz1cInBvLWl0ZW0tbGlzdC1sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nU3dpdGNoQ2FzZT1cIidvcHRpb24nXCJcbiAgICAjaXRlbUxpc3RcbiAgICBjbGFzcz1cInBvLWl0ZW0tbGlzdCBwby1pdGVtLWxpc3RfX29wdGlvblwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VwYXJhdG9yXT1cInNlcGFyYXRvclwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VsZWN0ZWRdPVwic2VsZWN0ZWQgJiYgIWRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAoY2xpY2spPVwib25Db21ib0l0ZW0oaXRlbSwgJGV2ZW50KVwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cIiF0ZW1wbGF0ZVwiIGNsYXNzPVwicG8taXRlbS1saXN0LWxhYmVsXCIgW2lubmVySFRNTF09XCJnZXRMYWJlbEZvcm1hdHRlZChsYWJlbClcIj48L3NwYW4+XG5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0ZW1wbGF0ZUNvbnRleHQgfVwiPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrJ1wiXG4gICAgY2xhc3M9XCJwby1pdGVtLWxpc3QgcG8taXRlbS1saXN0X19jaGVja1wiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VwYXJhdG9yXT1cInNlcGFyYXRvclwiXG4gICAgW2NsYXNzLnBvLWl0ZW0tbGlzdF9fc2VsZWN0ZWRdPVwic2VsZWN0ZWQgJiYgIWRpc2FibGVkXCJcbiAgICBbY2xhc3MucG8taXRlbS1saXN0X19kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hJdGVtKClcIlxuICAgIChrZXlkb3duKT1cIm9uQ2hlY2tib3hJdGVtRW1pdCgkZXZlbnQpXCJcbiAgICAoa2V5dXApPVwib25DaGVja2JveEl0ZW1FbWl0KCRldmVudClcIlxuICA+XG4gICAgPHBvLWNoZWNrYm94XG4gICAgICBbcC1kaXNhYmxlZC10YWJpbmRleF09XCJ0cnVlXCJcbiAgICAgIFtwLWNoZWNrYm94VmFsdWVdPVwiY2hlY2tib3hWYWx1ZSA9PT0gbnVsbCA/ICdtaXhlZCcgOiBjaGVja2JveFZhbHVlXCJcbiAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChwLWNoYW5nZSk9XCJvblNlbGVjdEl0ZW0oe2xhYmVsfSlcIlxuICAgID48L3BvLWNoZWNrYm94PlxuXG4gICAgPHNwYW4gY2xhc3M9XCJwby1pdGVtLWxpc3RfX2xhYmVsXCIgKm5nSWY9XCIhdGVtcGxhdGVcIj57eyBsYWJlbCB9fTwvc3Bhbj5cblxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRlbXBsYXRlQ29udGV4dCB9XCI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==