tango-app-ui-shared 3.7.3-dev2 → 3.7.3-dev20

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 (44) hide show
  1. package/esm2022/lib/modules/layout/header/brands-header/brands-header.component.mjs +18 -0
  2. package/esm2022/lib/modules/layout/header/header-banner/header-banner.component.mjs +27 -0
  3. package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +3 -3
  4. package/esm2022/lib/modules/layout/header/header.component.mjs +216 -11
  5. package/esm2022/lib/modules/layout/header/plano-header/plano-header.component.mjs +12 -0
  6. package/esm2022/lib/modules/layout/header/stores-header/stores-header.component.mjs +61 -0
  7. package/esm2022/lib/modules/layout/layout/layout.component.mjs +69 -24
  8. package/esm2022/lib/modules/layout/layout.module.mjs +27 -4
  9. package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +6 -8
  10. package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +4 -3
  11. package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +3 -3
  12. package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +1 -2
  13. package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +11 -5
  14. package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +344 -132
  15. package/esm2022/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.mjs +65 -15
  16. package/esm2022/lib/modules/layout/toolbar/trax-header/trax-header.component.mjs +68 -17
  17. package/esm2022/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.mjs +67 -17
  18. package/esm2022/lib/routes/route-wraper-modules/eyetest-wrapper.module.mjs +18 -0
  19. package/esm2022/lib/routes/routing.mjs +6 -1
  20. package/esm2022/lib/services/auth.service.mjs +37 -1
  21. package/fesm2022/tango-app-ui-shared-eyetest-wrapper.module-CfO814JB.mjs +21 -0
  22. package/fesm2022/tango-app-ui-shared-eyetest-wrapper.module-CfO814JB.mjs.map +1 -0
  23. package/fesm2022/{tango-app-ui-shared-intro.module-DYh4ZRha.mjs → tango-app-ui-shared-intro.module-DyE2keRn.mjs} +6 -4
  24. package/fesm2022/{tango-app-ui-shared-intro.module-DYh4ZRha.mjs.map → tango-app-ui-shared-intro.module-DyE2keRn.mjs.map} +1 -1
  25. package/fesm2022/{tango-app-ui-shared-notification.module-C5ZmCf8U.mjs → tango-app-ui-shared-notification.module-C1uJuY1m.mjs} +6 -4
  26. package/fesm2022/{tango-app-ui-shared-notification.module-C5ZmCf8U.mjs.map → tango-app-ui-shared-notification.module-C1uJuY1m.mjs.map} +1 -1
  27. package/fesm2022/tango-app-ui-shared.mjs +5983 -5215
  28. package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
  29. package/lib/modules/layout/header/brands-header/brands-header.component.d.ts +8 -0
  30. package/lib/modules/layout/header/header-banner/header-banner.component.d.ts +12 -0
  31. package/lib/modules/layout/header/header.component.d.ts +46 -3
  32. package/lib/modules/layout/header/plano-header/plano-header.component.d.ts +5 -0
  33. package/lib/modules/layout/header/stores-header/stores-header.component.d.ts +17 -0
  34. package/lib/modules/layout/layout/layout.component.d.ts +6 -2
  35. package/lib/modules/layout/layout.module.d.ts +16 -10
  36. package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +2 -1
  37. package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +1 -0
  38. package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +36 -5
  39. package/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.d.ts +10 -3
  40. package/lib/modules/layout/toolbar/trax-header/trax-header.component.d.ts +10 -3
  41. package/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.d.ts +10 -3
  42. package/lib/routes/route-wraper-modules/eyetest-wrapper.module.d.ts +7 -0
  43. package/lib/services/auth.service.d.ts +6 -0
  44. package/package.json +1 -1
@@ -125,10 +125,10 @@ export class SidebarComponent {
125
125
  this.unsubscribe.forEach((sb) => sb.unsubscribe());
126
126
  }
127
127
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarComponent, deps: [{ token: i1.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
128
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SidebarComponent, selector: "lib-sidebar", ngImport: i0, template: "<!--begin::Logo-->\r\n<lib-sidebar-logo class=\"app-sidebar-logo px-6\" id=\"kt_app_sidebar_logo\"\r\n [toggleButtonClass]=\"toggleButtonClass\" [toggleEnabled]=\"toggleEnabled\" [toggleType]=\"toggleType\"\r\n [toggleState]=\"toggleState\">\r\n</lib-sidebar-logo>\r\n<!--end::Logo-->\r\n\r\n<!--begin::sidebar menu-->\r\n<lib-sidebar-menu class=\"app-sidebar-menu overflow-hidden flex-column-fluid\">\r\n</lib-sidebar-menu>\r\n<!--end::sidebar menu-->\r\n\r\n<!--begin::Footer-->\r\n<lib-sidebar-footer class=\"app-sidebar-footer flex-column-auto pt-2\" id=\"kt_app_sidebar_footer\">\r\n</lib-sidebar-footer>\r\n<!--end::Footer-->\r\n", styles: [".app-sidebar-footer{background:var(--Gray-700, #344054)}\n"], dependencies: [{ kind: "component", type: i2.SidebarLogoComponent, selector: "lib-sidebar-logo", inputs: ["toggleButtonClass", "toggleEnabled", "toggleType", "toggleState"] }, { kind: "component", type: i3.SidebarMenuComponent, selector: "lib-sidebar-menu" }, { kind: "component", type: i4.SidebarFooterComponent, selector: "lib-sidebar-footer", inputs: ["toggleButtonClass", "toggleEnabled", "toggleType", "toggleState", "userValuefooter"] }] });
128
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SidebarComponent, selector: "lib-sidebar", ngImport: i0, template: "<!--begin::Logo-->\r\n<lib-sidebar-logo class=\"app-sidebar-logo h-70px px-6\" id=\"kt_app_sidebar_logo\"\r\n [toggleButtonClass]=\"toggleButtonClass\" [toggleEnabled]=\"toggleEnabled\" [toggleType]=\"toggleType\"\r\n [toggleState]=\"toggleState\">\r\n</lib-sidebar-logo>\r\n<!--end::Logo-->\r\n\r\n<!--begin::sidebar menu-->\r\n<lib-sidebar-menu class=\"app-sidebar-menu overflow-hidden flex-column-fluid\">\r\n</lib-sidebar-menu>\r\n<!--end::sidebar menu-->\r\n\r\n<!--begin::Footer-->\r\n<lib-sidebar-footer class=\"app-sidebar-footer flex-column-auto pt-2\" id=\"kt_app_sidebar_footer\">\r\n</lib-sidebar-footer>\r\n<!--end::Footer-->\r\n", styles: [".app-sidebar-footer{background:var(--Gray-700, #344054)}\n"], dependencies: [{ kind: "component", type: i2.SidebarLogoComponent, selector: "lib-sidebar-logo", inputs: ["toggleButtonClass", "toggleEnabled", "toggleType", "toggleState"] }, { kind: "component", type: i3.SidebarMenuComponent, selector: "lib-sidebar-menu" }, { kind: "component", type: i4.SidebarFooterComponent, selector: "lib-sidebar-footer", inputs: ["toggleButtonClass", "toggleEnabled", "toggleType", "toggleState", "userValuefooter"] }] });
129
129
  }
130
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarComponent, decorators: [{
131
131
  type: Component,
132
- args: [{ selector: 'lib-sidebar', template: "<!--begin::Logo-->\r\n<lib-sidebar-logo class=\"app-sidebar-logo px-6\" id=\"kt_app_sidebar_logo\"\r\n [toggleButtonClass]=\"toggleButtonClass\" [toggleEnabled]=\"toggleEnabled\" [toggleType]=\"toggleType\"\r\n [toggleState]=\"toggleState\">\r\n</lib-sidebar-logo>\r\n<!--end::Logo-->\r\n\r\n<!--begin::sidebar menu-->\r\n<lib-sidebar-menu class=\"app-sidebar-menu overflow-hidden flex-column-fluid\">\r\n</lib-sidebar-menu>\r\n<!--end::sidebar menu-->\r\n\r\n<!--begin::Footer-->\r\n<lib-sidebar-footer class=\"app-sidebar-footer flex-column-auto pt-2\" id=\"kt_app_sidebar_footer\">\r\n</lib-sidebar-footer>\r\n<!--end::Footer-->\r\n", styles: [".app-sidebar-footer{background:var(--Gray-700, #344054)}\n"] }]
132
+ args: [{ selector: 'lib-sidebar', template: "<!--begin::Logo-->\r\n<lib-sidebar-logo class=\"app-sidebar-logo h-70px px-6\" id=\"kt_app_sidebar_logo\"\r\n [toggleButtonClass]=\"toggleButtonClass\" [toggleEnabled]=\"toggleEnabled\" [toggleType]=\"toggleType\"\r\n [toggleState]=\"toggleState\">\r\n</lib-sidebar-logo>\r\n<!--end::Logo-->\r\n\r\n<!--begin::sidebar menu-->\r\n<lib-sidebar-menu class=\"app-sidebar-menu overflow-hidden flex-column-fluid\">\r\n</lib-sidebar-menu>\r\n<!--end::sidebar menu-->\r\n\r\n<!--begin::Footer-->\r\n<lib-sidebar-footer class=\"app-sidebar-footer flex-column-auto pt-2\" id=\"kt_app_sidebar_footer\">\r\n</lib-sidebar-footer>\r\n<!--end::Footer-->\r\n", styles: [".app-sidebar-footer{background:var(--Gray-700, #344054)}\n"] }]
133
133
  }], ctorParameters: () => [{ type: i1.LayoutService }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVVwRSxNQUFNLE9BQU8sZ0JBQWdCO0lBOEJQO0lBN0JaLFdBQVcsR0FBbUIsRUFBRSxDQUFDO0lBQ3pDLFNBQVMsQ0FBSTtJQUNiLGVBQWU7SUFDZixpQkFBaUIsQ0FBVTtJQUMzQiw2QkFBNkIsQ0FBVTtJQUN2Qyx1Q0FBdUMsQ0FBVTtJQUNqRCx1Q0FBdUMsQ0FBVTtJQUNqRCx5Q0FBeUMsQ0FBVTtJQUNuRCxzQ0FBc0MsQ0FBVTtJQUNoRCxzQ0FBc0MsQ0FBVTtJQUNoRCx3Q0FBd0MsQ0FBVTtJQUNsRCx1Q0FBdUMsQ0FBVTtJQUNqRCx1Q0FBdUMsQ0FBVTtJQUNqRCxzQ0FBc0MsQ0FBVTtJQUNoRCxzQ0FBc0MsQ0FBVTtJQUVoRCwyQkFBMkIsQ0FBVTtJQUNyQyw0QkFBNEIsQ0FBVTtJQUN0QywyQkFBMkIsQ0FBVTtJQUVyQyx3QkFBd0IsQ0FBVTtJQUVsQyxPQUFPO0lBQ1AsZ0NBQWdDLENBQVU7SUFDMUMsaUJBQWlCLENBQVM7SUFDMUIsYUFBYSxDQUFVO0lBQ3ZCLFVBQVUsQ0FBUztJQUNuQixXQUFXLENBQVM7SUFFcEIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUFHLENBQUM7SUFFN0MsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FB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d0dBL0xVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLG1EQ1Y3Qixnb0JBZ0JBOzs0RkROYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IElMYXlvdXQgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpZGViYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgdXNlclZhbHVlOmFueVxyXG4gIC8vIHB1YmxpYyBwcm9wc1xyXG4gIGFwcFNpZGViYXJEaXNwbGF5OiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0Rml4ZWREZXNrdG9wOiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZXNrdG9wRW5hYmxlZDogYm9vbGVhbjtcclxuICBhcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcERlZmF1bHQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BIb3ZlcmFibGU6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZURlZmF1bHQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZUhvdmVyYWJsZTogYm9vbGVhbjtcclxuICBhcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZURlc2t0b3BEZWZhdWx0OiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VNb2JpbGVFbmFibGVkOiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VNb2JpbGVEZWZhdWx0OiBib29sZWFuO1xyXG5cclxuICBhcHBTaWRlYmFyRGVmYXVsdFB1c2hIZWFkZXI6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRQdXNoVG9vbGJhcjogYm9vbGVhbjtcclxuICBhcHBTaWRlYmFyRGVmYXVsdFB1c2hGb290ZXI6IGJvb2xlYW47XHJcblxyXG4gIGFwcFNpZGViYXJEZWZhdWx0U3RhY2tlZDogYm9vbGVhbjtcclxuXHJcbiAgLy8gbG9nb1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZWZhdWx0OiBib29sZWFuO1xyXG4gIHRvZ2dsZUJ1dHRvbkNsYXNzOiBzdHJpbmc7XHJcbiAgdG9nZ2xlRW5hYmxlZDogYm9vbGVhbjtcclxuICB0b2dnbGVUeXBlOiBzdHJpbmc7XHJcbiAgdG9nZ2xlU3RhdGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3Vic2NyID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZmlnU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnN1YnNjcmliZSgoY29uZmlnOiBJTGF5b3V0KSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wcyhjb25maWcpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUucHVzaChzdWJzY3IpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvcHMoY29uZmlnOiBJTGF5b3V0KSB7XHJcbiAgICB0aGlzLmFwcFNpZGViYXJEaXNwbGF5ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcCgnYXBwLnNpZGViYXIuZGlzcGxheScsIGNvbmZpZykgYXMgYm9vbGVhbjtcclxuICAgIGlmICghdGhpcy5hcHBTaWRlYmFyRGlzcGxheSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdEZpeGVkRGVza3RvcCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LmZpeGVkLmRlc2t0b3AnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuXHJcbiAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZXNrdG9wRW5hYmxlZCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLmRlc2t0b3AuZW5hYmxlZCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BEZWZhdWx0ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgICAnYXBwLnNpZGViYXIuZGVmYXVsdC5taW5pbWl6ZS5kZXNrdG9wLmRlZmF1bHQnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIGJvb2xlYW47XHJcbiAgICAgIC8vIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZXNrdG9wRGVmYXVsdCkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLWt0LWFwcC1zaWRlYmFyLW1pbmltaXplJywgJ29uJyk7XHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BIb3ZlcmFibGUgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLmRlc2t0b3AuaG92ZXJhYmxlJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcEhvdmVyYWJsZSkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLWt0LWFwcC1zaWRlYmFyLWhvdmVyYWJsZScsICd0cnVlJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVFbmFibGVkID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQubWluaW1pemUubW9iaWxlLmVuYWJsZWQnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZURlZmF1bHQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLm1vYmlsZS5kZWZhdWx0JyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICAvLyBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplTW9iaWxlRGVmYXVsdCkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLWt0LWFwcC1zaWRlYmFyLW1pbmltaXplLW1vYmlsZScsICdvbicpO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVIb3ZlcmFibGUgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLm1vYmlsZS5ob3ZlcmFibGUnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIGJvb2xlYW47XHJcbiAgICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVIb3ZlcmFibGUpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcclxuICAgICAgICAgICdkYXRhLWt0LWFwcC1zaWRlYmFyLWhvdmVyYWJsZS1tb2JpbGUnLFxyXG4gICAgICAgICAgJ3RydWUnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZURlc2t0b3BFbmFibGVkID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQuY29sbGFwc2UuZGVza3RvcC5lbmFibGVkJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcEVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcERlZmF1bHQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LmNvbGxhcHNlLmRlc2t0b3AuZGVmYXVsdCcsXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgICkgYXMgYm9vbGVhbjtcclxuICAgICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZURlc2t0b3BEZWZhdWx0KSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItY29sbGFwc2UnLCAnb24nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZU1vYmlsZUVuYWJsZWQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAnYXBwLnNpZGViYXIuZGVmYXVsdC5jb2xsYXBzZS5tb2JpbGUuZW5hYmxlZCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZU1vYmlsZUVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlTW9iaWxlRGVmYXVsdCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQuY29sbGFwc2UubW9iaWxlLmRlZmF1bHQnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIGJvb2xlYW47XHJcbiAgICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VNb2JpbGVEZWZhdWx0KSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItY29sbGFwc2UtbW9iaWxlJywgJ29uJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYXlvdXQuZ2V0UHJvcCgnYXBwLnNpZGViYXIuZGVmYXVsdC5wdXNoJykpIHtcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hIZWFkZXIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LnB1c2guaGVhZGVyJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hIZWFkZXIpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnZGF0YS1rdC1hcHAtc2lkZWJhci1wdXNoLWhlYWRlcicsICd0cnVlJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRQdXNoVG9vbGJhciA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQucHVzaC50b29sYmFyJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hUb29sYmFyKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItcHVzaC10b29sYmFyJywgJ3RydWUnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hGb290ZXIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LnB1c2guZm9vdGVyJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hGb290ZXIpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnZGF0YS1rdC1hcHAtc2lkZWJhci1wdXNoLWZvb3RlcicsICd0cnVlJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0U3RhY2tlZCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LnN0YWNrZWQnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0U3RhY2tlZCkge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnYXBwLXNpZGViYXItc3RhY2tlZCcsICd0cnVlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTG9nb1xyXG4gICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVmYXVsdCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLmRlc2t0b3AuZGVmYXVsdCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgdGhpcy50b2dnbGVCdXR0b25DbGFzcyA9IHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlZmF1bHRcclxuICAgICAgPyAnYWN0aXZlJ1xyXG4gICAgICA6ICcnO1xyXG4gICAgdGhpcy50b2dnbGVFbmFibGVkID1cclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcEVuYWJsZWQgfHxcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcEVuYWJsZWQ7XHJcbiAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcEVuYWJsZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVUeXBlID0gJ21pbmltaXplJztcclxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSA9ICdhY3RpdmUnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VEZXNrdG9wRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnRvZ2dsZVR5cGUgPSAnY29sbGFwc2UnO1xyXG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItZW5hYmxlZCcsICd0cnVlJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcclxuICAgICAgJ2RhdGEta3QtYXBwLXNpZGViYXItZml4ZWQnLFxyXG4gICAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0Rml4ZWREZXNrdG9wLnRvU3RyaW5nKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tYmVnaW46OkxvZ28tLT5cclxuPGxpYi1zaWRlYmFyLWxvZ28gY2xhc3M9XCJhcHAtc2lkZWJhci1sb2dvIHB4LTZcIiBpZD1cImt0X2FwcF9zaWRlYmFyX2xvZ29cIlxyXG4gIFt0b2dnbGVCdXR0b25DbGFzc109XCJ0b2dnbGVCdXR0b25DbGFzc1wiIFt0b2dnbGVFbmFibGVkXT1cInRvZ2dsZUVuYWJsZWRcIiBbdG9nZ2xlVHlwZV09XCJ0b2dnbGVUeXBlXCJcclxuICBbdG9nZ2xlU3RhdGVdPVwidG9nZ2xlU3RhdGVcIj5cclxuPC9saWItc2lkZWJhci1sb2dvPlxyXG48IS0tZW5kOjpMb2dvLS0+XHJcblxyXG48IS0tYmVnaW46OnNpZGViYXIgbWVudS0tPlxyXG48bGliLXNpZGViYXItbWVudSBjbGFzcz1cImFwcC1zaWRlYmFyLW1lbnUgb3ZlcmZsb3ctaGlkZGVuIGZsZXgtY29sdW1uLWZsdWlkXCI+XHJcbjwvbGliLXNpZGViYXItbWVudT5cclxuPCEtLWVuZDo6c2lkZWJhciBtZW51LS0+XHJcblxyXG48IS0tYmVnaW46OkZvb3Rlci0tPlxyXG48bGliLXNpZGViYXItZm9vdGVyICBjbGFzcz1cImFwcC1zaWRlYmFyLWZvb3RlciBmbGV4LWNvbHVtbi1hdXRvIHB0LTJcIiBpZD1cImt0X2FwcF9zaWRlYmFyX2Zvb3RlclwiPlxyXG48L2xpYi1zaWRlYmFyLWZvb3Rlcj5cclxuPCEtLWVuZDo6Rm9vdGVyLS0+XHJcbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVVwRSxNQUFNLE9BQU8sZ0JBQWdCO0lBOEJQO0lBN0JaLFdBQVcsR0FBbUIsRUFBRSxDQUFDO0lBQ3pDLFNBQVMsQ0FBSTtJQUNiLGVBQWU7SUFDZixpQkFBaUIsQ0FBVTtJQUMzQiw2QkFBNkIsQ0FBVTtJQUN2Qyx1Q0FBdUMsQ0FBVTtJQUNqRCx1Q0FBdUMsQ0FBVTtJQUNqRCx5Q0FBeUMsQ0FBVTtJQUNuRCxzQ0FBc0MsQ0FBVTtJQUNoRCxzQ0FBc0MsQ0FBVTtJQUNoRCx3Q0FBd0MsQ0FBVTtJQUNsRCx1Q0FBdUMsQ0FBVTtJQUNqRCx1Q0FBdUMsQ0FBVTtJQUNqRCxzQ0FBc0MsQ0FBVTtJQUNoRCxzQ0FBc0MsQ0FBVTtJQUVoRCwyQkFBMkIsQ0FBVTtJQUNyQyw0QkFBNEIsQ0FBVTtJQUN0QywyQkFBMkIsQ0FBVTtJQUVyQyx3QkFBd0IsQ0FBVTtJQUVsQyxPQUFPO0lBQ1AsZ0NBQWdDLENBQVU7SUFDMUMsaUJBQWlCLENBQVM7SUFDMUIsYUFBYSxDQUFVO0lBQ3ZCLFVBQVUsQ0FBUztJQUNuQixXQUFXLENBQVM7SUFFcEIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUFHLENBQUM7SUFFN0MsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FB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d0dBL0xVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLG1EQ1Y3Qix1b0JBZ0JBOzs0RkROYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IElMYXlvdXQgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpZGViYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgdXNlclZhbHVlOmFueVxyXG4gIC8vIHB1YmxpYyBwcm9wc1xyXG4gIGFwcFNpZGViYXJEaXNwbGF5OiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0Rml4ZWREZXNrdG9wOiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZXNrdG9wRW5hYmxlZDogYm9vbGVhbjtcclxuICBhcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcERlZmF1bHQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BIb3ZlcmFibGU6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZURlZmF1bHQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZUhvdmVyYWJsZTogYm9vbGVhbjtcclxuICBhcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZURlc2t0b3BEZWZhdWx0OiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VNb2JpbGVFbmFibGVkOiBib29sZWFuO1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VNb2JpbGVEZWZhdWx0OiBib29sZWFuO1xyXG5cclxuICBhcHBTaWRlYmFyRGVmYXVsdFB1c2hIZWFkZXI6IGJvb2xlYW47XHJcbiAgYXBwU2lkZWJhckRlZmF1bHRQdXNoVG9vbGJhcjogYm9vbGVhbjtcclxuICBhcHBTaWRlYmFyRGVmYXVsdFB1c2hGb290ZXI6IGJvb2xlYW47XHJcblxyXG4gIGFwcFNpZGViYXJEZWZhdWx0U3RhY2tlZDogYm9vbGVhbjtcclxuXHJcbiAgLy8gbG9nb1xyXG4gIGFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZWZhdWx0OiBib29sZWFuO1xyXG4gIHRvZ2dsZUJ1dHRvbkNsYXNzOiBzdHJpbmc7XHJcbiAgdG9nZ2xlRW5hYmxlZDogYm9vbGVhbjtcclxuICB0b2dnbGVUeXBlOiBzdHJpbmc7XHJcbiAgdG9nZ2xlU3RhdGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3Vic2NyID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZmlnU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnN1YnNjcmliZSgoY29uZmlnOiBJTGF5b3V0KSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wcyhjb25maWcpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUucHVzaChzdWJzY3IpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvcHMoY29uZmlnOiBJTGF5b3V0KSB7XHJcbiAgICB0aGlzLmFwcFNpZGViYXJEaXNwbGF5ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcCgnYXBwLnNpZGViYXIuZGlzcGxheScsIGNvbmZpZykgYXMgYm9vbGVhbjtcclxuICAgIGlmICghdGhpcy5hcHBTaWRlYmFyRGlzcGxheSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdEZpeGVkRGVza3RvcCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LmZpeGVkLmRlc2t0b3AnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuXHJcbiAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZXNrdG9wRW5hYmxlZCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLmRlc2t0b3AuZW5hYmxlZCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BEZWZhdWx0ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgICAnYXBwLnNpZGViYXIuZGVmYXVsdC5taW5pbWl6ZS5kZXNrdG9wLmRlZmF1bHQnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIGJvb2xlYW47XHJcbiAgICAgIC8vIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVEZXNrdG9wRGVmYXVsdCkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLWt0LWFwcC1zaWRlYmFyLW1pbmltaXplJywgJ29uJyk7XHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlc2t0b3BIb3ZlcmFibGUgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLmRlc2t0b3AuaG92ZXJhYmxlJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcEhvdmVyYWJsZSkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLWt0LWFwcC1zaWRlYmFyLWhvdmVyYWJsZScsICd0cnVlJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVFbmFibGVkID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQubWluaW1pemUubW9iaWxlLmVuYWJsZWQnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZU1vYmlsZURlZmF1bHQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLm1vYmlsZS5kZWZhdWx0JyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICAvLyBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplTW9iaWxlRGVmYXVsdCkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLWt0LWFwcC1zaWRlYmFyLW1pbmltaXplLW1vYmlsZScsICdvbicpO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVIb3ZlcmFibGUgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLm1vYmlsZS5ob3ZlcmFibGUnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIGJvb2xlYW47XHJcbiAgICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0TWluaW1pemVNb2JpbGVIb3ZlcmFibGUpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcclxuICAgICAgICAgICdkYXRhLWt0LWFwcC1zaWRlYmFyLWhvdmVyYWJsZS1tb2JpbGUnLFxyXG4gICAgICAgICAgJ3RydWUnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZURlc2t0b3BFbmFibGVkID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQuY29sbGFwc2UuZGVza3RvcC5lbmFibGVkJyxcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcEVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcERlZmF1bHQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LmNvbGxhcHNlLmRlc2t0b3AuZGVmYXVsdCcsXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgICkgYXMgYm9vbGVhbjtcclxuICAgICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZURlc2t0b3BEZWZhdWx0KSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItY29sbGFwc2UnLCAnb24nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZU1vYmlsZUVuYWJsZWQgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAnYXBwLnNpZGViYXIuZGVmYXVsdC5jb2xsYXBzZS5tb2JpbGUuZW5hYmxlZCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwU2lkZWJhckRlZmF1bHRDb2xsYXBzZU1vYmlsZUVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlTW9iaWxlRGVmYXVsdCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQuY29sbGFwc2UubW9iaWxlLmRlZmF1bHQnLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICApIGFzIGJvb2xlYW47XHJcbiAgICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VNb2JpbGVEZWZhdWx0KSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItY29sbGFwc2UtbW9iaWxlJywgJ29uJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYXlvdXQuZ2V0UHJvcCgnYXBwLnNpZGViYXIuZGVmYXVsdC5wdXNoJykpIHtcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hIZWFkZXIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LnB1c2guaGVhZGVyJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hIZWFkZXIpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnZGF0YS1rdC1hcHAtc2lkZWJhci1wdXNoLWhlYWRlcicsICd0cnVlJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYXBwU2lkZWJhckRlZmF1bHRQdXNoVG9vbGJhciA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICAgJ2FwcC5zaWRlYmFyLmRlZmF1bHQucHVzaC50b29sYmFyJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hUb29sYmFyKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItcHVzaC10b29sYmFyJywgJ3RydWUnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hGb290ZXIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LnB1c2guZm9vdGVyJyxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKSBhcyBib29sZWFuO1xyXG4gICAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdFB1c2hGb290ZXIpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnZGF0YS1rdC1hcHAtc2lkZWJhci1wdXNoLWZvb3RlcicsICd0cnVlJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0U3RhY2tlZCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0LnN0YWNrZWQnLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0U3RhY2tlZCkge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgnYXBwLXNpZGViYXItc3RhY2tlZCcsICd0cnVlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTG9nb1xyXG4gICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVmYXVsdCA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgICdhcHAuc2lkZWJhci5kZWZhdWx0Lm1pbmltaXplLmRlc2t0b3AuZGVmYXVsdCcsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgdGhpcy50b2dnbGVCdXR0b25DbGFzcyA9IHRoaXMuYXBwU2lkZWJhckRlZmF1bHRNaW5pbWl6ZURlZmF1bHRcclxuICAgICAgPyAnYWN0aXZlJ1xyXG4gICAgICA6ICcnO1xyXG4gICAgdGhpcy50b2dnbGVFbmFibGVkID1cclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcEVuYWJsZWQgfHxcclxuICAgICAgdGhpcy5hcHBTaWRlYmFyRGVmYXVsdENvbGxhcHNlRGVza3RvcEVuYWJsZWQ7XHJcbiAgICBpZiAodGhpcy5hcHBTaWRlYmFyRGVmYXVsdE1pbmltaXplRGVza3RvcEVuYWJsZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVUeXBlID0gJ21pbmltaXplJztcclxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSA9ICdhY3RpdmUnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmFwcFNpZGViYXJEZWZhdWx0Q29sbGFwc2VEZXNrdG9wRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnRvZ2dsZVR5cGUgPSAnY29sbGFwc2UnO1xyXG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ2RhdGEta3QtYXBwLXNpZGViYXItZW5hYmxlZCcsICd0cnVlJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcclxuICAgICAgJ2RhdGEta3QtYXBwLXNpZGViYXItZml4ZWQnLFxyXG4gICAgICB0aGlzLmFwcFNpZGViYXJEZWZhdWx0Rml4ZWREZXNrdG9wLnRvU3RyaW5nKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tYmVnaW46OkxvZ28tLT5cclxuPGxpYi1zaWRlYmFyLWxvZ28gY2xhc3M9XCJhcHAtc2lkZWJhci1sb2dvIGgtNzBweCBweC02XCIgaWQ9XCJrdF9hcHBfc2lkZWJhcl9sb2dvXCJcclxuICBbdG9nZ2xlQnV0dG9uQ2xhc3NdPVwidG9nZ2xlQnV0dG9uQ2xhc3NcIiBbdG9nZ2xlRW5hYmxlZF09XCJ0b2dnbGVFbmFibGVkXCIgW3RvZ2dsZVR5cGVdPVwidG9nZ2xlVHlwZVwiXHJcbiAgW3RvZ2dsZVN0YXRlXT1cInRvZ2dsZVN0YXRlXCI+XHJcbjwvbGliLXNpZGViYXItbG9nbz5cclxuPCEtLWVuZDo6TG9nby0tPlxyXG5cclxuPCEtLWJlZ2luOjpzaWRlYmFyIG1lbnUtLT5cclxuPGxpYi1zaWRlYmFyLW1lbnUgY2xhc3M9XCJhcHAtc2lkZWJhci1tZW51IG92ZXJmbG93LWhpZGRlbiBmbGV4LWNvbHVtbi1mbHVpZFwiPlxyXG48L2xpYi1zaWRlYmFyLW1lbnU+XHJcbjwhLS1lbmQ6OnNpZGViYXIgbWVudS0tPlxyXG5cclxuPCEtLWJlZ2luOjpGb290ZXItLT5cclxuPGxpYi1zaWRlYmFyLWZvb3RlciAgY2xhc3M9XCJhcHAtc2lkZWJhci1mb290ZXIgZmxleC1jb2x1bW4tYXV0byBwdC0yXCIgaWQ9XCJrdF9hcHBfc2lkZWJhcl9mb290ZXJcIj5cclxuPC9saWItc2lkZWJhci1mb290ZXI+XHJcbjwhLS1lbmQ6OkZvb3Rlci0tPlxyXG4iXX0=
@@ -46,7 +46,6 @@ export class SingleStoreComponent {
46
46
  }
47
47
  ngOnInit() {
48
48
  const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
49
- console.log(this.URL);
50
49
  if (headerFilters?.client) {
51
50
  this.auth.getStores(headerFilters?.client).subscribe({
52
51
  next: (e) => {
@@ -174,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
174
173
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }], propDecorators: { urlString: [{
175
174
  type: Input
176
175
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXN0b3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3NpbmdsZS1zdG9yZS9zaW5nbGUtc3RvcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvc2luZ2xlLXN0b3JlL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFVekIsTUFBTSxPQUFPLG9CQUFvQjtJQXFCWDtJQUEwQjtJQUErQjtJQUE2QjtJQXBCakcsU0FBUyxDQUFLO0lBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDYixZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtRQUNoQyxNQUFNLFdBQVcsR0FBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDLENBQUE7SUFDQyxpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDNUIsU0FBUyxHQUFPLEVBQUUsQ0FBQTtJQUNsQixjQUFjLENBQUk7SUFDbEIsZUFBZSxHQUFRO1FBQ3JCLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFDLElBQUk7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLEVB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TyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO3dHQTdLWSxvQkFBb0I7NEZBQXBCLG9CQUFvQixpSENaakMsdWlIQXVDQTs7NEZEM0JhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7c0tBS25CLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpbmdsZS1zdG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbmdsZVN0b3JlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdXJsU3RyaW5nOmFueTtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9ICBtID4gdGhpcy5kYXlqcygpOyAgICBcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbn1cclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgc3RvcmVMaXN0OmFueSA9IFtdXHJcbiAgc2VsZWN0ZWRDbGllbnQ6YW55XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjbGllbnQ6IG51bGwsXHJcbiAgICBjbGllbnROYW1lOm51bGwsXHJcbiAgICBjbGllbnRzOiBbXSxcclxuICAgIHN0b3JlOiBudWxsLFxyXG4gICAgc3RvcmVzOiBbXSxcclxuICAgIGRhdGU6IG51bGwsXHJcblxyXG4gIH07XHJcbiAgVVJMOiBhbnk7XHJcbiAgYmFzZXVybDphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOkF1dGhTZXJ2aWNlLCBwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHJvdXRlcjpSb3V0ZXIpe1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgIGNvbnN0IHVwZGF0ZWRVcmwgPSBjdXJyZW50VXJsLnJlcGxhY2UoXHJcbiAgICAgIC9cXC9tYW5hZ2VcXC9zdG9yZXNcXC9cXGQrLVxcZCtcXC8vLFxyXG4gICAgICBgL21hbmFnZS9zdG9yZXMvYFxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVybCA9IHVwZGF0ZWRVcmw7XHJcbiAgICB0aGlzLmJhc2V1cmwgPSB1cmwuc3BsaXQoXCI/XCIpWzFdO1xyXG4gICAgdGhpcy5VUkw9IHVybC5zcGxpdChcIj9cIilbMF0uc3BsaXQoJy8nKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuVVJMKVxyXG4gICAgaWYoaGVhZGVyRmlsdGVycz8uY2xpZW50KXtcclxuICAgIHRoaXMuYXV0aC5nZXRTdG9yZXMoaGVhZGVyRmlsdGVycz8uY2xpZW50KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gZS5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKGhlYWRlckZpbHRlcnM/LmRhdGU/LnN0YXJ0RGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzPy5kYXRlPy5lbmREYXRlLCBcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGlmIChoZWFkZXJGaWx0ZXJzPy5zdG9yZSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlTGlzdC5maW5kKChvYmo6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvYmouc3RvcmVJZCA9PT0gaGVhZGVyRmlsdGVycy5zdG9yZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENsaWVudCA9IG9iajtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gIGhlYWRlckZpbHRlcnMuc3RvcmU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gIGhlYWRlckZpbHRlcnMuY2xpZW50O1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudE5hbWUgPSAgaGVhZGVyRmlsdGVycy5jbGllbnROYW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSAgaGVhZGVyRmlsdGVycy5jbGllbnRzOyAgXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZU5hbWUgPSAgaGVhZGVyRmlsdGVycy5zdG9yZU5hbWU7IFxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGFydERhdGU6dGhpcy5kYXlqcyggaGVhZGVyRmlsdGVycy5kYXRlLnN0YXJ0RGF0ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCBoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSB0aGlzLnN0b3JlTGlzdFswXTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSAgdGhpcy5zZWxlY3RlZENsaWVudC5zdG9yZUlkOyBcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gIGhlYWRlckZpbHRlcnMuY2xpZW50O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnROYW1lID0gIGhlYWRlckZpbHRlcnMuY2xpZW50TmFtZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50cyA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudHM7ICBcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmVOYW1lID0gIGhlYWRlckZpbHRlcnMuc3RvcmVOYW1lOyAgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdmFyIGRhdGV0aW1lID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBkYXRldGltZTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgXCJoZWFkZXItZmlsdGVyc1wiLFxyXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgfVxyXG4gIG9uQ2xpZW50U2VsZWN0KGV2ZW50OmFueSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2xpZW50ID0gZXZlbnRcclxuICB9XHJcblxyXG4gIHJhbmdlczogYW55ID0ge1xyXG4gICAgVG9kYXk6IFtcclxuICAgICAgdGhpcy5kYXlqcygpLFxyXG4gICAgICB0aGlzLmRheWpzKCksXHJcbiAgICBdLFxyXG4gICAgJ1llc3RlcmRheSc6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgJ2RheXMnKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyldLFxyXG4gICAgJ1RoaXMgV2Vlayc6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoNywgXCJkYXlzXCIpLCB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpXSxcclxuICAgICdMYXN0IFdlZWsnOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDE0LCAnZGF5cycpLnN0YXJ0T2YoJ2RheXMnKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDgsICdkYXlzJykuZW5kT2YoJ2RheXMnKV0sXHJcbiAgIFwiVGhpcyBNb250aFwiOiBbXHJcbiAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMzAsIFwiZGF5c1wiKSwgLy8gU3RhcnQgZGF0ZSBpcyAzMCBkYXlzIGJlZm9yZSB0b2RheVxyXG4gICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKSAvLyBFbmQgZGF0ZSBpcyBZZXN0ZXJkYXlcclxuICBdLFxyXG4gICAgJ0xhc3QgTW9udGgnOiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLFxyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuZW5kT2YoJ21vbnRoJylcclxuICAgIF1cclxuICB9O1xyXG5cclxuICBvblN0YXJ0RGF0ZUNoYW5nZShldmVudDphbnkpe1xyXG4gICAgaWYodGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSl7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7ICAgICAgICBcclxuICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsICdkYXlzJykpIDtcclxuICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbn1cclxufVxyXG5cclxuZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LnN0YXJ0RGF0ZSAmJiBldmVudC5lbmREYXRlKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkgJiZcclxuICAgICAgdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKS5pc1ZhbGlkKClcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUgPSBldmVudC5lbmREYXRlXHJcbiAgICAgIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGRhdGV0aW1lO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG4gICAgfVxyXG4gIH1lbHNlIHtcclxuICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSB0aGlzLmRheWpzKGhlYWRlckZpbHRlcnMuZGF0ZS5zdGFydERhdGUsXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZSxcIllZWVktTU0tRERcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQoaGVhZGVyRmlsdGVycyk7XHJcbiAgfSBcclxufVxyXG5cclxuQXBwbHkoKSB7XHJcbiAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgKTtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycyA9IGhlYWRlckZpbHRlcnM7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSB0aGlzLnNlbGVjdGVkQ2xpZW50LnN0b3JlSWQ7XHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG59XHJcblxyXG5xdWVyeVN0cmluZzphbnkgPSAnJ1xyXG5cclxubmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gIHRoaXMudXJsU3RyaW5nID0gY2hhbmdlcz8udXJsU3RyaW5nPy5jdXJyZW50VmFsdWUuc3BsaXQoJz8nKVswXS5zcGxpdCgnLycpO1xyXG4gIGlmKGNoYW5nZXM/LnVybFN0cmluZz8uY3VycmVudFZhbHVlLnNwbGl0KCc/JykubGVuZ3RoID4gMSkge1xyXG4gICAgdGhpcy5xdWVyeVN0cmluZyA9IGNoYW5nZXM/LnVybFN0cmluZz8uY3VycmVudFZhbHVlLnNwbGl0KCc/JylbMV07XHJcbiAgfVxyXG59XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIlVSTFsyXSAhPT0nY29udHJvbGNlbnRlcidcIiBjbGFzcz1cIndyYXBwZXIgbXgtMlwiID5cclxuICAgIDxsaWItc2VsZWN0IFtpdGVtc109XCJzdG9yZUxpc3RcIiBbbXVsdGldPVwiZmFsc2VcIiBbc2VhcmNoRmllbGRdPVwiJ3N0b3JlTmFtZSdcIiBbZGlzYWJsZWRdPVwiZmFsc2VcIiBbaWRGaWVsZF09XCInc3RvcmVJZCdcIlxyXG4gICAgICAgIChzZWxlY3RlZCk9XCJvbkNsaWVudFNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cIltzZWxlY3RlZENsaWVudF1cIj48L2xpYi1zZWxlY3Q+ICAgIFxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJVUkxbMl0gIT09J2NvbnRyb2xjZW50ZXInICYmICF1cmxTdHJpbmcuaW5jbHVkZXMoJ3BsYW5vJykgJiYgVVJMWzNdICE9PSAnYmVlYWhHcm91cCcgJiYgVVJMWzNdICE9PSAnYmVlYWhMaXZlJ1wiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbcmFuZ2VzXT1cInJhbmdlc1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBbYXV0b0FwcGx5XT1cInRydWVcIlxyXG4gICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIiAgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiVVJMWzJdID09PSdjb250cm9sY2VudGVyJyAmJiB1cmxTdHJpbmcuaW5jbHVkZXMoJ3BsYXliYWNrJykgfHwgVVJMWzNdID09PSAnYmVlYWhHcm91cCcgfHwgVVJMWzNdID09PSAnYmVlYWhMaXZlJ1wiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB3LTE1MHB4IHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbZHJvcHNdPVwiJ2Rvd24nXCJcclxuICAgICAgICBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJmYWxzZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2F1dG9BcHBseV09XCJ0cnVlXCIgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCIgKHN0YXJ0RGF0ZUNoYW5nZWQpPVwib25TdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiICBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiXHJcbiAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMX1cIlxyXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIlVSTFsyXSAhPT0nY29udHJvbGNlbnRlcidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXMtMlwiIChjbGljayk9XCJBcHBseSgpXCI+QXBwbHk8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuIl19
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXN0b3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3NpbmdsZS1zdG9yZS9zaW5nbGUtc3RvcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvc2luZ2xlLXN0b3JlL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFVekIsTUFBTSxPQUFPLG9CQUFvQjtJQXFCWDtJQUEwQjtJQUErQjtJQUE2QjtJQXBCakcsU0FBUyxDQUFLO0lBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDYixZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtRQUNoQyxNQUFNLFdBQVcsR0FBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDLENBQUE7SUFDQyxpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDNUIsU0FBUyxHQUFPLEVBQUUsQ0FBQTtJQUNsQixjQUFjLENBQUk7SUFDbEIsZUFBZSxHQUFRO1FBQ3JCLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFDLElBQUk7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLEVB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LE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO3dHQTVLWSxvQkFBb0I7NEZBQXBCLG9CQUFvQixpSENaakMsdWlIQXVDQTs7NEZEM0JhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7c0tBS25CLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpbmdsZS1zdG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbmdsZVN0b3JlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdXJsU3RyaW5nOmFueTtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9ICBtID4gdGhpcy5kYXlqcygpOyAgICBcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbn1cclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgc3RvcmVMaXN0OmFueSA9IFtdXHJcbiAgc2VsZWN0ZWRDbGllbnQ6YW55XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjbGllbnQ6IG51bGwsXHJcbiAgICBjbGllbnROYW1lOm51bGwsXHJcbiAgICBjbGllbnRzOiBbXSxcclxuICAgIHN0b3JlOiBudWxsLFxyXG4gICAgc3RvcmVzOiBbXSxcclxuICAgIGRhdGU6IG51bGwsXHJcblxyXG4gIH07XHJcbiAgVVJMOiBhbnk7XHJcbiAgYmFzZXVybDphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOkF1dGhTZXJ2aWNlLCBwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHJvdXRlcjpSb3V0ZXIpe1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgIGNvbnN0IHVwZGF0ZWRVcmwgPSBjdXJyZW50VXJsLnJlcGxhY2UoXHJcbiAgICAgIC9cXC9tYW5hZ2VcXC9zdG9yZXNcXC9cXGQrLVxcZCtcXC8vLFxyXG4gICAgICBgL21hbmFnZS9zdG9yZXMvYFxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVybCA9IHVwZGF0ZWRVcmw7XHJcbiAgICB0aGlzLmJhc2V1cmwgPSB1cmwuc3BsaXQoXCI/XCIpWzFdO1xyXG4gICAgdGhpcy5VUkw9IHVybC5zcGxpdChcIj9cIilbMF0uc3BsaXQoJy8nKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTtcclxuICAgIGlmKGhlYWRlckZpbHRlcnM/LmNsaWVudCl7XHJcbiAgICB0aGlzLmF1dGguZ2V0U3RvcmVzKGhlYWRlckZpbHRlcnM/LmNsaWVudCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IGUuZGF0YS5yZXN1bHQ7XHJcbiAgICAgICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzPy5kYXRlPy5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycz8uZGF0ZT8uZW5kRGF0ZSwgXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIilcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoaGVhZGVyRmlsdGVycz8uc3RvcmUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QuZmluZCgob2JqOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob2JqLnN0b3JlSWQgPT09IGhlYWRlckZpbHRlcnMuc3RvcmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBvYmo7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZSA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudDtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnROYW1lID0gIGhlYWRlckZpbHRlcnMuY2xpZW50TmFtZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gIGhlYWRlckZpbHRlcnMuY2xpZW50czsgIFxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmVOYW1lID0gIGhlYWRlckZpbHRlcnMuc3RvcmVOYW1lOyBcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgICAgc3RhcnREYXRlOnRoaXMuZGF5anMoIGhlYWRlckZpbHRlcnMuZGF0ZS5zdGFydERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyggaGVhZGVyRmlsdGVycy5kYXRlLmVuZERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICBcImhlYWRlci1maWx0ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2xpZW50ID0gdGhpcy5zdG9yZUxpc3RbMF07XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gIHRoaXMuc2VsZWN0ZWRDbGllbnQuc3RvcmVJZDsgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudDtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50TmFtZSA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudE5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSAgaGVhZGVyRmlsdGVycy5jbGllbnRzOyAgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlTmFtZSA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlTmFtZTsgIFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIH1cclxuICBvbkNsaWVudFNlbGVjdChldmVudDphbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZENsaWVudCA9IGV2ZW50XHJcbiAgfVxyXG5cclxuICByYW5nZXM6IGFueSA9IHtcclxuICAgIFRvZGF5OiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKSxcclxuICAgICAgdGhpcy5kYXlqcygpLFxyXG4gICAgXSxcclxuICAgICdZZXN0ZXJkYXknOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyksIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXSxcclxuICAgICdUaGlzIFdlZWsnOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDcsIFwiZGF5c1wiKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKV0sXHJcbiAgICAnTGFzdCBXZWVrJzogW3RoaXMuZGF5anMoKS5zdWJ0cmFjdCgxNCwgJ2RheXMnKS5zdGFydE9mKCdkYXlzJyksIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCg4LCAnZGF5cycpLmVuZE9mKCdkYXlzJyldLFxyXG4gICBcIlRoaXMgTW9udGhcIjogW1xyXG4gICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDMwLCBcImRheXNcIiksIC8vIFN0YXJ0IGRhdGUgaXMgMzAgZGF5cyBiZWZvcmUgdG9kYXlcclxuICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcImRheXNcIikgLy8gRW5kIGRhdGUgaXMgWWVzdGVyZGF5XHJcbiAgXSxcclxuICAgICdMYXN0IE1vbnRoJzogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpXHJcbiAgICBdXHJcbiAgfTtcclxuXHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6YW55KXtcclxuICAgIGlmKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpe1xyXG4gICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4geyAgICAgICAgXHJcbiAgICAgIGNvbnN0IGlzVmFsaWREYXRlID0gbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDkwLCAnZGF5cycpKSA7XHJcbiAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgfVxyXG59XHJcbn1cclxuXHJcbmRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmXHJcbiAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSBldmVudC5zdGFydERhdGVcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZXZlbnQuZW5kRGF0ZVxyXG4gICAgICB2YXIgZGF0ZXRpbWUgPSB7XHJcbiAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBkYXRldGltZTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEZpbHRlcnMpKTtcclxuICAgIH1cclxuICB9ZWxzZSB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGUuc3RhcnREYXRlLFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycy5kYXRlLmVuZERhdGUsXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KGhlYWRlckZpbHRlcnMpO1xyXG4gIH0gXHJcbn1cclxuXHJcbkFwcGx5KCkge1xyXG4gIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICk7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMgPSBoZWFkZXJGaWx0ZXJzO1xyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gdGhpcy5zZWxlY3RlZENsaWVudC5zdG9yZUlkO1xyXG4gIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEZpbHRlcnMpKTtcclxufVxyXG5cclxucXVlcnlTdHJpbmc6YW55ID0gJydcclxuXHJcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICB0aGlzLnVybFN0cmluZyA9IGNoYW5nZXM/LnVybFN0cmluZz8uY3VycmVudFZhbHVlLnNwbGl0KCc/JylbMF0uc3BsaXQoJy8nKTtcclxuICBpZihjaGFuZ2VzPy51cmxTdHJpbmc/LmN1cnJlbnRWYWx1ZS5zcGxpdCgnPycpLmxlbmd0aCA+IDEpIHtcclxuICAgIHRoaXMucXVlcnlTdHJpbmcgPSBjaGFuZ2VzPy51cmxTdHJpbmc/LmN1cnJlbnRWYWx1ZS5zcGxpdCgnPycpWzFdO1xyXG4gIH1cclxufVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJVUkxbMl0gIT09J2NvbnRyb2xjZW50ZXInXCIgY2xhc3M9XCJ3cmFwcGVyIG14LTJcIiA+XHJcbiAgICA8bGliLXNlbGVjdCBbaXRlbXNdPVwic3RvcmVMaXN0XCIgW211bHRpXT1cImZhbHNlXCIgW3NlYXJjaEZpZWxkXT1cIidzdG9yZU5hbWUnXCIgW2Rpc2FibGVkXT1cImZhbHNlXCIgW2lkRmllbGRdPVwiJ3N0b3JlSWQnXCJcclxuICAgICAgICAoc2VsZWN0ZWQpPVwib25DbGllbnRTZWxlY3QoJGV2ZW50KVwiIFtzZWxlY3RlZFZhbHVlc109XCJbc2VsZWN0ZWRDbGllbnRdXCI+PC9saWItc2VsZWN0PiAgICBcclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiVVJMWzJdICE9PSdjb250cm9sY2VudGVyJyAmJiAhdXJsU3RyaW5nLmluY2x1ZGVzKCdwbGFubycpICYmIFVSTFszXSAhPT0gJ2JlZWFoR3JvdXAnICYmIFVSTFszXSAhPT0gJ2JlZWFoTGl2ZSdcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW3Jhbmdlc109XCJyYW5nZXNcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwidHJ1ZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2F1dG9BcHBseV09XCJ0cnVlXCJcclxuICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiAgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIlVSTFsyXSA9PT0nY29udHJvbGNlbnRlcicgJiYgdXJsU3RyaW5nLmluY2x1ZGVzKCdwbGF5YmFjaycpIHx8IFVSTFszXSA9PT0gJ2JlZWFoR3JvdXAnIHx8IFVSTFszXSA9PT0gJ2JlZWFoTGl2ZSdcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xNTBweCBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwiZmFsc2VcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIiAgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDF9XCJcclxuICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiAgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJVUkxbMl0gIT09J2NvbnRyb2xjZW50ZXInXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTJcIiAoY2xpY2spPVwiQXBwbHkoKVwiPkFwcGx5PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbiJdfQ==
@@ -177,7 +177,7 @@ export class ToolbarComponent {
177
177
  }
178
178
  }
179
179
  else if (URL == "/profile" || url[2] === "data-mismatch" || url[2] === "employeetraining"
180
- || URL == "/manage/brands" || URL == "/manage/users/tango" || (url[1] === "tickets" && url[2] === "audit")) {
180
+ || URL == "/manage/brands" || URL == "/manage/users/tango" || (url[1] === "tickets" && url[2] === "audit") || url.includes('list')) {
181
181
  this.setUIProperties(false, false, false, false, false, false, false, false, false, false, false, false);
182
182
  }
183
183
  else if (URL == "/manage/traffic/nob") {
@@ -225,6 +225,9 @@ export class ToolbarComponent {
225
225
  }
226
226
  }
227
227
  }
228
+ else if (url[1] == 'eyetest') {
229
+ this.setUIProperties(false, false, false, false, false, false, false, false, false, false, false, false);
230
+ }
228
231
  else {
229
232
  if (url[3] == 'plano') {
230
233
  this.setUIProperties(false, false, false, true, false, false, false, false, false, false, false, false);
@@ -258,7 +261,7 @@ export class ToolbarComponent {
258
261
  URL == "/manage/stores" || URL === "/manage/stores?type=stores" || URL === "/manage/stores?type=clusters" || url[2] == "settings" ||
259
262
  URL == "/manage/stores/addition-method" ||
260
263
  URL == "/manage/stores/add-single-store" || url[2] === "data-mismatch" || url[2] === "employeetraining" || URL == "/notifications/alerts?tab=alert" || URL == "/notifications/alerts?tab=download"
261
- || URL == "/manage/users/tango" || URL === "/manage/controlcenter" || URL === 'manage/controlcenter/template-manager' || url[2] === 'controlcenter') {
264
+ || URL == "/manage/users/tango" || URL === "/manage/controlcenter" || URL === 'manage/controlcenter/template-manager' || url[2] === 'controlcenter' || url.includes('list')) {
262
265
  this.setUIProperties(false, false, false, false, false, false, false, false, false, false, false, false);
263
266
  }
264
267
  else if (URL == "/manage/traffic/nob") {
@@ -301,6 +304,9 @@ export class ToolbarComponent {
301
304
  this.setUIProperties(true, false, false, false, false, false, false, false, false, false, false, false);
302
305
  }
303
306
  }
307
+ else if (url[1] == 'eyetest') {
308
+ this.setUIProperties(false, false, false, false, false, false, false, false, false, false, false, false);
309
+ }
304
310
  else {
305
311
  if (url[3] == "plano") {
306
312
  this.setUIProperties(false, false, false, true, false, false, false, false, false, false, false, false);
@@ -341,14 +347,14 @@ export class ToolbarComponent {
341
347
  }
342
348
  }
343
349
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.LayoutService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i1.GlobalStateService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
344
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolbarComponent, selector: "lib-toolbar", inputs: { currentLayoutType: "currentLayoutType", appToolbarLayout: "appToolbarLayout" }, ngImport: i0, template: "<!--begin::Toolbar container-->\r\n<div id=\"kt_app_toolbar_container\" class=\"app-container\" [ngClass]=\"appToolbarContainerCSSClass\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client' || (gs.userAccess | async)?.userType === 'lead'\" >\r\n <ng-container *ngIf=\"showPageTitle()\">\r\n <lib-page-title [appPageTitleDirection]=\"appPageTitleDirection\" [appPageTitleBreadcrumb]=\"appPageTitleBreadcrumb\"\r\n [appPageTitleDescription]=\"appPageTitleDescription\" class=\"page-title d-flex flex-wrap me-3\"\r\n [ngClass]=\"{'flex-column justify-content-center': appPageTitleDirection === 'column', 'align-items-center': appPageTitleDirection !== 'column', appPageTitleCSSClass}\">\r\n </lib-page-title>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiSelect && users.userType ==='tango'\">\r\n <lib-classic class=\"d-flex align-items-center gap-2 gap-lg-3\"></lib-classic>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelect && users.userType ==='tango'\">\r\n <lib-client-settings class=\"d-flex align-items-center me-5\"></lib-client-settings>\r\n </ng-container>\r\n <ng-container *ngIf=\"datepicker && (users.userType ==='client' || users.userType ==='tango')\">\r\n <lib-datepicker class=\"d-flex align-items-center me-5\"></lib-datepicker>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelectdatepicker && users.userType ==='tango'\">\r\n <lib-date-single-select class=\"d-flex align-items-center me-5\"></lib-date-single-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleStore\">\r\n <lib-single-store class=\"d-flex align-items-center me-5\" [urlString]=\"urlString\"></lib-single-store>\r\n </ng-container>\r\n <ng-container *ngIf=\"trafficdatepicker\">\r\n <lib-traffic-header class=\"d-flex align-items-center me-5\"></lib-traffic-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxdatepicker\">\r\n <lib-trax-header class=\"d-flex align-items-center me-5\"></lib-trax-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxwithoutdatepicker\">\r\n <lib-trax-withoutdate class=\"d-flex align-items-center me-5\"></lib-trax-withoutdate>\r\n </ng-container>\r\n <ng-container *ngIf=\"storesSingle\">\r\n <lib-single-storedate class=\"d-flex align-items-center me-5\"></lib-single-storedate>\r\n </ng-container>\r\n <ng-container *ngIf=\"nobWithoutClient\">\r\n <lib-traffic-nob class=\"d-flex align-items-center me-5\"></lib-traffic-nob>\r\n </ng-container>\r\n <ng-container *ngIf=\"merticsHeader\">\r\n <lib-metrics-header class=\"d-flex align-items-center me-5\"></lib-metrics-header>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"singleClientStoreDate\">\r\n <lib-single-clientstore-date class=\"d-flex align-items-center me-5\"></lib-single-clientstore-date>\r\n </ng-container>\r\n\r\n\r\n <!-- <ng-container *ngIf=\"appToolbarLayout === 'extended'\">\r\n <lib-extended class=\"d-flex align-items-center flex-shrink-0 me-5\"></lib-extended>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'reports'\">\r\n <lib-reports class=\"d-flex align-items-center overflow-auto\" [appPageTitleDisplay]=\"appPageTitleDisplay\">\r\n </lib-reports>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'saas'\">\r\n <lib-saas class=\"d-flex align-items-center gap-2\" [appPageTitleDisplay]=\"appPageTitleDisplay\"></lib-saas>\r\n </ng-container> -->\r\n</ng-container>\r\n</div>\r\n<!--end::Toolbar container-->\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PageTitleComponent, selector: "lib-page-title", inputs: ["appPageTitleDirection", "appPageTitleBreadcrumb", "appPageTitleDescription"] }, { kind: "component", type: i6.ClassicComponent, selector: "lib-classic" }, { kind: "component", type: i7.ClientSettingsComponent, selector: "lib-client-settings" }, { kind: "component", type: i8.DatepickerComponent, selector: "lib-datepicker" }, { kind: "component", type: i9.DateSingleSelectComponent, selector: "lib-date-single-select" }, { kind: "component", type: i10.SingleStoreComponent, selector: "lib-single-store", inputs: ["urlString"] }, { kind: "component", type: i11.TrafficHeaderComponent, selector: "lib-traffic-header" }, { kind: "component", type: i12.TraxHeaderComponent, selector: "lib-trax-header" }, { kind: "component", type: i13.SingleStoredateComponent, selector: "lib-single-storedate" }, { kind: "component", type: i14.TraxWithoutdateComponent, selector: "lib-trax-withoutdate" }, { kind: "component", type: i15.TrafficNobComponent, selector: "lib-traffic-nob" }, { kind: "component", type: i16.MetricsHeaderComponent, selector: "lib-metrics-header" }, { kind: "component", type: i17.SingleClientstoreDateComponent, selector: "lib-single-clientstore-date" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
350
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolbarComponent, selector: "lib-toolbar", inputs: { currentLayoutType: "currentLayoutType", appToolbarLayout: "appToolbarLayout" }, ngImport: i0, template: "<!--begin::Toolbar container-->\r\n<div id=\"kt_app_toolbar_container\" class=\"ps-5 pe-0\" [ngClass]=\"appToolbarContainerCSSClass\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client' || (gs.userAccess | async)?.userType === 'lead'\" >\r\n <ng-container *ngIf=\"showPageTitle()\">\r\n <lib-page-title [appPageTitleDirection]=\"appPageTitleDirection\" [appPageTitleBreadcrumb]=\"appPageTitleBreadcrumb\"\r\n [appPageTitleDescription]=\"appPageTitleDescription\" class=\"page-title d-flex flex-wrap me-3\"\r\n [ngClass]=\"{'flex-column justify-content-center': appPageTitleDirection === 'column', 'align-items-center': appPageTitleDirection !== 'column', appPageTitleCSSClass}\">\r\n </lib-page-title>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiSelect && users.userType ==='tango'\">\r\n <lib-classic class=\"d-flex align-items-center gap-2 gap-lg-3\"></lib-classic>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelect && users.userType ==='tango'\">\r\n <lib-client-settings class=\"d-flex align-items-center me-5\"></lib-client-settings>\r\n </ng-container>\r\n <ng-container *ngIf=\"datepicker && (users.userType ==='client' || users.userType ==='tango')\">\r\n <lib-datepicker class=\"d-flex align-items-center me-5\"></lib-datepicker>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelectdatepicker && users.userType ==='tango'\">\r\n <lib-date-single-select class=\"d-flex align-items-center me-5\"></lib-date-single-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleStore\">\r\n <lib-single-store class=\"d-flex align-items-center me-5\" [urlString]=\"urlString\"></lib-single-store>\r\n </ng-container>\r\n <ng-container *ngIf=\"trafficdatepicker\">\r\n <lib-traffic-header class=\"d-flex align-items-center me-5\"></lib-traffic-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxdatepicker\">\r\n <lib-trax-header class=\"d-flex align-items-center me-5\"></lib-trax-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxwithoutdatepicker\">\r\n <lib-trax-withoutdate class=\"d-flex align-items-center me-5\"></lib-trax-withoutdate>\r\n </ng-container>\r\n <ng-container *ngIf=\"storesSingle\">\r\n <lib-single-storedate class=\"d-flex align-items-center me-5\"></lib-single-storedate>\r\n </ng-container>\r\n <ng-container *ngIf=\"nobWithoutClient\">\r\n <lib-traffic-nob class=\"d-flex align-items-center me-5\"></lib-traffic-nob>\r\n </ng-container>\r\n <ng-container *ngIf=\"merticsHeader\">\r\n <lib-metrics-header class=\"d-flex align-items-center me-5\"></lib-metrics-header>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"singleClientStoreDate\">\r\n <lib-single-clientstore-date class=\"d-flex align-items-center me-5\"></lib-single-clientstore-date>\r\n </ng-container>\r\n\r\n\r\n <!-- <ng-container *ngIf=\"appToolbarLayout === 'extended'\">\r\n <lib-extended class=\"d-flex align-items-center flex-shrink-0 me-5\"></lib-extended>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'reports'\">\r\n <lib-reports class=\"d-flex align-items-center overflow-auto\" [appPageTitleDisplay]=\"appPageTitleDisplay\">\r\n </lib-reports>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'saas'\">\r\n <lib-saas class=\"d-flex align-items-center gap-2\" [appPageTitleDisplay]=\"appPageTitleDisplay\"></lib-saas>\r\n </ng-container> -->\r\n</ng-container>\r\n</div>\r\n<!--end::Toolbar container-->\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PageTitleComponent, selector: "lib-page-title", inputs: ["appPageTitleDirection", "appPageTitleBreadcrumb", "appPageTitleDescription"] }, { kind: "component", type: i6.ClassicComponent, selector: "lib-classic" }, { kind: "component", type: i7.ClientSettingsComponent, selector: "lib-client-settings" }, { kind: "component", type: i8.DatepickerComponent, selector: "lib-datepicker" }, { kind: "component", type: i9.DateSingleSelectComponent, selector: "lib-date-single-select" }, { kind: "component", type: i10.SingleStoreComponent, selector: "lib-single-store", inputs: ["urlString"] }, { kind: "component", type: i11.TrafficHeaderComponent, selector: "lib-traffic-header" }, { kind: "component", type: i12.TraxHeaderComponent, selector: "lib-trax-header" }, { kind: "component", type: i13.SingleStoredateComponent, selector: "lib-single-storedate" }, { kind: "component", type: i14.TraxWithoutdateComponent, selector: "lib-trax-withoutdate" }, { kind: "component", type: i15.TrafficNobComponent, selector: "lib-traffic-nob" }, { kind: "component", type: i16.MetricsHeaderComponent, selector: "lib-metrics-header" }, { kind: "component", type: i17.SingleClientstoreDateComponent, selector: "lib-single-clientstore-date" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
345
351
  }
346
352
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
347
353
  type: Component,
348
- args: [{ selector: "lib-toolbar", template: "<!--begin::Toolbar container-->\r\n<div id=\"kt_app_toolbar_container\" class=\"app-container\" [ngClass]=\"appToolbarContainerCSSClass\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client' || (gs.userAccess | async)?.userType === 'lead'\" >\r\n <ng-container *ngIf=\"showPageTitle()\">\r\n <lib-page-title [appPageTitleDirection]=\"appPageTitleDirection\" [appPageTitleBreadcrumb]=\"appPageTitleBreadcrumb\"\r\n [appPageTitleDescription]=\"appPageTitleDescription\" class=\"page-title d-flex flex-wrap me-3\"\r\n [ngClass]=\"{'flex-column justify-content-center': appPageTitleDirection === 'column', 'align-items-center': appPageTitleDirection !== 'column', appPageTitleCSSClass}\">\r\n </lib-page-title>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiSelect && users.userType ==='tango'\">\r\n <lib-classic class=\"d-flex align-items-center gap-2 gap-lg-3\"></lib-classic>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelect && users.userType ==='tango'\">\r\n <lib-client-settings class=\"d-flex align-items-center me-5\"></lib-client-settings>\r\n </ng-container>\r\n <ng-container *ngIf=\"datepicker && (users.userType ==='client' || users.userType ==='tango')\">\r\n <lib-datepicker class=\"d-flex align-items-center me-5\"></lib-datepicker>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelectdatepicker && users.userType ==='tango'\">\r\n <lib-date-single-select class=\"d-flex align-items-center me-5\"></lib-date-single-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleStore\">\r\n <lib-single-store class=\"d-flex align-items-center me-5\" [urlString]=\"urlString\"></lib-single-store>\r\n </ng-container>\r\n <ng-container *ngIf=\"trafficdatepicker\">\r\n <lib-traffic-header class=\"d-flex align-items-center me-5\"></lib-traffic-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxdatepicker\">\r\n <lib-trax-header class=\"d-flex align-items-center me-5\"></lib-trax-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxwithoutdatepicker\">\r\n <lib-trax-withoutdate class=\"d-flex align-items-center me-5\"></lib-trax-withoutdate>\r\n </ng-container>\r\n <ng-container *ngIf=\"storesSingle\">\r\n <lib-single-storedate class=\"d-flex align-items-center me-5\"></lib-single-storedate>\r\n </ng-container>\r\n <ng-container *ngIf=\"nobWithoutClient\">\r\n <lib-traffic-nob class=\"d-flex align-items-center me-5\"></lib-traffic-nob>\r\n </ng-container>\r\n <ng-container *ngIf=\"merticsHeader\">\r\n <lib-metrics-header class=\"d-flex align-items-center me-5\"></lib-metrics-header>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"singleClientStoreDate\">\r\n <lib-single-clientstore-date class=\"d-flex align-items-center me-5\"></lib-single-clientstore-date>\r\n </ng-container>\r\n\r\n\r\n <!-- <ng-container *ngIf=\"appToolbarLayout === 'extended'\">\r\n <lib-extended class=\"d-flex align-items-center flex-shrink-0 me-5\"></lib-extended>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'reports'\">\r\n <lib-reports class=\"d-flex align-items-center overflow-auto\" [appPageTitleDisplay]=\"appPageTitleDisplay\">\r\n </lib-reports>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'saas'\">\r\n <lib-saas class=\"d-flex align-items-center gap-2\" [appPageTitleDisplay]=\"appPageTitleDisplay\"></lib-saas>\r\n </ng-container> -->\r\n</ng-container>\r\n</div>\r\n<!--end::Toolbar container-->\r\n" }]
354
+ args: [{ selector: "lib-toolbar", template: "<!--begin::Toolbar container-->\r\n<div id=\"kt_app_toolbar_container\" class=\"ps-5 pe-0\" [ngClass]=\"appToolbarContainerCSSClass\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client' || (gs.userAccess | async)?.userType === 'lead'\" >\r\n <ng-container *ngIf=\"showPageTitle()\">\r\n <lib-page-title [appPageTitleDirection]=\"appPageTitleDirection\" [appPageTitleBreadcrumb]=\"appPageTitleBreadcrumb\"\r\n [appPageTitleDescription]=\"appPageTitleDescription\" class=\"page-title d-flex flex-wrap me-3\"\r\n [ngClass]=\"{'flex-column justify-content-center': appPageTitleDirection === 'column', 'align-items-center': appPageTitleDirection !== 'column', appPageTitleCSSClass}\">\r\n </lib-page-title>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiSelect && users.userType ==='tango'\">\r\n <lib-classic class=\"d-flex align-items-center gap-2 gap-lg-3\"></lib-classic>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelect && users.userType ==='tango'\">\r\n <lib-client-settings class=\"d-flex align-items-center me-5\"></lib-client-settings>\r\n </ng-container>\r\n <ng-container *ngIf=\"datepicker && (users.userType ==='client' || users.userType ==='tango')\">\r\n <lib-datepicker class=\"d-flex align-items-center me-5\"></lib-datepicker>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleSelectdatepicker && users.userType ==='tango'\">\r\n <lib-date-single-select class=\"d-flex align-items-center me-5\"></lib-date-single-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"singleStore\">\r\n <lib-single-store class=\"d-flex align-items-center me-5\" [urlString]=\"urlString\"></lib-single-store>\r\n </ng-container>\r\n <ng-container *ngIf=\"trafficdatepicker\">\r\n <lib-traffic-header class=\"d-flex align-items-center me-5\"></lib-traffic-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxdatepicker\">\r\n <lib-trax-header class=\"d-flex align-items-center me-5\"></lib-trax-header>\r\n </ng-container>\r\n <ng-container *ngIf=\"traxwithoutdatepicker\">\r\n <lib-trax-withoutdate class=\"d-flex align-items-center me-5\"></lib-trax-withoutdate>\r\n </ng-container>\r\n <ng-container *ngIf=\"storesSingle\">\r\n <lib-single-storedate class=\"d-flex align-items-center me-5\"></lib-single-storedate>\r\n </ng-container>\r\n <ng-container *ngIf=\"nobWithoutClient\">\r\n <lib-traffic-nob class=\"d-flex align-items-center me-5\"></lib-traffic-nob>\r\n </ng-container>\r\n <ng-container *ngIf=\"merticsHeader\">\r\n <lib-metrics-header class=\"d-flex align-items-center me-5\"></lib-metrics-header>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"singleClientStoreDate\">\r\n <lib-single-clientstore-date class=\"d-flex align-items-center me-5\"></lib-single-clientstore-date>\r\n </ng-container>\r\n\r\n\r\n <!-- <ng-container *ngIf=\"appToolbarLayout === 'extended'\">\r\n <lib-extended class=\"d-flex align-items-center flex-shrink-0 me-5\"></lib-extended>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'reports'\">\r\n <lib-reports class=\"d-flex align-items-center overflow-auto\" [appPageTitleDisplay]=\"appPageTitleDisplay\">\r\n </lib-reports>\r\n </ng-container>\r\n <ng-container *ngIf=\"appToolbarLayout === 'saas'\">\r\n <lib-saas class=\"d-flex align-items-center gap-2\" [appPageTitleDisplay]=\"appPageTitleDisplay\"></lib-saas>\r\n </ng-container> -->\r\n</ng-container>\r\n</div>\r\n<!--end::Toolbar container-->\r\n" }]
349
355
  }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i1.GlobalStateService }, { type: i3.AuthService }], propDecorators: { currentLayoutType: [{
350
356
  type: Input
351
357
  }], appToolbarLayout: [{
352
358
  type: Input
353
359
  }] } });
354
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY3JELE1BQU0sT0FBTyxnQkFBZ0I7SUFrRGpCO0lBQ0E7SUFDQTtJQUNEO0lBQ0M7SUFyREYsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsZUFBZTtJQUNOLGlCQUFpQixDQUFvQjtJQUNyQyxnQkFBZ0IsQ0FLZDtJQUVYLFVBQVU7SUFDVixpQkFBaUIsQ0FBVTtJQUMzQixtQkFBbUIsQ0FBb0I7SUFDdkMsMkJBQTJCLEdBQVcsRUFBRSxDQUFDO0lBQ3pDLHNCQUFzQixDQUFVO0lBQ2hDLHFCQUFxQixDQUFVO0lBQy9CLG1CQUFtQixDQUFVO0lBRTdCLGFBQWE7SUFDYixxQkFBcUIsR0FBVyxFQUFFLENBQUM7SUFDbkMsb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0lBQ2xDLHNCQUFzQixDQUFVO0lBQ2hDLHVCQUF1QixDQUFVO0lBQ2pDLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQVU7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLFVBQVUsQ0FBVTtJQUNwQixzQkFBc0IsQ0FBVTtJQUNoQyxXQUFXLENBQVU7SUFDckIsV0FBVyxDQUFNO0lBQ2pCLE9BQU8sQ0FBTTtJQUNiLEtB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SUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN0QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDVixZQUFZLENBQUMsT0FBTyxDQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FDN0MsQ0FBQztnQkFDSixDQUFDO2FBQ0YsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO3dHQTlXWSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw2SUNoQjdCLG9nSEE4REE7OzRGRDlDYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTsrTEFRZCxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHdpbmRvdyB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7XHJcbiAgR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gIExheW91dFNlcnZpY2UsXHJcbiAgUGFnZUluZm9TZXJ2aWNlLFxyXG59IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7IElMYXlvdXQsIExheW91dFR5cGUgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10b29sYmFyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29sYmFyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3Rvb2xiYXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIC8vIFB1YmxpYyBwcm9wc1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRMYXlvdXRUeXBlOiBMYXlvdXRUeXBlIHwgbnVsbDtcclxuICBASW5wdXQoKSBhcHBUb29sYmFyTGF5b3V0OlxyXG4gICAgfCBcImNsYXNzaWNcIlxyXG4gICAgfCBcImFjY291bnRpbmdcIlxyXG4gICAgfCBcImV4dGVuZGVkXCJcclxuICAgIHwgXCJyZXBvcnRzXCJcclxuICAgIHwgXCJzYWFzXCI7XHJcblxyXG4gIC8vIHRvb2xiYXJcclxuICBhcHBUb29sYmFyRGlzcGxheTogYm9vbGVhbjtcclxuICBhcHBUb29sYmFyQ29udGFpbmVyOiBcImZpeGVkXCIgfCBcImZsdWlkXCI7XHJcbiAgYXBwVG9vbGJhckNvbnRhaW5lckNTU0NsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGFwcFRvb2xiYXJGaXhlZERlc2t0b3A6IGJvb2xlYW47XHJcbiAgYXBwVG9vbGJhckZpeGVkTW9iaWxlOiBib29sZWFuO1xyXG4gIGFwcFBhZ2VUaXRsZURpc3BsYXk6IGJvb2xlYW47XHJcblxyXG4gIC8vIHBhZ2UgdGl0bGVcclxuICBhcHBQYWdlVGl0bGVEaXJlY3Rpb246IHN0cmluZyA9IFwiXCI7XHJcbiAgYXBwUGFnZVRpdGxlQ1NTQ2xhc3M6IHN0cmluZyA9IFwiXCI7XHJcbiAgYXBwUGFnZVRpdGxlQnJlYWRjcnVtYjogYm9vbGVhbjtcclxuICBhcHBQYWdlVGl0bGVEZXNjcmlwdGlvbjogYm9vbGVhbjtcclxuICBxdWVyUGFyYW1zOiBhbnk7XHJcbiAgc2luZ2xlU2VsZWN0OiBib29sZWFuO1xyXG4gIG11bHRpU2VsZWN0OiBib29sZWFuO1xyXG4gIGRhdGVwaWNrZXI6IGJvb2xlYW47XHJcbiAgc2luZ2xlU2VsZWN0ZGF0ZXBpY2tlcjogYm9vbGVhbjtcclxuICBzaW5nbGVTdG9yZTogYm9vbGVhbjtcclxuICBoZWFkZXJ2YWx1ZTogYW55O1xyXG4gIHN0b3JlSWQ6IGFueTtcclxuICB1c2VyczogYW55O1xyXG4gIHNlbGVjdGVkRmlsdGVyczogYW55ID0ge1xyXG4gICAgY2xpZW50OiBudWxsLFxyXG4gICAgY2xpZW50czogW10sXHJcbiAgICBzdG9yZTogbnVsbCxcclxuICAgIHN0b3JlczogW10sXHJcbiAgICBkYXRlOiBudWxsLFxyXG4gIH07XHJcbiAgdHJhZmZpY2RhdGVwaWNrZXI6IGJvb2xlYW47XHJcbiAgdHJheGRhdGVwaWNrZXI6IGJvb2xlYW47XHJcbiAgdXJsU3RyaW5nOmFueTtcclxuICB0cmF4d2l0aG91dGRhdGVwaWNrZXI6Ym9vbGVhbjtcclxuICBzdG9yZXNTaW5nbGU6Ym9vbGVhbjtcclxuICBub2JXaXRob3V0Q2xpZW50OmJvb2xlYW47XHJcbiAgbWVydGljc0hlYWRlcjogYm9vbGVhbjtcclxuICBzaW5nbGVDbGllbnRTdG9yZURhdGU6Ym9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGggOiBBdXRoU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoXCJ1c2VyLWluZm9cIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudXNlcnMgPSB1c2VyRGF0YTtcclxuICAgIH1cclxuICAgIGlmIChcImhlYWRlci1maWx0ZXJzXCIgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGE6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICAgKTtcclxuIHRoaXMuY2xpZW50ID0gZGF0YT8uY2xpZW50O1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRVc2VySW5mbyh0aGlzLmNsaWVudCA/IHRoaXMuY2xpZW50IDogdGhpcy51c2Vycy5jbGllbnQpXHJcbiAgICB0aGlzLnNob3dQYWdlVGl0bGUoKTtcclxuICAgIGNvbnN0IHN1YnNjciA9IHRoaXMubGF5b3V0LmxheW91dENvbmZpZ1N1YmplY3RcclxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZzogSUxheW91dCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUHJvcHMoY29uZmlnKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLnB1c2goc3Vic2NyKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb3BzKGNvbmZpZzogSUxheW91dCkge1xyXG4gICAgdGhpcy5hcHBUb29sYmFyRGlzcGxheSA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnRvb2xiYXIuZGlzcGxheVwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICghdGhpcy5hcHBUb29sYmFyRGlzcGxheSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBQYWdlVGl0bGVEaXNwbGF5ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAucGFnZVRpdGxlLmRpc3BsYXlcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICB0aGlzLmFwcFRvb2xiYXJDb250YWluZXIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmNvbnRhaW5lclwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgXCJmbHVpZFwiIHwgXCJmaXhlZFwiO1xyXG4gICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyQ1NTQ2xhc3MgPVxyXG4gICAgICB0aGlzLmFwcFRvb2xiYXJDb250YWluZXIgPT09IFwiZml4ZWRcIlxyXG4gICAgICAgID8gXCJjb250YWluZXIteHhsXCJcclxuICAgICAgICA6IFwiY29udGFpbmVyLWZsdWlkXCI7XHJcbiAgICBjb25zdCBjb250YWluZXJDbGFzcyA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnRvb2xiYXIuY29udGFpbmVyQ2xhc3NcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuICAgIGlmIChjb250YWluZXJDbGFzcykge1xyXG4gICAgICB0aGlzLmFwcFRvb2xiYXJDb250YWluZXJDU1NDbGFzcyArPSBgICR7Y29udGFpbmVyQ2xhc3N9YDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFRvb2xiYXJGaXhlZERlc2t0b3AgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmZpeGVkLmRlc2t0b3BcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBUb29sYmFyRml4ZWREZXNrdG9wKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKFwiZGF0YS1rdC1hcHAtdG9vbGJhci1maXhlZFwiLCBcInRydWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBUb29sYmFyRml4ZWRNb2JpbGUgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmZpeGVkLm1vYmlsZVwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcFRvb2xiYXJGaXhlZE1vYmlsZSkge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcImRhdGEta3QtYXBwLXRvb2xiYXItZml4ZWQtbW9iaWxlXCIsIFwidHJ1ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0b29sYmFyXHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZURpcmVjdGlvbiA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5kaXJlY3Rpb25cIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlQ1NTQ2xhc3MgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuY2xhc3NcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlQnJlYWRjcnVtYiA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5icmVhZENydW1iXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgdGhpcy5hcHBQYWdlVGl0bGVEZXNjcmlwdGlvbiA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5kZXNjcmlwdGlvblwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcImRhdGEta3QtYXBwLXRvb2xiYXItZW5hYmxlZFwiLCBcInRydWVcIik7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICAvLyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInVzZXJzRW1haWwtaW5mb1wiKTtcclxuICB9XHJcbiAgY2xpZW50OmFueTtcclxuICB1cmxTdHJpbmcxOmFueTtcclxuICBzaG93UGFnZVRpdGxlKCkge1xyXG4gICAgbGV0IFVSTDogc3RyaW5nID0gXCJcIjtcclxuICAgIGlmIChcImhlYWRlci1maWx0ZXJzXCIgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGE6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICAgKTtcclxuICAgICBjb25zdCBzdG9yZSA9ICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAgYXMgYW55ICAgICAgXHJcbiAgICAgIHRoaXMuc3RvcmVJZCA9ICBkYXRhPy5zdG9yZTtcclxuXHJcbiAgICAgIGlmKHN0b3JlPy5wYXJhbXM/Llsnc3RvcmVJZCddKXtcclxuICAgICAgICB0aGlzLnN0b3JlSWQgPSBzdG9yZS5wYXJhbXNbJ3N0b3JlSWQnXVxyXG4gICAgICAgIGRhdGEuc3RvcmUgPSBzdG9yZS5wYXJhbXNbJ3N0b3JlSWQnXVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdoZWFkZXItZmlsdGVycycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgIGNvbnN0IHVwZGF0ZWRVcmwgPSBjdXJyZW50VXJsLnJlcGxhY2UoXHJcbiAgICAgICAgL1xcL21hbmFnZVxcL3N0b3Jlc1xcL1xcZCstXFxkK1xcLy8sXHJcbiAgICAgICAgYC9tYW5hZ2Uvc3RvcmVzL2BcclxuICAgICAgKTtcclxuICAgICAgVVJMID0gdXBkYXRlZFVybDtcclxuICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1VSTF0pXHJcbiAgICB9XHJcbiAgY29uc3QgdXJsID0gVVJMLnNwbGl0KFwiP1wiKVswXS5zcGxpdCgnLycpO1xyXG4gIHRoaXMudXJsU3RyaW5nID0gVVJMO1xyXG4gICB0aGlzLnVybFN0cmluZzE9IFVSTC5zcGxpdCgnLycpO1xyXG4gIGlmICh0aGlzLnVzZXJzPy51c2VyVHlwZSA9PT0gXCJ0YW5nb1wiKSB7XHJcbiAgICBpZiAodXJsWzJdID09IFwic2V0dGluZ3NcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL3VzZXJzL2NsaWVudFwiICB8fFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXNcIiB8fCAgVVJMID09PSBcIi9tYW5hZ2Uvc3RvcmVzP3R5cGU9c3RvcmVzXCIgfHwgVVJMID09PSBcIi9tYW5hZ2Uvc3RvcmVzP3R5cGU9Y2x1c3RlcnNcIiB8fFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXMvYWRkaXRpb24tbWV0aG9kXCIgfHxcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzL2FkZC1zaW5nbGUtc3RvcmVcIiB8fCBVUkwgPT09IFwiL21hbmFnZS90cmF4L2dhbGxlcnlcIiB8fCBVUkwgPT0gXCIvbm90aWZpY2F0aW9ucy9hbGVydHM/dGFiPWFsZXJ0XCIgfHwgIFVSTCA9PSBcIi9ub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIiB8fCBVUkwgPT09IFwiL21hbmFnZS90cmF4L2F1ZGl0XCIgKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gIGVsc2UgaWYgKHVybFszXSA9PSBcImVkZ2UtYXBwXCIpIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8ICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhLXRpY2tldD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfSZ0eXBlPWluZnJhYCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL3NldHRpbmdzP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fCBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhLXRpY2tldD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfSZ0eXBlPWRhdGFNaXNtYXRjaGAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy96b25lcz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9jYW1lcmFzP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fFxyXG4gICAgICAvLyBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhc3RydWN0dXJlP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL21hdD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9ZWxzZSBpZiAoVVJMID09IFwiL3RpY2tldHMvc3RvcmVzXCIgfHwgVVJMID09IFwiL21hbmFnZS91c2Vycy90YW5nby9hdWRpdFwiKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZih1cmxbMl0gPT09ICdjb250cm9sY2VudGVyJyl7XHJcbiAgICAgIGlmKFVSTCA9PSBgL21hbmFnZS9jb250cm9sY2VudGVyL3BsYXliYWNrP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YHx8IFVSTCA9PSBgL21hbmFnZS9jb250cm9sY2VudGVyL3BsYXliYWNrYCl7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBcclxuICB9ZWxzZSBpZiAoVVJMID09IFwiL3Byb2ZpbGVcIiB8fCB1cmxbMl09PT1cImRhdGEtbWlzbWF0Y2hcIiB8fCB1cmxbMl09PT1cImVtcGxveWVldHJhaW5pbmdcIiAgXHJcbiAgICAgICB8fCBVUkwgPT0gXCIvbWFuYWdlL2JyYW5kc1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvdGFuZ29cIiB8fCAodXJsWzFdID09PVwidGlja2V0c1wiICYmIHVybFsyXSA9PT0gXCJhdWRpdFwiKSkge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKFVSTCA9PSBcIi9tYW5hZ2UvdHJhZmZpYy9ub2JcIil7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PT0gXCJ0cmFmZmljXCIgfHwgdXJsWzJdID09PSBcInpvbmVzXCIgfHwgVVJMID09IFwiL21hbmFnZS9hbmFseXNlL3JlcG9ydHNcIiApe1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfWVsc2UgaWYoVVJMID09IFwiL21hbmFnZS9lbXBsb3llZS1tZXRyaWNzL2JlZWFoR3JvdXBcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL2VtcGxveWVlLW1ldHJpY3MvYmVlYWhMaXZlXCIpe1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUpO1xyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PT0gXCJlbXBsb3llZS1tZXRyaWNzXCIgJiYgdXJsWzNdID09PSBcImhlYXRtYXBcIil7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09PSBcImVtcGxveWVlLW1ldHJpY3NcIil7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09ICd0cmF4Jyl7XHJcbiAgICAgIGlmKHVybFsyXSA9PSAndHJheCcgJiYgKHVybC5pbmNsdWRlcygnY3JlYXRlQ2hlY2tsaXN0JykgfHwgdXJsLmluY2x1ZGVzKCdjb25maWd1cmUnKSB8fCB1cmwuaW5jbHVkZXMoJ2NyZWF0ZS1vcmRlcicpfHwgdXJsWzNdID09ICdjcmVhdGUtdGFzaycgfHwgdXJsWzNdID09ICd0YXNrLWNvbmZpZ3VyZScpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9IFxyXG4gICAgICAvLyBlbHNlIGlmKHVybFsyXSA9PSAndHJheCcgJiYgKHVybC5pbmNsdWRlcygndGFza2luZm8nKSkpe1xyXG4gICAgICAvLyAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIGVsc2UgaWYodXJsWzJdID09ICd0cmF4JyAmJiB1cmwuaW5jbHVkZXMoJ3N0YXJ0Jykpe1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZih1cmxbMl0gPT0gJ3RyYXgnICYmICh1cmwuaW5jbHVkZXMoJ2NoZWNrbGlzdCcpIHx8IHVybC5pbmNsdWRlcygnZ2FsbGVyeScpKSB8fCB1cmwuaW5jbHVkZXMoJ2F1ZGl0JykpIHtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyh0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfSAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PSAncGxhbm9ncmFtJyl7XHJcbiAgICAgIGlmKHVybFsyXSA9PSAncGxhbm9ncmFtJyAmJiAodXJsLmluY2x1ZGVzKCdsYXlvdXQtYnVpbGRlcicpKSkge1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfWVsc2Uge1xyXG4gICAgICAgIGlmKHVybFsyXSA9PSAncGxhbm9ncmFtJyAmJiB1cmxbM10gPT0gJ21hbmFnZS1wbGFub2dyYW0nKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXModHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIGlmKHVybFszXSA9PSAncGxhbm8nKSB7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodXJsWzNdID09IFwiZWRnZS1hcHBcIiApIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8ICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhLXRpY2tldD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfSZ0eXBlPWluZnJhYCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL3NldHRpbmdzP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fCBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhLXRpY2tldD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfSZ0eXBlPWRhdGFNaXNtYXRjaGAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy96b25lcz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9jYW1lcmFzP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fFxyXG4gICAgICAvLyBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhc3RydWN0dXJlP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL21hdD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09PSAnY29udHJvbGNlbnRlcicpe1xyXG4gICAgICBpZihVUkwgPT0gYC9tYW5hZ2UvY29udHJvbGNlbnRlci9wbGF5YmFjaz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWB8fCBVUkwgPT0gYC9tYW5hZ2UvY29udHJvbGNlbnRlci9wbGF5YmFja2Ape1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gXHJcbiAgfSBlbHNlIGlmIChVUkwgPT0gXCIvcHJvZmlsZVwiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvY2xpZW50XCIgfHwgVVJMID09IFwiL21hbmFnZS91c2Vycy90YW5nb1wiIHx8XHJcbiAgICBVUkwgPT0gXCIvbWFuYWdlL3N0b3Jlc1wiIHx8ICBVUkwgPT09IFwiL21hbmFnZS9zdG9yZXM/dHlwZT1zdG9yZXNcIiB8fCBVUkwgPT09IFwiL21hbmFnZS9zdG9yZXM/dHlwZT1jbHVzdGVyc1wiIHx8IHVybFsyXSA9PSBcInNldHRpbmdzXCIgfHwgXHJcbiAgICBVUkwgPT0gXCIvbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RcIiB8fFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXMvYWRkLXNpbmdsZS1zdG9yZVwiIHx8IHVybFsyXT09PVwiZGF0YS1taXNtYXRjaFwiIHx8IHVybFsyXT09PVwiZW1wbG95ZWV0cmFpbmluZ1wiICB8fCBVUkwgPT0gXCIvbm90aWZpY2F0aW9ucy9hbGVydHM/dGFiPWFsZXJ0XCIgfHwgIFVSTCA9PSBcIi9ub3RpZmljYXRpb25zL2FsZXJ0cz90YWI9ZG93bmxvYWRcIlxyXG4gICAgIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvdGFuZ29cIiB8fCBVUkwgPT09IFwiL21hbmFnZS9jb250cm9sY2VudGVyXCIgfHwgVVJMID09PSdtYW5hZ2UvY29udHJvbGNlbnRlci90ZW1wbGF0ZS1tYW5hZ2VyJyB8fCB1cmxbMl09PT0nY29udHJvbGNlbnRlcicgKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9ZWxzZSBpZihVUkwgPT0gXCIvbWFuYWdlL3RyYWZmaWMvbm9iXCIpe1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZih1cmxbMl0gPT09IFwidHJhZmZpY1wiIHx8IHVybFsyXSA9PT0gXCJ6b25lc1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvYW5hbHlzZS9yZXBvcnRzXCIpe1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfWVsc2UgaWYoVVJMID09IFwiL21hbmFnZS9lbXBsb3llZS1tZXRyaWNzL2JlZWFoR3JvdXBcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL2VtcGxveWVlLW1ldHJpY3MvYmVlYWhMaXZlXCIpe1xyXG4gICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09PSBcImVtcGxveWVlLW1ldHJpY3NcIiAmJiB1cmxbM10gPT09IFwiaGVhdG1hcFwiKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZih1cmxbMl0gPT09IFwiZW1wbG95ZWUtbWV0cmljc1wiKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZih1cmxbMl0gPT0gJ3RyYXgnKXtcclxuICAgICAgaWYodXJsWzJdID09ICd0cmF4JyAmJiAodXJsLmluY2x1ZGVzKCdjcmVhdGVDaGVja2xpc3QnKSB8fCB1cmwuaW5jbHVkZXMoJ2NvbmZpZ3VyZScpIHx8IHVybC5pbmNsdWRlcygnY3JlYXRlLW9yZGVyJykgfHwgdXJsWzNdID09ICdjcmVhdGUtdGFzaycgfHwgdXJsWzNdID09ICd0YXNrLWNvbmZpZ3VyZScpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYodXJsWzJdID09ICd0cmF4JyAmJiAodXJsLmluY2x1ZGVzKCd0YXNraW5mbycpKSl7XHJcbiAgICAgIC8vICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgZWxzZSBpZih1cmxbMl0gPT0gJ3RyYXgnICYmIHVybC5pbmNsdWRlcygnc3RhcnQnKSl7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmKHVybFsyXSA9PSAndHJheCcgJiYgKHVybC5pbmNsdWRlcygnY2hlY2tsaXN0JykgfHwgdXJsLmluY2x1ZGVzKCdnYWxsZXJ5JykgfHwgdXJsLmluY2x1ZGVzKCdhdWRpdCcpKSkge1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9ICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09ICdwbGFub2dyYW0nKXtcclxuICAgICAgaWYodXJsWzJdID09ICdwbGFub2dyYW0nICYmICh1cmwuaW5jbHVkZXMoJ2xheW91dC1idWlsZGVyJykpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIGlmICh1cmxbM10gPT0gXCJwbGFub1wiKSB7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnN0IHZpZXdzV2l0aFBhZ2VUaXRsZXMgPSBbXCJjbGFzc2ljXCIsIFwicmVwb3J0c1wiLCBcInNhYXNcIl07XHJcbiAgcmV0dXJuIChcclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlRGlzcGxheSAmJlxyXG4gICAgdmlld3NXaXRoUGFnZVRpdGxlcy5zb21lKCh0KSA9PiB0ID09PSB0aGlzLmFwcFRvb2xiYXJMYXlvdXQpXHJcbiAgKTtcclxufVxyXG5cclxuc2V0VUlQcm9wZXJ0aWVzKFxyXG4gIHNpbmdsZVNlbGVjdDogYm9vbGVhbixcclxuICBtdWx0aVNlbGVjdDogYm9vbGVhbixcclxuICBkYXRlcGlja2VyOiBib29sZWFuLFxyXG4gIHNpbmdsZVN0b3JlOiBib29sZWFuLFxyXG4gIHNpbmdsZVNlbGVjdGRhdGVwaWNrZXI6IGJvb2xlYW4sXHJcbiAgdHJhZmZpY2RhdGVwaWNrZXI6Ym9vbGVhbixcclxuICB0cmF4ZGF0ZXBpY2tlcjpib29sZWFuLFxyXG4gIHRyYXh3aXRob3V0ZGF0ZXBpY2tlcjpib29sZWFuLFxyXG4gIHN0b3Jlc1NpbmdsZTpib29sZWFuLFxyXG4gIG5vYldpdGhvdXRDbGllbnQ6Ym9vbGVhbixcclxuICBtZXJ0aWNzSGVhZGVyOmJvb2xlYW4sXHJcbiAgc2luZ2xlQ2xpZW50U3RvcmVEYXRlOmJvb2xlYW5cclxuKTogdm9pZCB7XHJcbiAgdGhpcy5zaW5nbGVTZWxlY3QgPSBzaW5nbGVTZWxlY3Q7XHJcbiAgdGhpcy5tdWx0aVNlbGVjdCA9IG11bHRpU2VsZWN0O1xyXG4gIHRoaXMuZGF0ZXBpY2tlciA9IGRhdGVwaWNrZXI7XHJcbiAgdGhpcy5zaW5nbGVTdG9yZSA9IHNpbmdsZVN0b3JlO1xyXG4gIHRoaXMuc2luZ2xlU2VsZWN0ZGF0ZXBpY2tlciA9IHNpbmdsZVNlbGVjdGRhdGVwaWNrZXI7XHJcbiAgdGhpcy50cmFmZmljZGF0ZXBpY2tlciA9IHRyYWZmaWNkYXRlcGlja2VyO1xyXG4gIHRoaXMudHJheGRhdGVwaWNrZXIgPSB0cmF4ZGF0ZXBpY2tlcjtcclxuICB0aGlzLnRyYXh3aXRob3V0ZGF0ZXBpY2tlciA9IHRyYXh3aXRob3V0ZGF0ZXBpY2tlcjtcclxuICB0aGlzLnN0b3Jlc1NpbmdsZSA9IHN0b3Jlc1NpbmdsZTtcclxuICB0aGlzLm5vYldpdGhvdXRDbGllbnQgPSBub2JXaXRob3V0Q2xpZW50O1xyXG4gIHRoaXMubWVydGljc0hlYWRlciA9IG1lcnRpY3NIZWFkZXI7XHJcbnRoaXMuc2luZ2xlQ2xpZW50U3RvcmVEYXRlID0gc2luZ2xlQ2xpZW50U3RvcmVEYXRlO1xyXG59XHJcblxyXG5nZXRVc2VySW5mbyhjbGllbnQ6YW55KXtcclxuICBsZXQgb2JqID17XHJcbiAgICAgIGNsaWVudElkOiBjbGllbnQgPyBjbGllbnQgOicnXHJcbiAgfVxyXG4gIGlmKGNsaWVudCl7XHJcbiAgICB0aGlzLmF1dGguZ2V0SGVhZGVyVXNlcnMob2JqKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgXCJ1c2Vyc0VtYWlsLWluZm9cIixcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGU/LmRhdGE/LnVzZXJFbWFpbERhdGEgfHwgW10pIFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG59XHJcbiIsIjwhLS1iZWdpbjo6VG9vbGJhciBjb250YWluZXItLT5cclxuPGRpdiBpZD1cImt0X2FwcF90b29sYmFyX2NvbnRhaW5lclwiIGNsYXNzPVwiYXBwLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImFwcFRvb2xiYXJDb250YWluZXJDU1NDbGFzc1wiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAnY2xpZW50JyB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICdsZWFkJ1wiICA+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdlVGl0bGUoKVwiPlxyXG4gICAgPGxpYi1wYWdlLXRpdGxlIFthcHBQYWdlVGl0bGVEaXJlY3Rpb25dPVwiYXBwUGFnZVRpdGxlRGlyZWN0aW9uXCIgW2FwcFBhZ2VUaXRsZUJyZWFkY3J1bWJdPVwiYXBwUGFnZVRpdGxlQnJlYWRjcnVtYlwiXHJcbiAgICAgIFthcHBQYWdlVGl0bGVEZXNjcmlwdGlvbl09XCJhcHBQYWdlVGl0bGVEZXNjcmlwdGlvblwiIGNsYXNzPVwicGFnZS10aXRsZSBkLWZsZXggZmxleC13cmFwIG1lLTNcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2ZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXInOiBhcHBQYWdlVGl0bGVEaXJlY3Rpb24gPT09ICdjb2x1bW4nLCAnYWxpZ24taXRlbXMtY2VudGVyJzogYXBwUGFnZVRpdGxlRGlyZWN0aW9uICE9PSAnY29sdW1uJywgYXBwUGFnZVRpdGxlQ1NTQ2xhc3N9XCI+XHJcbiAgICA8L2xpYi1wYWdlLXRpdGxlPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlTZWxlY3QgJiYgdXNlcnMudXNlclR5cGUgPT09J3RhbmdvJ1wiPlxyXG4gICAgPGxpYi1jbGFzc2ljIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBnYXAtbGctM1wiPjwvbGliLWNsYXNzaWM+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNpbmdsZVNlbGVjdCAmJiB1c2Vycy51c2VyVHlwZSA9PT0ndGFuZ28nXCI+XHJcbiAgICA8bGliLWNsaWVudC1zZXR0aW5ncyBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNVwiPjwvbGliLWNsaWVudC1zZXR0aW5ncz5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRlcGlja2VyICYmICh1c2Vycy51c2VyVHlwZSA9PT0nY2xpZW50JyB8fCB1c2Vycy51c2VyVHlwZSA9PT0ndGFuZ28nKVwiPlxyXG4gICAgPGxpYi1kYXRlcGlja2VyIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItZGF0ZXBpY2tlcj5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaW5nbGVTZWxlY3RkYXRlcGlja2VyICYmIHVzZXJzLnVzZXJUeXBlID09PSd0YW5nbydcIj5cclxuICAgIDxsaWItZGF0ZS1zaW5nbGUtc2VsZWN0IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItZGF0ZS1zaW5nbGUtc2VsZWN0PlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNpbmdsZVN0b3JlXCI+XHJcbiAgICA8bGliLXNpbmdsZS1zdG9yZSBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNVwiIFt1cmxTdHJpbmddPVwidXJsU3RyaW5nXCI+PC9saWItc2luZ2xlLXN0b3JlPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYWZmaWNkYXRlcGlja2VyXCI+XHJcbiAgICA8bGliLXRyYWZmaWMtaGVhZGVyIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItdHJhZmZpYy1oZWFkZXI+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJheGRhdGVwaWNrZXJcIj5cclxuICAgIDxsaWItdHJheC1oZWFkZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi10cmF4LWhlYWRlcj5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmF4d2l0aG91dGRhdGVwaWNrZXJcIj5cclxuICAgIDxsaWItdHJheC13aXRob3V0ZGF0ZSBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNVwiPjwvbGliLXRyYXgtd2l0aG91dGRhdGU+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RvcmVzU2luZ2xlXCI+XHJcbiAgICA8bGliLXNpbmdsZS1zdG9yZWRhdGUgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1zaW5nbGUtc3RvcmVkYXRlPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vYldpdGhvdXRDbGllbnRcIj5cclxuICAgIDxsaWItdHJhZmZpYy1ub2IgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi10cmFmZmljLW5vYj5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVydGljc0hlYWRlclwiPlxyXG4gICAgPGxpYi1tZXRyaWNzLWhlYWRlciBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNVwiPjwvbGliLW1ldHJpY3MtaGVhZGVyPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaW5nbGVDbGllbnRTdG9yZURhdGVcIj5cclxuICAgIDxsaWItc2luZ2xlLWNsaWVudHN0b3JlLWRhdGUgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1zaW5nbGUtY2xpZW50c3RvcmUtZGF0ZT5cclxuICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFRvb2xiYXJMYXlvdXQgPT09ICdleHRlbmRlZCdcIj5cclxuICAgIDxsaWItZXh0ZW5kZWQgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtc2hyaW5rLTAgbWUtNVwiPjwvbGliLWV4dGVuZGVkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUb29sYmFyTGF5b3V0ID09PSAncmVwb3J0cydcIj5cclxuICAgIDxsaWItcmVwb3J0cyBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgb3ZlcmZsb3ctYXV0b1wiIFthcHBQYWdlVGl0bGVEaXNwbGF5XT1cImFwcFBhZ2VUaXRsZURpc3BsYXlcIj5cclxuICAgIDwvbGliLXJlcG9ydHM+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFRvb2xiYXJMYXlvdXQgPT09ICdzYWFzJ1wiPlxyXG4gICAgPGxpYi1zYWFzIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiIFthcHBQYWdlVGl0bGVEaXNwbGF5XT1cImFwcFBhZ2VUaXRsZURpc3BsYXlcIj48L2xpYi1zYWFzPlxyXG4gIDwvbmctY29udGFpbmVyPiAtLT5cclxuPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG48IS0tZW5kOjpUb29sYmFyIGNvbnRhaW5lci0tPlxyXG4iXX0=
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY3JELE1BQU0sT0FBTyxnQkFBZ0I7SUFrRGpCO0lBQ0E7SUFDQTtJQUNEO0lBQ0M7SUFyREYsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsZUFBZTtJQUNOLGlCQUFpQixDQUFvQjtJQUNyQyxnQkFBZ0IsQ0FLZDtJQUVYLFVBQVU7SUFDVixpQkFBaUIsQ0FBVTtJQUMzQixtQkFBbUIsQ0FBb0I7SUFDdkMsMkJBQTJCLEdBQVcsRUFBRSxDQUFDO0lBQ3pDLHNCQUFzQixDQUFVO0lBQ2hDLHFCQUFxQixDQUFVO0lBQy9CLG1CQUFtQixDQUFVO0lBRTdCLGFBQWE7SUFDYixxQkFBcUIsR0FBVyxFQUFFLENBQUM7SUFDbkMsb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0lBQ2xDLHNCQUFzQixDQUFVO0lBQ2hDLHVCQUF1QixDQUFVO0lBQ2pDLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQVU7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLFVBQVUsQ0FBVTtJQUNwQixzQkFBc0IsQ0FBVTtJQUNoQyxXQUFXLENBQVU7SUFDckIsV0FBVyxDQUFNO0lBQ2pCLE9BQU8sQ0FBTTtJQUNiLEtB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IE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB3aW5kb3cgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1xyXG4gIEdsb2JhbFN0YXRlU2VydmljZSxcclxuICBMYXlvdXRTZXJ2aWNlLFxyXG4gIFBhZ2VJbmZvU2VydmljZSxcclxufSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBJTGF5b3V0LCBMYXlvdXRUeXBlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdG9vbGJhclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdG9vbGJhci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi90b29sYmFyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICAvLyBQdWJsaWMgcHJvcHNcclxuICBASW5wdXQoKSBjdXJyZW50TGF5b3V0VHlwZTogTGF5b3V0VHlwZSB8IG51bGw7XHJcbiAgQElucHV0KCkgYXBwVG9vbGJhckxheW91dDpcclxuICAgIHwgXCJjbGFzc2ljXCJcclxuICAgIHwgXCJhY2NvdW50aW5nXCJcclxuICAgIHwgXCJleHRlbmRlZFwiXHJcbiAgICB8IFwicmVwb3J0c1wiXHJcbiAgICB8IFwic2Fhc1wiO1xyXG5cclxuICAvLyB0b29sYmFyXHJcbiAgYXBwVG9vbGJhckRpc3BsYXk6IGJvb2xlYW47XHJcbiAgYXBwVG9vbGJhckNvbnRhaW5lcjogXCJmaXhlZFwiIHwgXCJmbHVpZFwiO1xyXG4gIGFwcFRvb2xiYXJDb250YWluZXJDU1NDbGFzczogc3RyaW5nID0gXCJcIjtcclxuICBhcHBUb29sYmFyRml4ZWREZXNrdG9wOiBib29sZWFuO1xyXG4gIGFwcFRvb2xiYXJGaXhlZE1vYmlsZTogYm9vbGVhbjtcclxuICBhcHBQYWdlVGl0bGVEaXNwbGF5OiBib29sZWFuO1xyXG5cclxuICAvLyBwYWdlIHRpdGxlXHJcbiAgYXBwUGFnZVRpdGxlRGlyZWN0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGFwcFBhZ2VUaXRsZUNTU0NsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGFwcFBhZ2VUaXRsZUJyZWFkY3J1bWI6IGJvb2xlYW47XHJcbiAgYXBwUGFnZVRpdGxlRGVzY3JpcHRpb246IGJvb2xlYW47XHJcbiAgcXVlclBhcmFtczogYW55O1xyXG4gIHNpbmdsZVNlbGVjdDogYm9vbGVhbjtcclxuICBtdWx0aVNlbGVjdDogYm9vbGVhbjtcclxuICBkYXRlcGlja2VyOiBib29sZWFuO1xyXG4gIHNpbmdsZVNlbGVjdGRhdGVwaWNrZXI6IGJvb2xlYW47XHJcbiAgc2luZ2xlU3RvcmU6IGJvb2xlYW47XHJcbiAgaGVhZGVydmFsdWU6IGFueTtcclxuICBzdG9yZUlkOiBhbnk7XHJcbiAgdXNlcnM6IGFueTtcclxuICBzZWxlY3RlZEZpbHRlcnM6IGFueSA9IHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgZGF0ZTogbnVsbCxcclxuICB9O1xyXG4gIHRyYWZmaWNkYXRlcGlja2VyOiBib29sZWFuO1xyXG4gIHRyYXhkYXRlcGlja2VyOiBib29sZWFuO1xyXG4gIHVybFN0cmluZzphbnk7XHJcbiAgdHJheHdpdGhvdXRkYXRlcGlja2VyOmJvb2xlYW47XHJcbiAgc3RvcmVzU2luZ2xlOmJvb2xlYW47XHJcbiAgbm9iV2l0aG91dENsaWVudDpib29sZWFuO1xyXG4gIG1lcnRpY3NIZWFkZXI6IGJvb2xlYW47XHJcbiAgc2luZ2xlQ2xpZW50U3RvcmVEYXRlOmJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheW91dDogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoIDogQXV0aFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKFwidXNlci1pbmZvXCIgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IHVzZXJEYXRhOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIlxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVzZXJzID0gdXNlckRhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAoXCJoZWFkZXItZmlsdGVyc1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBkYXRhOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiB0aGlzLmNsaWVudCA9IGRhdGE/LmNsaWVudDtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0VXNlckluZm8odGhpcy5jbGllbnQgPyB0aGlzLmNsaWVudCA6IHRoaXMudXNlcnMuY2xpZW50KVxyXG4gICAgdGhpcy5zaG93UGFnZVRpdGxlKCk7XHJcbiAgICBjb25zdCBzdWJzY3IgPSB0aGlzLmxheW91dC5sYXlvdXRDb25maWdTdWJqZWN0XHJcbiAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWc6IElMYXlvdXQpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVByb3BzKGNvbmZpZyk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKHN1YnNjcik7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcm9wcyhjb25maWc6IElMYXlvdXQpIHtcclxuICAgIHRoaXMuYXBwVG9vbGJhckRpc3BsYXkgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmRpc3BsYXlcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAoIXRoaXMuYXBwVG9vbGJhckRpc3BsYXkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlRGlzcGxheSA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5kaXNwbGF5XCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAudG9vbGJhci5jb250YWluZXJcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIFwiZmx1aWRcIiB8IFwiZml4ZWRcIjtcclxuICAgIHRoaXMuYXBwVG9vbGJhckNvbnRhaW5lckNTU0NsYXNzID1cclxuICAgICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyID09PSBcImZpeGVkXCJcclxuICAgICAgICA/IFwiY29udGFpbmVyLXh4bFwiXHJcbiAgICAgICAgOiBcImNvbnRhaW5lci1mbHVpZFwiO1xyXG4gICAgY29uc3QgY29udGFpbmVyQ2xhc3MgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmNvbnRhaW5lckNsYXNzXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICBpZiAoY29udGFpbmVyQ2xhc3MpIHtcclxuICAgICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyQ1NTQ2xhc3MgKz0gYCAke2NvbnRhaW5lckNsYXNzfWA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBUb29sYmFyRml4ZWREZXNrdG9wID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAudG9vbGJhci5maXhlZC5kZXNrdG9wXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwVG9vbGJhckZpeGVkRGVza3RvcCkge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcImRhdGEta3QtYXBwLXRvb2xiYXItZml4ZWRcIiwgXCJ0cnVlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwVG9vbGJhckZpeGVkTW9iaWxlID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAudG9vbGJhci5maXhlZC5tb2JpbGVcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBUb29sYmFyRml4ZWRNb2JpbGUpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoXCJkYXRhLWt0LWFwcC10b29sYmFyLWZpeGVkLW1vYmlsZVwiLCBcInRydWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdG9vbGJhclxyXG4gICAgdGhpcy5hcHBQYWdlVGl0bGVEaXJlY3Rpb24gPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuZGlyZWN0aW9uXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZUNTU0NsYXNzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAucGFnZVRpdGxlLmNsYXNzXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZUJyZWFkY3J1bWIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuYnJlYWRDcnVtYlwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlRGVzY3JpcHRpb24gPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuZGVzY3JpcHRpb25cIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoXCJkYXRhLWt0LWFwcC10b29sYmFyLWVuYWJsZWRcIiwgXCJ0cnVlXCIpO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgLy8gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJ1c2Vyc0VtYWlsLWluZm9cIik7XHJcbiAgfVxyXG4gIGNsaWVudDphbnk7XHJcbiAgdXJsU3RyaW5nMTphbnk7XHJcbiAgc2hvd1BhZ2VUaXRsZSgpIHtcclxuICAgIGxldCBVUkw6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBpZiAoXCJoZWFkZXItZmlsdGVyc1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBkYXRhOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgY29uc3Qgc3RvcmUgPSAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwIGFzIGFueSAgICAgIFxyXG4gICAgICB0aGlzLnN0b3JlSWQgPSAgZGF0YT8uc3RvcmU7XHJcblxyXG4gICAgICBpZihzdG9yZT8ucGFyYW1zPy5bJ3N0b3JlSWQnXSl7XHJcbiAgICAgICAgdGhpcy5zdG9yZUlkID0gc3RvcmUucGFyYW1zWydzdG9yZUlkJ11cclxuICAgICAgICBkYXRhLnN0b3JlID0gc3RvcmUucGFyYW1zWydzdG9yZUlkJ11cclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeShkYXRhKSlcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICBjb25zdCB1cGRhdGVkVXJsID0gY3VycmVudFVybC5yZXBsYWNlKFxyXG4gICAgICAgIC9cXC9tYW5hZ2VcXC9zdG9yZXNcXC9cXGQrLVxcZCtcXC8vLFxyXG4gICAgICAgIGAvbWFuYWdlL3N0b3Jlcy9gXHJcbiAgICAgICk7XHJcbiAgICAgIFVSTCA9IHVwZGF0ZWRVcmw7XHJcbiAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFtVUkxdKVxyXG4gICAgfVxyXG4gIGNvbnN0IHVybCA9IFVSTC5zcGxpdChcIj9cIilbMF0uc3BsaXQoJy8nKTtcclxuICB0aGlzLnVybFN0cmluZyA9IFVSTDtcclxuICAgdGhpcy51cmxTdHJpbmcxPSBVUkwuc3BsaXQoJy8nKTtcclxuICBpZiAodGhpcy51c2Vycz8udXNlclR5cGUgPT09IFwidGFuZ29cIikge1xyXG4gICAgaWYgKHVybFsyXSA9PSBcInNldHRpbmdzXCIgfHwgVVJMID09IFwiL21hbmFnZS91c2Vycy9jbGllbnRcIiAgfHxcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzXCIgfHwgIFVSTCA9PT0gXCIvbWFuYWdlL3N0b3Jlcz90eXBlPXN0b3Jlc1wiIHx8IFVSTCA9PT0gXCIvbWFuYWdlL3N0b3Jlcz90eXBlPWNsdXN0ZXJzXCIgfHxcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZFwiIHx8XHJcbiAgICBVUkwgPT0gXCIvbWFuYWdlL3N0b3Jlcy9hZGQtc2luZ2xlLXN0b3JlXCIgfHwgVVJMID09PSBcIi9tYW5hZ2UvdHJheC9nYWxsZXJ5XCIgfHwgVVJMID09IFwiL25vdGlmaWNhdGlvbnMvYWxlcnRzP3RhYj1hbGVydFwiIHx8ICBVUkwgPT0gXCIvbm90aWZpY2F0aW9ucy9hbGVydHM/dGFiPWRvd25sb2FkXCIgfHwgVVJMID09PSBcIi9tYW5hZ2UvdHJheC9hdWRpdFwiICkge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyh0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9ICBlbHNlIGlmICh1cmxbM10gPT0gXCJlZGdlLWFwcFwiKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvaW5mcmEtdGlja2V0P3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fCAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1pbmZyYWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9zZXR0aW5ncz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHwgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1kYXRhTWlzbWF0Y2hgIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvem9uZXM/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvY2FtZXJhcz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgLy8gVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYXN0cnVjdHVyZT9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9tYXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfWVsc2UgaWYgKFVSTCA9PSBcIi90aWNrZXRzL3N0b3Jlc1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvdGFuZ28vYXVkaXRcIikge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYodXJsWzJdID09PSAnY29udHJvbGNlbnRlcicpe1xyXG4gICAgICBpZihVUkwgPT0gYC9tYW5hZ2UvY29udHJvbGNlbnRlci9wbGF5YmFjaz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWB8fCBVUkwgPT0gYC9tYW5hZ2UvY29udHJvbGNlbnRlci9wbGF5YmFja2Ape1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gXHJcbiAgfWVsc2UgaWYgKFVSTCA9PSBcIi9wcm9maWxlXCIgfHwgdXJsWzJdPT09XCJkYXRhLW1pc21hdGNoXCIgfHwgdXJsWzJdPT09XCJlbXBsb3llZXRyYWluaW5nXCIgIFxyXG4gICAgICAgfHwgVVJMID09IFwiL21hbmFnZS9icmFuZHNcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL3VzZXJzL3RhbmdvXCIgfHwgKHVybFsxXSA9PT1cInRpY2tldHNcIiAmJiB1cmxbMl0gPT09IFwiYXVkaXRcIikgfHwgdXJsLmluY2x1ZGVzKCdsaXN0JykpIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZihVUkwgPT0gXCIvbWFuYWdlL3RyYWZmaWMvbm9iXCIpe1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZih1cmxbMl0gPT09IFwidHJhZmZpY1wiIHx8IHVybFsyXSA9PT0gXCJ6b25lc1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvYW5hbHlzZS9yZXBvcnRzXCIgKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH1lbHNlIGlmKFVSTCA9PSBcIi9tYW5hZ2UvZW1wbG95ZWUtbWV0cmljcy9iZWVhaEdyb3VwXCIgfHwgVVJMID09IFwiL21hbmFnZS9lbXBsb3llZS1tZXRyaWNzL2JlZWFoTGl2ZVwiKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlKTtcclxuICAgIH0gZWxzZSBpZih1cmxbMl0gPT09IFwiZW1wbG95ZWUtbWV0cmljc1wiICYmIHVybFszXSA9PT0gXCJoZWF0bWFwXCIpe1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PT0gXCJlbXBsb3llZS1tZXRyaWNzXCIpe1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PSAndHJheCcpe1xyXG4gICAgICBpZih1cmxbMl0gPT0gJ3RyYXgnICYmICh1cmwuaW5jbHVkZXMoJ2NyZWF0ZUNoZWNrbGlzdCcpIHx8IHVybC5pbmNsdWRlcygnY29uZmlndXJlJykgfHwgdXJsLmluY2x1ZGVzKCdjcmVhdGUtb3JkZXInKXx8IHVybFszXSA9PSAnY3JlYXRlLXRhc2snIHx8IHVybFszXSA9PSAndGFzay1jb25maWd1cmUnKSkge1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfSBcclxuICAgICAgLy8gZWxzZSBpZih1cmxbMl0gPT0gJ3RyYXgnICYmICh1cmwuaW5jbHVkZXMoJ3Rhc2tpbmZvJykpKXtcclxuICAgICAgLy8gICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIGlmKHVybFsyXSA9PSAndHJheCcgJiYgdXJsLmluY2x1ZGVzKCdzdGFydCcpKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYodXJsWzJdID09ICd0cmF4JyAmJiAodXJsLmluY2x1ZGVzKCdjaGVja2xpc3QnKSB8fCB1cmwuaW5jbHVkZXMoJ2dhbGxlcnknKSkgfHwgdXJsLmluY2x1ZGVzKCdhdWRpdCcpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXModHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH0gICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZih1cmxbMl0gPT0gJ3BsYW5vZ3JhbScpe1xyXG4gICAgICBpZih1cmxbMl0gPT0gJ3BsYW5vZ3JhbScgJiYgKHVybC5pbmNsdWRlcygnbGF5b3V0LWJ1aWxkZXInKSkpIHtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBpZih1cmxbMl0gPT0gJ3BsYW5vZ3JhbScgJiYgdXJsWzNdID09ICdtYW5hZ2UtcGxhbm9ncmFtJykge1xyXG4gICAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmKHVybFsxXSA9PSAnZXlldGVzdCcgKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiBcclxuICAgIH1lbHNle1xyXG4gICAgICBpZih1cmxbM10gPT0gJ3BsYW5vJykge1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKHVybFszXSA9PSBcImVkZ2UtYXBwXCIgKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvaW5mcmEtdGlja2V0P3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fCAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1pbmZyYWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9zZXR0aW5ncz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHwgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1kYXRhTWlzbWF0Y2hgIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvem9uZXM/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvY2FtZXJhcz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgLy8gVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYXN0cnVjdHVyZT9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9tYXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PT0gJ2NvbnRyb2xjZW50ZXInKXtcclxuICAgICAgaWYoVVJMID09IGAvbWFuYWdlL2NvbnRyb2xjZW50ZXIvcGxheWJhY2s/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gfHwgVVJMID09IGAvbWFuYWdlL2NvbnRyb2xjZW50ZXIvcGxheWJhY2tgKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9IFxyXG4gIH0gZWxzZSBpZiAoVVJMID09IFwiL3Byb2ZpbGVcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL3VzZXJzL2NsaWVudFwiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvdGFuZ29cIiB8fFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXNcIiB8fCAgVVJMID09PSBcIi9tYW5hZ2Uvc3RvcmVzP3R5cGU9c3RvcmVzXCIgfHwgVVJMID09PSBcIi9tYW5hZ2Uvc3RvcmVzP3R5cGU9Y2x1c3RlcnNcIiB8fCB1cmxbMl0gPT0gXCJzZXR0aW5nc1wiIHx8IFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXMvYWRkaXRpb24tbWV0aG9kXCIgfHxcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzL2FkZC1zaW5nbGUtc3RvcmVcIiB8fCB1cmxbMl09PT1cImRhdGEtbWlzbWF0Y2hcIiB8fCB1cmxbMl09PT1cImVtcGxveWVldHJhaW5pbmdcIiAgfHwgVVJMID09IFwiL25vdGlmaWNhdGlvbnMvYWxlcnRzP3RhYj1hbGVydFwiIHx8ICBVUkwgPT0gXCIvbm90aWZpY2F0aW9ucy9hbGVydHM/dGFiPWRvd25sb2FkXCJcclxuICAgICB8fCBVUkwgPT0gXCIvbWFuYWdlL3VzZXJzL3RhbmdvXCIgfHwgVVJMID09PSBcIi9tYW5hZ2UvY29udHJvbGNlbnRlclwiIHx8IFVSTCA9PT0nbWFuYWdlL2NvbnRyb2xjZW50ZXIvdGVtcGxhdGUtbWFuYWdlcicgfHwgdXJsWzJdPT09J2NvbnRyb2xjZW50ZXInIHx8ICB1cmwuaW5jbHVkZXMoJ2xpc3QnKSkge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfWVsc2UgaWYoVVJMID09IFwiL21hbmFnZS90cmFmZmljL25vYlwiKXtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09PSBcInRyYWZmaWNcIiB8fCB1cmxbMl0gPT09IFwiem9uZXNcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL2FuYWx5c2UvcmVwb3J0c1wiKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgIH1lbHNlIGlmKFVSTCA9PSBcIi9tYW5hZ2UvZW1wbG95ZWUtbWV0cmljcy9iZWVhaEdyb3VwXCIgfHwgVVJMID09IFwiL21hbmFnZS9lbXBsb3llZS1tZXRyaWNzL2JlZWFoTGl2ZVwiKXtcclxuICAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PT0gXCJlbXBsb3llZS1tZXRyaWNzXCIgJiYgdXJsWzNdID09PSBcImhlYXRtYXBcIil7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09PSBcImVtcGxveWVlLW1ldHJpY3NcIil7XHJcbiAgICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYodXJsWzJdID09ICd0cmF4Jyl7XHJcbiAgICAgIGlmKHVybFsyXSA9PSAndHJheCcgJiYgKHVybC5pbmNsdWRlcygnY3JlYXRlQ2hlY2tsaXN0JykgfHwgdXJsLmluY2x1ZGVzKCdjb25maWd1cmUnKSB8fCB1cmwuaW5jbHVkZXMoJ2NyZWF0ZS1vcmRlcicpIHx8IHVybFszXSA9PSAnY3JlYXRlLXRhc2snIHx8IHVybFszXSA9PSAndGFzay1jb25maWd1cmUnKSkge1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBlbHNlIGlmKHVybFsyXSA9PSAndHJheCcgJiYgKHVybC5pbmNsdWRlcygndGFza2luZm8nKSkpe1xyXG4gICAgICAvLyAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIGVsc2UgaWYodXJsWzJdID09ICd0cmF4JyAmJiB1cmwuaW5jbHVkZXMoJ3N0YXJ0Jykpe1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZih1cmxbMl0gPT0gJ3RyYXgnICYmICh1cmwuaW5jbHVkZXMoJ2NoZWNrbGlzdCcpIHx8IHVybC5pbmNsdWRlcygnZ2FsbGVyeScpIHx8IHVybC5pbmNsdWRlcygnYXVkaXQnKSkpIHtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyh0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfSAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PSAncGxhbm9ncmFtJyl7XHJcbiAgICAgIGlmKHVybFsyXSA9PSAncGxhbm9ncmFtJyAmJiAodXJsLmluY2x1ZGVzKCdsYXlvdXQtYnVpbGRlcicpKSkge1xyXG4gICAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyh0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmKHVybFsxXSA9PSAnZXlldGVzdCcgKXtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiBcclxuICAgIH1lbHNlIHtcclxuICAgICAgaWYgKHVybFszXSA9PSBcInBsYW5vXCIpIHtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29uc3Qgdmlld3NXaXRoUGFnZVRpdGxlcyA9IFtcImNsYXNzaWNcIiwgXCJyZXBvcnRzXCIsIFwic2Fhc1wiXTtcclxuICByZXR1cm4gKFxyXG4gICAgdGhpcy5hcHBQYWdlVGl0bGVEaXNwbGF5ICYmXHJcbiAgICB2aWV3c1dpdGhQYWdlVGl0bGVzLnNvbWUoKHQpID0+IHQgPT09IHRoaXMuYXBwVG9vbGJhckxheW91dClcclxuICApO1xyXG59XHJcblxyXG5zZXRVSVByb3BlcnRpZXMoXHJcbiAgc2luZ2xlU2VsZWN0OiBib29sZWFuLFxyXG4gIG11bHRpU2VsZWN0OiBib29sZWFuLFxyXG4gIGRhdGVwaWNrZXI6IGJvb2xlYW4sXHJcbiAgc2luZ2xlU3RvcmU6IGJvb2xlYW4sXHJcbiAgc2luZ2xlU2VsZWN0ZGF0ZXBpY2tlcjogYm9vbGVhbixcclxuICB0cmFmZmljZGF0ZXBpY2tlcjpib29sZWFuLFxyXG4gIHRyYXhkYXRlcGlja2VyOmJvb2xlYW4sXHJcbiAgdHJheHdpdGhvdXRkYXRlcGlja2VyOmJvb2xlYW4sXHJcbiAgc3RvcmVzU2luZ2xlOmJvb2xlYW4sXHJcbiAgbm9iV2l0aG91dENsaWVudDpib29sZWFuLFxyXG4gIG1lcnRpY3NIZWFkZXI6Ym9vbGVhbixcclxuICBzaW5nbGVDbGllbnRTdG9yZURhdGU6Ym9vbGVhblxyXG4pOiB2b2lkIHtcclxuICB0aGlzLnNpbmdsZVNlbGVjdCA9IHNpbmdsZVNlbGVjdDtcclxuICB0aGlzLm11bHRpU2VsZWN0ID0gbXVsdGlTZWxlY3Q7XHJcbiAgdGhpcy5kYXRlcGlja2VyID0gZGF0ZXBpY2tlcjtcclxuICB0aGlzLnNpbmdsZVN0b3JlID0gc2luZ2xlU3RvcmU7XHJcbiAgdGhpcy5zaW5nbGVTZWxlY3RkYXRlcGlja2VyID0gc2luZ2xlU2VsZWN0ZGF0ZXBpY2tlcjtcclxuICB0aGlzLnRyYWZmaWNkYXRlcGlja2VyID0gdHJhZmZpY2RhdGVwaWNrZXI7XHJcbiAgdGhpcy50cmF4ZGF0ZXBpY2tlciA9IHRyYXhkYXRlcGlja2VyO1xyXG4gIHRoaXMudHJheHdpdGhvdXRkYXRlcGlja2VyID0gdHJheHdpdGhvdXRkYXRlcGlja2VyO1xyXG4gIHRoaXMuc3RvcmVzU2luZ2xlID0gc3RvcmVzU2luZ2xlO1xyXG4gIHRoaXMubm9iV2l0aG91dENsaWVudCA9IG5vYldpdGhvdXRDbGllbnQ7XHJcbiAgdGhpcy5tZXJ0aWNzSGVhZGVyID0gbWVydGljc0hlYWRlcjtcclxudGhpcy5zaW5nbGVDbGllbnRTdG9yZURhdGUgPSBzaW5nbGVDbGllbnRTdG9yZURhdGU7XHJcbn1cclxuXHJcbmdldFVzZXJJbmZvKGNsaWVudDphbnkpe1xyXG4gIGxldCBvYmogPXtcclxuICAgICAgY2xpZW50SWQ6IGNsaWVudCA/IGNsaWVudCA6JydcclxuICB9XHJcbiAgaWYoY2xpZW50KXtcclxuICAgIHRoaXMuYXV0aC5nZXRIZWFkZXJVc2VycyhvYmopLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChlKSA9PiB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICBcInVzZXJzRW1haWwtaW5mb1wiLFxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZT8uZGF0YT8udXNlckVtYWlsRGF0YSB8fCBbXSkgXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbn1cclxuIiwiPCEtLWJlZ2luOjpUb29sYmFyIGNvbnRhaW5lci0tPlxyXG48ZGl2IGlkPVwia3RfYXBwX3Rvb2xiYXJfY29udGFpbmVyXCIgY2xhc3M9XCJwcy01IHBlLTBcIiBbbmdDbGFzc109XCJhcHBUb29sYmFyQ29udGFpbmVyQ1NTQ2xhc3NcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nIHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAnbGVhZCdcIiAgPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UGFnZVRpdGxlKClcIj5cclxuICAgIDxsaWItcGFnZS10aXRsZSBbYXBwUGFnZVRpdGxlRGlyZWN0aW9uXT1cImFwcFBhZ2VUaXRsZURpcmVjdGlvblwiIFthcHBQYWdlVGl0bGVCcmVhZGNydW1iXT1cImFwcFBhZ2VUaXRsZUJyZWFkY3J1bWJcIlxyXG4gICAgICBbYXBwUGFnZVRpdGxlRGVzY3JpcHRpb25dPVwiYXBwUGFnZVRpdGxlRGVzY3JpcHRpb25cIiBjbGFzcz1cInBhZ2UtdGl0bGUgZC1mbGV4IGZsZXgtd3JhcCBtZS0zXCJcclxuICAgICAgW25nQ2xhc3NdPVwieydmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogYXBwUGFnZVRpdGxlRGlyZWN0aW9uID09PSAnY29sdW1uJywgJ2FsaWduLWl0ZW1zLWNlbnRlcic6IGFwcFBhZ2VUaXRsZURpcmVjdGlvbiAhPT0gJ2NvbHVtbicsIGFwcFBhZ2VUaXRsZUNTU0NsYXNzfVwiPlxyXG4gICAgPC9saWItcGFnZS10aXRsZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpU2VsZWN0ICYmIHVzZXJzLnVzZXJUeXBlID09PSd0YW5nbydcIj5cclxuICAgIDxsaWItY2xhc3NpYyBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgZ2FwLWxnLTNcIj48L2xpYi1jbGFzc2ljPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaW5nbGVTZWxlY3QgJiYgdXNlcnMudXNlclR5cGUgPT09J3RhbmdvJ1wiPlxyXG4gICAgPGxpYi1jbGllbnQtc2V0dGluZ3MgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1jbGllbnQtc2V0dGluZ3M+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0ZXBpY2tlciAmJiAodXNlcnMudXNlclR5cGUgPT09J2NsaWVudCcgfHwgdXNlcnMudXNlclR5cGUgPT09J3RhbmdvJylcIj5cclxuICAgIDxsaWItZGF0ZXBpY2tlciBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNVwiPjwvbGliLWRhdGVwaWNrZXI+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwic2luZ2xlU2VsZWN0ZGF0ZXBpY2tlciAmJiB1c2Vycy51c2VyVHlwZSA9PT0ndGFuZ28nXCI+XHJcbiAgICA8bGliLWRhdGUtc2luZ2xlLXNlbGVjdCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNVwiPjwvbGliLWRhdGUtc2luZ2xlLXNlbGVjdD5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaW5nbGVTdG9yZVwiPlxyXG4gICAgPGxpYi1zaW5nbGUtc3RvcmUgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIiBbdXJsU3RyaW5nXT1cInVybFN0cmluZ1wiPjwvbGliLXNpbmdsZS1zdG9yZT5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmFmZmljZGF0ZXBpY2tlclwiPlxyXG4gICAgPGxpYi10cmFmZmljLWhlYWRlciBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtNVwiPjwvbGliLXRyYWZmaWMtaGVhZGVyPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYXhkYXRlcGlja2VyXCI+XHJcbiAgICA8bGliLXRyYXgtaGVhZGVyIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItdHJheC1oZWFkZXI+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJheHdpdGhvdXRkYXRlcGlja2VyXCI+XHJcbiAgICA8bGliLXRyYXgtd2l0aG91dGRhdGUgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi10cmF4LXdpdGhvdXRkYXRlPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0b3Jlc1NpbmdsZVwiPlxyXG4gICAgPGxpYi1zaW5nbGUtc3RvcmVkYXRlIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItc2luZ2xlLXN0b3JlZGF0ZT5cclxuICAgPC9uZy1jb250YWluZXI+XHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2JXaXRob3V0Q2xpZW50XCI+XHJcbiAgICA8bGliLXRyYWZmaWMtbm9iIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItdHJhZmZpYy1ub2I+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lcnRpY3NIZWFkZXJcIj5cclxuICAgIDxsaWItbWV0cmljcy1oZWFkZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1tZXRyaWNzLWhlYWRlcj5cclxuICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwic2luZ2xlQ2xpZW50U3RvcmVEYXRlXCI+XHJcbiAgICA8bGliLXNpbmdsZS1jbGllbnRzdG9yZS1kYXRlIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItc2luZ2xlLWNsaWVudHN0b3JlLWRhdGU+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUb29sYmFyTGF5b3V0ID09PSAnZXh0ZW5kZWQnXCI+XHJcbiAgICA8bGliLWV4dGVuZGVkIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXNocmluay0wIG1lLTVcIj48L2xpYi1leHRlbmRlZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVG9vbGJhckxheW91dCA9PT0gJ3JlcG9ydHMnXCI+XHJcbiAgICA8bGliLXJlcG9ydHMgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG92ZXJmbG93LWF1dG9cIiBbYXBwUGFnZVRpdGxlRGlzcGxheV09XCJhcHBQYWdlVGl0bGVEaXNwbGF5XCI+XHJcbiAgICA8L2xpYi1yZXBvcnRzPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBUb29sYmFyTGF5b3V0ID09PSAnc2FhcydcIj5cclxuICAgIDxsaWItc2FhcyBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIiBbYXBwUGFnZVRpdGxlRGlzcGxheV09XCJhcHBQYWdlVGl0bGVEaXNwbGF5XCI+PC9saWItc2Fhcz5cclxuICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbjwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPCEtLWVuZDo6VG9vbGJhciBjb250YWluZXItLT5cclxuIl19