@clr/angular 13.14.4 → 13.16.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 (28) hide show
  1. package/button/button-group/button-group.d.ts +14 -4
  2. package/button/button-group/button.d.ts +4 -5
  3. package/button/providers/button-group-focus-handler.service.d.ts +32 -0
  4. package/button/providers/button-group-focus.enum.d.ts +4 -0
  5. package/clarity.api.md +24 -15
  6. package/data/datagrid/datagrid-column.d.ts +1 -6
  7. package/esm2020/button/button-group/button-group.mjs +56 -14
  8. package/esm2020/button/button-group/button.mjs +16 -15
  9. package/esm2020/button/providers/button-group-focus-handler.service.mjs +96 -0
  10. package/esm2020/button/providers/button-group-focus.enum.mjs +11 -0
  11. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +5 -1
  12. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +3 -1
  13. package/esm2020/data/datagrid/datagrid-column.mjs +16 -27
  14. package/esm2020/forms/combobox/combobox.mjs +5 -5
  15. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +8 -4
  16. package/esm2020/forms/common/abstract-container.mjs +8 -5
  17. package/esm2020/popover/dropdown/dropdown-item.mjs +2 -1
  18. package/esm2020/utils/focus/focus.service.mjs +3 -3
  19. package/esm2020/utils/focus-trap/focus-trap.mjs +1 -8
  20. package/fesm2015/clr-angular.mjs +12177 -12037
  21. package/fesm2015/clr-angular.mjs.map +1 -1
  22. package/fesm2020/clr-angular.mjs +12266 -12127
  23. package/fesm2020/clr-angular.mjs.map +1 -1
  24. package/forms/combobox/providers/combobox-focus-handler.service.d.ts +1 -0
  25. package/forms/common/abstract-container.d.ts +1 -0
  26. package/package.json +1 -1
  27. package/utils/focus/focus.service.d.ts +1 -1
  28. package/utils/focus-trap/focus-trap.d.ts +0 -3
@@ -114,9 +114,7 @@ export class ClrCombobox extends WrappedFormControl {
114
114
  this.optionSelectionService.loading = state === ClrLoadingState.LOADING;
115
115
  this.positionService.realign();
116
116
  if (state !== ClrLoadingState.LOADING && isPlatformBrowser(this.platformId)) {
117
- setTimeout(() => {
118
- this.focusFirstActive();
119
- });
117
+ this.focusFirstActive();
120
118
  }
121
119
  }
122
120
  get disabled() {
@@ -220,7 +218,9 @@ export class ClrCombobox extends WrappedFormControl {
220
218
  }
221
219
  }
222
220
  focusFirstActive() {
223
- this.focusHandler.focusFirstActive();
221
+ setTimeout(() => {
222
+ this.focusHandler.focusFirstActive();
223
+ });
224
224
  }
225
225
  updateInputValue(model) {
226
226
  if (!this.multiSelect) {
@@ -356,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
356
356
  type: Output,
357
357
  args: ['clrSelectionChange']
358
358
  }] } });
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jb21ib2JveC9jb21ib2JveC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbWJvYm94L2NvbWJvYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBRVgsSUFBSSxFQUNKLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFB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QUVDLGFBQWE7c0JBQXJDLE1BQU07dUJBQUMsZUFBZTtnQkFHTyxrQkFBa0I7c0JBQS9DLE1BQU07dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgU2VsZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBPUE9WRVJfSE9TVF9BTkNIT1IgfSBmcm9tICcuLi8uLi9wb3BvdmVyL2NvbW1vbi9wb3BvdmVyLWhvc3QtYW5jaG9yLnRva2VuJztcbmltcG9ydCB7IElGX0FDVElWRV9JRF9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbmRpdGlvbmFsL2lmLWFjdGl2ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleXMgfSBmcm9tICcuLi8uLi91dGlscy9lbnVtcy9rZXlzLmVudW0nO1xuaW1wb3J0IHsgRk9DVVNfU0VSVklDRV9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3V0aWxzL2ZvY3VzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyTG9hZGluZ1N0YXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9hZGluZy9sb2FkaW5nJztcbmltcG9ydCB7IExvYWRpbmdMaXN0ZW5lciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvYWRpbmcvbG9hZGluZy1saXN0ZW5lcic7XG5pbXBvcnQgeyBDbHJBbGlnbm1lbnQgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL2FsaWdubWVudC5lbnVtJztcbmltcG9ydCB7IENsckF4aXMgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL2F4aXMuZW51bSc7XG5pbXBvcnQgeyBDbHJTaWRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9lbnVtcy9zaWRlLmVudW0nO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9pbnRlcmZhY2VzL3BvcG92ZXItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci10b2dnbGUuc2VydmljZSc7XG5pbXBvcnQgeyBDT05UUk9MX1NUQVRFLCBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vaWYtY29udHJvbC1zdGF0ZS9pZi1jb250cm9sLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgV3JhcHBlZEZvcm1Db250cm9sIH0gZnJvbSAnLi4vY29tbW9uL3dyYXBwZWQtY29udHJvbCc7XG5pbXBvcnQgeyBDbHJDb21ib2JveENvbnRhaW5lciB9IGZyb20gJy4vY29tYm9ib3gtY29udGFpbmVyJztcbmltcG9ydCB7IENvbWJvYm94TW9kZWwgfSBmcm9tICcuL21vZGVsL2NvbWJvYm94Lm1vZGVsJztcbmltcG9ydCB7IE11bHRpU2VsZWN0Q29tYm9ib3hNb2RlbCB9IGZyb20gJy4vbW9kZWwvbXVsdGktc2VsZWN0LWNvbWJvYm94Lm1vZGVsJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdENvbWJvYm94TW9kZWwgfSBmcm9tICcuL21vZGVsL3NpbmdsZS1zZWxlY3QtY29tYm9ib3gubW9kZWwnO1xuaW1wb3J0IHsgQ2xyT3B0aW9uU2VsZWN0ZWQgfSBmcm9tICcuL29wdGlvbi1zZWxlY3RlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2xyT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBDb21ib2JveENvbnRhaW5lclNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9jb21ib2JveC1jb250YWluZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9GT0NVU19IQU5ETEVSX1BST1ZJREVSLCBDb21ib2JveEZvY3VzSGFuZGxlciB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbWJvYm94LWZvY3VzLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvb3B0aW9uLXNlbGVjdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFBPUE9WRVJfSE9TVF9BTkNIT1IsIHVzZUV4aXN0aW5nOiBFbGVtZW50UmVmIH0sXG4gICAgT3B0aW9uU2VsZWN0aW9uU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IExvYWRpbmdMaXN0ZW5lciwgdXNlRXhpc3Rpbmc6IENsckNvbWJvYm94IH0sXG4gICAgSUZfQUNUSVZFX0lEX1BST1ZJREVSLFxuICAgIEZPQ1VTX1NFUlZJQ0VfUFJPVklERVIsXG4gICAgQ09NQk9CT1hfRk9DVVNfSEFORExFUl9QUk9WSURFUixcbiAgICBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSxcbiAgICBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSxcbiAgICBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5hcmlhLXJlcXVpcmVkXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1jb21ib2JveF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItY29tYm9ib3gtZGlzYWJsZWRdJzogJ2NvbnRyb2w/LmRpc2FibGVkJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQ29tYm9ib3g8VD5cbiAgZXh0ZW5kcyBXcmFwcGVkRm9ybUNvbnRyb2w8Q2xyQ29tYm9ib3hDb250YWluZXI+XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIExvYWRpbmdMaXN0ZW5lciwgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBAVmlld0NoaWxkKCd0ZXh0Ym94SW5wdXQnKSB0ZXh0Ym94OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd0cmlnZ2VyJykgdHJpZ2dlcjogRWxlbWVudFJlZjtcbiAgQENvbnRlbnRDaGlsZChDbHJPcHRpb25TZWxlY3RlZCkgb3B0aW9uU2VsZWN0ZWQ6IENsck9wdGlvblNlbGVjdGVkPFQ+O1xuICBAQ29udGVudENoaWxkKENsck9wdGlvbnMpIHByaXZhdGUgb3B0aW9uczogQ2xyT3B0aW9uczxUPjtcblxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChtb2RlbDogVCB8IFRbXSkgPT4gYW55O1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbmRleCA9IDE7XG5cbiAgaW52YWxpZCA9IGZhbHNlO1xuICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBAU2VsZigpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwdWJsaWMgY29udHJvbDogTmdDb250cm9sLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbDogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgb3B0aW9uU2VsZWN0aW9uU2VydmljZTogT3B0aW9uU2VsZWN0aW9uU2VydmljZTxUPixcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2dnbGVTZXJ2aWNlOiBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSxcbiAgICBwcml2YXRlIHBvc2l0aW9uU2VydmljZTogQ2xyUG9wb3ZlclBvc2l0aW9uU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xTdGF0ZVNlcnZpY2U6IElmQ29udHJvbFN0YXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRhaW5lclNlcnZpY2U6IENvbWJvYm94Q29udGFpbmVyU2VydmljZSxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBwcml2YXRlIGZvY3VzSGFuZGxlcjogQ29tYm9ib3hGb2N1c0hhbmRsZXI8VD4sXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKHZjciwgQ2xyQ29tYm9ib3hDb250YWluZXIsIGluamVjdG9yLCBjb250cm9sLCByZW5kZXJlciwgZWwpO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBjb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgICAvLyBkZWZhdWx0IHRvIFNpbmdsZVNlbGVjdENvbWJvYm94TW9kZWwsIGluIGNhc2UgdGhlIG9wdGlvbmFsIGlucHV0IFtDbHJNdWx0aV0gaXNuJ3QgdXNlZFxuICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTaW5nbGVTZWxlY3RDb21ib2JveE1vZGVsPFQ+KCk7XG4gICAgdGhpcy51cGRhdGVDb250cm9sVmFsdWUoKTtcbiAgfVxuXG4gIGZvY3VzZWRQaWxsOiBhbnk7XG5cbiAgLy8gT3ZlcnJpZGUgdGhlIGlkIG9mIFdyYXBwZWRGb3JtQ29udHJvbCwgYXMgd2Ugd2FudCB0byBtb3ZlIGl0IHRvIHRoZSBlbWJlZGRlZCBpbnB1dC5cbiAgLy8gT3RoZXJ3aXNlIHRoZSBsYWJlbC9jb21wb25lbnQgY29ubmVjdGlvbiBkb2VzIG5vdCB3b3JrIGFuZCBzY3JlZW4gcmVhZGVycyBkbyBub3QgcmVhZCB0aGUgbGFiZWwuXG4gIG92ZXJyaWRlIGdldCBpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkICsgJy1jb21ib2JveCc7XG4gIH1cblxuICBvdmVycmlkZSBzZXQgaWQoaWQ6IHN0cmluZykge1xuICAgIHN1cGVyLmlkID0gaWQ7XG4gIH1cblxuICBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbElkU2VydmljZS5pZDtcbiAgfVxuXG4gIGdldCBvcGVuU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9nZ2xlU2VydmljZS5vcGVuO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VhcmNoVGV4dCA9ICcnO1xuXG4gIHNldCBzZWFyY2hUZXh0KHRleHQ6IHN0cmluZykge1xuICAgIC8vIGlmIGlucHV0IHRleHQgaGFzIGNoYW5nZWQgc2luY2UgbGFzdCB0aW1lLCBmaXJlIGEgY2hhbmdlIGV2ZW50IHNvIGFwcGxpY2F0aW9uIGNhbiByZWFjdCB0byBpdFxuICAgIGlmICh0ZXh0ICE9PSB0aGlzLl9zZWFyY2hUZXh0KSB7XG4gICAgICB0aGlzLl9zZWFyY2hUZXh0ID0gdGV4dDtcbiAgICAgIHRoaXMuY2xySW5wdXRDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaFRleHQpO1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmN1cnJlbnRJbnB1dCA9IHRoaXMuc2VhcmNoVGV4dDtcbiAgICB9XG4gIH1cblxuICBnZXQgc2VhcmNoVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hUZXh0O1xuICB9XG5cbiAgZ2V0IG11bHRpU2VsZWN0TW9kZWwoKTogVFtdIHtcbiAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIHRocm93IEVycm9yKCdtdWx0aVNlbGVjdE1vZGVsIGlzIG5vdCBhdmFpbGFibGUgaW4gc2luZ2xlIHNlbGVjdGlvbiBjb250ZXh0Jyk7XG4gICAgfVxuICAgIHJldHVybiAodGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsIGFzIE11bHRpU2VsZWN0Q29tYm9ib3hNb2RlbDxUPikubW9kZWw7XG4gIH1cblxuICBzbWFydFBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24gPSB7XG4gICAgYXhpczogQ2xyQXhpcy5WRVJUSUNBTCxcbiAgICBzaWRlOiBDbHJTaWRlLkFGVEVSLFxuICAgIGFuY2hvcjogQ2xyQWxpZ25tZW50LlNUQVJULFxuICAgIGNvbnRlbnQ6IENsckFsaWdubWVudC5TVEFSVCxcbiAgfTtcblxuICBsb2FkaW5nU3RhdGVDaGFuZ2Uoc3RhdGU6IENsckxvYWRpbmdTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5sb2FkaW5nID0gc3RhdGUgPT09IENsckxvYWRpbmdTdGF0ZS5MT0FESU5HO1xuICAgIHRoaXMucG9zaXRpb25TZXJ2aWNlLnJlYWxpZ24oKTtcbiAgICBpZiAoc3RhdGUgIT09IENsckxvYWRpbmdTdGF0ZS5MT0FESU5HICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzRmlyc3RBY3RpdmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLmRpc2FibGVkO1xuICB9XG5cbiAgdW5zZWxlY3QoaXRlbTogVCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnVuc2VsZWN0KGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgncGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBJbnB1dCgnY2xyTXVsdGknKVxuICBzZXQgbXVsdGlTZWxlY3QodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBNdWx0aVNlbGVjdENvbWJvYm94TW9kZWw8VD4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaW4gdGhlb3J5LCBzZXR0aW5nIHRoaXMgYWdhaW4gc2hvdWxkIG5vdCBjYXVzZSBlcnJvcnMgZXZlbiB0aG91Z2ggd2UgYWxyZWFkeSBzZXQgaXQgaW4gY29uc3RydWN0b3IsXG4gICAgICAvLyBzaW5jZSB0aGUgaW5pdGlhbCBjYWxsIHRvIHdyaXRlVmFsdWUgKGNhdXNlZCBieSBbbmdNb2RlbF0gaW5wdXQpIHNob3VsZCBoYXBwZW4gYWZ0ZXIgdGhpc1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsID0gbmV3IFNpbmdsZVNlbGVjdENvbWJvYm94TW9kZWw8VD4oKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVDb250cm9sVmFsdWUoKTtcbiAgfVxuXG4gIGdldCBtdWx0aVNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZTtcbiAgfVxuXG4gIGdldCBhcmlhQ29udHJvbHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5vcHRpb25zSWQ7XG4gIH1cblxuICBnZXQgYXJpYU93bnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5vcHRpb25zSWQ7XG4gIH1cblxuICBnZXQgYXJpYURlc2NyaWJlZEJ5U2VsZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdzZWxlY3Rpb24tJyArIHRoaXMuaWQ7XG4gIH1cblxuICBnZXQgZGlzcGxheUZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5kaXNwbGF5RmllbGQ7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbC51cGRhdGVPbiA9PT0gJ2JsdXInKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9uQXJpYUxhYmVsKCkge1xuICAgIGlmICh0aGlzLmNvbnRhaW5lclNlcnZpY2UgJiYgdGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsVGV4dCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuY29udGFpbmVyU2VydmljZS5sYWJlbFRleHR9ICR7dGhpcy5jb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hTZWxlY3Rpb259YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmNvbWJvYm94U2VsZWN0aW9uO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBpZiBCQUNLU1BBQ0UgaW4gbXVsdGlzZWxlY3QgbW9kZSwgZGVsZXRlIHRoZSBsYXN0IHBpbGwgaWYgdGV4dCBpcyBlbXB0eVxuICAgIGlmIChldmVudC5rZXkgPT09IEtleXMuQmFja3NwYWNlICYmIHRoaXMubXVsdGlTZWxlY3QgJiYgdGhpcy5fc2VhcmNoVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IG11bHRpTW9kZWw6IFRbXSA9IHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbCBhcyBUW107XG4gICAgICBpZiAobXVsdGlNb2RlbCAmJiBtdWx0aU1vZGVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbGFzdEl0ZW06IFQgPSBtdWx0aU1vZGVsW211bHRpTW9kZWwubGVuZ3RoIC0gMV07XG4gICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnVuc2VsZWN0KGxhc3RJdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCdjbHJJbnB1dENoYW5nZScpIGNscklucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPihmYWxzZSk7XG5cbiAgQE91dHB1dCgnY2xyT3BlbkNoYW5nZScpIGNsck9wZW5DaGFuZ2U6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZTtcblxuICAvLyBUaGlzIG91dHB1dCBzaG91bGQgYmUgdXNlZCB0byBzZXQgdXAgYSBsaXZlIHJlZ2lvbiB1c2luZyBhcmlhLWxpdmUgYW5kIHBvcHVsYXRlIGl0IHdpdGggdXBkYXRlcyB0aGF0IHJlZmxlY3QgZWFjaCBjb21ib2JveCBjaGFuZ2VcbiAgQE91dHB1dCgnY2xyU2VsZWN0aW9uQ2hhbmdlJykgY2xyU2VsZWN0aW9uQ2hhbmdlOiBPYnNlcnZhYmxlPENvbWJvYm94TW9kZWw8VD4+ID1cbiAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uQ2hhbmdlZDtcblxuICBwcml2YXRlIGluaXRpYWxpemVTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKChuZXdTZWxlY3Rpb246IENvbWJvYm94TW9kZWw8VD4pID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKG5ld1NlbGVjdGlvbik7XG4gICAgICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICAgICAgdGhpcy5wb3NpdGlvblNlcnZpY2UucmVhbGlnbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCAmJiBuZXdTZWxlY3Rpb24gJiYgIW5ld1NlbGVjdGlvbi5pc0VtcHR5KCkpIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlQ29udHJvbFZhbHVlKCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShvcGVuID0+IHtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICB0aGlzLmZvY3VzRmlyc3RBY3RpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuZ2V0RGlzcGxheU5hbWVzKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbClbMF0gfHwgJyc7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLnBvcG92ZXJBbGlnbmVkLnN1YnNjcmliZShwb3BvdmVyTm9kZSA9PiB7XG4gICAgICAgIC8vIFdoZW4gdXNlZCBvdXRzaWRlIGEgY29tYm9ib3ggY29udGFpbmVyXG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvcG92ZXI6IEhUTUxFbGVtZW50ID0gcG9wb3Zlck5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiBpZiBwb3BvdmVyIGhpZGVzIHRoZSBsYWJlbFxuICAgICAgICBpZiAocG9wb3Zlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwb3BvdmVyTm9kZSwgJ3RvcCcsIGAke3BvcG92ZXIub2Zmc2V0VG9wICsgdGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsT2Zmc2V0fXB4YCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2xTdGF0ZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLmNvbnRyb2xTdGF0ZVNlcnZpY2Uuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoaW52YWxpZCA9PiB7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkID0gaW52YWxpZCA9PT0gQ09OVFJPTF9TVEFURS5JTlZBTElEO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0ZpcnN0QWN0aXZlKCkge1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLmZvY3VzRmlyc3RBY3RpdmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5wdXRWYWx1ZShtb2RlbDogQ29tYm9ib3hNb2RlbDxUPikge1xuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdGhpcy5zZWFyY2hUZXh0ID0gbW9kZWwubW9kZWwgPyB0aGlzLmdldERpc3BsYXlOYW1lcyhtb2RlbC5tb2RlbClbMF0gOiAnJztcbiAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQpIHtcbiAgICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmN1cnJlbnRJbnB1dCA9IHRoaXMuc2VhcmNoVGV4dDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRyb2xWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5vbkNoYW5nZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsKTtcbiAgICB9XG4gIH1cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbiBtZXRob2RzXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBUW10pOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgZ2V0QWN0aXZlRGVzY2VuZGFudCgpIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZm9jdXNIYW5kbGVyLnBzZXVkb0ZvY3VzLm1vZGVsO1xuICAgIHJldHVybiBtb2RlbCA/IG1vZGVsLmlkIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IGFueTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfVxuXG4gIGZvY3VzSW5wdXQoKSB7XG4gICAgdGhpcy5mb2N1c0hhbmRsZXIuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNwbGF5TmFtZXMobW9kZWw6IFQgfCBUW10pIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5RmllbGQpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShtb2RlbCkpIHtcbiAgICAgICAgbW9kZWwgPSBbbW9kZWxdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1vZGVsLm1hcChpdGVtID0+IChpdGVtID8gKGl0ZW0gYXMgYW55KVt0aGlzLmRpc3BsYXlGaWVsZF0gOiBudWxsKSk7XG4gICAgfVxuICAgIHJldHVybiBbdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsXTtcbiAgfVxuXG4gIC8vIExpZmVjeWNsZSBtZXRob2RzXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVTdWJzY3JpcHRpb25zKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggcHJlc2VsZWN0ZWQgdmFsdWVcbiAgICBpZiAoIXRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcbiAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZSh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci5jb21wb25lbnRDZFJlZiA9IHRoaXMuY2RyO1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLnRleHRJbnB1dCA9IHRoaXMudGV4dGJveC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLnRyaWdnZXIgPSB0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudDtcbiAgICAvLyBUaGUgdGV4dCBpbnB1dCBpcyB0aGUgYWN0dWFsIGVsZW1lbnQgd2UgYXJlIHdyYXBwaW5nXG4gICAgLy8gVGhpcyBhc3NpZ25tZW50IGlzIG5lZWRlZCBieSB0aGUgd3JhcHBlciwgc28gaXQgY2FuIHNldFxuICAgIC8vIHRoZSBhcmlhIHByb3BlcnRpZXMgb24gdGhlIGlucHV0IGVsZW1lbnQsIG5vdCBvbiB0aGUgY29tcG9uZW50LlxuICAgIHRoaXMuZWwgPSB0aGlzLnRleHRib3g7XG4gIH1cbn1cbiIsIjwhLS1cbiogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4qIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4qIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbi0tPlxuXG48IS0tIFRoZSAoY2xpY2spIGhhbmRsZXIgaXMgbmVlZGVkIHRvIGF1dG8tZm9jdXMgb24gaW5wdXQgZmllbGQgd2hpY2ggY2FuIG5vdCBjdXJyZW50bHkgb2NjdXB5IHRoZSB3aG9sZVxuICAgICB3aWR0aCBvZiB0aGUgY29tcG9uZW50LCBhZnRlciBiZWluZyB3cmFwcGVkIHRvIGEgbmV3IGxpbmUgLS0+XG48ZGl2XG4gIGNsYXNzPVwiY2xyLWNvbWJvYm94LXdyYXBwZXJcIlxuICBjbHJQb3BvdmVyQW5jaG9yXG4gIChjbGljayk9XCJmb2N1c0lucHV0KClcIlxuICBbY2xhc3MubXVsdGldPVwibXVsdGlTZWxlY3RcIlxuICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCJcbj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIm11bHRpU2VsZWN0ICYmIG9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWxcIlxuICAgIHJvbGU9XCJncmlkXCJcbiAgICBjbHJSb3ZpbmdUYWJpbmRleFxuICAgIFtjbHJSb3ZpbmdUYWJpbmRleERpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkXCJcbiAgICBjbHJEaXJlY3Rpb249XCJib3RoXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldFNlbGVjdGlvbkFyaWFMYWJlbCgpXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkPyB0cnVlOiBudWxsXCJcbiAgPlxuICAgIDxzcGFuICpuZ0Zvcj1cImxldCBpdGVtIG9mIG11bHRpU2VsZWN0TW9kZWw7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImxhYmVsIGxhYmVsLWNvbWJvYm94LXBpbGxcIiByb2xlPVwicm93XCI+XG4gICAgICA8c3BhbiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjbHItY29tYm9ib3gtcGlsbC1jb250ZW50XCIgY2xyS2V5Rm9jdXNJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uU2VsZWN0ZWRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uU2VsZWN0ZWQudGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IG9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWxbaV19XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIHJvbGU9XCJncmlkY2VsbFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xyS2V5Rm9jdXNJdGVtXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjbHItY29tYm9ib3gtcmVtb3ZlLWJ0blwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkPyB0cnVlOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbW1vblN0cmluZ3Mua2V5cy5jb21ib2JveERlbGV0ZSArICcgJyArIG9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwudG9TdHJpbmcoZGlzcGxheUZpZWxkLCBpKVwiXG4gICAgICAgICAgKGNsaWNrKT1cInVuc2VsZWN0KGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cIndpbmRvdy1jbG9zZVwiIHNpemU9XCIxMlwiPjwvY2RzLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuIGNsYXNzPVwiY2xyLWNvbWJvYm94LWlucHV0LXdyYXBwZXJcIj5cbiAgICA8aW5wdXRcbiAgICAgICN0ZXh0Ym94SW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICBbaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgIGNsYXNzPVwiY2xyLWlucHV0IGNsci1jb21ib2JveC1pbnB1dFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5TdGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLW93bnNdPVwiYXJpYU93bnNcIlxuICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiY29udHJvbD8uaW52YWxpZD8gdHJ1ZTogbnVsbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiY29udHJvbD8uZGlzYWJsZWQ/IHRydWU6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImdldEFjdGl2ZURlc2NlbmRhbnQoKVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgPC9zcGFuPlxuXG4gIDwhLS0gTm8gY2xpY2sgaGFuZGxlciwgYXMgaXQgdXNlcyB0aGUgaGFuZGxlciBvbiB0aGUgLmNsci1jb21ib2JveC13cmFwcGVyIC0tPlxuICA8YnV0dG9uXG4gICAgY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvblxuICAgICN0cmlnZ2VyXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJjbHItY29tYm9ib3gtdHJpZ2dlclwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmNvbWJvYm94T3BlblwiXG4gID5cbiAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cImRvd25cIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8ZGl2IGNsYXNzPVwiY2xyLWZvY3VzLWluZGljYXRvclwiIFtjbGFzcy5jbHItZm9jdXNdPVwiZm9jdXNlZFwiPjwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQm90aCBjbG9zZSBoYW5kbGVycyBhcmUgaGFuZGxlZCBtYW51YWxseSBkdWUgdG8gaXNzdWVzIGluIEVkZ2UgYnJvd3Nlci5cbiAgICAgQWRkaXRpb25hbGx5ICdvdXRzaWRlQ2xpY2tUb0Nsb3NlJyBoYXMgY29tcGxleCBoYW5kbGluZyB0aGF0J3MgbmVjZXNzYXJ5XG4gICAgIHRvIGJlIG1hbnVhbCBkdWUgdG8gdGhlIGNvbXBvbmVudCBhcmNoaXRlY3R1cmUgLS0+XG48ZGl2IHJvbGU9XCJkaWFsb2dcIiAqY2xyUG9wb3ZlckNvbnRlbnQ9XCJvcGVuU3RhdGUgYXQgc21hcnRQb3NpdGlvbjsgb3V0c2lkZUNsaWNrVG9DbG9zZTogZmFsc2U7IHNjcm9sbFRvQ2xvc2U6IGZhbHNlXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jb21ib2JveC9jb21ib2JveC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbWJvYm94L2NvbWJvYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBRVgsSUFBSSxFQUNKLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFB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RUMsYUFBYTtzQkFBckMsTUFBTTt1QkFBQyxlQUFlO2dCQUdPLGtCQUFrQjtzQkFBL0MsTUFBTTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUE9QT1ZFUl9IT1NUX0FOQ0hPUiB9IGZyb20gJy4uLy4uL3BvcG92ZXIvY29tbW9uL3BvcG92ZXItaG9zdC1hbmNob3IudG9rZW4nO1xuaW1wb3J0IHsgSUZfQUNUSVZFX0lEX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uZGl0aW9uYWwvaWYtYWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5cyB9IGZyb20gJy4uLy4uL3V0aWxzL2VudW1zL2tleXMuZW51bSc7XG5pbXBvcnQgeyBGT0NVU19TRVJWSUNFX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMvZm9jdXMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJMb2FkaW5nU3RhdGUgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkaW5nL2xvYWRpbmcnO1xuaW1wb3J0IHsgTG9hZGluZ0xpc3RlbmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9hZGluZy9sb2FkaW5nLWxpc3RlbmVyJztcbmltcG9ydCB7IENsckFsaWdubWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYWxpZ25tZW50LmVudW0nO1xuaW1wb3J0IHsgQ2xyQXhpcyB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYXhpcy5lbnVtJztcbmltcG9ydCB7IENsclNpZGUgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL3NpZGUuZW51bSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlckV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXBvc2l0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXRvZ2dsZS5zZXJ2aWNlJztcbmltcG9ydCB7IENPTlRST0xfU1RBVEUsIElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9pZi1jb250cm9sLXN0YXRlL2lmLWNvbnRyb2wtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBXcmFwcGVkRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9jb21tb24vd3JhcHBlZC1jb250cm9sJztcbmltcG9ydCB7IENsckNvbWJvYm94Q29udGFpbmVyIH0gZnJvbSAnLi9jb21ib2JveC1jb250YWluZXInO1xuaW1wb3J0IHsgQ29tYm9ib3hNb2RlbCB9IGZyb20gJy4vbW9kZWwvY29tYm9ib3gubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsIH0gZnJvbSAnLi9tb2RlbC9tdWx0aS1zZWxlY3QtY29tYm9ib3gubW9kZWwnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbCB9IGZyb20gJy4vbW9kZWwvc2luZ2xlLXNlbGVjdC1jb21ib2JveC5tb2RlbCc7XG5pbXBvcnQgeyBDbHJPcHRpb25TZWxlY3RlZCB9IGZyb20gJy4vb3B0aW9uLXNlbGVjdGVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbHJPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IENvbWJvYm94Q29udGFpbmVyU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbWJvYm94LWNvbnRhaW5lci5zZXJ2aWNlJztcbmltcG9ydCB7IENPTUJPQk9YX0ZPQ1VTX0hBTkRMRVJfUFJPVklERVIsIENvbWJvYm94Rm9jdXNIYW5kbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvY29tYm9ib3gtZm9jdXMtaGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvblNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9vcHRpb24tc2VsZWN0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItY29tYm9ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3guaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogUE9QT1ZFUl9IT1NUX0FOQ0hPUiwgdXNlRXhpc3Rpbmc6IEVsZW1lbnRSZWYgfSxcbiAgICBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogTG9hZGluZ0xpc3RlbmVyLCB1c2VFeGlzdGluZzogQ2xyQ29tYm9ib3ggfSxcbiAgICBJRl9BQ1RJVkVfSURfUFJPVklERVIsXG4gICAgRk9DVVNfU0VSVklDRV9QUk9WSURFUixcbiAgICBDT01CT0JPWF9GT0NVU19IQU5ETEVSX1BST1ZJREVSLFxuICAgIENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIENsclBvcG92ZXJFdmVudHNTZXJ2aWNlLFxuICAgIENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFyaWEtcmVxdWlyZWRdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuY2xyLWNvbWJvYm94XSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1jb21ib2JveC1kaXNhYmxlZF0nOiAnY29udHJvbD8uZGlzYWJsZWQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDb21ib2JveDxUPlxuICBleHRlbmRzIFdyYXBwZWRGb3JtQ29udHJvbDxDbHJDb21ib2JveENvbnRhaW5lcj5cbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTG9hZGluZ0xpc3RlbmVyLCBBZnRlckNvbnRlbnRJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ3RleHRib3hJbnB1dCcpIHRleHRib3g6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInKSB0cmlnZ2VyOiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkKENsck9wdGlvblNlbGVjdGVkKSBvcHRpb25TZWxlY3RlZDogQ2xyT3B0aW9uU2VsZWN0ZWQ8VD47XG4gIEBDb250ZW50Q2hpbGQoQ2xyT3B0aW9ucykgcHJpdmF0ZSBvcHRpb25zOiBDbHJPcHRpb25zPFQ+O1xuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKG1vZGVsOiBUIHwgVFtdKSA9PiBhbnk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluZGV4ID0gMTtcblxuICBpbnZhbGlkID0gZmFsc2U7XG4gIGZvY3VzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBTZWxmKClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHB1YmxpYyBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlOiBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHRvZ2dsZVNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9zaXRpb25TZXJ2aWNlOiBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbFN0YXRlU2VydmljZTogSWZDb250cm9sU3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udGFpbmVyU2VydmljZTogQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgIHByaXZhdGUgZm9jdXNIYW5kbGVyOiBDb21ib2JveEZvY3VzSGFuZGxlcjxUPixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIodmNyLCBDbHJDb21ib2JveENvbnRhaW5lciwgaW5qZWN0b3IsIGNvbnRyb2wsIHJlbmRlcmVyLCBlbCk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIC8vIGRlZmF1bHQgdG8gU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbCwgaW4gY2FzZSB0aGUgb3B0aW9uYWwgaW5wdXQgW0Nsck11bHRpXSBpc24ndCB1c2VkXG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsID0gbmV3IFNpbmdsZVNlbGVjdENvbWJvYm94TW9kZWw8VD4oKTtcbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICB9XG5cbiAgZm9jdXNlZFBpbGw6IGFueTtcblxuICAvLyBPdmVycmlkZSB0aGUgaWQgb2YgV3JhcHBlZEZvcm1Db250cm9sLCBhcyB3ZSB3YW50IHRvIG1vdmUgaXQgdG8gdGhlIGVtYmVkZGVkIGlucHV0LlxuICAvLyBPdGhlcndpc2UgdGhlIGxhYmVsL2NvbXBvbmVudCBjb25uZWN0aW9uIGRvZXMgbm90IHdvcmsgYW5kIHNjcmVlbiByZWFkZXJzIGRvIG5vdCByZWFkIHRoZSBsYWJlbC5cbiAgb3ZlcnJpZGUgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQgKyAnLWNvbWJvYm94JztcbiAgfVxuXG4gIG92ZXJyaWRlIHNldCBpZChpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIuaWQgPSBpZDtcbiAgfVxuXG4gIGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkO1xuICB9XG5cbiAgZ2V0IG9wZW5TdGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW47XG4gIH1cblxuICBwcml2YXRlIF9zZWFyY2hUZXh0ID0gJyc7XG5cbiAgc2V0IHNlYXJjaFRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgLy8gaWYgaW5wdXQgdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSBsYXN0IHRpbWUsIGZpcmUgYSBjaGFuZ2UgZXZlbnQgc28gYXBwbGljYXRpb24gY2FuIHJlYWN0IHRvIGl0XG4gICAgaWYgKHRleHQgIT09IHRoaXMuX3NlYXJjaFRleHQpIHtcbiAgICAgIHRoaXMuX3NlYXJjaFRleHQgPSB0ZXh0O1xuICAgICAgdGhpcy5jbHJJbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoVGV4dCk7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UuY3VycmVudElucHV0ID0gdGhpcy5zZWFyY2hUZXh0O1xuICAgIH1cbiAgfVxuXG4gIGdldCBzZWFyY2hUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFRleHQ7XG4gIH1cblxuICBnZXQgbXVsdGlTZWxlY3RNb2RlbCgpOiBUW10ge1xuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ211bHRpU2VsZWN0TW9kZWwgaXMgbm90IGF2YWlsYWJsZSBpbiBzaW5nbGUgc2VsZWN0aW9uIGNvbnRleHQnKTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwgYXMgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsPFQ+KS5tb2RlbDtcbiAgfVxuXG4gIHNtYXJ0UG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbiA9IHtcbiAgICBheGlzOiBDbHJBeGlzLlZFUlRJQ0FMLFxuICAgIHNpZGU6IENsclNpZGUuQUZURVIsXG4gICAgYW5jaG9yOiBDbHJBbGlnbm1lbnQuU1RBUlQsXG4gICAgY29udGVudDogQ2xyQWxpZ25tZW50LlNUQVJULFxuICB9O1xuXG4gIGxvYWRpbmdTdGF0ZUNoYW5nZShzdGF0ZTogQ2xyTG9hZGluZ1N0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmxvYWRpbmcgPSBzdGF0ZSA9PT0gQ2xyTG9hZGluZ1N0YXRlLkxPQURJTkc7XG4gICAgdGhpcy5wb3NpdGlvblNlcnZpY2UucmVhbGlnbigpO1xuICAgIGlmIChzdGF0ZSAhPT0gQ2xyTG9hZGluZ1N0YXRlLkxPQURJTkcgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wuZGlzYWJsZWQ7XG4gIH1cblxuICB1bnNlbGVjdChpdGVtOiBUKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UudW5zZWxlY3QoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdwbGFjZWhvbGRlcicpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KCdjbHJNdWx0aScpXG4gIHNldCBtdWx0aVNlbGVjdCh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsID0gbmV3IE11bHRpU2VsZWN0Q29tYm9ib3hNb2RlbDxUPigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbiB0aGVvcnksIHNldHRpbmcgdGhpcyBhZ2FpbiBzaG91bGQgbm90IGNhdXNlIGVycm9ycyBldmVuIHRob3VnaCB3ZSBhbHJlYWR5IHNldCBpdCBpbiBjb25zdHJ1Y3RvcixcbiAgICAgIC8vIHNpbmNlIHRoZSBpbml0aWFsIGNhbGwgdG8gd3JpdGVWYWx1ZSAoY2F1c2VkIGJ5IFtuZ01vZGVsXSBpbnB1dCkgc2hvdWxkIGhhcHBlbiBhZnRlciB0aGlzXG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbDxUPigpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IG11bHRpU2VsZWN0KCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlO1xuICB9XG5cbiAgZ2V0IGFyaWFDb250cm9scygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/Lm9wdGlvbnNJZDtcbiAgfVxuXG4gIGdldCBhcmlhT3ducygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/Lm9wdGlvbnNJZDtcbiAgfVxuXG4gIGdldCBhcmlhRGVzY3JpYmVkQnlTZWxlY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3NlbGVjdGlvbi0nICsgdGhpcy5pZDtcbiAgfVxuXG4gIGdldCBkaXNwbGF5RmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmRpc3BsYXlGaWVsZDtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sLnVwZGF0ZU9uID09PSAnYmx1cicpIHtcbiAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gIH1cblxuICBnZXRTZWxlY3Rpb25BcmlhTGFiZWwoKSB7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyU2VydmljZSAmJiB0aGlzLmNvbnRhaW5lclNlcnZpY2UubGFiZWxUZXh0KSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsVGV4dH0gJHt0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jb21ib2JveFNlbGVjdGlvbn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hTZWxlY3Rpb247XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIGlmIEJBQ0tTUEFDRSBpbiBtdWx0aXNlbGVjdCBtb2RlLCBkZWxldGUgdGhlIGxhc3QgcGlsbCBpZiB0ZXh0IGlzIGVtcHR5XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gS2V5cy5CYWNrc3BhY2UgJiYgdGhpcy5tdWx0aVNlbGVjdCAmJiB0aGlzLl9zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgbXVsdGlNb2RlbDogVFtdID0gdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsIGFzIFRbXTtcbiAgICAgIGlmIChtdWx0aU1vZGVsICYmIG11bHRpTW9kZWwubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBsYXN0SXRlbTogVCA9IG11bHRpTW9kZWxbbXVsdGlNb2RlbC5sZW5ndGggLSAxXTtcbiAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UudW5zZWxlY3QobGFzdEl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoJ2NscklucHV0Q2hhbmdlJykgY2xySW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KGZhbHNlKTtcblxuICBAT3V0cHV0KCdjbHJPcGVuQ2hhbmdlJykgY2xyT3BlbkNoYW5nZTogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlO1xuXG4gIC8vIFRoaXMgb3V0cHV0IHNob3VsZCBiZSB1c2VkIHRvIHNldCB1cCBhIGxpdmUgcmVnaW9uIHVzaW5nIGFyaWEtbGl2ZSBhbmQgcG9wdWxhdGUgaXQgd2l0aCB1cGRhdGVzIHRoYXQgcmVmbGVjdCBlYWNoIGNvbWJvYm94IGNoYW5nZVxuICBAT3V0cHV0KCdjbHJTZWxlY3Rpb25DaGFuZ2UnKSBjbHJTZWxlY3Rpb25DaGFuZ2U6IE9ic2VydmFibGU8Q29tYm9ib3hNb2RlbDxUPj4gPVxuICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25DaGFuZ2VkO1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoKG5ld1NlbGVjdGlvbjogQ29tYm9ib3hNb2RlbDxUPikgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUobmV3U2VsZWN0aW9uKTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgICAgICB0aGlzLnBvc2l0aW9uU2VydmljZS5yZWFsaWduKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm11bHRpU2VsZWN0ICYmIG5ld1NlbGVjdGlvbiAmJiAhbmV3U2VsZWN0aW9uLmlzRW1wdHkoKSkge1xuICAgICAgICAgIHRoaXMudG9nZ2xlU2VydmljZS5vcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVDb250cm9sVmFsdWUoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKG9wZW4gPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgIHRoaXMuZm9jdXNGaXJzdEFjdGl2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0ID0gdGhpcy5nZXREaXNwbGF5TmFtZXModGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsKVswXSB8fCAnJztcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnRvZ2dsZVNlcnZpY2UucG9wb3ZlckFsaWduZWQuc3Vic2NyaWJlKHBvcG92ZXJOb2RlID0+IHtcbiAgICAgICAgLy8gV2hlbiB1c2VkIG91dHNpZGUgYSBjb21ib2JveCBjb250YWluZXJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lclNlcnZpY2UpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9wb3ZlcjogSFRNTEVsZW1lbnQgPSBwb3BvdmVyTm9kZSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgLy8gVXBkYXRlIHBvc2l0aW9uIGlmIHBvcG92ZXIgaGlkZXMgdGhlIGxhYmVsXG4gICAgICAgIGlmIChwb3BvdmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCA8IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ApIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBvcG92ZXJOb2RlLCAndG9wJywgYCR7cG9wb3Zlci5vZmZzZXRUb3AgKyB0aGlzLmNvbnRhaW5lclNlcnZpY2UubGFiZWxPZmZzZXR9cHhgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbFN0YXRlU2VydmljZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIHRoaXMuY29udHJvbFN0YXRlU2VydmljZS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShpbnZhbGlkID0+IHtcbiAgICAgICAgICB0aGlzLmludmFsaWQgPSBpbnZhbGlkID09PSBDT05UUk9MX1NUQVRFLklOVkFMSUQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzRmlyc3RBY3RpdmUoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzSGFuZGxlci5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUlucHV0VmFsdWUobW9kZWw6IENvbWJvYm94TW9kZWw8VD4pIHtcbiAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IG1vZGVsLm1vZGVsID8gdGhpcy5nZXREaXNwbGF5TmFtZXMobW9kZWwubW9kZWwpWzBdIDogJyc7XG4gICAgICBpZiAodGhpcy5zZWFyY2hUZXh0KSB7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5jdXJyZW50SW5wdXQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMub25DaGFuZ2VDYWxsYmFjaykge1xuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24gbWV0aG9kc1xuICB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgVFtdKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIGdldEFjdGl2ZURlc2NlbmRhbnQoKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmZvY3VzSGFuZGxlci5wc2V1ZG9Gb2N1cy5tb2RlbDtcbiAgICByZXR1cm4gbW9kZWwgPyBtb2RlbC5pZCA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiBhbnk7XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAvLyBkbyBub3RoaW5nXG4gIH1cblxuICBmb2N1c0lucHV0KCkge1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLmZvY3VzSW5wdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzcGxheU5hbWVzKG1vZGVsOiBUIHwgVFtdKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUZpZWxkKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZWwpKSB7XG4gICAgICAgIG1vZGVsID0gW21vZGVsXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbC5tYXAoaXRlbSA9PiAoaXRlbSA/IChpdGVtIGFzIGFueSlbdGhpcy5kaXNwbGF5RmllbGRdIDogbnVsbCkpO1xuICAgIH1cbiAgICByZXR1cm4gW3RoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbF07XG4gIH1cblxuICAvLyBMaWZlY3ljbGUgbWV0aG9kc1xuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB3aXRoIHByZXNlbGVjdGVkIHZhbHVlXG4gICAgaWYgKCF0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5mb2N1c0hhbmRsZXIuY29tcG9uZW50Q2RSZWYgPSB0aGlzLmNkcjtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci50ZXh0SW5wdXQgPSB0aGlzLnRleHRib3gubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci50cmlnZ2VyID0gdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgLy8gVGhlIHRleHQgaW5wdXQgaXMgdGhlIGFjdHVhbCBlbGVtZW50IHdlIGFyZSB3cmFwcGluZ1xuICAgIC8vIFRoaXMgYXNzaWdubWVudCBpcyBuZWVkZWQgYnkgdGhlIHdyYXBwZXIsIHNvIGl0IGNhbiBzZXRcbiAgICAvLyB0aGUgYXJpYSBwcm9wZXJ0aWVzIG9uIHRoZSBpbnB1dCBlbGVtZW50LCBub3Qgb24gdGhlIGNvbXBvbmVudC5cbiAgICB0aGlzLmVsID0gdGhpcy50ZXh0Ym94O1xuICB9XG59XG4iLCI8IS0tXG4qIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4tLT5cblxuPCEtLSBUaGUgKGNsaWNrKSBoYW5kbGVyIGlzIG5lZWRlZCB0byBhdXRvLWZvY3VzIG9uIGlucHV0IGZpZWxkIHdoaWNoIGNhbiBub3QgY3VycmVudGx5IG9jY3VweSB0aGUgd2hvbGVcbiAgICAgd2lkdGggb2YgdGhlIGNvbXBvbmVudCwgYWZ0ZXIgYmVpbmcgd3JhcHBlZCB0byBhIG5ldyBsaW5lIC0tPlxuPGRpdlxuICBjbGFzcz1cImNsci1jb21ib2JveC13cmFwcGVyXCJcbiAgY2xyUG9wb3ZlckFuY2hvclxuICAoY2xpY2spPVwiZm9jdXNJbnB1dCgpXCJcbiAgW2NsYXNzLm11bHRpXT1cIm11bHRpU2VsZWN0XCJcbiAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJtdWx0aVNlbGVjdCAmJiBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsXCJcbiAgICByb2xlPVwiZ3JpZFwiXG4gICAgY2xyUm92aW5nVGFiaW5kZXhcbiAgICBbY2xyUm92aW5nVGFiaW5kZXhEaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgY2xyRGlyZWN0aW9uPVwiYm90aFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRTZWxlY3Rpb25BcmlhTGFiZWwoKVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZD8gdHJ1ZTogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtdWx0aVNlbGVjdE1vZGVsOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1jb21ib2JveC1waWxsXCIgcm9sZT1cInJvd1wiPlxuICAgICAgPHNwYW4gcm9sZT1cImdyaWRjZWxsXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLWNvbWJvYm94LXBpbGwtY29udGVudFwiIGNscktleUZvY3VzSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIm9wdGlvblNlbGVjdGVkXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblNlbGVjdGVkLnRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsW2ldfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNscktleUZvY3VzSXRlbVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLWNvbWJvYm94LXJlbW92ZS1idG5cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZD8gdHJ1ZTogbnVsbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hEZWxldGUgKyAnICcgKyBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLnRvU3RyaW5nKGRpc3BsYXlGaWVsZCwgaSlcIlxuICAgICAgICAgIChjbGljayk9XCJ1bnNlbGVjdChpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJ3aW5kb3ctY2xvc2VcIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvc3Bhbj5cblxuICA8c3BhbiBjbGFzcz1cImNsci1jb21ib2JveC1pbnB1dC13cmFwcGVyXCI+XG4gICAgPGlucHV0XG4gICAgICAjdGV4dGJveElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgW2lkXT1cImlucHV0SWQoKVwiXG4gICAgICBjbGFzcz1cImNsci1pbnB1dCBjbHItY29tYm9ib3gtaW5wdXRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuU3RhdGVcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImFyaWFPd25zXCJcbiAgICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImNvbnRyb2w/LmludmFsaWQ/IHRydWU6IG51bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkPyB0cnVlOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJnZXRBY3RpdmVEZXNjZW5kYW50KClcIlxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIC8+XG4gIDwvc3Bhbj5cblxuICA8IS0tIE5vIGNsaWNrIGhhbmRsZXIsIGFzIGl0IHVzZXMgdGhlIGhhbmRsZXIgb24gdGhlIC5jbHItY29tYm9ib3gtd3JhcHBlciAtLT5cbiAgPGJ1dHRvblxuICAgIGNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b25cbiAgICAjdHJpZ2dlclxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiY2xyLWNvbWJvYm94LXRyaWdnZXJcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZCB8fCBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbW1vblN0cmluZ3Mua2V5cy5jb21ib2JveE9wZW5cIlxuICA+XG4gICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBkaXJlY3Rpb249XCJkb3duXCIgc2l6ZT1cIjEyXCI+PC9jZHMtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cImNsci1mb2N1cy1pbmRpY2F0b3JcIiBbY2xhc3MuY2xyLWZvY3VzXT1cImZvY3VzZWRcIj48L2Rpdj5cbjwvZGl2PlxuXG48IS0tIEJvdGggY2xvc2UgaGFuZGxlcnMgYXJlIGhhbmRsZWQgbWFudWFsbHkgZHVlIHRvIGlzc3VlcyBpbiBFZGdlIGJyb3dzZXIuXG4gICAgIEFkZGl0aW9uYWxseSAnb3V0c2lkZUNsaWNrVG9DbG9zZScgaGFzIGNvbXBsZXggaGFuZGxpbmcgdGhhdCdzIG5lY2Vzc2FyeVxuICAgICB0byBiZSBtYW51YWwgZHVlIHRvIHRoZSBjb21wb25lbnQgYXJjaGl0ZWN0dXJlIC0tPlxuPGRpdiByb2xlPVwiZGlhbG9nXCIgKmNsclBvcG92ZXJDb250ZW50PVwib3BlblN0YXRlIGF0IHNtYXJ0UG9zaXRpb247IG91dHNpZGVDbGlja1RvQ2xvc2U6IGZhbHNlOyBzY3JvbGxUb0Nsb3NlOiBmYWxzZVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -73,9 +73,7 @@ export class ComboboxFocusHandler {
73
73
  }
74
74
  }
75
75
  this.pseudoFocus.select(this.optionData[index]);
76
- if (this.pseudoFocus.model && this.pseudoFocus.model.el) {
77
- this.pseudoFocus.model.el.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' });
78
- }
76
+ this.scrollIntoSelectedModel();
79
77
  }
80
78
  openAndMoveTo(direction) {
81
79
  if (!this.toggleService.open) {
@@ -136,6 +134,11 @@ export class ComboboxFocusHandler {
136
134
  }
137
135
  return preventDefault;
138
136
  }
137
+ scrollIntoSelectedModel(behavior = 'smooth') {
138
+ if (this.pseudoFocus.model && this.pseudoFocus.model.el) {
139
+ this.pseudoFocus.model.el.scrollIntoView({ behavior, block: 'center', inline: 'nearest' });
140
+ }
141
+ }
139
142
  preventViewportScrolling(event) {
140
143
  event.preventDefault();
141
144
  event.stopImmediatePropagation();
@@ -186,6 +189,7 @@ export class ComboboxFocusHandler {
186
189
  // we have active element, but it's filtered out
187
190
  this.pseudoFocus.select(this.optionData[0]);
188
191
  }
192
+ this.scrollIntoSelectedModel('auto');
189
193
  }
190
194
  }
191
195
  }
@@ -214,4 +218,4 @@ export class OptionData {
214
218
  return this.id === other.id && this.value === other.value;
215
219
  }
216
220
  }
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtZm9jdXMtaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tYm9ib3gvcHJvdmlkZXJzL2NvbWJvYm94LWZvY3VzLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFxQixNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJL0QsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUNFLGVBQWlDLEVBQ3pCLGFBQXNDLEVBQ3RDLGdCQUEyQyxFQUN0QixVQUFlO1FBRnBDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQUs7UUF1QzlDLGdCQUFXLEdBQW9DLElBQUksZ0JBQWdCLEVBQWlCLENBQUM7UUFxSjdFLGVBQVUsR0FBb0IsRUFBRSxDQUFDO1FBMUx2QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxl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QUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQW9CO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgS2V5cyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2VudW1zL2tleXMuZW51bSc7XG5pbXBvcnQgeyBBcnJvd0tleURpcmVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ZvY3VzL2Fycm93LWtleS1kaXJlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBjdXN0b21Gb2N1c2FibGVJdGVtUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9mb2N1cy9mb2N1c2FibGUtaXRlbS9jdXN0b20tZm9jdXNhYmxlLWl0ZW0tcHJvdmlkZXInO1xuaW1wb3J0IHsgbm9ybWFsaXplS2V5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZm9jdXMva2V5LWZvY3VzL3V0aWwnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXRvZ2dsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBzZXVkb0ZvY3VzTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9wc2V1ZG8tZm9jdXMubW9kZWwnO1xuaW1wb3J0IHsgT3B0aW9uU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vb3B0aW9uLXNlbGVjdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbWJvYm94Rm9jdXNIYW5kbGVyPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgIHByaXZhdGUgdG9nZ2xlU2VydmljZTogQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb25TZXJ2aWNlOiBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlPFQ+LFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55XG4gICkge1xuICAgIHRoaXMuaGFuZGxlRm9jdXNTdWJzY3JpcHRpb24oKTtcbiAgICAvLyBEaXJlY3QgcmVuZGVyZXIgaW5qZWN0aW9uIGNhbiBiZSBwcm9ibGVtYXRpYyBhbmQgbGVhZHMgdG8gZmFpbGluZyB0ZXN0cyBhdCBsZWFzdFxuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICAvLyBXZSBuZWVkIGEgQ2hhbmdlIERldGVjdG9yIGZyb20gdGhlIHJlbGF0ZWQgY29tcG9uZW50LCBzbyB3ZSBjYW4gdXBkYXRlIGl0IG9uIEJsdXJcbiAgLy8gKHdoaWNoIGlzIG5lZWRlZCBiZWNhdXNlIG9mIEVkZ2Ugc3BlY2lmaWMgbGlmZWN5Y2xlIG1pcy1iZWhhdmlvcilcbiAgY29tcG9uZW50Q2RSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBwcml2YXRlIGhhbmRsZUZvY3VzU3Vic2NyaXB0aW9uKCkge1xuICAgIHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShvcGVuID0+IHtcbiAgICAgIGlmICghb3Blbikge1xuICAgICAgICB0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyaWdnZXI6IEhUTUxFbGVtZW50O1xuICBnZXQgdHJpZ2dlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcjtcbiAgfVxuICBzZXQgdHJpZ2dlcihlbDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl90cmlnZ2VyID0gZWw7XG4gICAgdGhpcy5hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rib3g6IEhUTUxFbGVtZW50O1xuICBnZXQgbGlzdGJveCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlzdGJveDtcbiAgfVxuICBzZXQgbGlzdGJveChlbDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9saXN0Ym94ID0gZWw7XG4gICAgdGhpcy5hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGVsKTtcbiAgfVxuXG4gIHBzZXVkb0ZvY3VzOiBQc2V1ZG9Gb2N1c01vZGVsPE9wdGlvbkRhdGE8VD4+ID0gbmV3IFBzZXVkb0ZvY3VzTW9kZWw8T3B0aW9uRGF0YTxUPj4oKTtcblxuICBwcml2YXRlIF90ZXh0SW5wdXQ6IEhUTUxFbGVtZW50O1xuICBnZXQgdGV4dElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl90ZXh0SW5wdXQ7XG4gIH1cbiAgc2V0IHRleHRJbnB1dChlbDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl90ZXh0SW5wdXQgPSBlbDtcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihlbCwgJ2tleWRvd24nLCBldmVudCA9PiAhdGhpcy5oYW5kbGVUZXh0SW5wdXQoZXZlbnQpKTtcbiAgICB0aGlzLmFkZEZvY3VzT25CbHVyTGlzdGVuZXIoZWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlRm9jdXNUbyhkaXJlY3Rpb246IEFycm93S2V5RGlyZWN0aW9uKSB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5vcHRpb25EYXRhLmZpbmRJbmRleChvcHRpb24gPT4gb3B0aW9uLmVxdWFscyh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsKSk7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gQXJyb3dLZXlEaXJlY3Rpb24uVVApIHtcbiAgICAgIGlmIChpbmRleCA9PT0gLTEgfHwgaW5kZXggPT09IDApIHtcbiAgICAgICAgaW5kZXggPSB0aGlzLm9wdGlvbkRhdGEubGVuZ3RoIC0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4LS07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09IEFycm93S2V5RGlyZWN0aW9uLkRPV04pIHtcbiAgICAgIGlmIChpbmRleCA9PT0gLTEgfHwgaW5kZXggPT09IHRoaXMub3B0aW9uRGF0YS5sZW5ndGggLSAxKSB7XG4gICAgICAgIGluZGV4ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucHNldWRvRm9jdXMuc2VsZWN0KHRoaXMub3B0aW9uRGF0YVtpbmRleF0pO1xuICAgIGlmICh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsICYmIHRoaXMucHNldWRvRm9jdXMubW9kZWwuZWwpIHtcbiAgICAgIHRoaXMucHNldWRvRm9jdXMubW9kZWwuZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJywgaW5saW5lOiAnbmVhcmVzdCcgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQW5kTW92ZVRvKGRpcmVjdGlvbjogQXJyb3dLZXlEaXJlY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMudG9nZ2xlU2VydmljZS5vcGVuKSB7XG4gICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShvcGVuID0+IHtcbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICB0aGlzLm1vdmVGb2N1c1RvKGRpcmVjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vdmVGb2N1c1RvKGRpcmVjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gdGhpcyBzZXJ2aWNlIGlzIG9ubHkgaW50ZXJlc3RlZCBpbiBrZXlzIHRoYXQgbWF5IG1vdmUgdGhlIGZvY3VzXG4gIHByaXZhdGUgaGFuZGxlVGV4dElucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgbGV0IHByZXZlbnREZWZhdWx0ID0gZmFsc2U7XG4gICAgY29uc3Qga2V5ID0gbm9ybWFsaXplS2V5KGV2ZW50LmtleSk7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIEtleXMuRW50ZXI6XG4gICAgICAgICAgaWYgKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuICYmIHRoaXMucHNldWRvRm9jdXMubW9kZWwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS50b2dnbGUodGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0KHRoaXMucHNldWRvRm9jdXMubW9kZWwudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJldmVudERlZmF1bHQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlzLlNwYWNlOlxuICAgICAgICAgIGlmICghdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlU2VydmljZS5vcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgS2V5cy5BcnJvd1VwOlxuICAgICAgICAgIHRoaXMucHJldmVudFZpZXdwb3J0U2Nyb2xsaW5nKGV2ZW50KTtcbiAgICAgICAgICB0aGlzLm9wZW5BbmRNb3ZlVG8oQXJyb3dLZXlEaXJlY3Rpb24uVVApO1xuICAgICAgICAgIHByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlzLkFycm93RG93bjpcbiAgICAgICAgICB0aGlzLnByZXZlbnRWaWV3cG9ydFNjcm9sbGluZyhldmVudCk7XG4gICAgICAgICAgdGhpcy5vcGVuQW5kTW92ZVRvKEFycm93S2V5RGlyZWN0aW9uLkRPV04pO1xuICAgICAgICAgIHByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBBbnkgb3RoZXIga2V5cHJlc3NcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5rZXkgIT09IEtleXMuVGFiICYmXG4gICAgICAgICAgICAhKHRoaXMuc2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGUgJiYgZXZlbnQua2V5ID09PSBLZXlzLkJhY2tzcGFjZSkgJiZcbiAgICAgICAgICAgICEoZXZlbnQua2V5ID09PSBLZXlzLkVzY2FwZSkgJiZcbiAgICAgICAgICAgICF0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlblxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByZXZlbnREZWZhdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV2ZW50Vmlld3BvcnRTY3JvbGxpbmcoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgZm9jdXNJbnB1dCgpIHtcbiAgICBpZiAodGhpcy50ZXh0SW5wdXQgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy50ZXh0SW5wdXQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZEZvY3VzT25CbHVyTGlzdGVuZXIoZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAnYmx1cicsIGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNPdXRPZkNvbXBvbmVudChldmVudCkpIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiA9IGZhbHNlO1xuICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIHBvcG92ZXIgY2xvc2Utb24tb3V0c2lkZS1jbGljayB0aW1pbmcgaXNzdWVzIGluIEVkZ2UgYnJvd3NlclxuICAgICAgICAgIGlmICh0aGlzLmNvbXBvbmVudENkUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudENkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNPdXRPZkNvbXBvbmVudChldmVudDogRm9jdXNFdmVudCk6IGJvb2xlYW4ge1xuICAgIC8vIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgbnVsbCBpbiBJRTExLiBJbiB0aGF0IGNhc2Ugd2UgdXNlIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICAvLyB3aGljaCBwb2ludHMgdG8gdGhlIGVsZW1lbnQgdGhhdCBiZWNvbWVzIGFjdGl2ZSBhcyB0aGUgYmx1ciBldmVudCBvY2N1cnMgb24gdGhlIGlucHV0LlxuICAgIGNvbnN0IHRhcmdldCA9IChldmVudC5yZWxhdGVkVGFyZ2V0IHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIGFzIE5vZGU7XG4gICAgcmV0dXJuICEodGhpcy50ZXh0SW5wdXQuY29udGFpbnModGFyZ2V0KSB8fCB0aGlzLnRyaWdnZXIuY29udGFpbnModGFyZ2V0KSB8fCB0aGlzLmxpc3Rib3guY29udGFpbnModGFyZ2V0KSk7XG4gIH1cblxuICBmb2N1c0ZpcnN0QWN0aXZlKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbkRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcbiAgICAgICAgdGhpcy5wc2V1ZG9Gb2N1cy5zZWxlY3QodGhpcy5vcHRpb25EYXRhWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBmaXJzdEFjdGl2ZTogVDtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGUpIHtcbiAgICAgICAgICBmaXJzdEFjdGl2ZSA9ICh0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwgYXMgVFtdKVswXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaXJzdEFjdGl2ZSA9IHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbCBhcyBUO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZVByb3h5ID0gdGhpcy5vcHRpb25EYXRhLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gZmlyc3RBY3RpdmUpO1xuICAgICAgICBpZiAoYWN0aXZlUHJveHkpIHtcbiAgICAgICAgICAvLyBhY3RpdmUgZWxlbWVudCBpcyB2aXNpYmxlXG4gICAgICAgICAgdGhpcy5wc2V1ZG9Gb2N1cy5zZWxlY3QoYWN0aXZlUHJveHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHdlIGhhdmUgYWN0aXZlIGVsZW1lbnQsIGJ1dCBpdCdzIGZpbHRlcmVkIG91dFxuICAgICAgICAgIHRoaXMucHNldWRvRm9jdXMuc2VsZWN0KHRoaXMub3B0aW9uRGF0YVswXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wdGlvbkRhdGE6IE9wdGlvbkRhdGE8VD5bXSA9IFtdO1xuXG4gIGFkZE9wdGlvblZhbHVlcyhvcHRpb25zOiBPcHRpb25EYXRhPFQ+W10pIHtcbiAgICB0aGlzLm9wdGlvbkRhdGEgPSBvcHRpb25zO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9GT0NVU19IQU5ETEVSX1BST1ZJREVSID0gY3VzdG9tRm9jdXNhYmxlSXRlbVByb3ZpZGVyKENvbWJvYm94Rm9jdXNIYW5kbGVyKTtcblxuZXhwb3J0IGNsYXNzIE9wdGlvbkRhdGE8VD4ge1xuICBpZDogc3RyaW5nO1xuICBlbDogSFRNTEVsZW1lbnQ7XG4gIHZhbHVlOiBUO1xuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCB2YWx1ZTogVCkge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgZXF1YWxzKG90aGVyOiBPcHRpb25EYXRhPFQ+KTogYm9vbGVhbiB7XG4gICAgaWYgKCFvdGhlcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gb3RoZXIuaWQgJiYgdGhpcy52YWx1ZSA9PT0gb3RoZXIudmFsdWU7XG4gIH1cbn1cbiJdfQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtZm9jdXMtaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tYm9ib3gvcHJvdmlkZXJzL2NvbWJvYm94LWZvY3VzLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFxQixNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJL0QsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUNFLGVBQWlDLEVBQ3pCLGFBQXNDLEVBQ3RDLGdCQUEyQyxFQUN0QixVQUFlO1FBRnBDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQUs7UUF1QzlDLGdCQUFXLEdBQW9DLElBQUksZ0JBQWdCLEVBQWlCLENBQUM7UUEwSjdFLGVBQVUsR0FBb0IsRUFBRSxDQUFDO1FBL0x2QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxl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LE1BQU0sK0JBQStCLEdBQUcsMkJBQTJCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVqRyxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLEVBQVUsRUFBRSxLQUFRO1FBQzlCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFvQjtRQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQztJQUM1RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtleXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9lbnVtcy9rZXlzLmVudW0nO1xuaW1wb3J0IHsgQXJyb3dLZXlEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9mb2N1cy9hcnJvdy1rZXktZGlyZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgY3VzdG9tRm9jdXNhYmxlSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZm9jdXMvZm9jdXNhYmxlLWl0ZW0vY3VzdG9tLWZvY3VzYWJsZS1pdGVtLXByb3ZpZGVyJztcbmltcG9ydCB7IG5vcm1hbGl6ZUtleSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ZvY3VzL2tleS1mb2N1cy91dGlsJztcbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci10b2dnbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQc2V1ZG9Gb2N1c01vZGVsIH0gZnJvbSAnLi4vbW9kZWwvcHNldWRvLWZvY3VzLm1vZGVsJztcbmltcG9ydCB7IE9wdGlvblNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL29wdGlvbi1zZWxlY3Rpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21ib2JveEZvY3VzSGFuZGxlcjxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBwcml2YXRlIHRvZ2dsZVNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uU2VydmljZTogT3B0aW9uU2VsZWN0aW9uU2VydmljZTxUPixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueVxuICApIHtcbiAgICB0aGlzLmhhbmRsZUZvY3VzU3Vic2NyaXB0aW9uKCk7XG4gICAgLy8gRGlyZWN0IHJlbmRlcmVyIGluamVjdGlvbiBjYW4gYmUgcHJvYmxlbWF0aWMgYW5kIGxlYWRzIHRvIGZhaWxpbmcgdGVzdHMgYXQgbGVhc3RcbiAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICB9XG5cbiAgLy8gV2UgbmVlZCBhIENoYW5nZSBEZXRlY3RvciBmcm9tIHRoZSByZWxhdGVkIGNvbXBvbmVudCwgc28gd2UgY2FuIHVwZGF0ZSBpdCBvbiBCbHVyXG4gIC8vICh3aGljaCBpcyBuZWVkZWQgYmVjYXVzZSBvZiBFZGdlIHNwZWNpZmljIGxpZmVjeWNsZSBtaXMtYmVoYXZpb3IpXG4gIGNvbXBvbmVudENkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgcHJpdmF0ZSBoYW5kbGVGb2N1c1N1YnNjcmlwdGlvbigpIHtcbiAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUob3BlbiA9PiB7XG4gICAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbCA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF90cmlnZ2VyOiBIVE1MRWxlbWVudDtcbiAgZ2V0IHRyaWdnZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cbiAgc2V0IHRyaWdnZXIoZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fdHJpZ2dlciA9IGVsO1xuICAgIHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihlbCk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0Ym94OiBIVE1MRWxlbWVudDtcbiAgZ2V0IGxpc3Rib3goKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3Rib3g7XG4gIH1cbiAgc2V0IGxpc3Rib3goZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fbGlzdGJveCA9IGVsO1xuICAgIHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihlbCk7XG4gIH1cblxuICBwc2V1ZG9Gb2N1czogUHNldWRvRm9jdXNNb2RlbDxPcHRpb25EYXRhPFQ+PiA9IG5ldyBQc2V1ZG9Gb2N1c01vZGVsPE9wdGlvbkRhdGE8VD4+KCk7XG5cbiAgcHJpdmF0ZSBfdGV4dElucHV0OiBIVE1MRWxlbWVudDtcbiAgZ2V0IHRleHRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dElucHV0O1xuICB9XG4gIHNldCB0ZXh0SW5wdXQoZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fdGV4dElucHV0ID0gZWw7XG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdrZXlkb3duJywgZXZlbnQgPT4gIXRoaXMuaGFuZGxlVGV4dElucHV0KGV2ZW50KSk7XG4gICAgdGhpcy5hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZUZvY3VzVG8oZGlyZWN0aW9uOiBBcnJvd0tleURpcmVjdGlvbikge1xuICAgIGxldCBpbmRleCA9IHRoaXMub3B0aW9uRGF0YS5maW5kSW5kZXgob3B0aW9uID0+IG9wdGlvbi5lcXVhbHModGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbCkpO1xuICAgIGlmIChkaXJlY3Rpb24gPT09IEFycm93S2V5RGlyZWN0aW9uLlVQKSB7XG4gICAgICBpZiAoaW5kZXggPT09IC0xIHx8IGluZGV4ID09PSAwKSB7XG4gICAgICAgIGluZGV4ID0gdGhpcy5vcHRpb25EYXRhLmxlbmd0aCAtIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleC0tO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSBBcnJvd0tleURpcmVjdGlvbi5ET1dOKSB7XG4gICAgICBpZiAoaW5kZXggPT09IC0xIHx8IGluZGV4ID09PSB0aGlzLm9wdGlvbkRhdGEubGVuZ3RoIC0gMSkge1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnBzZXVkb0ZvY3VzLnNlbGVjdCh0aGlzLm9wdGlvbkRhdGFbaW5kZXhdKTtcbiAgICB0aGlzLnNjcm9sbEludG9TZWxlY3RlZE1vZGVsKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5BbmRNb3ZlVG8oZGlyZWN0aW9uOiBBcnJvd0tleURpcmVjdGlvbikge1xuICAgIGlmICghdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4pIHtcbiAgICAgIHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKG9wZW4gPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgIHRoaXMubW92ZUZvY3VzVG8oZGlyZWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW92ZUZvY3VzVG8oZGlyZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvLyB0aGlzIHNlcnZpY2UgaXMgb25seSBpbnRlcmVzdGVkIGluIGtleXMgdGhhdCBtYXkgbW92ZSB0aGUgZm9jdXNcbiAgcHJpdmF0ZSBoYW5kbGVUZXh0SW5wdXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICBsZXQgcHJldmVudERlZmF1bHQgPSBmYWxzZTtcbiAgICBjb25zdCBrZXkgPSBub3JtYWxpemVLZXkoZXZlbnQua2V5KTtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgS2V5cy5FbnRlcjpcbiAgICAgICAgICBpZiAodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gJiYgdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnRvZ2dsZSh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3QodGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2ZW50RGVmYXVsdCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtleXMuU3BhY2U6XG4gICAgICAgICAgaWYgKCF0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbikge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgcHJldmVudERlZmF1bHQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlzLkFycm93VXA6XG4gICAgICAgICAgdGhpcy5wcmV2ZW50Vmlld3BvcnRTY3JvbGxpbmcoZXZlbnQpO1xuICAgICAgICAgIHRoaXMub3BlbkFuZE1vdmVUbyhBcnJvd0tleURpcmVjdGlvbi5VUCk7XG4gICAgICAgICAgcHJldmVudERlZmF1bHQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtleXMuQXJyb3dEb3duOlxuICAgICAgICAgIHRoaXMucHJldmVudFZpZXdwb3J0U2Nyb2xsaW5nKGV2ZW50KTtcbiAgICAgICAgICB0aGlzLm9wZW5BbmRNb3ZlVG8oQXJyb3dLZXlEaXJlY3Rpb24uRE9XTik7XG4gICAgICAgICAgcHJldmVudERlZmF1bHQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIEFueSBvdGhlciBrZXlwcmVzc1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LmtleSAhPT0gS2V5cy5UYWIgJiZcbiAgICAgICAgICAgICEodGhpcy5zZWxlY3Rpb25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZSAmJiBldmVudC5rZXkgPT09IEtleXMuQmFja3NwYWNlKSAmJlxuICAgICAgICAgICAgIShldmVudC5rZXkgPT09IEtleXMuRXNjYXBlKSAmJlxuICAgICAgICAgICAgIXRoaXMudG9nZ2xlU2VydmljZS5vcGVuXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJldmVudERlZmF1bHQ7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbEludG9TZWxlY3RlZE1vZGVsKGJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvciA9ICdzbW9vdGgnKSB7XG4gICAgaWYgKHRoaXMucHNldWRvRm9jdXMubW9kZWwgJiYgdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC5lbCkge1xuICAgICAgdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC5lbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yLCBibG9jazogJ2NlbnRlcicsIGlubGluZTogJ25lYXJlc3QnIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudFZpZXdwb3J0U2Nyb2xsaW5nKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGZvY3VzSW5wdXQoKSB7XG4gICAgaWYgKHRoaXMudGV4dElucHV0ICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMudGV4dElucHV0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRGb2N1c09uQmx1ckxpc3RlbmVyKGVsOiBIVE1MRWxlbWVudCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihlbCwgJ2JsdXInLCBldmVudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzT3V0T2ZDb21wb25lbnQoZXZlbnQpKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBwb3BvdmVyIGNsb3NlLW9uLW91dHNpZGUtY2xpY2sgdGltaW5nIGlzc3VlcyBpbiBFZGdlIGJyb3dzZXJcbiAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnRDZFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRDZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzT3V0T2ZDb21wb25lbnQoZXZlbnQ6IEZvY3VzRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIG51bGwgaW4gSUUxMS4gSW4gdGhhdCBjYXNlIHdlIHVzZSBkb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgLy8gd2hpY2ggcG9pbnRzIHRvIHRoZSBlbGVtZW50IHRoYXQgYmVjb21lcyBhY3RpdmUgYXMgdGhlIGJsdXIgZXZlbnQgb2NjdXJzIG9uIHRoZSBpbnB1dC5cbiAgICBjb25zdCB0YXJnZXQgPSAoZXZlbnQucmVsYXRlZFRhcmdldCB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSBhcyBOb2RlO1xuICAgIHJldHVybiAhKHRoaXMudGV4dElucHV0LmNvbnRhaW5zKHRhcmdldCkgfHwgdGhpcy50cmlnZ2VyLmNvbnRhaW5zKHRhcmdldCkgfHwgdGhpcy5saXN0Ym94LmNvbnRhaW5zKHRhcmdldCkpO1xuICB9XG5cbiAgZm9jdXNGaXJzdEFjdGl2ZSgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25EYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XG4gICAgICAgIHRoaXMucHNldWRvRm9jdXMuc2VsZWN0KHRoaXMub3B0aW9uRGF0YVswXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgZmlyc3RBY3RpdmU6IFQ7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlKSB7XG4gICAgICAgICAgZmlyc3RBY3RpdmUgPSAodGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsIGFzIFRbXSlbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlyc3RBY3RpdmUgPSB0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwgYXMgVDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVQcm94eSA9IHRoaXMub3B0aW9uRGF0YS5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IGZpcnN0QWN0aXZlKTtcbiAgICAgICAgaWYgKGFjdGl2ZVByb3h5KSB7XG4gICAgICAgICAgLy8gYWN0aXZlIGVsZW1lbnQgaXMgdmlzaWJsZVxuICAgICAgICAgIHRoaXMucHNldWRvRm9jdXMuc2VsZWN0KGFjdGl2ZVByb3h5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB3ZSBoYXZlIGFjdGl2ZSBlbGVtZW50LCBidXQgaXQncyBmaWx0ZXJlZCBvdXRcbiAgICAgICAgICB0aGlzLnBzZXVkb0ZvY3VzLnNlbGVjdCh0aGlzLm9wdGlvbkRhdGFbMF0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Nyb2xsSW50b1NlbGVjdGVkTW9kZWwoJ2F1dG8nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wdGlvbkRhdGE6IE9wdGlvbkRhdGE8VD5bXSA9IFtdO1xuXG4gIGFkZE9wdGlvblZhbHVlcyhvcHRpb25zOiBPcHRpb25EYXRhPFQ+W10pIHtcbiAgICB0aGlzLm9wdGlvbkRhdGEgPSBvcHRpb25zO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDT01CT0JPWF9GT0NVU19IQU5ETEVSX1BST1ZJREVSID0gY3VzdG9tRm9jdXNhYmxlSXRlbVByb3ZpZGVyKENvbWJvYm94Rm9jdXNIYW5kbGVyKTtcblxuZXhwb3J0IGNsYXNzIE9wdGlvbkRhdGE8VD4ge1xuICBpZDogc3RyaW5nO1xuICBlbDogSFRNTEVsZW1lbnQ7XG4gIHZhbHVlOiBUO1xuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCB2YWx1ZTogVCkge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgZXF1YWxzKG90aGVyOiBPcHRpb25EYXRhPFQ+KTogYm9vbGVhbiB7XG4gICAgaWYgKCFvdGhlcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gb3RoZXIuaWQgJiYgdGhpcy52YWx1ZSA9PT0gb3RoZXIudmFsdWU7XG4gIH1cbn1cbiJdfQ==
@@ -46,17 +46,17 @@ export class ClrAbstractContainer {
46
46
  }
47
47
  return (
48
48
  /* Helper Component exist and the state of the form is NONE (not touched) */
49
- (!!this.controlHelperComponent && this.state === CONTROL_STATE.NONE) ||
49
+ (!!this.controlHelperComponent && (!this.touched || this.state === CONTROL_STATE.NONE)) ||
50
50
  /* or there is no success component but the state of the form is VALID - show helper information */
51
51
  (!!this.controlSuccessComponent === false && this.state === CONTROL_STATE.VALID) ||
52
52
  /* or there is no error component but the state of the form is INVALID - show helper information */
53
53
  (!!this.controlErrorComponent === false && this.state === CONTROL_STATE.INVALID));
54
54
  }
55
55
  get showValid() {
56
- return this.state === CONTROL_STATE.VALID && !!this.controlSuccessComponent;
56
+ return this.touched && this.state === CONTROL_STATE.VALID && !!this.controlSuccessComponent;
57
57
  }
58
58
  get showInvalid() {
59
- return this.state === CONTROL_STATE.INVALID && !!this.controlErrorComponent;
59
+ return this.touched && this.state === CONTROL_STATE.INVALID && !!this.controlErrorComponent;
60
60
  }
61
61
  ngAfterContentInit() {
62
62
  /**
@@ -75,7 +75,7 @@ export class ClrAbstractContainer {
75
75
  * - container is valid but no success component is implemented - use helper class
76
76
  * - container is valid and success component is implemented - use success class
77
77
  */
78
- if (!this.controlSuccessComponent && this.state === CONTROL_STATE.VALID) {
78
+ if ((!this.controlSuccessComponent && this.state === CONTROL_STATE.VALID) || !this.touched) {
79
79
  return this.controlClassService.controlClass(CONTROL_STATE.NONE, this.addGrid());
80
80
  }
81
81
  /**
@@ -96,6 +96,9 @@ export class ClrAbstractContainer {
96
96
  });
97
97
  }
98
98
  }
99
+ get touched() {
100
+ return this.control?.touched;
101
+ }
99
102
  }
100
103
  ClrAbstractContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ClrAbstractContainer, deps: [{ token: i1.IfControlStateService }, { token: i2.LayoutService, optional: true }, { token: i3.ControlClassService }, { token: i4.NgControlService }], target: i0.ɵɵFactoryTarget.Directive });
101
104
  ClrAbstractContainer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ClrAbstractContainer, queries: [{ propertyName: "label", first: true, predicate: ClrLabel, descendants: true }, { propertyName: "controlSuccessComponent", first: true, predicate: ClrControlSuccess, descendants: true }, { propertyName: "controlErrorComponent", first: true, predicate: ClrControlError, descendants: true }, { propertyName: "controlHelperComponent", first: true, predicate: ClrControlHelper, descendants: true }], ngImport: i0 });
@@ -116,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
116
119
  type: ContentChild,
117
120
  args: [ClrControlHelper]
118
121
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tbW9uL2Fic3RyYWN0LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFvQixZQUFZLEVBQUUsU0FBUyxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUF5QixNQUFNLDZDQUE2QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFHOUMsTUFBTSxPQUFnQixvQkFBb0I7SUFnRHhDLFlBQ1kscUJBQTRDLEVBQ2hDLGFBQTRCLEVBQ3hDLG1CQUF3QyxFQUN4QyxnQkFBa0M7UUFIbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFuRHBDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBb0RmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFD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QUFvQjtrQkFEekMsU0FBUzs7MEJBbURMLFFBQVE7NkdBOUNYLEtBQUs7c0JBREosWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVFSLHVCQUF1QjtzQkFBdkQsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBQ0EscUJBQXFCO3NCQUFuRCxZQUFZO3VCQUFDLGVBQWU7Z0JBQ0csc0JBQXNCO3NCQUFyRCxZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEeW5hbWljV3JhcHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hvc3Qtd3JhcHBpbmcvZHluYW1pYy13cmFwcGVyJztcbmltcG9ydCB7IENsckNvbnRyb2xFcnJvciB9IGZyb20gJy4vZXJyb3InO1xuaW1wb3J0IHsgQ2xyQ29udHJvbEhlbHBlciB9IGZyb20gJy4vaGVscGVyJztcbmltcG9ydCB7IENPTlRST0xfU1RBVEUsIElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4vaWYtY29udHJvbC1zdGF0ZS9pZi1jb250cm9sLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyTGFiZWwgfSBmcm9tICcuL2xhYmVsJztcbmltcG9ydCB7IENvbnRyb2xDbGFzc1NlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9uZy1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQ29udHJvbFN1Y2Nlc3MgfSBmcm9tICcuL3N1Y2Nlc3MnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbHJBYnN0cmFjdENvbnRhaW5lciBpbXBsZW1lbnRzIER5bmFtaWNXcmFwcGVyLCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgX2R5bmFtaWMgPSBmYWxzZTtcbiAgQENvbnRlbnRDaGlsZChDbHJMYWJlbCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGxhYmVsOiBDbHJMYWJlbDtcbiAgY29udHJvbDogTmdDb250cm9sO1xuICBwcml2YXRlIHN0YXRlOiBDT05UUk9MX1NUQVRFO1xuXG4gIC8qKlxuICAgKiBGaW5kIFN1Y2Nlc3MsIEVycm9yIGFuZCBIZWxwZXIgY29udHJvbCBjb21wb25lbnRzLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChDbHJDb250cm9sU3VjY2VzcykgY29udHJvbFN1Y2Nlc3NDb21wb25lbnQ6IENsckNvbnRyb2xTdWNjZXNzO1xuICBAQ29udGVudENoaWxkKENsckNvbnRyb2xFcnJvcikgY29udHJvbEVycm9yQ29tcG9uZW50OiBDbHJDb250cm9sRXJyb3I7XG4gIEBDb250ZW50Q2hpbGQoQ2xyQ29udHJvbEhlbHBlcikgY29udHJvbEhlbHBlckNvbXBvbmVudDogQ2xyQ29udHJvbEhlbHBlcjtcblxuICAvKipcbiAgICogQE5PVEVcbiAgICogSGVscGVyIGNvbnRyb2wgaXMgYSBiaXQgZGlmZmVyZW50IHRoYW4gdGhlIG90aGVycywgaXQgbXVzdCBiZSB2aXNpYmxlIG1vc3Qgb2YgdGhlIHRpbWU6XG4gICAqICAgLSBIZWxwZXIgbXVzdCBOT1QgYmUgdmlzaWJsZSB3aGVuIENPTlRST0xfU1RBVEUgaXMgbm90IE5PTkUgYW5kIFN1Y2Nlc3Mgb3IgRXJyb3IgY29tcG9uZW50cyBhcmUgXFxcbiAgICogZGVmaW5lZC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUgdXNlciBpbXBsZW1lbnQgb25seSBFcnJvciBjb250cm9sIHRoZW4gaWYgQ09OVFJPTF9TVEFURSBpcyBWQUxJRCB0aGVuIGhlbHBlclxuICAgKiBjb250cm9sIG11c3QgYmUgdmlzaWJsZS5cbiAgICovXG4gIGdldCBzaG93SGVscGVyKCk6IGJvb2xlYW4ge1xuICAgIC8vIHdpdGhvdXQgZXhpc3RlbmNlIG9mIGhlbHBlciBjb21wb25lbnQgdGhlcmUgaXMgbm8gbmVlZCBvZiBhZGRpdGlvbmFsIGNoZWNrcy5cbiAgICBpZiAoISF0aGlzLmNvbnRyb2xIZWxwZXJDb21wb25lbnQgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIC8qIEhlbHBlciBDb21wb25lbnQgZXhpc3QgYW5kIHRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBpcyBOT05FIChub3QgdG91Y2hlZCkgKi9cbiAgICAgICghIXRoaXMuY29udHJvbEhlbHBlckNvbXBvbmVudCAmJiB0aGlzLnN0YXRlID09PSBDT05UUk9MX1NUQVRFLk5PTkUpIHx8XG4gICAgICAvKiBvciB0aGVyZSBpcyBubyBzdWNjZXNzIGNvbXBvbmVudCBidXQgdGhlIHN0YXRlIG9mIHRoZSBmb3JtIGlzIFZBTElEIC0gc2hvdyBoZWxwZXIgaW5mb3JtYXRpb24gKi9cbiAgICAgICghIXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQgPT09IGZhbHNlICYmIHRoaXMuc3RhdGUgPT09IENPTlRST0xfU1RBVEUuVkFMSUQpIHx8XG4gICAgICAvKiBvciB0aGVyZSBpcyBubyBlcnJvciBjb21wb25lbnQgYnV0IHRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBpcyBJTlZBTElEIC0gc2hvdyBoZWxwZXIgaW5mb3JtYXRpb24gKi9cbiAgICAgICghIXRoaXMuY29udHJvbEVycm9yQ29tcG9uZW50ID09PSBmYWxzZSAmJiB0aGlzLnN0YXRlID09PSBDT05UUk9MX1NUQVRFLklOVkFMSUQpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBzaG93VmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENPTlRST0xfU1RBVEUuVkFMSUQgJiYgISF0aGlzLmNvbnRyb2xTdWNjZXNzQ29tcG9uZW50O1xuICB9XG5cbiAgZ2V0IHNob3dJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBDT05UUk9MX1NUQVRFLklOVkFMSUQgJiYgISF0aGlzLmNvbnRyb2xFcnJvckNvbXBvbmVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpZkNvbnRyb2xTdGF0ZVNlcnZpY2U6IElmQ29udHJvbFN0YXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29udHJvbENsYXNzU2VydmljZTogQ29udHJvbENsYXNzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbmdDb250cm9sU2VydmljZTogTmdDb250cm9sU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0ZTogQ09OVFJPTF9TVEFURSkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgICAgIHRoaXMudXBkYXRlSGVscGVycygpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLm5nQ29udHJvbFNlcnZpY2UuY29udHJvbENoYW5nZXMuc3Vic2NyaWJlKGNvbnRyb2wgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8qKlxuICAgICAqIFdlIGdvbm5hIHNldCB0aGUgaGVscGVyIGNvbnRyb2wgc3RhdGUsIGFmdGVyIGFsbCBvciBtb3N0IG9mIHRoZSBjb21wb25lbnRzXG4gICAgICogYXJlIHJlYWR5IC0gYWxzbyB0aGlzIHdpbGwgdHJpZ2dlciBzb21lIGluaXRpYWwgZmxvd3MgaW50byB3cmFwcGVycyBhbmQgY29udHJvbHMsXG4gICAgICogbGlrZSBsb2NhdGluZyBJRHMgIGFuZCBzZXR0aW5nICBhdHRyaWJ1dGVzLlxuICAgICAqL1xuICAgIHRoaXMudXBkYXRlSGVscGVycygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGNvbnRyb2xDbGFzcygpIHtcbiAgICAvKipcbiAgICAgKiBEZWNpZGUgd2hhdCBzdWJ0ZXh0IHRvIGRpc3BsYXk6XG4gICAgICogICAtIGNvbnRhaW5lciBpcyB2YWxpZCBidXQgbm8gc3VjY2VzcyBjb21wb25lbnQgaXMgaW1wbGVtZW50ZWQgLSB1c2UgaGVscGVyIGNsYXNzXG4gICAgICogICAtIGNvbnRhaW5lciBpcyB2YWxpZCBhbmQgc3VjY2VzcyBjb21wb25lbnQgaXMgaW1wbGVtZW50ZWQgLSB1c2Ugc3VjY2VzcyBjbGFzc1xuICAgICAqL1xuICAgIGlmICghdGhpcy5jb250cm9sU3VjY2Vzc0NvbXBvbmVudCAmJiB0aGlzLnN0YXRlID09PSBDT05UUk9MX1NUQVRFLlZBTElEKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlLmNvbnRyb2xDbGFzcyhDT05UUk9MX1NUQVRFLk5PTkUsIHRoaXMuYWRkR3JpZCgpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGFzcyBmb3JtIGNvbnRyb2wgc3RhdGUgYW5kIHJldHVybiBzdHJpbmcgb2YgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBjb250YWluZXIuXG4gICAgICovXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbENsYXNzU2VydmljZS5jb250cm9sQ2xhc3ModGhpcy5zdGF0ZSwgdGhpcy5hZGRHcmlkKCkpO1xuICB9XG5cbiAgYWRkR3JpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlICYmICF0aGlzLmxheW91dFNlcnZpY2UuaXNWZXJ0aWNhbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIZWxwZXJzKCkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbFNlcnZpY2UpIHtcbiAgICAgIHRoaXMubmdDb250cm9sU2VydmljZS5zZXRIZWxwZXJzKHtcbiAgICAgICAgc2hvdzogdGhpcy5zaG93SW52YWxpZCB8fCB0aGlzLnNob3dIZWxwZXIgfHwgdGhpcy5zaG93VmFsaWQsXG4gICAgICAgIHNob3dJbnZhbGlkOiB0aGlzLnNob3dJbnZhbGlkLFxuICAgICAgICBzaG93SGVscGVyOiB0aGlzLnNob3dIZWxwZXIsXG4gICAgICAgIHNob3dWYWxpZDogdGhpcy5zaG93VmFsaWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tbW9uL2Fic3RyYWN0LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFvQixZQUFZLEVBQUUsU0FBUyxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUF5QixNQUFNLDZDQUE2QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFHOUMsTUFBTSxPQUFnQixvQkFBb0I7SUFnRHhDLFlBQ1kscUJBQTRDLEVBQ2hDLGFBQTRCLEVBQ3hDLG1CQUF3QyxFQUN4QyxnQkFBa0M7UUFIbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFuRHBDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBb0RmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFD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QyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7a0hBakhtQixvQkFBb0I7c0dBQXBCLG9CQUFvQiw2REFHMUIsUUFBUSwwRkFRUixpQkFBaUIsd0ZBQ2pCLGVBQWUseUZBQ2YsZ0JBQWdCOzRGQWJWLG9CQUFvQjtrQkFEekMsU0FBUzs7MEJBbURMLFFBQVE7NkdBOUNYLEtBQUs7c0JBREosWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVFSLHVCQUF1QjtzQkFBdkQsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBQ0EscUJBQXFCO3NCQUFuRCxZQUFZO3VCQUFDLGVBQWU7Z0JBQ0csc0JBQXNCO3NCQUFyRCxZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEeW5hbWljV3JhcHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hvc3Qtd3JhcHBpbmcvZHluYW1pYy13cmFwcGVyJztcbmltcG9ydCB7IENsckNvbnRyb2xFcnJvciB9IGZyb20gJy4vZXJyb3InO1xuaW1wb3J0IHsgQ2xyQ29udHJvbEhlbHBlciB9IGZyb20gJy4vaGVscGVyJztcbmltcG9ydCB7IENPTlRST0xfU1RBVEUsIElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4vaWYtY29udHJvbC1zdGF0ZS9pZi1jb250cm9sLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyTGFiZWwgfSBmcm9tICcuL2xhYmVsJztcbmltcG9ydCB7IENvbnRyb2xDbGFzc1NlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9uZy1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQ29udHJvbFN1Y2Nlc3MgfSBmcm9tICcuL3N1Y2Nlc3MnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbHJBYnN0cmFjdENvbnRhaW5lciBpbXBsZW1lbnRzIER5bmFtaWNXcmFwcGVyLCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgX2R5bmFtaWMgPSBmYWxzZTtcbiAgQENvbnRlbnRDaGlsZChDbHJMYWJlbCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGxhYmVsOiBDbHJMYWJlbDtcbiAgY29udHJvbDogTmdDb250cm9sO1xuICBwcml2YXRlIHN0YXRlOiBDT05UUk9MX1NUQVRFO1xuXG4gIC8qKlxuICAgKiBGaW5kIFN1Y2Nlc3MsIEVycm9yIGFuZCBIZWxwZXIgY29udHJvbCBjb21wb25lbnRzLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChDbHJDb250cm9sU3VjY2VzcykgY29udHJvbFN1Y2Nlc3NDb21wb25lbnQ6IENsckNvbnRyb2xTdWNjZXNzO1xuICBAQ29udGVudENoaWxkKENsckNvbnRyb2xFcnJvcikgY29udHJvbEVycm9yQ29tcG9uZW50OiBDbHJDb250cm9sRXJyb3I7XG4gIEBDb250ZW50Q2hpbGQoQ2xyQ29udHJvbEhlbHBlcikgY29udHJvbEhlbHBlckNvbXBvbmVudDogQ2xyQ29udHJvbEhlbHBlcjtcblxuICAvKipcbiAgICogQE5PVEVcbiAgICogSGVscGVyIGNvbnRyb2wgaXMgYSBiaXQgZGlmZmVyZW50IHRoYW4gdGhlIG90aGVycywgaXQgbXVzdCBiZSB2aXNpYmxlIG1vc3Qgb2YgdGhlIHRpbWU6XG4gICAqICAgLSBIZWxwZXIgbXVzdCBOT1QgYmUgdmlzaWJsZSB3aGVuIENPTlRST0xfU1RBVEUgaXMgbm90IE5PTkUgYW5kIFN1Y2Nlc3Mgb3IgRXJyb3IgY29tcG9uZW50cyBhcmUgXFxcbiAgICogZGVmaW5lZC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUgdXNlciBpbXBsZW1lbnQgb25seSBFcnJvciBjb250cm9sIHRoZW4gaWYgQ09OVFJPTF9TVEFURSBpcyBWQUxJRCB0aGVuIGhlbHBlclxuICAgKiBjb250cm9sIG11c3QgYmUgdmlzaWJsZS5cbiAgICovXG4gIGdldCBzaG93SGVscGVyKCk6IGJvb2xlYW4ge1xuICAgIC8vIHdpdGhvdXQgZXhpc3RlbmNlIG9mIGhlbHBlciBjb21wb25lbnQgdGhlcmUgaXMgbm8gbmVlZCBvZiBhZGRpdGlvbmFsIGNoZWNrcy5cbiAgICBpZiAoISF0aGlzLmNvbnRyb2xIZWxwZXJDb21wb25lbnQgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIC8qIEhlbHBlciBDb21wb25lbnQgZXhpc3QgYW5kIHRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBpcyBOT05FIChub3QgdG91Y2hlZCkgKi9cbiAgICAgICghIXRoaXMuY29udHJvbEhlbHBlckNvbXBvbmVudCAmJiAoIXRoaXMudG91Y2hlZCB8fCB0aGlzLnN0YXRlID09PSBDT05UUk9MX1NUQVRFLk5PTkUpKSB8fFxuICAgICAgLyogb3IgdGhlcmUgaXMgbm8gc3VjY2VzcyBjb21wb25lbnQgYnV0IHRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBpcyBWQUxJRCAtIHNob3cgaGVscGVyIGluZm9ybWF0aW9uICovXG4gICAgICAoISF0aGlzLmNvbnRyb2xTdWNjZXNzQ29tcG9uZW50ID09PSBmYWxzZSAmJiB0aGlzLnN0YXRlID09PSBDT05UUk9MX1NUQVRFLlZBTElEKSB8fFxuICAgICAgLyogb3IgdGhlcmUgaXMgbm8gZXJyb3IgY29tcG9uZW50IGJ1dCB0aGUgc3RhdGUgb2YgdGhlIGZvcm0gaXMgSU5WQUxJRCAtIHNob3cgaGVscGVyIGluZm9ybWF0aW9uICovXG4gICAgICAoISF0aGlzLmNvbnRyb2xFcnJvckNvbXBvbmVudCA9PT0gZmFsc2UgJiYgdGhpcy5zdGF0ZSA9PT0gQ09OVFJPTF9TVEFURS5JTlZBTElEKVxuICAgICk7XG4gIH1cblxuICBnZXQgc2hvd1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvdWNoZWQgJiYgdGhpcy5zdGF0ZSA9PT0gQ09OVFJPTF9TVEFURS5WQUxJRCAmJiAhIXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQ7XG4gIH1cblxuICBnZXQgc2hvd0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG91Y2hlZCAmJiB0aGlzLnN0YXRlID09PSBDT05UUk9MX1NUQVRFLklOVkFMSUQgJiYgISF0aGlzLmNvbnRyb2xFcnJvckNvbXBvbmVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpZkNvbnRyb2xTdGF0ZVNlcnZpY2U6IElmQ29udHJvbFN0YXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29udHJvbENsYXNzU2VydmljZTogQ29udHJvbENsYXNzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbmdDb250cm9sU2VydmljZTogTmdDb250cm9sU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0ZTogQ09OVFJPTF9TVEFURSkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgICAgIHRoaXMudXBkYXRlSGVscGVycygpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLm5nQ29udHJvbFNlcnZpY2UuY29udHJvbENoYW5nZXMuc3Vic2NyaWJlKGNvbnRyb2wgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8qKlxuICAgICAqIFdlIGdvbm5hIHNldCB0aGUgaGVscGVyIGNvbnRyb2wgc3RhdGUsIGFmdGVyIGFsbCBvciBtb3N0IG9mIHRoZSBjb21wb25lbnRzXG4gICAgICogYXJlIHJlYWR5IC0gYWxzbyB0aGlzIHdpbGwgdHJpZ2dlciBzb21lIGluaXRpYWwgZmxvd3MgaW50byB3cmFwcGVycyBhbmQgY29udHJvbHMsXG4gICAgICogbGlrZSBsb2NhdGluZyBJRHMgIGFuZCBzZXR0aW5nICBhdHRyaWJ1dGVzLlxuICAgICAqL1xuICAgIHRoaXMudXBkYXRlSGVscGVycygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGNvbnRyb2xDbGFzcygpIHtcbiAgICAvKipcbiAgICAgKiBEZWNpZGUgd2hhdCBzdWJ0ZXh0IHRvIGRpc3BsYXk6XG4gICAgICogICAtIGNvbnRhaW5lciBpcyB2YWxpZCBidXQgbm8gc3VjY2VzcyBjb21wb25lbnQgaXMgaW1wbGVtZW50ZWQgLSB1c2UgaGVscGVyIGNsYXNzXG4gICAgICogICAtIGNvbnRhaW5lciBpcyB2YWxpZCBhbmQgc3VjY2VzcyBjb21wb25lbnQgaXMgaW1wbGVtZW50ZWQgLSB1c2Ugc3VjY2VzcyBjbGFzc1xuICAgICAqL1xuICAgIGlmICgoIXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQgJiYgdGhpcy5zdGF0ZSA9PT0gQ09OVFJPTF9TVEFURS5WQUxJRCkgfHwgIXRoaXMudG91Y2hlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbENsYXNzU2VydmljZS5jb250cm9sQ2xhc3MoQ09OVFJPTF9TVEFURS5OT05FLCB0aGlzLmFkZEdyaWQoKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBhc3MgZm9ybSBjb250cm9sIHN0YXRlIGFuZCByZXR1cm4gc3RyaW5nIG9mIGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgY29udGFpbmVyLlxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2UuY29udHJvbENsYXNzKHRoaXMuc3RhdGUsIHRoaXMuYWRkR3JpZCgpKTtcbiAgfVxuXG4gIGFkZEdyaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZSAmJiAhdGhpcy5sYXlvdXRTZXJ2aWNlLmlzVmVydGljYWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSGVscGVycygpIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2xTZXJ2aWNlKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbFNlcnZpY2Uuc2V0SGVscGVycyh7XG4gICAgICAgIHNob3c6IHRoaXMuc2hvd0ludmFsaWQgfHwgdGhpcy5zaG93SGVscGVyIHx8IHRoaXMuc2hvd1ZhbGlkLFxuICAgICAgICBzaG93SW52YWxpZDogdGhpcy5zaG93SW52YWxpZCxcbiAgICAgICAgc2hvd0hlbHBlcjogdGhpcy5zaG93SGVscGVyLFxuICAgICAgICBzaG93VmFsaWQ6IHRoaXMuc2hvd1ZhbGlkLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdG91Y2hlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy50b3VjaGVkO1xuICB9XG59XG4iXX0=
@@ -59,6 +59,7 @@ export class ClrDropdownItem {
59
59
  }
60
60
  stopImmediatePropagationIfDisabled($event) {
61
61
  if (this.disabled) {
62
+ $event.preventDefault(); // prevent click event
62
63
  $event.stopImmediatePropagation();
63
64
  }
64
65
  }
@@ -98,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
98
99
  type: HostListener,
99
100
  args: ['keydown.enter', ['$event']]
100
101
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3BvcG92ZXIvZHJvcGRvd24vZHJvcGRvd24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7OztBQWlCOUcsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDVSxRQUFxQixFQUNyQixnQkFBcUMsRUFDckMsYUFBNEI7UUFGNUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBR3RDLDRCQUF1QixHQUFHLEtBQUssQ0FBQztJQUY3QixDQUFDO0lBSUosSUFDSSxRQUFRLENBQUMsS0FBdUI7UUFDbEMsa0hBQWtIO1FBQ2xILElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGtCQUFrQixDQUFDLEtBQXVCO1FBQzVDLGtIQUFrSDtRQUNsSCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGNBQWMsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUdPLG1CQUFtQjtRQUN6QiwrRkFBK0Y7UUFDL0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDcEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHTyxjQUFjLENBQUMsTUFBcUI7UUFDMUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHTyxjQUFjLENBQUMsTUFBcUI7UUFDMUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxrQ0FBa0MsQ0FBQyxNQUFhO1FBQ3RELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztTQUNuQztJQUNILENBQUM7OzZHQXBFVSxlQUFlO2lHQUFmLGVBQWUsZ2tCQUZmLENBQUMsNkJBQTZCLENBQUM7NEZBRS9CLGVBQWU7a0JBWjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLHVCQUF1QixFQUFFLE1BQU07d0JBQy9CLGFBQWEsRUFBRSxZQUFZO3dCQUMzQixzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyxpQkFBaUIsRUFBRSxrREFBa0Q7d0JBQ3JFLFdBQVcsRUFBRSxnQkFBZ0I7cUJBQzlCO29CQUNELFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUMzQztnS0FXSyxRQUFRO3NCQURYLEtBQUs7dUJBQUMsYUFBYTtnQkFjaEIsa0JBQWtCO3NCQURyQixLQUFLO3VCQUFDLFVBQVU7Z0JBZWIsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxJQUFJO2dCQVNILG1CQUFtQjtzQkFEMUIsWUFBWTt1QkFBQyxPQUFPO2dCQVdiLGNBQWM7c0JBRHJCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1qQyxjQUFjO3NCQURyQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJBU0lDX0ZPQ1VTQUJMRV9JVEVNX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMvZm9jdXNhYmxlLWl0ZW0vYmFzaWMtZm9jdXNhYmxlLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMvZm9jdXNhYmxlLWl0ZW0vZm9jdXNhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgQ2xyRHJvcGRvd24gfSBmcm9tICcuL2Ryb3Bkb3duJztcbmltcG9ydCB7IFJvb3REcm9wZG93blNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9kcm9wZG93bi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NsckRyb3Bkb3duSXRlbV0nLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuZHJvcGRvd24taXRlbV0nOiAndHJ1ZScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wibWVudWl0ZW1cIicsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2F0dHIuZGlzYWJsZWRdJzogXCIoZGlzYWJsZWQgJiYgc2V0QnlEZXByZWNhdGVkRGlzYWJsZWQpPyAnJyA6IG51bGxcIixcbiAgICAnW2F0dHIuaWRdJzogJ2Ryb3Bkb3duSXRlbUlkJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbQkFTSUNfRk9DVVNBQkxFX0lURU1fUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJEcm9wZG93bkl0ZW0ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRyb3Bkb3duOiBDbHJEcm9wZG93bixcbiAgICBwcml2YXRlIF9kcm9wZG93blNlcnZpY2U6IFJvb3REcm9wZG93blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb2N1c2FibGVJdGVtOiBGb2N1c2FibGVJdGVtXG4gICkge31cblxuICBzZXRCeURlcHJlY2F0ZWREaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnY2xyRGlzYWJsZWQnKVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICAvLyBFbXB0eSBzdHJpbmcgYXR0cmlidXRlIGV2YWx1YXRlcyB0byBmYWxzZSBidXQgc2hvdWxkIGRpc2FibGUgdGhlIGl0ZW0sIHNvIHdlIG5lZWQgdG8gYWRkIGEgc3BlY2lhbCBjYXNlIGZvciBpdC5cbiAgICB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWQgPSAhIXZhbHVlIHx8IHZhbHVlID09PSAnJztcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtLmRpc2FibGVkO1xuICB9XG5cbiAgLypcbiAgICogQGRlcHJlY2F0ZWQgc2luY2UgMy4wLCByZW1vdmUgaW4gNC4wLiB0aGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1dGUgbWFrZXMgaXQgbm90LWZvY3VzYWJsZSBpbiBJRTExLiBVc2UgW2NsckRpc2FibGVkXSBpbnB1dCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KCdkaXNhYmxlZCcpXG4gIHNldCBkaXNhYmxlZERlcHJlY2F0ZWQodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICAvLyBFbXB0eSBzdHJpbmcgYXR0cmlidXRlIGV2YWx1YXRlcyB0byBmYWxzZSBidXQgc2hvdWxkIGRpc2FibGUgdGhlIGl0ZW0sIHNvIHdlIG5lZWQgdG8gYWRkIGEgc3BlY2lhbCBjYXNlIGZvciBpdC5cbiAgICB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWQgPSAhIXZhbHVlIHx8IHZhbHVlID09PSAnJztcbiAgICB0aGlzLnNldEJ5RGVwcmVjYXRlZERpc2FibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZERlcHJlY2F0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMZXQgeW91IG92ZXJ3cml0ZSB0aGUgZm9jdXNhYmxlIGF1dG8gaW5jcmVtZW50IGlkLlxuICAgKi9cbiAgQElucHV0KCdpZCcpXG4gIHNldCBkcm9wZG93bkl0ZW1JZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5mb2N1c2FibGVJdGVtLmlkID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGRyb3Bkb3duSXRlbUlkKCkge1xuICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uaWQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHByaXZhdGUgb25Ecm9wZG93bkl0ZW1DbGljaygpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgZHJvcGRvd24gaXMgY2xvc2VkIGFmdGVyIGN1c3RvbSBkcm9wZG93biBpdGVtIGNsaWNrIGV2ZW50IGhhbmRsZXJzIGhhdmUgcnVuLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZHJvcGRvd24uaXNNZW51Q2xvc2FibGUgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5fZHJvcGRvd25TZXJ2aWNlLmNsb3NlTWVudXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc3BhY2UnLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uU3BhY2VLZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uSWZEaXNhYmxlZCgkZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25FbnRlcktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25JZkRpc2FibGVkKCRldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbklmRGlzYWJsZWQoJGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3BvcG92ZXIvZHJvcGRvd24vZHJvcGRvd24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7OztBQWlCOUcsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDVSxRQUFxQixFQUNyQixnQkFBcUMsRUFDckMsYUFBNEI7UUFGNUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBR3RDLDRCQUF1QixHQUFHLEtBQUssQ0FBQztJQUY3QixDQUFDO0lBSUosSUFDSSxRQUFRLENBQUMsS0FBdUI7UUFDbEMsa0hBQWtIO1FBQ2xILElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGtCQUFrQixDQUFDLEtBQXVCO1FBQzVDLGtIQUFrSDtRQUNsSCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGNBQWMsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUdPLG1CQUFtQjtRQUN6QiwrRkFBK0Y7UUFDL0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDcEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHTyxjQUFjLENBQUMsTUFBcUI7UUFDMUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHTyxjQUFjLENBQUMsTUFBcUI7UUFDMUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxrQ0FBa0MsQ0FBQyxNQUFhO1FBQ3RELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxzQkFBc0I7WUFDL0MsTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDOzs2R0FyRVUsZUFBZTtpR0FBZixlQUFlLGdrQkFGZixDQUFDLDZCQUE2QixDQUFDOzRGQUUvQixlQUFlO2tCQVozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxVQUFVO3dCQUM5Qix1QkFBdUIsRUFBRSxNQUFNO3dCQUMvQixhQUFhLEVBQUUsWUFBWTt3QkFDM0Isc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsaUJBQWlCLEVBQUUsa0RBQWtEO3dCQUNyRSxXQUFXLEVBQUUsZ0JBQWdCO3FCQUM5QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDM0M7Z0tBV0ssUUFBUTtzQkFEWCxLQUFLO3VCQUFDLGFBQWE7Z0JBY2hCLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxVQUFVO2dCQWViLGNBQWM7c0JBRGpCLEtBQUs7dUJBQUMsSUFBSTtnQkFTSCxtQkFBbUI7c0JBRDFCLFlBQVk7dUJBQUMsT0FBTztnQkFXYixjQUFjO3NCQURyQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNakMsY0FBYztzQkFEckIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCQVNJQ19GT0NVU0FCTEVfSVRFTV9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3V0aWxzL2ZvY3VzL2ZvY3VzYWJsZS1pdGVtL2Jhc2ljLWZvY3VzYWJsZS1pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4uLy4uL3V0aWxzL2ZvY3VzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtJztcbmltcG9ydCB7IENsckRyb3Bkb3duIH0gZnJvbSAnLi9kcm9wZG93bic7XG5pbXBvcnQgeyBSb290RHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZHJvcGRvd24uc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjbHJEcm9wZG93bkl0ZW1dJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmRyb3Bkb3duLWl0ZW1dJzogJ3RydWUnLFxuICAgICdbYXR0ci5yb2xlXSc6ICdcIm1lbnVpdGVtXCInLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1thdHRyLmRpc2FibGVkXSc6IFwiKGRpc2FibGVkICYmIHNldEJ5RGVwcmVjYXRlZERpc2FibGVkKT8gJycgOiBudWxsXCIsXG4gICAgJ1thdHRyLmlkXSc6ICdkcm9wZG93bkl0ZW1JZCcsXG4gIH0sXG4gIHByb3ZpZGVyczogW0JBU0lDX0ZPQ1VTQUJMRV9JVEVNX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRHJvcGRvd25JdGVtIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkcm9wZG93bjogQ2xyRHJvcGRvd24sXG4gICAgcHJpdmF0ZSBfZHJvcGRvd25TZXJ2aWNlOiBSb290RHJvcGRvd25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9jdXNhYmxlSXRlbTogRm9jdXNhYmxlSXRlbVxuICApIHt9XG5cbiAgc2V0QnlEZXByZWNhdGVkRGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoJ2NsckRpc2FibGVkJylcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgLy8gRW1wdHkgc3RyaW5nIGF0dHJpYnV0ZSBldmFsdWF0ZXMgdG8gZmFsc2UgYnV0IHNob3VsZCBkaXNhYmxlIHRoZSBpdGVtLCBzbyB3ZSBuZWVkIHRvIGFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgaXQuXG4gICAgdGhpcy5mb2N1c2FibGVJdGVtLmRpc2FibGVkID0gISF2YWx1ZSB8fCB2YWx1ZSA9PT0gJyc7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZDtcbiAgfVxuXG4gIC8qXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIDMuMCwgcmVtb3ZlIGluIDQuMC4gdGhlIHByZXNlbmNlIG9mIHRoaXMgYXR0cmlidXRlIG1ha2VzIGl0IG5vdC1mb2N1c2FibGUgaW4gSUUxMS4gVXNlIFtjbHJEaXNhYmxlZF0gaW5wdXQgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgnZGlzYWJsZWQnKVxuICBzZXQgZGlzYWJsZWREZXByZWNhdGVkKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgLy8gRW1wdHkgc3RyaW5nIGF0dHJpYnV0ZSBldmFsdWF0ZXMgdG8gZmFsc2UgYnV0IHNob3VsZCBkaXNhYmxlIHRoZSBpdGVtLCBzbyB3ZSBuZWVkIHRvIGFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgaXQuXG4gICAgdGhpcy5mb2N1c2FibGVJdGVtLmRpc2FibGVkID0gISF2YWx1ZSB8fCB2YWx1ZSA9PT0gJyc7XG4gICAgdGhpcy5zZXRCeURlcHJlY2F0ZWREaXNhYmxlZCA9IHRydWU7XG4gIH1cblxuICBnZXQgZGlzYWJsZWREZXByZWNhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogTGV0IHlvdSBvdmVyd3JpdGUgdGhlIGZvY3VzYWJsZSBhdXRvIGluY3JlbWVudCBpZC5cbiAgICovXG4gIEBJbnB1dCgnaWQnKVxuICBzZXQgZHJvcGRvd25JdGVtSWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZm9jdXNhYmxlSXRlbS5pZCA9IHZhbHVlO1xuICB9XG4gIGdldCBkcm9wZG93bkl0ZW1JZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtLmlkO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBwcml2YXRlIG9uRHJvcGRvd25JdGVtQ2xpY2soKTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIHRoYXQgdGhlIGRyb3Bkb3duIGlzIGNsb3NlZCBhZnRlciBjdXN0b20gZHJvcGRvd24gaXRlbSBjbGljayBldmVudCBoYW5kbGVycyBoYXZlIHJ1bi5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRyb3Bkb3duLmlzTWVudUNsb3NhYmxlICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuX2Ryb3Bkb3duU2VydmljZS5jbG9zZU1lbnVzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvblNwYWNlS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbklmRGlzYWJsZWQoJGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uRW50ZXJLZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uSWZEaXNhYmxlZCgkZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25JZkRpc2FibGVkKCRldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgY2xpY2sgZXZlbnRcbiAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -26,8 +26,8 @@ export class FocusService {
26
26
  this._unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowleft', () => !this.move(ArrowKeyDirection.LEFT)));
27
27
  this._unlistenFuncs.push(this.renderer.listen(el, 'keydown.arrowright', () => !this.move(ArrowKeyDirection.RIGHT)));
28
28
  }
29
- registerContainer(el) {
30
- this.renderer.setAttribute(el, 'tabindex', '0');
29
+ registerContainer(el, tabIndex = '0') {
30
+ this.renderer.setAttribute(el, 'tabindex', tabIndex);
31
31
  this.listenToArrowKeys(el);
32
32
  // The following listeners return false when there was an action to take for the key pressed,
33
33
  // in order to prevent the default behavior of that key.
@@ -91,4 +91,4 @@ export const FOCUS_SERVICE_PROVIDER = {
91
91
  useFactory: clrFocusServiceFactory,
92
92
  deps: [[new Optional(), new SkipSelf(), FocusService], Renderer2],
93
93
  };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzL2ZvY3VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBSS9ELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFL0IsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO0lBRkYsQ0FBQztJQUkzQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFvQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBZTtRQUMvQiw2RkFBNkY7UUFDN0Ysd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJ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QUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7OzBHQTdFVSxZQUFZOzhHQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVTs7QUFpRlgsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQXNCLEVBQUUsUUFBbUI7SUFDaEYsT0FBTyxRQUFRLElBQUksSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsU0FBUyxDQUFDO0NBQ2xFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFycm93S2V5RGlyZWN0aW9uIH0gZnJvbSAnLi9hcnJvdy1rZXktZGlyZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0vZm9jdXNhYmxlLWl0ZW0nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9jdXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIHByaXZhdGUgX3VubGlzdGVuRnVuY3M6ICgoKSA9PiB2b2lkKVtdID0gW107XG4gIHByaXZhdGUgX2N1cnJlbnQ6IEZvY3VzYWJsZUl0ZW07XG4gIGdldCBjdXJyZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50O1xuICB9XG5cbiAgcmVzZXQoZmlyc3Q6IEZvY3VzYWJsZUl0ZW0pIHtcbiAgICB0aGlzLl9jdXJyZW50ID0gZmlyc3Q7XG4gIH1cblxuICBsaXN0ZW5Ub0Fycm93S2V5cyhlbDogSFRNTEVsZW1lbnQpIHtcbiAgICAvLyBUaGUgZm9sbG93aW5nIGxpc3RlbmVycyByZXR1cm4gZmFsc2Ugd2hlbiB0aGVyZSB3YXMgYW4gYWN0aW9uIHRvIHRha2UgZm9yIHRoZSBrZXkgcHJlc3NlZCxcbiAgICAvLyBpbiBvcmRlciB0byBwcmV2ZW50IHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoYXQga2V5LlxuICAgIHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihlbCwgJ2tleWRvd24uYXJyb3d1cCcsICgpID0+ICF0aGlzLm1vdmUoQXJyb3dLZXlEaXJlY3Rpb24uVVApKSk7XG4gICAgdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAna2V5ZG93bi5hcnJvd2Rvd24nLCAoKSA9PiAhdGhpcy5tb3ZlKEFycm93S2V5RGlyZWN0aW9uLkRPV04pKSk7XG4gICAgdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAna2V5ZG93bi5hcnJvd2xlZnQnLCAoKSA9PiAhdGhpcy5tb3ZlKEFycm93S2V5RGlyZWN0aW9uLkxFRlQpKSk7XG4gICAgdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAna2V5ZG93bi5hcnJvd3JpZ2h0JywgKCkgPT4gIXRoaXMubW92ZShBcnJvd0tleURpcmVjdGlvbi5SSUdIVCkpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyQ29udGFpbmVyKGVsOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAndGFiaW5kZXgnLCAnMCcpO1xuICAgIHRoaXMubGlzdGVuVG9BcnJvd0tleXMoZWwpO1xuICAgIC8vIFRoZSBmb2xsb3dpbmcgbGlzdGVuZXJzIHJldHVybiBmYWxzZSB3aGVuIHRoZXJlIHdhcyBhbiBhY3Rpb24gdG8gdGFrZSBmb3IgdGhlIGtleSBwcmVzc2VkLFxuICAgIC8vIGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhhdCBrZXkuXG4gICAgdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAna2V5ZG93bi5zcGFjZScsICgpID0+ICF0aGlzLmFjdGl2YXRlQ3VycmVudCgpKSk7XG4gICAgdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAna2V5ZG93bi5lbnRlcicsICgpID0+ICF0aGlzLmFjdGl2YXRlQ3VycmVudCgpKSk7XG4gIH1cblxuICBtb3ZlVG8oaXRlbTogRm9jdXNhYmxlSXRlbSkge1xuICAgIC8qKlxuICAgICAqIE1ha2Ugc3VyZSB0aGF0IGl0ZW0gaXMgbm90IHVuZGVmaW5lZCxcbiAgICAgKiBUaGlzIGlzIHNhZmV0eSBuZXQgaW4gdGhlIGNhc2UgdGhhdCBzb21lb25lIHNvbWV0aW1lIGRlY2lkZSB0b1xuICAgICAqIGNhbGwgdGhpcyBtZXRob2Qgd2l0aG91dCBoYXZpbmcgRm9jdXNhYmxlSXRlbS5cbiAgICAgKi9cbiAgICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudCkge1xuICAgICAgdGhpcy5jdXJyZW50LmJsdXIoKTtcbiAgICB9XG4gICAgaXRlbS5mb2N1cygpO1xuICAgIHRoaXMuX2N1cnJlbnQgPSBpdGVtO1xuICB9XG5cbiAgbW92ZShkaXJlY3Rpb246IEFycm93S2V5RGlyZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgbGV0IG1vdmVkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuY3VycmVudCkge1xuICAgICAgY29uc3QgbmV4dCA9IHRoaXMuY3VycmVudFtkaXJlY3Rpb25dO1xuICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgLy8gVHVybmluZyB0aGUgdmFsdWUgaW50byBhbiBPYnNlcnZhYmxlIGlzbid0IGdyZWF0LCBidXQgaXQncyB0aGUgZmFzdGVzdCB3YXkgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi5cbiAgICAgICAgLy8gSWYgcGVyZm9ybWFuY2UgZXZlciBtYXR0ZXJzIGZvciB0aGlzLCB3ZSBjYW4gcmVmYWN0b3IgdXNpbmcgYWRkaXRpb25hbCBwcml2YXRlIG1ldGhvZHMuXG4gICAgICAgIGNvbnN0IG5leHRPYnMgPSBpc09ic2VydmFibGUobmV4dCkgPyBuZXh0IDogb2YobmV4dCk7XG4gICAgICAgIG5leHRPYnMuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVUbyhpdGVtKTtcbiAgICAgICAgICAgIG1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbW92ZWQ7XG4gIH1cblxuICBhY3RpdmF0ZUN1cnJlbnQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCAmJiB0aGlzLmN1cnJlbnQuYWN0aXZhdGUpIHtcbiAgICAgIHRoaXMuY3VycmVudC5hY3RpdmF0ZSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGRldGFjaExpc3RlbmVycygpIHtcbiAgICB0aGlzLl91bmxpc3RlbkZ1bmNzLmZvckVhY2godW5saXN0ZW4gPT4gdW5saXN0ZW4oKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsckZvY3VzU2VydmljZUZhY3RvcnkoZXhpc3Rpbmc6IEZvY3VzU2VydmljZSwgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICByZXR1cm4gZXhpc3RpbmcgfHwgbmV3IEZvY3VzU2VydmljZShyZW5kZXJlcik7XG59XG5cbmV4cG9ydCBjb25zdCBGT0NVU19TRVJWSUNFX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBGb2N1c1NlcnZpY2UsXG4gIHVzZUZhY3Rvcnk6IGNsckZvY3VzU2VydmljZUZhY3RvcnksXG4gIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBGb2N1c1NlcnZpY2VdLCBSZW5kZXJlcjJdLFxufTtcbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzL2ZvY3VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBSS9ELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFL0IsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO0lBRkYsQ0FBQztJQUkzQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFvQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBZTtRQUMvQiw2RkFBNkY7UUFDN0Ysd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFlLEVBQUUsUUFBUSxHQUFHLEdBQUc7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsNkZBQTZGO1FBQzdGLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQW1CO1FBQ3hCOzs7O1dBSUc7UUFDSCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQTRCO1FBQy9CLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQyxJQUFJLElBQUksRUFBRTtnQkFDUix3R0FBd0c7Z0JBQ3hHLDBGQUEwRjtnQkFDMUYsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdkIsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7MEdBN0VVLFlBQVk7OEdBQVosWUFBWTs0RkFBWixZQUFZO2tCQUR4QixVQUFVOztBQWlGWCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsUUFBc0IsRUFBRSxRQUFtQjtJQUNoRixPQUFPLFFBQVEsSUFBSSxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBRSxTQUFTLENBQUM7Q0FDbEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFJlbmRlcmVyMiwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXJyb3dLZXlEaXJlY3Rpb24gfSBmcm9tICcuL2Fycm93LWtleS1kaXJlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUtaXRlbSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb2N1c1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgcHJpdmF0ZSBfdW5saXN0ZW5GdW5jczogKCgpID0+IHZvaWQpW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudDogRm9jdXNhYmxlSXRlbTtcbiAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cblxuICByZXNldChmaXJzdDogRm9jdXNhYmxlSXRlbSkge1xuICAgIHRoaXMuX2N1cnJlbnQgPSBmaXJzdDtcbiAgfVxuXG4gIGxpc3RlblRvQXJyb3dLZXlzKGVsOiBIVE1MRWxlbWVudCkge1xuICAgIC8vIFRoZSBmb2xsb3dpbmcgbGlzdGVuZXJzIHJldHVybiBmYWxzZSB3aGVuIHRoZXJlIHdhcyBhbiBhY3Rpb24gdG8gdGFrZSBmb3IgdGhlIGtleSBwcmVzc2VkLFxuICAgIC8vIGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhhdCBrZXkuXG4gICAgdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAna2V5ZG93bi5hcnJvd3VwJywgKCkgPT4gIXRoaXMubW92ZShBcnJvd0tleURpcmVjdGlvbi5VUCkpKTtcbiAgICB0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdrZXlkb3duLmFycm93ZG93bicsICgpID0+ICF0aGlzLm1vdmUoQXJyb3dLZXlEaXJlY3Rpb24uRE9XTikpKTtcbiAgICB0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdrZXlkb3duLmFycm93bGVmdCcsICgpID0+ICF0aGlzLm1vdmUoQXJyb3dLZXlEaXJlY3Rpb24uTEVGVCkpKTtcbiAgICB0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdrZXlkb3duLmFycm93cmlnaHQnLCAoKSA9PiAhdGhpcy5tb3ZlKEFycm93S2V5RGlyZWN0aW9uLlJJR0hUKSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJDb250YWluZXIoZWw6IEhUTUxFbGVtZW50LCB0YWJJbmRleCA9ICcwJykge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAndGFiaW5kZXgnLCB0YWJJbmRleCk7XG4gICAgdGhpcy5saXN0ZW5Ub0Fycm93S2V5cyhlbCk7XG4gICAgLy8gVGhlIGZvbGxvd2luZyBsaXN0ZW5lcnMgcmV0dXJuIGZhbHNlIHdoZW4gdGhlcmUgd2FzIGFuIGFjdGlvbiB0byB0YWtlIGZvciB0aGUga2V5IHByZXNzZWQsXG4gICAgLy8gaW4gb3JkZXIgdG8gcHJldmVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGF0IGtleS5cbiAgICB0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdrZXlkb3duLnNwYWNlJywgKCkgPT4gIXRoaXMuYWN0aXZhdGVDdXJyZW50KCkpKTtcbiAgICB0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdrZXlkb3duLmVudGVyJywgKCkgPT4gIXRoaXMuYWN0aXZhdGVDdXJyZW50KCkpKTtcbiAgfVxuXG4gIG1vdmVUbyhpdGVtOiBGb2N1c2FibGVJdGVtKSB7XG4gICAgLyoqXG4gICAgICogTWFrZSBzdXJlIHRoYXQgaXRlbSBpcyBub3QgdW5kZWZpbmVkLFxuICAgICAqIFRoaXMgaXMgc2FmZXR5IG5ldCBpbiB0aGUgY2FzZSB0aGF0IHNvbWVvbmUgc29tZXRpbWUgZGVjaWRlIHRvXG4gICAgICogY2FsbCB0aGlzIG1ldGhvZCB3aXRob3V0IGhhdmluZyBGb2N1c2FibGVJdGVtLlxuICAgICAqL1xuICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXJyZW50KSB7XG4gICAgICB0aGlzLmN1cnJlbnQuYmx1cigpO1xuICAgIH1cbiAgICBpdGVtLmZvY3VzKCk7XG4gICAgdGhpcy5fY3VycmVudCA9IGl0ZW07XG4gIH1cblxuICBtb3ZlKGRpcmVjdGlvbjogQXJyb3dLZXlEaXJlY3Rpb24pOiBib29sZWFuIHtcbiAgICBsZXQgbW92ZWQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jdXJyZW50KSB7XG4gICAgICBjb25zdCBuZXh0ID0gdGhpcy5jdXJyZW50W2RpcmVjdGlvbl07XG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICAvLyBUdXJuaW5nIHRoZSB2YWx1ZSBpbnRvIGFuIE9ic2VydmFibGUgaXNuJ3QgZ3JlYXQsIGJ1dCBpdCdzIHRoZSBmYXN0ZXN0IHdheSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLlxuICAgICAgICAvLyBJZiBwZXJmb3JtYW5jZSBldmVyIG1hdHRlcnMgZm9yIHRoaXMsIHdlIGNhbiByZWZhY3RvciB1c2luZyBhZGRpdGlvbmFsIHByaXZhdGUgbWV0aG9kcy5cbiAgICAgICAgY29uc3QgbmV4dE9icyA9IGlzT2JzZXJ2YWJsZShuZXh0KSA/IG5leHQgOiBvZihuZXh0KTtcbiAgICAgICAgbmV4dE9icy5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMubW92ZVRvKGl0ZW0pO1xuICAgICAgICAgICAgbW92ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtb3ZlZDtcbiAgfVxuXG4gIGFjdGl2YXRlQ3VycmVudCgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50ICYmIHRoaXMuY3VycmVudC5hY3RpdmF0ZSkge1xuICAgICAgdGhpcy5jdXJyZW50LmFjdGl2YXRlKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZGV0YWNoTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuX3VubGlzdGVuRnVuY3MuZm9yRWFjaCh1bmxpc3RlbiA9PiB1bmxpc3RlbigpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xyRm9jdXNTZXJ2aWNlRmFjdG9yeShleGlzdGluZzogRm9jdXNTZXJ2aWNlLCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gIHJldHVybiBleGlzdGluZyB8fCBuZXcgRm9jdXNTZXJ2aWNlKHJlbmRlcmVyKTtcbn1cblxuZXhwb3J0IGNvbnN0IEZPQ1VTX1NFUlZJQ0VfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IEZvY3VzU2VydmljZSxcbiAgdXNlRmFjdG9yeTogY2xyRm9jdXNTZXJ2aWNlRmFjdG9yeSxcbiAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIEZvY3VzU2VydmljZV0sIFJlbmRlcmVyMl0sXG59O1xuIl19
@@ -4,9 +4,7 @@
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
6
6
  import { DOCUMENT, isPlatformBrowser } from '@angular/common';
7
- import { Injectable } from '@angular/core';
8
7
  import { createId, FocusTrapTrackerService, isFocusable, isHTMLElement } from '@cds/core/internal';
9
- import * as i0 from "@angular/core";
10
8
  export function refocusIfOutsideFocusTrapElement(focusedElement, focusTrapElement, elementToRefocus) {
11
9
  const focusTrapIsCurrent = FocusTrapTrackerService.getCurrent() === focusTrapElement;
12
10
  const elementToFocusIsOutsideFocusTrap = elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement);
@@ -133,9 +131,4 @@ export class FocusTrap {
133
131
  refocusIfOutsideFocusTrapElement(event.composedPath()[0], this.focusTrapElement, this.firstFocusElement);
134
132
  }
135
133
  }
136
- FocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FocusTrap, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
137
- FocusTrap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FocusTrap });
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FocusTrap, decorators: [{
139
- type: Injectable
140
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.Injector }, { type: undefined }, { type: undefined }]; } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzLXRyYXAvZm9jdXMtdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQVFuRyxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLGNBQTJCLEVBQzNCLGdCQUFrQyxFQUNsQyxnQkFBOEI7SUFFOUIsTUFBTSxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQztJQUNyRixNQUFNLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVHLElBQUksa0JBQWtCLElBQUksZ0NBQWdDLEVBQUU7UUFDMUQsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUM7UUFDeEQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDMUI7U0FBTTtRQUNMLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLGNBQTJCLEVBQzNCLGdCQUFrQztJQUVsQyxJQUNFLGNBQWMsS0FBSyxnQkFBZ0IsQ0FBQyxpQkFBaUI7UUFDckQsY0FBYyxLQUFLLGdCQUFnQixDQUFDLG9CQUFvQixFQUN4RDtRQUNBLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLDRCQUE0QixHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMs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QUFDLENBQUM7UUFFUCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtRQUVELHlDQUF5QyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRSx1QkFBdUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFpQjtRQUNqQyxnQ0FBZ0MsQ0FDOUIsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBZ0IsRUFDdEMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUM7SUFDSixDQUFDOzt1R0FqRlUsU0FBUzsyR0FBVCxTQUFTOzRGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVJZCwgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UsIGlzRm9jdXNhYmxlLCBpc0hUTUxFbGVtZW50IH0gZnJvbSAnQGNkcy9jb3JlL2ludGVybmFsJztcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c1RyYXBFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICB0b3BSZWJvdW5kRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gIGJvdHRvbVJlYm91bmRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgZm9jdXNUcmFwSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZm9jdXNJZk91dHNpZGVGb2N1c1RyYXBFbGVtZW50KFxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGZvY3VzVHJhcEVsZW1lbnQ6IEZvY3VzVHJhcEVsZW1lbnQsXG4gIGVsZW1lbnRUb1JlZm9jdXM/OiBIVE1MRWxlbWVudFxuKSB7XG4gIGNvbnN0IGZvY3VzVHJhcElzQ3VycmVudCA9IEZvY3VzVHJhcFRyYWNrZXJTZXJ2aWNlLmdldEN1cnJlbnQoKSA9PT0gZm9jdXNUcmFwRWxlbWVudDtcbiAgY29uc3QgZWxlbWVudFRvRm9jdXNJc091dHNpZGVGb2N1c1RyYXAgPSBlbGVtZW50SXNPdXRzaWRlRm9jdXNUcmFwRWxlbWVudChmb2N1c2VkRWxlbWVudCwgZm9jdXNUcmFwRWxlbWVudCk7XG5cbiAgaWYgKGZvY3VzVHJhcElzQ3VycmVudCAmJiBlbGVtZW50VG9Gb2N1c0lzT3V0c2lkZUZvY3VzVHJhcCkge1xuICAgIGVsZW1lbnRUb1JlZm9jdXMgPSBlbGVtZW50VG9SZWZvY3VzIHx8IGZvY3VzVHJhcEVsZW1lbnQ7XG4gICAgZWxlbWVudFRvUmVmb2N1cy5mb2N1cygpO1xuICB9IGVsc2Uge1xuICAgIGZvY3VzZWRFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnRJc091dHNpZGVGb2N1c1RyYXBFbGVtZW50KFxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGZvY3VzVHJhcEVsZW1lbnQ6IEZvY3VzVHJhcEVsZW1lbnRcbik6IGJvb2xlYW4ge1xuICBpZiAoXG4gICAgZm9jdXNlZEVsZW1lbnQgPT09IGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQgfHxcbiAgICBmb2N1c2VkRWxlbWVudCA9PT0gZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudFxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnRJc0luRm9jdXNUcmFwTGlnaHREb20gPSBmb2N1c1RyYXBFbGVtZW50LmNvbnRhaW5zKGZvY3VzZWRFbGVtZW50KTtcblxuICBpZiAoZWxlbWVudElzSW5Gb2N1c1RyYXBMaWdodERvbSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChmb2N1c1RyYXBFbGVtZW50ICE9PSBudWxsICYmIGZvY3VzVHJhcEVsZW1lbnQuY29udGFpbnMoZm9jdXNlZEVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2N1c1RyYXBSZWJvdW5kRWxlbWVudChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgY29uc3Qgb2ZmU2NyZWVuU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgb2ZmU2NyZWVuU3Bhbi5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgb2ZmU2NyZWVuU3Bhbi5jbGFzc0xpc3QuYWRkKCdvZmZzY3JlZW4tZm9jdXMtcmVib3VuZGVyJyk7XG4gIHJldHVybiBvZmZTY3JlZW5TcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVib3VuZEVsZW1lbnRzVG9Gb2N1c1RyYXBFbGVtZW50KGRvY3VtZW50OiBEb2N1bWVudCwgZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICBpZiAoZm9jdXNUcmFwRWxlbWVudCAmJiAhZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCAmJiAhZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCkge1xuICAgIGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQgPSBjcmVhdGVGb2N1c1RyYXBSZWJvdW5kRWxlbWVudChkb2N1bWVudCk7XG4gICAgZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCA9IGNyZWF0ZUZvY3VzVHJhcFJlYm91bmRFbGVtZW50KGRvY3VtZW50KTtcblxuICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzVHJhcEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBzaWJsaW5nID0gZm9jdXNUcmFwRWxlbWVudC5uZXh0U2libGluZztcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCwgZm9jdXNUcmFwRWxlbWVudCk7XG4gICAgICBpZiAoc2libGluZykge1xuICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQsIHNpYmxpbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUmVib3VuZEVsZW1lbnRzRnJvbUZvY3VzVHJhcEVsZW1lbnQoZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICBpZiAoZm9jdXNUcmFwRWxlbWVudCkge1xuICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzVHJhcEVsZW1lbnQucGFyZW50RWxlbWVudDtcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIGNvbnN0IHRvcFJlYm91bmQgPSBmb2N1c1RyYXBFbGVtZW50LnRvcFJlYm91bmRFbGVtZW50O1xuICAgICAgY29uc3QgYm90dG9tUmVib3VuZCA9IGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQ7XG4gICAgICBpZiAodG9wUmVib3VuZCkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodG9wUmVib3VuZCk7XG4gICAgICB9XG4gICAgICBpZiAoYm90dG9tUmVib3VuZCkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoYm90dG9tUmVib3VuZCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRoZXNlIGFyZSBoZXJlIHRvIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGNvbXBsZXRlbHkgZGVsZXRlIGFsbCB0cmFjZXMgb2YgdGhlIHJlbW92ZWQgRE9NIG9iamVjdHMuXG4gICAgZGVsZXRlIGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQ7XG4gICAgZGVsZXRlIGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQ7XG4gIH1cbn1cblxuLy8gdGhpcyBoZWxwZXIgZXhpc3RzIHRvIGVuYWJsZSB0aGUgZm9jdXMgdHJhcCBjbGFzcyB0byBoYW5kbGUgdmFuaWxsYSBodG1sIGVsZW1lbnRzXG4vLyBpdCdzIHByaW1hcnkgY29uY2VybiBpcyB0byBrZWVwIFRTIGhhcHB5LlxuZXhwb3J0IGZ1bmN0aW9uIGNhc3RIdG1sRWxlbWVudFRvRm9jdXNUcmFwRWxlbWVudChlbDogSFRNTEVsZW1lbnQpOiBGb2N1c1RyYXBFbGVtZW50IHtcbiAgcmV0dXJuIGVsIGFzIEZvY3VzVHJhcEVsZW1lbnQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb2N1c1RyYXAge1xuICBmb2N1c1RyYXBFbGVtZW50OiBGb2N1c1RyYXBFbGVtZW50O1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXM6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG9uRm9jdXNJbkV2ZW50OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHVubGlzdGVuOiAoKSA9PiB2b2lkO1xuXG4gIHByb3RlY3RlZCBfZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIGZpcnN0Rm9jdXNFbGVtZW50OiBIVE1MRWxlbWVudCB8IEZvY3VzVHJhcEVsZW1lbnQ7XG5cbiAgYWN0aXZlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIGluamVjdG9yOiBJbmplY3RvciwgcGxhdGZvcm1JZDogYW55LCBob3N0RWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5fZG9jdW1lbnQgPSBpbmplY3Rvci5nZXQoRE9DVU1FTlQpO1xuICAgIH1cblxuICAgIGhvc3RFbGVtZW50ID0gY2FzdEh0bWxFbGVtZW50VG9Gb2N1c1RyYXBFbGVtZW50KGhvc3RFbGVtZW50KTtcblxuICAgIGlmICghaG9zdEVsZW1lbnQuZm9jdXNUcmFwSWQpIHtcbiAgICAgIGhvc3RFbGVtZW50LmZvY3VzVHJhcElkID0gY3JlYXRlSWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzVHJhcEVsZW1lbnQgPSBob3N0RWxlbWVudDtcbiAgfVxuXG4gIGVuYWJsZUZvY3VzVHJhcCgpIHtcbiAgICBjb25zdCBmdGUgPSB0aGlzLmZvY3VzVHJhcEVsZW1lbnQ7XG4gICAgY29uc3QgZmlyc3RGb2N1c0VsZW1lbnQgPSBmdGUucXVlcnlTZWxlY3RvcignW2Nkcy1maXJzdC1mb2N1c10nKTtcbiAgICBjb25zdCBhY3RpdmVFbCA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UuZ2V0Q3VycmVudCgpID09PSBmdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRm9jdXMgdHJhcCBpcyBhbHJlYWR5IGVuYWJsZWQgZm9yIHRoaXMgaW5zdGFuY2UuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5maXJzdEZvY3VzRWxlbWVudCA9IChmaXJzdEZvY3VzRWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgdGhpcy5mb2N1c1RyYXBFbGVtZW50O1xuXG4gICAgYWRkUmVib3VuZEVsZW1lbnRzVG9Gb2N1c1RyYXBFbGVtZW50KHRoaXMuX2RvY3VtZW50LCBmdGUpO1xuXG4gICAgaWYgKCFpc0ZvY3VzYWJsZShmdGUpKSB7XG4gICAgICBmdGUuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgIH1cblxuICAgIGlmIChhY3RpdmVFbCAmJiBpc0hUTUxFbGVtZW50KGFjdGl2ZUVsKSkge1xuICAgICAgdGhpcy5wcmV2aW91c0ZvY3VzID0gYWN0aXZlRWwgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2Uuc2V0Q3VycmVudChmdGUpO1xuXG4gICAgLy8gc2V0VGltZW91dCBoZXJlIGlzIHJlcXVpcmVkIGZvciBTYWZhcmkgd2hpY2ggbWF5IHRyeSB0byBzZXQgZm9jdXMgb25cbiAgICAvLyBlbGVtZW50IGJlZm9yZSBpdCBpcyB2aXNpYmxlLi4uXG4gICAgY29uc3QgZm9jdXNUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5maXJzdEZvY3VzRWxlbWVudC5mb2N1cygpO1xuICAgICAgY2xlYXJUaW1lb3V0KGZvY3VzVGltZXIpO1xuICAgIH0sIDEwKTtcblxuICAgIHRoaXMub25Gb2N1c0luRXZlbnQgPSB0aGlzLm9uRm9jdXNJbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMudW5saXN0ZW4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLl9kb2N1bWVudCwgJ2ZvY3VzaW4nLCB0aGlzLm9uRm9jdXNJbkV2ZW50KTtcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gIH1cblxuICByZW1vdmVGb2N1c1RyYXAoKSB7XG4gICAgaWYgKHRoaXMudW5saXN0ZW4pIHtcbiAgICAgIHRoaXMudW5saXN0ZW4oKTtcbiAgICB9XG5cbiAgICByZW1vdmVSZWJvdW5kRWxlbWVudHNGcm9tRm9jdXNUcmFwRWxlbWVudCh0aGlzLmZvY3VzVHJhcEVsZW1lbnQpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZm9jdXNUcmFwRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG4gICAgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UuYWN0aXZhdGVQcmV2aW91c0N1cnJlbnQoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnByZXZpb3VzRm9jdXMpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1cy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Gb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgcmVmb2N1c0lmT3V0c2lkZUZvY3VzVHJhcEVsZW1lbnQoXG4gICAgICBldmVudC5jb21wb3NlZFBhdGgoKVswXSBhcyBIVE1MRWxlbWVudCxcbiAgICAgIHRoaXMuZm9jdXNUcmFwRWxlbWVudCxcbiAgICAgIHRoaXMuZmlyc3RGb2N1c0VsZW1lbnRcbiAgICApO1xuICB9XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzLXRyYXAvZm9jdXMtdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlELE9BQU8sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBUW5HLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsY0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2xDLGdCQUE4QjtJQUU5QixNQUFNLGtCQUFrQixHQUFHLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxLQUFLLGdCQUFnQixDQUFDO0lBQ3JGLE1BQU0sZ0NBQWdDLEdBQUcsZ0NBQWdDLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFNUcsSUFBSSxrQkFBa0IsSUFBSSxnQ0FBZ0MsRUFBRTtRQUMxRCxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQztRQUN4RCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztLQUMxQjtTQUFNO1FBQ0wsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsY0FBMkIsRUFDM0IsZ0JBQWtDO0lBRWxDLElBQ0UsY0FBYyxLQUFLLGdCQUFnQixDQUFDLGlCQUFpQjtRQUNyRCxjQUFjLEtBQUssZ0JBQWdCLENBQUMsb0JBQW9CLEVBQ3hEO1FBQ0EsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE1BQU0sNEJBQTRCLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9FLElBQUksNEJBQTRCLEVBQUU7UUFDaEMsT0FBTyxLQUFL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LFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO1FBRUQseUNBQXlDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLHVCQUF1QixDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWlCO1FBQ2pDLGdDQUFnQyxDQUM5QixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFnQixFQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdG9yLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUlkLCBGb2N1c1RyYXBUcmFja2VyU2VydmljZSwgaXNGb2N1c2FibGUsIGlzSFRNTEVsZW1lbnQgfSBmcm9tICdAY2RzL2NvcmUvaW50ZXJuYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzVHJhcEVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gIHRvcFJlYm91bmRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgYm90dG9tUmVib3VuZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBmb2N1c1RyYXBJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmb2N1c0lmT3V0c2lkZUZvY3VzVHJhcEVsZW1lbnQoXG4gIGZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCxcbiAgZWxlbWVudFRvUmVmb2N1cz86IEhUTUxFbGVtZW50XG4pIHtcbiAgY29uc3QgZm9jdXNUcmFwSXNDdXJyZW50ID0gRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UuZ2V0Q3VycmVudCgpID09PSBmb2N1c1RyYXBFbGVtZW50O1xuICBjb25zdCBlbGVtZW50VG9Gb2N1c0lzT3V0c2lkZUZvY3VzVHJhcCA9IGVsZW1lbnRJc091dHNpZGVGb2N1c1RyYXBFbGVtZW50KGZvY3VzZWRFbGVtZW50LCBmb2N1c1RyYXBFbGVtZW50KTtcblxuICBpZiAoZm9jdXNUcmFwSXNDdXJyZW50ICYmIGVsZW1lbnRUb0ZvY3VzSXNPdXRzaWRlRm9jdXNUcmFwKSB7XG4gICAgZWxlbWVudFRvUmVmb2N1cyA9IGVsZW1lbnRUb1JlZm9jdXMgfHwgZm9jdXNUcmFwRWxlbWVudDtcbiAgICBlbGVtZW50VG9SZWZvY3VzLmZvY3VzKCk7XG4gIH0gZWxzZSB7XG4gICAgZm9jdXNlZEVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudElzT3V0c2lkZUZvY3VzVHJhcEVsZW1lbnQoXG4gIGZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudFxuKTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBmb2N1c2VkRWxlbWVudCA9PT0gZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCB8fFxuICAgIGZvY3VzZWRFbGVtZW50ID09PSBmb2N1c1RyYXBFbGVtZW50LmJvdHRvbVJlYm91bmRFbGVtZW50XG4gICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudElzSW5Gb2N1c1RyYXBMaWdodERvbSA9IGZvY3VzVHJhcEVsZW1lbnQuY29udGFpbnMoZm9jdXNlZEVsZW1lbnQpO1xuXG4gIGlmIChlbGVtZW50SXNJbkZvY3VzVHJhcExpZ2h0RG9tKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGZvY3VzVHJhcEVsZW1lbnQgIT09IG51bGwgJiYgZm9jdXNUcmFwRWxlbWVudC5jb250YWlucyhmb2N1c2VkRWxlbWVudCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvY3VzVHJhcFJlYm91bmRFbGVtZW50KGRvY3VtZW50OiBEb2N1bWVudCkge1xuICBjb25zdCBvZmZTY3JlZW5TcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICBvZmZTY3JlZW5TcGFuLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICBvZmZTY3JlZW5TcGFuLmNsYXNzTGlzdC5hZGQoJ29mZnNjcmVlbi1mb2N1cy1yZWJvdW5kZXInKTtcbiAgcmV0dXJuIG9mZlNjcmVlblNwYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWJvdW5kRWxlbWVudHNUb0ZvY3VzVHJhcEVsZW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50LCBmb2N1c1RyYXBFbGVtZW50OiBGb2N1c1RyYXBFbGVtZW50KSB7XG4gIGlmIChmb2N1c1RyYXBFbGVtZW50ICYmICFmb2N1c1RyYXBFbGVtZW50LnRvcFJlYm91bmRFbGVtZW50ICYmICFmb2N1c1RyYXBFbGVtZW50LmJvdHRvbVJlYm91bmRFbGVtZW50KSB7XG4gICAgZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCA9IGNyZWF0ZUZvY3VzVHJhcFJlYm91bmRFbGVtZW50KGRvY3VtZW50KTtcbiAgICBmb2N1c1RyYXBFbGVtZW50LmJvdHRvbVJlYm91bmRFbGVtZW50ID0gY3JlYXRlRm9jdXNUcmFwUmVib3VuZEVsZW1lbnQoZG9jdW1lbnQpO1xuXG4gICAgY29uc3QgcGFyZW50ID0gZm9jdXNUcmFwRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IHNpYmxpbmcgPSBmb2N1c1RyYXBFbGVtZW50Lm5leHRTaWJsaW5nO1xuXG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShmb2N1c1RyYXBFbGVtZW50LnRvcFJlYm91bmRFbGVtZW50LCBmb2N1c1RyYXBFbGVtZW50KTtcbiAgICAgIGlmIChzaWJsaW5nKSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCwgc2libGluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVSZWJvdW5kRWxlbWVudHNGcm9tRm9jdXNUcmFwRWxlbWVudChmb2N1c1RyYXBFbGVtZW50OiBGb2N1c1RyYXBFbGVtZW50KSB7XG4gIGlmIChmb2N1c1RyYXBFbGVtZW50KSB7XG4gICAgY29uc3QgcGFyZW50ID0gZm9jdXNUcmFwRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgY29uc3QgdG9wUmVib3VuZCA9IGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQ7XG4gICAgICBjb25zdCBib3R0b21SZWJvdW5kID0gZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudDtcbiAgICAgIGlmICh0b3BSZWJvdW5kKSB7XG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0b3BSZWJvdW5kKTtcbiAgICAgIH1cbiAgICAgIGlmIChib3R0b21SZWJvdW5kKSB7XG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChib3R0b21SZWJvdW5kKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gVGhlc2UgYXJlIGhlcmUgdG8gdG8gbWFrZSBzdXJlIHRoYXQgd2UgY29tcGxldGVseSBkZWxldGUgYWxsIHRyYWNlcyBvZiB0aGUgcmVtb3ZlZCBET00gb2JqZWN0cy5cbiAgICBkZWxldGUgZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudDtcbiAgICBkZWxldGUgZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudDtcbiAgfVxufVxuXG4vLyB0aGlzIGhlbHBlciBleGlzdHMgdG8gZW5hYmxlIHRoZSBmb2N1cyB0cmFwIGNsYXNzIHRvIGhhbmRsZSB2YW5pbGxhIGh0bWwgZWxlbWVudHNcbi8vIGl0J3MgcHJpbWFyeSBjb25jZXJuIGlzIHRvIGtlZXAgVFMgaGFwcHkuXG5leHBvcnQgZnVuY3Rpb24gY2FzdEh0bWxFbGVtZW50VG9Gb2N1c1RyYXBFbGVtZW50KGVsOiBIVE1MRWxlbWVudCk6IEZvY3VzVHJhcEVsZW1lbnQge1xuICByZXR1cm4gZWwgYXMgRm9jdXNUcmFwRWxlbWVudDtcbn1cblxuZXhwb3J0IGNsYXNzIEZvY3VzVHJhcCB7XG4gIGZvY3VzVHJhcEVsZW1lbnQ6IEZvY3VzVHJhcEVsZW1lbnQ7XG4gIHByaXZhdGUgcHJldmlvdXNGb2N1czogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgb25Gb2N1c0luRXZlbnQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgdW5saXN0ZW46ICgpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIF9kb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgZmlyc3RGb2N1c0VsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRm9jdXNUcmFwRWxlbWVudDtcblxuICBhY3RpdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMiwgaW5qZWN0b3I6IEluamVjdG9yLCBwbGF0Zm9ybUlkOiBhbnksIGhvc3RFbGVtZW50OiBGb2N1c1RyYXBFbGVtZW50KSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLl9kb2N1bWVudCA9IGluamVjdG9yLmdldChET0NVTUVOVCk7XG4gICAgfVxuXG4gICAgaG9zdEVsZW1lbnQgPSBjYXN0SHRtbEVsZW1lbnRUb0ZvY3VzVHJhcEVsZW1lbnQoaG9zdEVsZW1lbnQpO1xuXG4gICAgaWYgKCFob3N0RWxlbWVudC5mb2N1c1RyYXBJZCkge1xuICAgICAgaG9zdEVsZW1lbnQuZm9jdXNUcmFwSWQgPSBjcmVhdGVJZCgpO1xuICAgIH1cblxuICAgIHRoaXMuZm9jdXNUcmFwRWxlbWVudCA9IGhvc3RFbGVtZW50O1xuICB9XG5cbiAgZW5hYmxlRm9jdXNUcmFwKCkge1xuICAgIGNvbnN0IGZ0ZSA9IHRoaXMuZm9jdXNUcmFwRWxlbWVudDtcbiAgICBjb25zdCBmaXJzdEZvY3VzRWxlbWVudCA9IGZ0ZS5xdWVyeVNlbGVjdG9yKCdbY2RzLWZpcnN0LWZvY3VzXScpO1xuICAgIGNvbnN0IGFjdGl2ZUVsID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgIGlmIChGb2N1c1RyYXBUcmFja2VyU2VydmljZS5nZXRDdXJyZW50KCkgPT09IGZ0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb2N1cyB0cmFwIGlzIGFscmVhZHkgZW5hYmxlZCBmb3IgdGhpcyBpbnN0YW5jZS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpcnN0Rm9jdXNFbGVtZW50ID0gKGZpcnN0Rm9jdXNFbGVtZW50IGFzIEhUTUxFbGVtZW50KSB8fCB0aGlzLmZvY3VzVHJhcEVsZW1lbnQ7XG5cbiAgICBhZGRSZWJvdW5kRWxlbWVudHNUb0ZvY3VzVHJhcEVsZW1lbnQodGhpcy5fZG9jdW1lbnQsIGZ0ZSk7XG5cbiAgICBpZiAoIWlzRm9jdXNhYmxlKGZ0ZSkpIHtcbiAgICAgIGZ0ZS5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgfVxuXG4gICAgaWYgKGFjdGl2ZUVsICYmIGlzSFRNTEVsZW1lbnQoYWN0aXZlRWwpKSB7XG4gICAgICB0aGlzLnByZXZpb3VzRm9jdXMgPSBhY3RpdmVFbCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBGb2N1c1RyYXBUcmFja2VyU2VydmljZS5zZXRDdXJyZW50KGZ0ZSk7XG5cbiAgICAvLyBzZXRUaW1lb3V0IGhlcmUgaXMgcmVxdWlyZWQgZm9yIFNhZmFyaSB3aGljaCBtYXkgdHJ5IHRvIHNldCBmb2N1cyBvblxuICAgIC8vIGVsZW1lbnQgYmVmb3JlIGl0IGlzIHZpc2libGUuLi5cbiAgICBjb25zdCBmb2N1c1RpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZpcnN0Rm9jdXNFbGVtZW50LmZvY3VzKCk7XG4gICAgICBjbGVhclRpbWVvdXQoZm9jdXNUaW1lcik7XG4gICAgfSwgMTApO1xuXG4gICAgdGhpcy5vbkZvY3VzSW5FdmVudCA9IHRoaXMub25Gb2N1c0luLmJpbmQodGhpcyk7XG4gICAgdGhpcy51bmxpc3RlbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuX2RvY3VtZW50LCAnZm9jdXNpbicsIHRoaXMub25Gb2N1c0luRXZlbnQpO1xuICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIHJlbW92ZUZvY3VzVHJhcCgpIHtcbiAgICBpZiAodGhpcy51bmxpc3Rlbikge1xuICAgICAgdGhpcy51bmxpc3RlbigpO1xuICAgIH1cblxuICAgIHJlbW92ZVJlYm91bmRFbGVtZW50c0Zyb21Gb2N1c1RyYXBFbGVtZW50KHRoaXMuZm9jdXNUcmFwRWxlbWVudCk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5mb2N1c1RyYXBFbGVtZW50LCAndGFiaW5kZXgnKTtcbiAgICBGb2N1c1RyYXBUcmFja2VyU2VydmljZS5hY3RpdmF0ZVByZXZpb3VzQ3VycmVudCgpO1xuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMucHJldmlvdXNGb2N1cykge1xuICAgICAgdGhpcy5wcmV2aW91c0ZvY3VzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkZvY3VzSW4oZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICByZWZvY3VzSWZPdXRzaWRlRm9jdXNUcmFwRWxlbWVudChcbiAgICAgIGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdIGFzIEhUTUxFbGVtZW50LFxuICAgICAgdGhpcy5mb2N1c1RyYXBFbGVtZW50LFxuICAgICAgdGhpcy5maXJzdEZvY3VzRWxlbWVudFxuICAgICk7XG4gIH1cbn1cbiJdfQ==