igniteui-angular 18.1.5 → 18.1.6

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 (31) hide show
  1. package/esm2022/lib/input-group/input-group.component.mjs +5 -9
  2. package/fesm2022/igniteui-angular.mjs +4 -8
  3. package/fesm2022/igniteui-angular.mjs.map +1 -1
  4. package/lib/core/styles/components/divider/_divider-theme.scss +1 -1
  5. package/package.json +1 -1
  6. package/styles/igniteui-angular-dark.css +1 -1
  7. package/styles/igniteui-angular.css +1 -1
  8. package/styles/igniteui-bootstrap-dark.css +1 -1
  9. package/styles/igniteui-bootstrap-light.css +1 -1
  10. package/styles/igniteui-dark-green.css +1 -1
  11. package/styles/igniteui-fluent-dark-excel.css +1 -1
  12. package/styles/igniteui-fluent-dark-word.css +1 -1
  13. package/styles/igniteui-fluent-dark.css +1 -1
  14. package/styles/igniteui-fluent-light-excel.css +1 -1
  15. package/styles/igniteui-fluent-light-word.css +1 -1
  16. package/styles/igniteui-fluent-light.css +1 -1
  17. package/styles/igniteui-indigo-dark.css +1 -1
  18. package/styles/igniteui-indigo-light.css +1 -1
  19. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  20. package/styles/maps/igniteui-angular.css.map +1 -1
  21. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  22. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  23. package/styles/maps/igniteui-dark-green.css.map +1 -1
  24. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  25. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  26. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  27. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  28. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  29. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  30. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  31. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -329,14 +329,10 @@ export class IgxInputGroupComponent {
329
329
  }
330
330
  /** @hidden @internal */
331
331
  ngAfterViewChecked() {
332
- if (!this._theme) {
333
- const theme = this.theme ?? this.themeService.getComponentTheme(this.element);
334
- if (theme) {
335
- Promise.resolve().then(() => {
336
- this._theme$.next(theme);
337
- this.cdr.markForCheck();
338
- });
339
- }
332
+ const theme = this.themeService.getComponentTheme(this.element);
333
+ if (theme) {
334
+ this._theme$.next(theme);
335
+ this.cdr.markForCheck();
340
336
  }
341
337
  }
342
338
  /** @hidden @internal */
@@ -443,4 +439,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImpor
443
439
  type: HostBinding,
444
440
  args: ['class.igx-input-group--search']
445
441
  }] } });
446
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNySCxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsV0FBVyxFQUNYLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUUzQixRQUFRLEVBQWEsZ0JBQWdCLEVBQ3hDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBeUIsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDaEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXFCLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFn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K0JGLEtBQUs7c0JBRGYsS0FBSztnQkF3Q0MsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFhMUIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEI1QixXQUFXO3NCQURyQixXQUFXO3VCQUFDLGlDQUFpQztnQkFZbkMsV0FBVztzQkFEckIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBb0RuQyxTQUFTO3NCQURuQixXQUFXO3VCQUFDLDRCQUE0QjtnQkFpQjlCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsNkJBQTZCO2dCQXFCL0IsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywrQkFBK0I7Z0JBZ0JqQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQjtnQkFnQmpDLGVBQWU7c0JBRHpCLFdBQVc7dUJBQUMsa0NBQWtDO2dCQWdCcEMsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywrQkFBK0I7Z0JBZ0JqQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NsYXNzLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCwgUXVlcnlMaXN0LCBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUlucHV0UmVzb3VyY2VTdHJpbmdzLCBJbnB1dFJlc291cmNlU3RyaW5nc0VOIH0gZnJvbSAnLi4vY29yZS9pMThuL2lucHV0LXJlc291cmNlcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybVV0aWwgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SGludERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvaGludC9oaW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIElneElucHV0RGlyZWN0aXZlLFxuICAgIElneElucHV0U3RhdGVcbn0gZnJvbSAnLi4vZGlyZWN0aXZlcy9pbnB1dC9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4UHJlZml4RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9wcmVmaXgvcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hTdWZmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3N1ZmZpeC9zdWZmaXguZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgSWd4SW5wdXRHcm91cEJhc2UgfSBmcm9tICcuL2lucHV0LWdyb3VwLmNvbW1vbic7XG5pbXBvcnQgeyBJZ3hJbnB1dEdyb3VwVHlwZSwgSUdYX0lOUFVUX0dST1VQX1RZUEUgfSBmcm9tICcuL2lucHV0R3JvdXBUeXBlJztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IGdldEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vcmVzb3VyY2VzJztcbmltcG9ydCB7IElneFRoZW1lLCBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90aGVtZS90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1pbnB1dC1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICdpbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJZ3hJbnB1dEdyb3VwQmFzZSwgdXNlRXhpc3Rpbmc6IElneElucHV0R3JvdXBDb21wb25lbnQgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgSWd4UHJlZml4RGlyZWN0aXZlLCBJZ3hCdXR0b25EaXJlY3RpdmUsIE5nQ2xhc3MsIElneFN1ZmZpeERpcmVjdGl2ZSwgSWd4SWNvbkNvbXBvbmVudCwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0XVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgSWd4SW5wdXRHcm91cEJhc2UsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKiBCeSBkZWZhdWx0IGl0IHVzZXMgRU4gcmVzb3VyY2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXNvdXJjZVN0cmluZ3ModmFsdWU6IElJbnB1dFJlc291cmNlU3RyaW5ncykge1xuICAgICAgICB0aGlzLl9yZXNvdXJjZVN0cmluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9yZXNvdXJjZVN0cmluZ3MsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzb3VyY2VTdHJpbmdzKCk6IElJbnB1dFJlc291cmNlU3RyaW5ncyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVN0cmluZ3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdGhhdCBlbmFibGVzL2Rpc2FibGVzIHRoZSBhdXRvLWdlbmVyYXRlZCBjbGFzcyBvZiB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgLlxuICAgICAqIEJ5IGRlZmF1bHQgYXBwbGllZCB0aGUgY2xhc3MgaXMgYXBwbGllZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXBcIilcbiAgICAgKiAgcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICB0aGlzLmlucHV0R3JvdXAuZGVmYXVsdENsYXNzID0gZmFsc2U7XG4gICAgICogYGBgXG4gICAgICogfVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwJylcbiAgICBwdWJsaWMgZGVmYXVsdENsYXNzID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXBsYWNlaG9sZGVyJylcbiAgICBwdWJsaWMgaGFzUGxhY2Vob2xkZXIgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXJlcXVpcmVkJylcbiAgICBwdWJsaWMgaXNSZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tZm9jdXNlZCcpXG4gICAgcHVibGljIGlzRm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKiBXaGVuIHRydXRoeSwgZGlzYWJsZXMgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YC5cbiAgICAgKiBDb250cm9sbGVkIGJ5IHRoZSB1bmRlcmx5aW5nIGBJZ3hJbnB1dERpcmVjdGl2ZWAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaW5wdXQtZ3JvdXAgW2Rpc2FibGVkXT1cInRydWVcIj48L2lneC1pbnB1dC1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUHJldmVudHMgYXV0b21hdGljYWxseSBmb2N1c2luZyB0aGUgaW5wdXQgd2hlbiBjbGlja2luZyBvbiBvdGhlciBlbGVtZW50cyBpbiB0aGUgaW5wdXQgZ3JvdXAgKGUuZy4gcHJlZml4IG9yIHN1ZmZpeCkuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrcyBBdXRvbWF0aWMgZm9jdXMgY2F1c2VzIHNvZnR3YXJlIGtleWJvYXJkIHRvIHNob3cgb24gbW9iaWxlIGRldmljZXMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWlucHV0LWdyb3VwIFtzdXBwcmVzc0lucHV0QXV0b2ZvY3VzXT1cInRydWVcIj48L2lneC1pbnB1dC1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgc3VwcHJlc3NJbnB1dEF1dG9mb2N1cyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0td2FybmluZycpXG4gICAgcHVibGljIGhhc1dhcm5pbmcgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hIaW50RGlyZWN0aXZlLCB7IHJlYWQ6IElneEhpbnREaXJlY3RpdmUgfSlcbiAgICBwcm90ZWN0ZWQgaGludHM6IFF1ZXJ5TGlzdDxJZ3hIaW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4UHJlZml4RGlyZWN0aXZlLCB7IHJlYWQ6IElneFByZWZpeERpcmVjdGl2ZSwgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgX3ByZWZpeGVzOiBRdWVyeUxpc3Q8SWd4UHJlZml4RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4U3VmZml4RGlyZWN0aXZlLCB7IHJlYWQ6IElneFN1ZmZpeERpcmVjdGl2ZSwgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgX3N1ZmZpeGVzOiBRdWVyeUxpc3Q8SWd4U3VmZml4RGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hJbnB1dERpcmVjdGl2ZSwgeyByZWFkOiBJZ3hJbnB1dERpcmVjdGl2ZSwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGlucHV0OiBJZ3hJbnB1dERpcmVjdGl2ZTtcblxuICAgIHByaXZhdGUgX3R5cGU6IElneElucHV0R3JvdXBUeXBlID0gbnVsbDtcbiAgICBwcml2YXRlIF9maWxsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF90aGVtZTogSWd4VGhlbWU7XG4gICAgcHJpdmF0ZSBfdGhlbWUkID0gbmV3IFN1YmplY3Q8SWd4VGhlbWU+KCk7XG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfcmVzb3VyY2VTdHJpbmdzID0gZ2V0Q3VycmVudFJlc291cmNlU3RyaW5ncyhJbnB1dFJlc291cmNlU3RyaW5nc0VOKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXZhbGlkJylcbiAgICBwdWJsaWMgZ2V0IHZhbGlkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LnZhbGlkID09PSBJZ3hJbnB1dFN0YXRlLlZBTElEO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWludmFsaWQnKVxuICAgIHB1YmxpYyBnZXQgaW52YWxpZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC52YWxpZCA9PT0gSWd4SW5wdXRTdGF0ZS5JTlZBTElEO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWZpbGxlZCcpXG4gICAgcHVibGljIGdldCBpc0ZpbGxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxlZCB8fCAodGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LnZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS10ZXh0YXJlYS1ncm91cCcpXG4gICAgcHVibGljIGdldCB0ZXh0QXJlYUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC5pc1RleHRBcmVhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgaG93IHRoZSBpbnB1dCB3aWxsIGJlIHN0eWxlZC5cbiAgICAgKiBBbGxvd2VkIHZhbHVlcyBvZiB0eXBlIElneElucHV0R3JvdXBUeXBlLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWlucHV0LWdyb3VwIFt0eXBlXT1cIidzZWFyY2gnXCI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KCd0eXBlJylcbiAgICBwdWJsaWMgc2V0IHR5cGUodmFsdWU6IElneElucHV0R3JvdXBUeXBlKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAuIEhvdyB0aGUgaW5wdXQgaXMgc3R5bGVkLlxuICAgICAqIFRoZSBkZWZhdWx0IGlzIGBsaW5lYC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpbnB1dFR5cGUgPSB0aGlzLmlucHV0R3JvdXAudHlwZTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZSB8fCB0aGlzLl9pbnB1dEdyb3VwVHlwZSB8fCAnbGluZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdGhlbWUgb2YgdGhlIGlucHV0LlxuICAgICAqIEFsbG93ZWQgdmFsdWVzIG9mIHR5cGUgSWd4SW5wdXRHcm91cFRoZW1lLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAqICBsZXQgaW5wdXRUaGVtZSA9ICdmbHVlbnQnO1xuICAgICAqIH1cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdGhlbWUodmFsdWU6IElneFRoZW1lKSB7XG4gICAgICAgIHRoaXMuX3RoZW1lID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdGhlbWUgb2YgdGhlIGlucHV0LlxuICAgICAqIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBvZiB0eXBlIElneElucHV0R3JvdXBUeXBlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAqICBsZXQgaW5wdXRUaGVtZSA9IHRoaXMuaW5wdXRHcm91cC50aGVtZTtcbiAgICAgKiB9XG4gICAgICovXG4gICAgcHVibGljIGdldCB0aGVtZSgpOiBJZ3hUaGVtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGVtZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KElHWF9JTlBVVF9HUk9VUF9UWVBFKVxuICAgICAgICBwcml2YXRlIF9pbnB1dEdyb3VwVHlwZTogSWd4SW5wdXRHcm91cFR5cGUsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpXG4gICAgICAgIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3RoZW1lID0gdGhpcy50aGVtZVNlcnZpY2UuZ2xvYmFsVGhlbWU7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fdGhlbWUkLmFzT2JzZXJ2YWJsZSgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90aGVtZSA9IHZhbHVlIGFzIElneFRoZW1lO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pc0ZvY3VzZWQgJiZcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICAhdGhpcy5zdXBwcmVzc0lucHV0QXV0b2ZvY3VzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uUG9pbnRlckRvd24oZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQgJiYgZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgaGludENsaWNrSGFuZGxlcihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCBoYXMgaGludHMuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXBcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaW5wdXRIaW50cyA9IHRoaXMuaW5wdXRHcm91cC5oYXNIaW50cztcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNIaW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludHMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tcHJlZml4ZWQnKVxuICAgIHB1YmxpYyBnZXQgaGFzUHJlZml4ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcmVmaXhlcy5sZW5ndGggPiAwIHx8IHRoaXMuaXNGaWxlVHlwZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgc2V0IHByZWZpeGVzKGl0ZW1zOiBRdWVyeUxpc3Q8SWd4UHJlZml4RGlyZWN0aXZlPikge1xuICAgICAgICB0aGlzLl9wcmVmaXhlcyA9IGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1zdWZmaXhlZCcpXG4gICAgcHVibGljIGdldCBoYXNTdWZmaXhlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1ZmZpeGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5pc0ZpbGVUeXBlICYmIHRoaXMuaXNGaWxsZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHNldCBzdWZmaXhlcyhpdGVtczogUXVlcnlMaXN0PElneFByZWZpeERpcmVjdGl2ZT4pIHtcbiAgICAgICAgdGhpcy5fc3VmZml4ZXMgPSBpdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCBoYXMgYm9yZGVyLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlucHV0Qm9yZGVyID0gdGhpcy5pbnB1dEdyb3VwLmhhc0JvcmRlcjtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNCb3JkZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy50eXBlID09PSAnbGluZScgfHwgdGhpcy50eXBlID09PSAnYm94JykgJiZcbiAgICAgICAgICAgIHRoaXMuX3RoZW1lID09PSAnbWF0ZXJpYWwnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdHlwZSBpcyBsaW5lLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVMaW5lID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUxpbmU7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNUeXBlTGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2xpbmUnICYmIHRoaXMuX3RoZW1lID09PSAnbWF0ZXJpYWwnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHR5cGUgaXMgYm94LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVCb3ggPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlQm94O1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tYm94JylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUJveCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2JveCcgJiYgdGhpcy5fdGhlbWUgPT09ICdtYXRlcmlhbCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHVwbG9hZEJ1dHRvbkhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBjbGVhclZhbHVlSGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy5pbnB1dC5jbGVhcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1maWxlJylcbiAgICBwdWJsaWMgZ2V0IGlzRmlsZVR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LnR5cGUgPT09ICdmaWxlJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgZ2V0IGZpbGVOYW1lcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQuZmlsZU5hbWVzIHx8IHRoaXMuX3Jlc291cmNlU3RyaW5ncy5pZ3hfaW5wdXRfZmlsZV9wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0eXBlIGlzIGJvcmRlci5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlQm9yZGVyID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUJvcmRlcjtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWJvcmRlcicpXG4gICAgcHVibGljIGdldCBpc1R5cGVCb3JkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdib3JkZXInICYmIHRoaXMuX3RoZW1lID09PSAnbWF0ZXJpYWwnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHRoZW1lIGlzIEZsdWVudC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlRmx1ZW50ID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUZsdWVudDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWZsdWVudCcpXG4gICAgcHVibGljIGdldCBpc1R5cGVGbHVlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGVtZSA9PT0gJ2ZsdWVudCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdGhlbWUgaXMgQm9vdHN0cmFwLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVCb290c3RyYXAgPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlQm9vdHN0cmFwO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tYm9vdHN0cmFwJylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUJvb3RzdHJhcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RoZW1lID09PSAnYm9vdHN0cmFwJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0aGVtZSBpcyBJbmRpZ28uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZUluZGlnbyA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVJbmRpZ287XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1pbmRpZ28nKVxuICAgIHB1YmxpYyBnZXQgaXNUeXBlSW5kaWdvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGhlbWUgPT09ICdpbmRpZ28nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHR5cGUgaXMgc2VhcmNoLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVTZWFyY2ggPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlU2VhcmNoO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tc2VhcmNoJylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZVNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ3NlYXJjaCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgZ2V0IGZpbGxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBzZXQgZmlsbGVkKHZhbCkge1xuICAgICAgICB0aGlzLl9maWxsZWQgPSB2YWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl90aGVtZSkge1xuICAgICAgICAgICAgY29uc3QgdGhlbWUgPSB0aGlzLnRoZW1lID8/IHRoaXMudGhlbWVTZXJ2aWNlLmdldENvbXBvbmVudFRoZW1lKHRoaXMuZWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICh0aGVtZSkge1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aGVtZSQubmV4dCh0aGVtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX193cmFwcGVyXCIgKm5nSWY9XCJpc1R5cGVCb3g7IGVsc2UgYnVuZGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1bmRsZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2hpbnRcIiAoY2xpY2spPVwiaGludENsaWNrSGFuZGxlcigkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LWhpbnQsIFtpZ3hIaW50XVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpZ3hMYWJlbF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpZ3hJbnB1dF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3ByZWZpeD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtcHJlZml4LCBbaWd4UHJlZml4XVwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdXBsb2FkQnV0dG9uPlxuICAgIDxpZ3gtcHJlZml4ICpuZ0lmPVwiaXNGaWxlVHlwZVwiIGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX191cGxvYWQtYnV0dG9uXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlneEJ1dHRvbj1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRCdXR0b25IYW5kbGVyKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lneC1pbnB1dC1ncm91cF9fdXBsb2FkLWJ1dHRvbic6IGlzVHlwZUxpbmUgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHJlc291cmNlU3RyaW5ncy5pZ3hfaW5wdXRfdXBsb2FkX2J1dHRvbiB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2lneC1wcmVmaXg+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZpbGVzPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0ZpbGVUeXBlXCJcbiAgICAgICAgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2ZpbGUtaW5wdXRcIlxuICAgICAgICBbdGl0bGVdPVwiZmlsZU5hbWVzXCJcbiAgICA+XG4gICAgICAgIDxzcGFuPnt7IGZpbGVOYW1lcyB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2xlYXI+XG4gICAgPGlneC1zdWZmaXhcbiAgICAgICAgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2NsZWFyLWljb25cIlxuICAgICAgICAqbmdJZj1cImlzRmlsZVR5cGUgJiYgaXNGaWxsZWRcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZUhhbmRsZXIoKVwiXG4gICAgICAgIChrZXlkb3duLkVudGVyKT1cImNsZWFyVmFsdWVIYW5kbGVyKClcIlxuICAgICAgICB0aXRsZT1cImNsZWFyIGZpbGVzXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICA+XG4gICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cImlucHV0X2NsZWFyXCI+PC9pZ3gtaWNvbj5cbiAgICA8L2lneC1zdWZmaXg+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3N1ZmZpeD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtc3VmZml4LCBbaWd4U3VmZml4XVwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWF0ZXJpYWxCdW5kbGU+XG4gICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1zdGFydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fbm90Y2hcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtbWFpblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZXNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fZmlsbGVyXCI+PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLWVuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsZWFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VmZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2xpbmVcIiAqbmdJZj1cImhhc0JvcmRlclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmbHVlbnRCdW5kbGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLXN0YXJ0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLW1haW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1lbmRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbGVhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1ZmZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19saW5lXCIgKm5nSWY9XCJoYXNCb3JkZXJcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYm9vdHN0cmFwQnVuZGxlPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1zdGFydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVzXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLWVuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsZWFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VmZml4XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidW5kbGU+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidGhlbWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb3RzdHJhcCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib290c3RyYXBCdW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZsdWVudCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmbHVlbnRCdW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGlnbydcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmbHVlbnRCdW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1hdGVyaWFsQnVuZGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
442
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNySCxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsV0FBVyxFQUNYLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUUzQixRQUFRLEVBQWEsZ0JBQWdCLEVBQ3hDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBeUIsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDaEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXFCLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFn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RHJCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQVluQyxXQUFXO3NCQURyQixXQUFXO3VCQUFDLGlDQUFpQztnQkFvRG5DLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsNEJBQTRCO2dCQWlCOUIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBcUIvQixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQjtnQkFnQmpDLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsK0JBQStCO2dCQWdCakMsZUFBZTtzQkFEekIsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBZ0JwQyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLCtCQUErQjtnQkFnQmpDLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5nQ2xhc3MsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nU3dpdGNoRGVmYXVsdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLCBRdWVyeUxpc3QsIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSW5wdXRSZXNvdXJjZVN0cmluZ3MsIElucHV0UmVzb3VyY2VTdHJpbmdzRU4gfSBmcm9tICcuLi9jb3JlL2kxOG4vaW5wdXQtcmVzb3VyY2VzJztcbmltcG9ydCB7IFBsYXRmb3JtVXRpbCB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSWd4QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hIaW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9oaW50L2hpbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgSWd4SW5wdXREaXJlY3RpdmUsXG4gICAgSWd4SW5wdXRTdGF0ZVxufSBmcm9tICcuLi9kaXJlY3RpdmVzL2lucHV0L2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hQcmVmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3ByZWZpeC9wcmVmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc3VmZml4L3N1ZmZpeC5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBJZ3hJbnB1dEdyb3VwQmFzZSB9IGZyb20gJy4vaW5wdXQtZ3JvdXAuY29tbW9uJztcbmltcG9ydCB7IElneElucHV0R3JvdXBUeXBlLCBJR1hfSU5QVVRfR1JPVVBfVFlQRSB9IGZyb20gJy4vaW5wdXRHcm91cFR5cGUnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSWd4VGhlbWUsIFRoZW1lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RoZW1lL3RoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWlucHV0LWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2lucHV0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElneElucHV0R3JvdXBCYXNlLCB1c2VFeGlzdGluZzogSWd4SW5wdXRHcm91cENvbXBvbmVudCB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBJZ3hQcmVmaXhEaXJlY3RpdmUsIElneEJ1dHRvbkRpcmVjdGl2ZSwgTmdDbGFzcywgSWd4U3VmZml4RGlyZWN0aXZlLCBJZ3hJY29uQ29tcG9uZW50LCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHRdXG59KVxuZXhwb3J0IGNsYXNzIElneElucHV0R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBJZ3hJbnB1dEdyb3VwQmFzZSwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgdXNlcyBFTiByZXNvdXJjZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogSUlucHV0UmVzb3VyY2VTdHJpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jlc291cmNlU3RyaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3Jlc291cmNlU3RyaW5ncywgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJlc291cmNlIHN0cmluZ3MuXG4gICAgICovXG4gICAgcHVibGljIGdldCByZXNvdXJjZVN0cmluZ3MoKTogSUlucHV0UmVzb3VyY2VTdHJpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU3RyaW5ncztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB0aGF0IGVuYWJsZXMvZGlzYWJsZXMgdGhlIGF1dG8tZ2VuZXJhdGVkIGNsYXNzIG9mIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAuXG4gICAgICogQnkgZGVmYXVsdCBhcHBsaWVkIHRoZSBjbGFzcyBpcyBhcHBsaWVkLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqICBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiAgbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogIHRoaXMuaW5wdXRHcm91cC5kZWZhdWx0Q2xhc3MgPSBmYWxzZTtcbiAgICAgKiBgYGBcbiAgICAgKiB9XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tcGxhY2Vob2xkZXInKVxuICAgIHB1YmxpYyBoYXNQbGFjZWhvbGRlciA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tcmVxdWlyZWQnKVxuICAgIHB1YmxpYyBpc1JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1mb2N1c2VkJylcbiAgICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqIFdoZW4gdHJ1dGh5LCBkaXNhYmxlcyB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgLlxuICAgICAqIENvbnRyb2xsZWQgYnkgdGhlIHVuZGVybHlpbmcgYElneElucHV0RGlyZWN0aXZlYC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1pbnB1dC1ncm91cCBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvaWd4LWlucHV0LWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1kaXNhYmxlZCcpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50cyBhdXRvbWF0aWNhbGx5IGZvY3VzaW5nIHRoZSBpbnB1dCB3aGVuIGNsaWNraW5nIG9uIG90aGVyIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBncm91cCAoZS5nLiBwcmVmaXggb3Igc3VmZml4KS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzIEF1dG9tYXRpYyBmb2N1cyBjYXVzZXMgc29mdHdhcmUga2V5Ym9hcmQgdG8gc2hvdyBvbiBtb2JpbGUgZGV2aWNlcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaW5wdXQtZ3JvdXAgW3N1cHByZXNzSW5wdXRBdXRvZm9jdXNdPVwidHJ1ZVwiPjwvaWd4LWlucHV0LWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyBzdXBwcmVzc0lucHV0QXV0b2ZvY3VzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS13YXJuaW5nJylcbiAgICBwdWJsaWMgaGFzV2FybmluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneEhpbnREaXJlY3RpdmUsIHsgcmVhZDogSWd4SGludERpcmVjdGl2ZSB9KVxuICAgIHByb3RlY3RlZCBoaW50czogUXVlcnlMaXN0PElneEhpbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hQcmVmaXhEaXJlY3RpdmUsIHsgcmVhZDogSWd4UHJlZml4RGlyZWN0aXZlLCBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBfcHJlZml4ZXM6IFF1ZXJ5TGlzdDxJZ3hQcmVmaXhEaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hTdWZmaXhEaXJlY3RpdmUsIHsgcmVhZDogSWd4U3VmZml4RGlyZWN0aXZlLCBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBfc3VmZml4ZXM6IFF1ZXJ5TGlzdDxJZ3hTdWZmaXhEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKElneElucHV0RGlyZWN0aXZlLCB7IHJlYWQ6IElneElucHV0RGlyZWN0aXZlLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgaW5wdXQ6IElneElucHV0RGlyZWN0aXZlO1xuXG4gICAgcHJpdmF0ZSBfdHlwZTogSWd4SW5wdXRHcm91cFR5cGUgPSBudWxsO1xuICAgIHByaXZhdGUgX2ZpbGxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3RoZW1lOiBJZ3hUaGVtZTtcbiAgICBwcml2YXRlIF90aGVtZSQgPSBuZXcgU3ViamVjdDxJZ3hUaGVtZT4oKTtcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9yZXNvdXJjZVN0cmluZ3MgPSBnZXRDdXJyZW50UmVzb3VyY2VTdHJpbmdzKElucHV0UmVzb3VyY2VTdHJpbmdzRU4pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tdmFsaWQnKVxuICAgIHB1YmxpYyBnZXQgdmFsaWRDbGFzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQudmFsaWQgPT09IElneElucHV0U3RhdGUuVkFMSUQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0taW52YWxpZCcpXG4gICAgcHVibGljIGdldCBpbnZhbGlkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LnZhbGlkID09PSBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tZmlsbGVkJylcbiAgICBwdWJsaWMgZ2V0IGlzRmlsbGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsbGVkIHx8ICh0aGlzLmlucHV0ICYmIHRoaXMuaW5wdXQudmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXRleHRhcmVhLWdyb3VwJylcbiAgICBwdWJsaWMgZ2V0IHRleHRBcmVhQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LmlzVGV4dEFyZWE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBob3cgdGhlIGlucHV0IHdpbGwgYmUgc3R5bGVkLlxuICAgICAqIEFsbG93ZWQgdmFsdWVzIG9mIHR5cGUgSWd4SW5wdXRHcm91cFR5cGUuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaW5wdXQtZ3JvdXAgW3R5cGVdPVwiJ3NlYXJjaCdcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoJ3R5cGUnKVxuICAgIHB1YmxpYyBzZXQgdHlwZSh2YWx1ZTogSWd4SW5wdXRHcm91cFR5cGUpIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YC4gSG93IHRoZSBpbnB1dCBpcyBzdHlsZWQuXG4gICAgICogVGhlIGRlZmF1bHQgaXMgYGxpbmVgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlucHV0VHlwZSA9IHRoaXMuaW5wdXRHcm91cC50eXBlO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlIHx8IHRoaXMuX2lucHV0R3JvdXBUeXBlIHx8ICdsaW5lJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0aGVtZSBvZiB0aGUgaW5wdXQuXG4gICAgICogQWxsb3dlZCB2YWx1ZXMgb2YgdHlwZSBJZ3hJbnB1dEdyb3VwVGhlbWUuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXBcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICogIGxldCBpbnB1dFRoZW1lID0gJ2ZsdWVudCc7XG4gICAgICogfVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0aGVtZSh2YWx1ZTogSWd4VGhlbWUpIHtcbiAgICAgICAgdGhpcy5fdGhlbWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0aGVtZSBvZiB0aGUgaW5wdXQuXG4gICAgICogVGhlIHJldHVybmVkIHZhbHVlIGlzIG9mIHR5cGUgSWd4SW5wdXRHcm91cFR5cGUuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXBcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICogIGxldCBpbnB1dFRoZW1lID0gdGhpcy5pbnB1dEdyb3VwLnRoZW1lO1xuICAgICAqIH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRoZW1lKCk6IElneFRoZW1lIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RoZW1lO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoSUdYX0lOUFVUX0dST1VQX1RZUEUpXG4gICAgICAgIHByaXZhdGUgX2lucHV0R3JvdXBUeXBlOiBJZ3hJbnB1dEdyb3VwVHlwZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVClcbiAgICAgICAgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxuICAgICAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IFRoZW1lU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5fdGhlbWUgPSB0aGlzLnRoZW1lU2VydmljZS5nbG9iYWxUaGVtZTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl90aGVtZSQuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3RoZW1lID0gdmFsdWUgYXMgSWd4VGhlbWU7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLmlzRm9jdXNlZCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICF0aGlzLnN1cHByZXNzSW5wdXRBdXRvZm9jdXNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25Qb2ludGVyRG93bihldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRm9jdXNlZCAmJiBldmVudC50YXJnZXQgIT09IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBoaW50Q2xpY2tIYW5kbGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIGhhcyBoaW50cy5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cFwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpbnB1dEhpbnRzID0gdGhpcy5pbnB1dEdyb3VwLmhhc0hpbnRzO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGhhc0hpbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oaW50cy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1wcmVmaXhlZCcpXG4gICAgcHVibGljIGdldCBoYXNQcmVmaXhlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZWZpeGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5pc0ZpbGVUeXBlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBzZXQgcHJlZml4ZXMoaXRlbXM6IFF1ZXJ5TGlzdDxJZ3hQcmVmaXhEaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuX3ByZWZpeGVzID0gaXRlbXM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLXN1ZmZpeGVkJylcbiAgICBwdWJsaWMgZ2V0IGhhc1N1ZmZpeGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VmZml4ZXMubGVuZ3RoID4gMCB8fCB0aGlzLmlzRmlsZVR5cGUgJiYgdGhpcy5pc0ZpbGxlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgc2V0IHN1ZmZpeGVzKGl0ZW1zOiBRdWVyeUxpc3Q8SWd4UHJlZml4RGlyZWN0aXZlPikge1xuICAgICAgICB0aGlzLl9zdWZmaXhlcyA9IGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIGhhcyBib3JkZXIuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXBcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaW5wdXRCb3JkZXIgPSB0aGlzLmlucHV0R3JvdXAuaGFzQm9yZGVyO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGhhc0JvcmRlcigpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0aGlzLnR5cGUgPT09ICdsaW5lJyB8fCB0aGlzLnR5cGUgPT09ICdib3gnKSAmJlxuICAgICAgICAgICAgdGhpcy5fdGhlbWUgPT09ICdtYXRlcmlhbCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0eXBlIGlzIGxpbmUuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZUxpbmUgPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlTGluZTtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc1R5cGVMaW5lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSAnbGluZScgJiYgdGhpcy5fdGhlbWUgPT09ICdtYXRlcmlhbCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdHlwZSBpcyBib3guXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZUJveCA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVCb3g7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1ib3gnKVxuICAgIHB1YmxpYyBnZXQgaXNUeXBlQm94KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSAnYm94JyAmJiB0aGlzLl90aGVtZSA9PT0gJ21hdGVyaWFsJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgdXBsb2FkQnV0dG9uSGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGNsZWFyVmFsdWVIYW5kbGVyKCkge1xuICAgICAgICB0aGlzLmlucHV0LmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWZpbGUnKVxuICAgIHB1YmxpYyBnZXQgaXNGaWxlVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQudHlwZSA9PT0gJ2ZpbGUnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgZmlsZU5hbWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC5maWxlTmFtZXMgfHwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLmlneF9pbnB1dF9maWxlX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHR5cGUgaXMgYm9yZGVyLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVCb3JkZXIgPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlQm9yZGVyO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tYm9yZGVyJylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUJvcmRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2JvcmRlcicgJiYgdGhpcy5fdGhlbWUgPT09ICdtYXRlcmlhbCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdGhlbWUgaXMgRmx1ZW50LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlJbnB1dEdyb3VwMVwiKVxuICAgICAqIHB1YmxpYyBpbnB1dEdyb3VwOiBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50O1xuICAgICAqIG5nQWZ0ZXJWaWV3SW5pdCgpe1xuICAgICAqICAgIGxldCBpc1R5cGVGbHVlbnQgPSB0aGlzLmlucHV0R3JvdXAuaXNUeXBlRmx1ZW50O1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cC0tZmx1ZW50JylcbiAgICBwdWJsaWMgZ2V0IGlzVHlwZUZsdWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RoZW1lID09PSAnZmx1ZW50JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50YCB0aGVtZSBpcyBCb290c3RyYXAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZUJvb3RzdHJhcCA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVCb290c3RyYXA7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1ib290c3RyYXAnKVxuICAgIHB1YmxpYyBnZXQgaXNUeXBlQm9vdHN0cmFwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGhlbWUgPT09ICdib290c3RyYXAnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYElneElucHV0R3JvdXBDb21wb25lbnRgIHRoZW1lIGlzIEluZGlnby5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZChcIk15SW5wdXRHcm91cDFcIilcbiAgICAgKiBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICBsZXQgaXNUeXBlSW5kaWdvID0gdGhpcy5pbnB1dEdyb3VwLmlzVHlwZUluZGlnbztcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtaW5wdXQtZ3JvdXAtLWluZGlnbycpXG4gICAgcHVibGljIGdldCBpc1R5cGVJbmRpZ28oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGVtZSA9PT0gJ2luZGlnbyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBgSWd4SW5wdXRHcm91cENvbXBvbmVudGAgdHlwZSBpcyBzZWFyY2guXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUlucHV0R3JvdXAxXCIpXG4gICAgICogcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgICogbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgbGV0IGlzVHlwZVNlYXJjaCA9IHRoaXMuaW5wdXRHcm91cC5pc1R5cGVTZWFyY2g7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwLS1zZWFyY2gnKVxuICAgIHB1YmxpYyBnZXQgaXNUeXBlU2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSAnc2VhcmNoJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBnZXQgZmlsbGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsbGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHNldCBmaWxsZWQodmFsKSB7XG4gICAgICAgIHRoaXMuX2ZpbGxlZCA9IHZhbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICBjb25zdCB0aGVtZSA9IHRoaXMudGhlbWVTZXJ2aWNlLmdldENvbXBvbmVudFRoZW1lKHRoaXMuZWxlbWVudCk7XG5cbiAgICAgICAgaWYgKHRoZW1lKSB7XG4gICAgICAgICAgICB0aGlzLl90aGVtZSQubmV4dCh0aGVtZSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fd3JhcHBlclwiICpuZ0lmPVwiaXNUeXBlQm94OyBlbHNlIGJ1bmRsZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidW5kbGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19oaW50XCIgKGNsaWNrKT1cImhpbnRDbGlja0hhbmRsZXIoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlneC1oaW50LCBbaWd4SGludF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaWd4TGFiZWxdXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaWd4SW5wdXRdXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwcmVmaXg+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LXByZWZpeCwgW2lneFByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3VwbG9hZEJ1dHRvbj5cbiAgICA8aWd4LXByZWZpeCAqbmdJZj1cImlzRmlsZVR5cGVcIiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fdXBsb2FkLWJ1dHRvblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZ3hCdXR0b249XCJjb250YWluZWRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQnV0dG9uSGFuZGxlcigpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpZ3gtaW5wdXQtZ3JvdXBfX3VwbG9hZC1idXR0b24nOiBpc1R5cGVMaW5lIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyByZXNvdXJjZVN0cmluZ3MuaWd4X2lucHV0X3VwbG9hZF9idXR0b24gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9pZ3gtcHJlZml4PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmaWxlcz5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNGaWxlVHlwZVwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19maWxlLWlucHV0XCJcbiAgICAgICAgW3RpdGxlXT1cImZpbGVOYW1lc1wiXG4gICAgPlxuICAgICAgICA8c3Bhbj57eyBmaWxlTmFtZXMgfX08L3NwYW4+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NsZWFyPlxuICAgIDxpZ3gtc3VmZml4XG4gICAgICAgIGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19jbGVhci1pY29uXCJcbiAgICAgICAgKm5nSWY9XCJpc0ZpbGVUeXBlICYmIGlzRmlsbGVkXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWVIYW5kbGVyKClcIlxuICAgICAgICAoa2V5ZG93bi5FbnRlcik9XCJjbGVhclZhbHVlSGFuZGxlcigpXCJcbiAgICAgICAgdGl0bGU9XCJjbGVhciBmaWxlc1wiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgPlxuICAgICAgICA8aWd4LWljb24gZmFtaWx5PVwiZGVmYXVsdFwiIG5hbWU9XCJpbnB1dF9jbGVhclwiPjwvaWd4LWljb24+XG4gICAgPC9pZ3gtc3VmZml4PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdWZmaXg+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LXN1ZmZpeCwgW2lneFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21hdGVyaWFsQnVuZGxlPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtc3RhcnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVmaXhcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX25vdGNoXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlLW1haW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2ZpbGxlclwiPjwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1lbmRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbGVhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1ZmZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19saW5lXCIgKm5nSWY9XCJoYXNCb3JkZXJcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmx1ZW50QnVuZGxlPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fYnVuZGxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1zdGFydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1tYWluXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWxlc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtZW5kXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xlYXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWZmaXhcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1pbnB1dC1ncm91cF9fbGluZVwiICpuZ0lmPVwiaGFzQm9yZGVyXCI+PC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Jvb3RzdHJhcEJ1bmRsZT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWlucHV0LWdyb3VwX19idW5kbGUtc3RhcnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVmaXhcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWxlc1wiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtaW5wdXQtZ3JvdXBfX2J1bmRsZS1lbmRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbGVhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN1ZmZpeFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnVuZGxlPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRoZW1lXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidib290c3RyYXAnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9vdHN0cmFwQnVuZGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmbHVlbnQnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmx1ZW50QnVuZGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbmRpZ28nXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmx1ZW50QnVuZGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtYXRlcmlhbEJ1bmRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -10037,14 +10037,10 @@ class IgxInputGroupComponent {
10037
10037
  }
10038
10038
  /** @hidden @internal */
10039
10039
  ngAfterViewChecked() {
10040
- if (!this._theme) {
10041
- const theme = this.theme ?? this.themeService.getComponentTheme(this.element);
10042
- if (theme) {
10043
- Promise.resolve().then(() => {
10044
- this._theme$.next(theme);
10045
- this.cdr.markForCheck();
10046
- });
10047
- }
10040
+ const theme = this.themeService.getComponentTheme(this.element);
10041
+ if (theme) {
10042
+ this._theme$.next(theme);
10043
+ this.cdr.markForCheck();
10048
10044
  }
10049
10045
  }
10050
10046
  /** @hidden @internal */