@c8y/ngx-components 1021.22.39 → 1021.22.42

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 (45) hide show
  1. package/context-dashboard/context-dashboard.model.d.ts +1 -0
  2. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  3. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts +5 -1
  4. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts.map +1 -1
  5. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts +5 -1
  6. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts.map +1 -1
  7. package/core/docs/support-outlet/support-outlet.component.d.ts +5 -1
  8. package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
  9. package/core/i18n/translate.service.d.ts.map +1 -1
  10. package/core/shared/core.model.d.ts +5 -1
  11. package/core/shared/core.model.d.ts.map +1 -1
  12. package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -0
  13. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  14. package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
  15. package/ecosystem/packages/package-details/package-details.component.d.ts +3 -2
  16. package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
  17. package/ecosystem/shared/ecosystem.model.d.ts +3 -0
  18. package/ecosystem/shared/ecosystem.model.d.ts.map +1 -1
  19. package/esm2022/branding/shared/lazy/branding-form/branding-form.component.mjs +3 -3
  20. package/esm2022/context-dashboard/context-dashboard.model.mjs +3 -2
  21. package/esm2022/core/docs/support-outlet/support-outlet.component.mjs +3 -3
  22. package/esm2022/core/i18n/translate.service.mjs +7 -5
  23. package/esm2022/core/shared/core.model.mjs +6 -2
  24. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +36 -38
  25. package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +9 -12
  26. package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +11 -6
  27. package/esm2022/ecosystem/shared/ecosystem.model.mjs +6 -3
  28. package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
  29. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -2
  30. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +2 -1
  32. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -48
  34. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +5 -2
  36. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  37. package/fesm2022/c8y-ngx-components-ecosystem.mjs +51 -51
  38. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  39. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
  40. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  41. package/fesm2022/c8y-ngx-components.mjs +13 -7
  42. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  43. package/package.json +1 -1
  44. package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
  45. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
@@ -109,10 +109,10 @@ export class SupportOutletComponent {
109
109
  this.ui.currentUser.next(currentUserResult.data);
110
110
  }
111
111
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SupportOutletComponent, deps: [{ token: i1.AppStateService }, { token: i1.OptionsService }, { token: i2.ModalService }, { token: i3.TranslateService }, { token: i4.TenantService }, { token: i5.AlertService }, { token: i4.UserService }, { token: i6.HeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: SupportOutletComponent, selector: "c8y-support-outlet", ngImport: i0, template: "<button\n class=\"c8y-right-drawer__link sticky-top\"\n [tabindex]=\"tabIndex$ | async\"\n type=\"button\"\n (click)=\"isCollapsed = !isCollapsed\"\n *ngIf=\"isCollapsible\"\n>\n <i c8yIcon=\"c8y-c8y-support\"></i>\n <span class=\"text-bold\">{{ 'Support' | translate }}</span>\n <i\n class=\"m-l-auto\"\n c8yIcon=\"angle-up\"\n [ngClass]=\"{ 'icon-rotate-180': isCollapsed }\"\n ></i>\n</button>\n<div\n class=\"collapse\"\n id=\"collapseSupport\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Activate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"!(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"activateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Activate support access' | translate }}\"\n >\n {{ 'Activate support access' | translate }}\n </span>\n </button>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"deactivateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n >\n {{ 'Deactivate support access' | translate }}\n </span>\n </button>\n <a\n class=\"c8y-right-drawer__link\"\n [ngClass]=\"{'separator-top': !isCollapsible}\"\n title=\"{{ 'Request support' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n role=\"button\"\n target=\"_blank\"\n *ngIf=\"supportUrl\"\n rel=\"noopener noreferrer\"\n [href]=\"supportUrl\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Request support' | translate }}\"\n >\n {{ 'Request support' | translate }}\n </span>\n </a>\n</div>\n", dependencies: [{ kind: "directive", type: i7.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i10.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }] }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: SupportOutletComponent, selector: "c8y-support-outlet", ngImport: i0, template: "<button\n class=\"c8y-right-drawer__link sticky-top\"\n [tabindex]=\"tabIndex$ | async\"\n type=\"button\"\n (click)=\"isCollapsed = !isCollapsed\"\n *ngIf=\"isCollapsible\"\n>\n <i c8yIcon=\"c8y-c8y-support\"></i>\n <span class=\"text-bold\">{{ 'Support' | translate }}</span>\n <i\n class=\"m-l-auto\"\n c8yIcon=\"angle-up\"\n [ngClass]=\"{ 'icon-rotate-180': isCollapsed }\"\n ></i>\n</button>\n<div\n class=\"collapse\"\n id=\"collapseSupport\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Activate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"!(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"activateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.QUICK_LINKS.ACTIONS.ACTIVATE_SUPPORT_ACCESS }\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Activate support access' | translate }}\"\n >\n {{ 'Activate support access' | translate }}\n </span>\n </button>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"deactivateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.QUICK_LINKS.ACTIONS.DEACTIVATE_SUPPORT_ACCESS }\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n >\n {{ 'Deactivate support access' | translate }}\n </span>\n </button>\n <a\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Request support' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n role=\"button\"\n target=\"_blank\"\n [ngClass]=\"{ 'separator-top': !isCollapsible }\"\n *ngIf=\"supportUrl\"\n rel=\"noopener noreferrer\"\n [href]=\"supportUrl\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.QUICK_LINKS.ACTIONS.OPEN_SUPPORT_LINK }\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Request support' | translate }}\"\n >\n {{ 'Request support' | translate }}\n </span>\n </a>\n</div>\n", dependencies: [{ kind: "directive", type: i7.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i10.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }] }); }
113
113
  }
114
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SupportOutletComponent, decorators: [{
115
115
  type: Component,
116
- args: [{ selector: 'c8y-support-outlet', template: "<button\n class=\"c8y-right-drawer__link sticky-top\"\n [tabindex]=\"tabIndex$ | async\"\n type=\"button\"\n (click)=\"isCollapsed = !isCollapsed\"\n *ngIf=\"isCollapsible\"\n>\n <i c8yIcon=\"c8y-c8y-support\"></i>\n <span class=\"text-bold\">{{ 'Support' | translate }}</span>\n <i\n class=\"m-l-auto\"\n c8yIcon=\"angle-up\"\n [ngClass]=\"{ 'icon-rotate-180': isCollapsed }\"\n ></i>\n</button>\n<div\n class=\"collapse\"\n id=\"collapseSupport\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Activate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"!(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"activateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Activate support access' | translate }}\"\n >\n {{ 'Activate support access' | translate }}\n </span>\n </button>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"deactivateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n >\n {{ 'Deactivate support access' | translate }}\n </span>\n </button>\n <a\n class=\"c8y-right-drawer__link\"\n [ngClass]=\"{'separator-top': !isCollapsible}\"\n title=\"{{ 'Request support' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n role=\"button\"\n target=\"_blank\"\n *ngIf=\"supportUrl\"\n rel=\"noopener noreferrer\"\n [href]=\"supportUrl\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Request support' | translate }}\"\n >\n {{ 'Request support' | translate }}\n </span>\n </a>\n</div>\n" }]
116
+ args: [{ selector: 'c8y-support-outlet', template: "<button\n class=\"c8y-right-drawer__link sticky-top\"\n [tabindex]=\"tabIndex$ | async\"\n type=\"button\"\n (click)=\"isCollapsed = !isCollapsed\"\n *ngIf=\"isCollapsible\"\n>\n <i c8yIcon=\"c8y-c8y-support\"></i>\n <span class=\"text-bold\">{{ 'Support' | translate }}</span>\n <i\n class=\"m-l-auto\"\n c8yIcon=\"angle-up\"\n [ngClass]=\"{ 'icon-rotate-180': isCollapsed }\"\n ></i>\n</button>\n<div\n class=\"collapse\"\n id=\"collapseSupport\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Activate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"!(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"activateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.QUICK_LINKS.ACTIONS.ACTIVATE_SUPPORT_ACCESS }\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Activate support access' | translate }}\"\n >\n {{ 'Activate support access' | translate }}\n </span>\n </button>\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n *ngIf=\"(supportUserEnabled$ | async) && userSupportAvailable\"\n (click)=\"deactivateSupportAccess()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.QUICK_LINKS.ACTIONS.DEACTIVATE_SUPPORT_ACCESS }\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Deactivate support access' | translate }}\"\n >\n {{ 'Deactivate support access' | translate }}\n </span>\n </button>\n <a\n class=\"c8y-right-drawer__link\"\n title=\"{{ 'Request support' | translate }}\"\n [tabindex]=\"tabIndex$ | async\"\n role=\"button\"\n target=\"_blank\"\n [ngClass]=\"{ 'separator-top': !isCollapsible }\"\n *ngIf=\"supportUrl\"\n rel=\"noopener noreferrer\"\n [href]=\"supportUrl\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.QUICK_LINKS.EVENTS.QUICK_LINK_RIGHT_DRAWER\"\n [actionData]=\"{ action: PRODUCT_EXPERIENCE.QUICK_LINKS.ACTIONS.OPEN_SUPPORT_LINK }\"\n >\n <i\n c8yIcon=\"c8y-c8y-support\"\n *ngIf=\"!isCollapsible\"\n ></i>\n <span\n [class]=\"textClass\"\n title=\"{{ 'Request support' | translate }}\"\n >\n {{ 'Request support' | translate }}\n </span>\n </a>\n</div>\n" }]
117
117
  }], ctorParameters: () => [{ type: i1.AppStateService }, { type: i1.OptionsService }, { type: i2.ModalService }, { type: i3.TranslateService }, { type: i4.TenantService }, { type: i5.AlertService }, { type: i4.UserService }, { type: i6.HeaderService }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kb2NzL3N1cHBvcnQtb3V0bGV0L3N1cHBvcnQtb3V0bGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvZG9jcy9zdXBwb3J0LW91dGxldC9zdXBwb3J0LW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1yQyxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBQ1MsRUFBbUIsRUFDbEIsY0FBOEIsRUFDOUIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLGFBQTRCO1FBUDdCLE9BQUUsR0FBRixFQUFFLENBQWlCO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVnRDLHVCQUFrQixHQUFHLDhCQUE4QixDQUFDO0lBV2pELENBQUM7SUFFSixLQUFLLENBQUMscUJBQXFCO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXRELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6RSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQzdCLCtHQUErRyxDQUNoSCxDQUFDO1FBQ0YsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQ2hDLDBGQUEwRixDQUMzRixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQUc7WUFDWCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDaEYsV0FBVzthQUNaLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUM3QyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVaLE1BQU0sTUFBTSxHQUFHO1lBQ2IsRUFBRSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUMxQixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNaLGlCQUFpQjtRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUI7UUFDM0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FDN0Isb0hBQW9ILENBQ3JILENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FDaEMsK0ZBQStGLENBQ2hHLENBQUM7UUFDRixNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0YsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUM3QixxR0FBcUcsQ0FDdEcsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFHO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ2hGLFdBQVc7YUFDWixDQUFDO1lBQ0YsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzdDO2FBQ0UsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUViLE1BQU0sTUFBTSxHQUFHO1lBQ2IsRUFBRSxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztZQUNoQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUMxQixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNaLGlCQUFpQjtRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyw0QkFBNEIsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzFFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztRQUNuRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUN2RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUM5RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVPLEtBQUssQ0FBQyxrQkFBa0I7UUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7OEdBbkhVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDBEQ2pCbkMsZzlFQXNGQTs7MkZEckVhLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlLCBPcHRpb25zU2VydmljZSwgU3RhdHVzIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRV9DT1JFX1NIQVJFRCB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb3JlLm1vZGVsJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL21vZGFsJztcbmltcG9ydCB7IFRlbmFudFNlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2hlYWRlci9oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL2NvbW1vbi9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXN1cHBvcnQtb3V0bGV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1cHBvcnQtb3V0bGV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0T3V0bGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNDb2xsYXBzZWQ6IGJvb2xlYW47XG4gIGRyYXdlck9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB1c2VyU3VwcG9ydEF2YWlsYWJsZTogYm9vbGVhbjtcbiAgc3VwcG9ydFVybDogc3RyaW5nIHwgYm9vbGVhbjtcbiAgaXNDb2xsYXBzaWJsZTogYm9vbGVhbjtcbiAgc3VwcG9ydFVzZXJFbmFibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdGV4dENsYXNzOiBzdHJpbmc7XG4gIHRhYkluZGV4JDogT2JzZXJ2YWJsZTwnMCcgfCAnLTEnPjtcbiAgUFJPRFVDVF9FWFBFUklFTkNFID0gUFJPRFVDVF9FWFBFUklFTkNFX0NPUkVfU0hBUkVEO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1aTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVuYW50U2VydmljZTogVGVuYW50U2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgYWN0aXZhdGVTdXBwb3J0QWNjZXNzKCkge1xuICAgIGNvbnN0IHRpdGxlID0gZ2V0dGV4dCgnQWN0aXZhdGUgc3VwcG9ydCB1c2VyIGFjY2VzcycpO1xuXG4gICAgY29uc3QgY29tcGFueU5hbWUgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldCgnY29tcGFueU5hbWUnLCAnQ3VtdWxvY2l0eScpO1xuICAgIGNvbnN0IHRleHRXaXRoQ29tcGFueSA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBhbGxvdyBhIHN1cHBvcnQgdXNlciBmcm9tIHt7Y29tcGFueU5hbWV9fSB0byBhY2Nlc3MgeW91ciB0ZW5hbnQgdG8gaGVscCB5b3Ugd2l0aCB5b3VyIGlzc3VlLidcbiAgICApO1xuICAgIGNvbnN0IHRleHRXaXRob3V0Q29tcGFueSA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBhbGxvdyBhIHN1cHBvcnQgdXNlciB0byBhY2Nlc3MgeW91ciB0ZW5hbnQgdG8gaGVscCB5b3Ugd2l0aCB5b3VyIGlzc3VlLidcbiAgICApO1xuICAgIGNvbnN0IGZpbmFsUXVlc3Rpb24gPSBnZXR0ZXh0KCdEbyB5b3Ugd2FudCB0byBwcm9jZWVkPycpO1xuICAgIGNvbnN0IGJvZHkgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChjb21wYW55TmFtZSA/IHRleHRXaXRoQ29tcGFueSA6IHRleHRXaXRob3V0Q29tcGFueSwge1xuICAgICAgICBjb21wYW55TmFtZVxuICAgICAgfSksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmaW5hbFF1ZXN0aW9uKVxuICAgIF0uam9pbignICcpO1xuXG4gICAgY29uc3QgbGFiZWxzID0ge1xuICAgICAgb2s6IGdldHRleHQoJ0FjdGl2YXRlIGFjY2VzcycpLFxuICAgICAgY2FuY2VsOiBnZXR0ZXh0KCdDYW5jZWwnKVxuICAgIH07XG5cbiAgICBjb25zdCBzdWNjZXNzTXNnID0gZ2V0dGV4dCgnU3VwcG9ydCB1c2VyIGFjY2VzcyBhY3RpdmF0ZWQuJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybSh0aXRsZSwgYm9keSwgU3RhdHVzLkRBTkdFUiwgbGFiZWxzKTtcbiAgICAgIGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5lbmFibGVTdXBwb3J0VXNlcigpO1xuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3Moc3VjY2Vzc01zZyk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8vIGludGVuZGVkIGVtcHR5XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVhY3RpdmF0ZVN1cHBvcnRBY2Nlc3MoKSB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdEZWFjdGl2YXRlIHN1cHBvcnQgdXNlciBhY2Nlc3MnKTtcblxuICAgIGNvbnN0IGNvbXBhbnlOYW1lID0gdGhpcy5vcHRpb25zU2VydmljZS5nZXQoJ2NvbXBhbnlOYW1lJywgJ0N1bXVsb2NpdHknKTtcbiAgICBjb25zdCB0ZXh0V2l0aENvbXBhbnkgPSBnZXR0ZXh0KFxuICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gYmxvY2sgYSBzdXBwb3J0IHVzZXIgZnJvbSB7e2NvbXBhbnlOYW1lfX0gZnJvbSBhY2Nlc3NpbmcgeW91ciB0ZW5hbnQgdG8gaGVscCB5b3Ugd2l0aCB5b3VyIGlzc3VlLidcbiAgICApO1xuICAgIGNvbnN0IHRleHRXaXRob3V0Q29tcGFueSA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBibG9jayBhIHN1cHBvcnQgdXNlciBmcm9tIGFjY2Vzc2luZyB5b3VyIHRlbmFudCB0byBoZWxwIHlvdSB3aXRoIHlvdXIgaXNzdWUuJ1xuICAgICk7XG4gICAgY29uc3QgeyBkYXRhOiBjdXJyZW50VXNlciB9ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5jdXJyZW50KCk7XG4gICAgY29uc3QgaXNUZW5hbnRBZG1pbiA9IHRoaXMudXNlclNlcnZpY2UuaGFzUm9sZShjdXJyZW50VXNlciwgUGVybWlzc2lvbnMuUk9MRV9URU5BTlRfQURNSU4pO1xuICAgIGNvbnN0IHRlbmFudEFkbWluTm90ZSA9IGdldHRleHQoXG4gICAgICAnRGVhY3RpdmF0aW5nIHN1cHBvcnQgYWNjZXNzIGFzIHRlbmFudCBhZG1pbiB3aWxsIGRpc2FibGUgYWxsIG90aGVyIHN1cHBvcnQgcmVxdWVzdHMgb24geW91ciB0ZW5hbnQuJ1xuICAgICk7XG4gICAgY29uc3QgZmluYWxRdWVzdGlvbiA9IGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/Jyk7XG4gICAgY29uc3QgYm9keSA9IFtcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGNvbXBhbnlOYW1lID8gdGV4dFdpdGhDb21wYW55IDogdGV4dFdpdGhvdXRDb21wYW55LCB7XG4gICAgICAgIGNvbXBhbnlOYW1lXG4gICAgICB9KSxcbiAgICAgIGlzVGVuYW50QWRtaW4gPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0ZW5hbnRBZG1pbk5vdGUpIDogJycsXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmaW5hbFF1ZXN0aW9uKVxuICAgIF1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKCcgJyk7XG5cbiAgICBjb25zdCBsYWJlbHMgPSB7XG4gICAgICBvazogZ2V0dGV4dCgnRGVhY3RpdmF0ZSBhY2Nlc3MnKSxcbiAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICB9O1xuXG4gICAgY29uc3Qgc3VjY2Vzc01zZyA9IGdldHRleHQoJ1N1cHBvcnQgdXNlciBhY2Nlc3MgZGVhY3RpdmF0ZWQuJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybSh0aXRsZSwgYm9keSwgU3RhdHVzLkRBTkdFUiwgbGFiZWxzKTtcbiAgICAgIGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5kaXNhYmxlU3VwcG9ydFVzZXIoKTtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKHN1Y2Nlc3NNc2cpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBpbnRlbmRlZCBlbXB0eVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy51aS5zdGF0ZSQuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gc3RhdGUuYWN0aXZhdGVTdXBwb3J0VXNlckF2YWlsYWJsZSAmJiBzdGF0ZS5zdXBwb3J0VXJsO1xuICAgIHRoaXMudXNlclN1cHBvcnRBdmFpbGFibGUgPSB0aGlzLnVpLnN0YXRlJC5nZXRWYWx1ZSgpLmFjdGl2YXRlU3VwcG9ydFVzZXJBdmFpbGFibGU7XG4gICAgdGhpcy5zdXBwb3J0VXJsID0gdGhpcy51aS5zdGF0ZSQuZ2V0VmFsdWUoKS5zdXBwb3J0VXJsO1xuICAgIHRoaXMuc3VwcG9ydFVzZXJFbmFibGVkJCA9IHRoaXMudWkuY3VycmVudFVzZXIucGlwZShtYXAodXNlciA9PiAhIXVzZXI/LnN1cHBvcnRVc2VyRW5hYmxlZCkpO1xuICAgIHRoaXMuaXNDb2xsYXBzaWJsZSA9IHRoaXMudXNlclN1cHBvcnRBdmFpbGFibGUgJiYgISF0aGlzLnN1cHBvcnRVcmw7XG4gICAgdGhpcy50ZXh0Q2xhc3MgPSB0aGlzLmlzQ29sbGFwc2libGUgPyAndGV4dC10cnVuY2F0ZSB0ZXh0LTEyJyA6ICd0ZXh0LW1lZGl1bSc7XG4gICAgdGhpcy5kcmF3ZXJPcGVuJCA9IHRoaXMuaGVhZGVyU2VydmljZS5yaWdodERyYXdlck9wZW4kO1xuICAgIHRoaXMudGFiSW5kZXgkID0gdGhpcy5kcmF3ZXJPcGVuJC5waXBlKG1hcChkcmF3ZXJPcGVuID0+IChkcmF3ZXJPcGVuID8gJzAnIDogJy0xJykpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVmcmVzaEN1cnJlbnRVc2VyKCkge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyUmVzdWx0ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5jdXJyZW50KCk7XG4gICAgdGhpcy51aS5jdXJyZW50VXNlci5uZXh0KGN1cnJlbnRVc2VyUmVzdWx0LmRhdGEpO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9fbGluayBzdGlja3ktdG9wXCJcbiAgW3RhYmluZGV4XT1cInRhYkluZGV4JCB8IGFzeW5jXCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIChjbGljayk9XCJpc0NvbGxhcHNlZCA9ICFpc0NvbGxhcHNlZFwiXG4gICpuZ0lmPVwiaXNDb2xsYXBzaWJsZVwiXG4+XG4gIDxpIGM4eUljb249XCJjOHktYzh5LXN1cHBvcnRcIj48L2k+XG4gIDxzcGFuIGNsYXNzPVwidGV4dC1ib2xkXCI+e3sgJ1N1cHBvcnQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8aVxuICAgIGNsYXNzPVwibS1sLWF1dG9cIlxuICAgIGM4eUljb249XCJhbmdsZS11cFwiXG4gICAgW25nQ2xhc3NdPVwieyAnaWNvbi1yb3RhdGUtMTgwJzogaXNDb2xsYXBzZWQgfVwiXG4gID48L2k+XG48L2J1dHRvbj5cbjxkaXZcbiAgY2xhc3M9XCJjb2xsYXBzZVwiXG4gIGlkPVwiY29sbGFwc2VTdXBwb3J0XCJcbiAgW2NvbGxhcHNlXT1cImlzQ29sbGFwc2VkXCJcbiAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImM4eS1yaWdodC1kcmF3ZXJfX2xpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0FjdGl2YXRlIHN1cHBvcnQgYWNjZXNzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4JCB8IGFzeW5jXCJcbiAgICAqbmdJZj1cIiEoc3VwcG9ydFVzZXJFbmFibGVkJCB8IGFzeW5jKSAmJiB1c2VyU3VwcG9ydEF2YWlsYWJsZVwiXG4gICAgKGNsaWNrKT1cImFjdGl2YXRlU3VwcG9ydEFjY2VzcygpXCJcbiAgICBjOHlQcm9kdWN0RXhwZXJpZW5jZVxuICAgIFthY3Rpb25OYW1lXT1cIlBST0RVQ1RfRVhQRVJJRU5DRS5RVUlDS19MSU5LUy5FVkVOVFMuUVVJQ0tfTElOS19SSUdIVF9EUkFXRVJcIlxuICA+XG4gICAgPGlcbiAgICAgIGM4eUljb249XCJjOHktYzh5LXN1cHBvcnRcIlxuICAgICAgKm5nSWY9XCIhaXNDb2xsYXBzaWJsZVwiXG4gICAgPjwvaT5cbiAgICA8c3BhblxuICAgICAgW2NsYXNzXT1cInRleHRDbGFzc1wiXG4gICAgICB0aXRsZT1cInt7ICdBY3RpdmF0ZSBzdXBwb3J0IGFjY2VzcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgID5cbiAgICAgIHt7ICdBY3RpdmF0ZSBzdXBwb3J0IGFjY2VzcycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19saW5rXCJcbiAgICB0aXRsZT1cInt7ICdEZWFjdGl2YXRlIHN1cHBvcnQgYWNjZXNzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4JCB8IGFzeW5jXCJcbiAgICAqbmdJZj1cIihzdXBwb3J0VXNlckVuYWJsZWQkIHwgYXN5bmMpICYmIHVzZXJTdXBwb3J0QXZhaWxhYmxlXCJcbiAgICAoY2xpY2spPVwiZGVhY3RpdmF0ZVN1cHBvcnRBY2Nlc3MoKVwiXG4gICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICBbYWN0aW9uTmFtZV09XCJQUk9EVUNUX0VYUEVSSUVOQ0UuUVVJQ0tfTElOS1MuRVZFTlRTLlFVSUNLX0xJTktfUklHSFRfRFJBV0VSXCJcbiAgPlxuICAgIDxpXG4gICAgICBjOHlJY29uPVwiYzh5LWM4eS1zdXBwb3J0XCJcbiAgICAgICpuZ0lmPVwiIWlzQ29sbGFwc2libGVcIlxuICAgID48L2k+XG4gICAgPHNwYW5cbiAgICAgIFtjbGFzc109XCJ0ZXh0Q2xhc3NcIlxuICAgICAgdGl0bGU9XCJ7eyAnRGVhY3RpdmF0ZSBzdXBwb3J0IGFjY2VzcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgID5cbiAgICAgIHt7ICdEZWFjdGl2YXRlIHN1cHBvcnQgYWNjZXNzJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxhXG4gICAgY2xhc3M9XCJjOHktcmlnaHQtZHJhd2VyX19saW5rXCJcbiAgICBbbmdDbGFzc109XCJ7J3NlcGFyYXRvci10b3AnOiAhaXNDb2xsYXBzaWJsZX1cIlxuICAgIHRpdGxlPVwie3sgJ1JlcXVlc3Qgc3VwcG9ydCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCQgfCBhc3luY1wiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAqbmdJZj1cInN1cHBvcnRVcmxcIlxuICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgIFtocmVmXT1cInN1cHBvcnRVcmxcIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLlFVSUNLX0xJTktTLkVWRU5UUy5RVUlDS19MSU5LX1JJR0hUX0RSQVdFUlwiXG4gID5cbiAgICA8aVxuICAgICAgYzh5SWNvbj1cImM4eS1jOHktc3VwcG9ydFwiXG4gICAgICAqbmdJZj1cIiFpc0NvbGxhcHNpYmxlXCJcbiAgICA+PC9pPlxuICAgIDxzcGFuXG4gICAgICBbY2xhc3NdPVwidGV4dENsYXNzXCJcbiAgICAgIHRpdGxlPVwie3sgJ1JlcXVlc3Qgc3VwcG9ydCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgID5cbiAgICAgIHt7ICdSZXF1ZXN0IHN1cHBvcnQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICA8L2E+XG48L2Rpdj5cbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kb2NzL3N1cHBvcnQtb3V0bGV0L3N1cHBvcnQtb3V0bGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvZG9jcy9zdXBwb3J0LW91dGxldC9zdXBwb3J0LW91dGxldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1yQyxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBQ1MsRUFBbUIsRUFDbEIsY0FBOEIsRUFDOUIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLGFBQTRCO1FBUDdCLE9BQUUsR0FBRixFQUFFLENBQWlC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UzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlLCBPcHRpb25zU2VydmljZSwgU3RhdHVzIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRV9DT1JFX1NIQVJFRCB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb3JlLm1vZGVsJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL21vZGFsJztcbmltcG9ydCB7IFRlbmFudFNlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2hlYWRlci9oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL2NvbW1vbi9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXN1cHBvcnQtb3V0bGV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1cHBvcnQtb3V0bGV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0T3V0bGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNDb2xsYXBzZWQ6IGJvb2xlYW47XG4gIGRyYXdlck9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB1c2VyU3VwcG9ydEF2YWlsYWJsZTogYm9vbGVhbjtcbiAgc3VwcG9ydFVybDogc3RyaW5nIHwgYm9vbGVhbjtcbiAgaXNDb2xsYXBzaWJsZTogYm9vbGVhbjtcbiAgc3VwcG9ydFVzZXJFbmFibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdGV4dENsYXNzOiBzdHJpbmc7XG4gIHRhYkluZGV4JDogT2JzZXJ2YWJsZTwnMCcgfCAnLTEnPjtcbiAgUFJPRFVDVF9FWFBFUklFTkNFID0gUFJPRFVDVF9FWFBFUklFTkNFX0NPUkVfU0hBUkVEO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1aTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVuYW50U2VydmljZTogVGVuYW50U2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgYWN0aXZhdGVTdXBwb3J0QWNjZXNzKCkge1xuICAgIGNvbnN0IHRpdGxlID0gZ2V0dGV4dCgnQWN0aXZhdGUgc3VwcG9ydCB1c2VyIGFjY2VzcycpO1xuXG4gICAgY29uc3QgY29tcGFueU5hbWUgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldCgnY29tcGFueU5hbWUnLCAnQ3VtdWxvY2l0eScpO1xuICAgIGNvbnN0IHRleHRXaXRoQ29tcGFueSA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBhbGxvdyBhIHN1cHBvcnQgdXNlciBmcm9tIHt7Y29tcGFueU5hbWV9fSB0byBhY2Nlc3MgeW91ciB0ZW5hbnQgdG8gaGVscCB5b3Ugd2l0aCB5b3VyIGlzc3VlLidcbiAgICApO1xuICAgIGNvbnN0IHRleHRXaXRob3V0Q29tcGFueSA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBhbGxvdyBhIHN1cHBvcnQgdXNlciB0byBhY2Nlc3MgeW91ciB0ZW5hbnQgdG8gaGVscCB5b3Ugd2l0aCB5b3VyIGlzc3VlLidcbiAgICApO1xuICAgIGNvbnN0IGZpbmFsUXVlc3Rpb24gPSBnZXR0ZXh0KCdEbyB5b3Ugd2FudCB0byBwcm9jZWVkPycpO1xuICAgIGNvbnN0IGJvZHkgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChjb21wYW55TmFtZSA/IHRleHRXaXRoQ29tcGFueSA6IHRleHRXaXRob3V0Q29tcGFueSwge1xuICAgICAgICBjb21wYW55TmFtZVxuICAgICAgfSksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmaW5hbFF1ZXN0aW9uKVxuICAgIF0uam9pbignICcpO1xuXG4gICAgY29uc3QgbGFiZWxzID0ge1xuICAgICAgb2s6IGdldHRleHQoJ0FjdGl2YXRlIGFjY2VzcycpLFxuICAgICAgY2FuY2VsOiBnZXR0ZXh0KCdDYW5jZWwnKVxuICAgIH07XG5cbiAgICBjb25zdCBzdWNjZXNzTXNnID0gZ2V0dGV4dCgnU3VwcG9ydCB1c2VyIGFjY2VzcyBhY3RpdmF0ZWQuJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybSh0aXRsZSwgYm9keSwgU3RhdHVzLkRBTkdFUiwgbGFiZWxzKTtcbiAgICAgIGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5lbmFibGVTdXBwb3J0VXNlcigpO1xuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3Moc3VjY2Vzc01zZyk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8vIGludGVuZGVkIGVtcHR5XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVhY3RpdmF0ZVN1cHBvcnRBY2Nlc3MoKSB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdEZWFjdGl2YXRlIHN1cHBvcnQgdXNlciBhY2Nlc3MnKTtcblxuICAgIGNvbnN0IGNvbXBhbnlOYW1lID0gdGhpcy5vcHRpb25zU2VydmljZS5nZXQoJ2NvbXBhbnlOYW1lJywgJ0N1bXVsb2NpdHknKTtcbiAgICBjb25zdCB0ZXh0V2l0aENvbXBhbnkgPSBnZXR0ZXh0KFxuICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gYmxvY2sgYSBzdXBwb3J0IHVzZXIgZnJvbSB7e2NvbXBhbnlOYW1lfX0gZnJvbSBhY2Nlc3NpbmcgeW91ciB0ZW5hbnQgdG8gaGVscCB5b3Ugd2l0aCB5b3VyIGlzc3VlLidcbiAgICApO1xuICAgIGNvbnN0IHRleHRXaXRob3V0Q29tcGFueSA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBibG9jayBhIHN1cHBvcnQgdXNlciBmcm9tIGFjY2Vzc2luZyB5b3VyIHRlbmFudCB0byBoZWxwIHlvdSB3aXRoIHlvdXIgaXNzdWUuJ1xuICAgICk7XG4gICAgY29uc3QgeyBkYXRhOiBjdXJyZW50VXNlciB9ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5jdXJyZW50KCk7XG4gICAgY29uc3QgaXNUZW5hbnRBZG1pbiA9IHRoaXMudXNlclNlcnZpY2UuaGFzUm9sZShjdXJyZW50VXNlciwgUGVybWlzc2lvbnMuUk9MRV9URU5BTlRfQURNSU4pO1xuICAgIGNvbnN0IHRlbmFudEFkbWluTm90ZSA9IGdldHRleHQoXG4gICAgICAnRGVhY3RpdmF0aW5nIHN1cHBvcnQgYWNjZXNzIGFzIHRlbmFudCBhZG1pbiB3aWxsIGRpc2FibGUgYWxsIG90aGVyIHN1cHBvcnQgcmVxdWVzdHMgb24geW91ciB0ZW5hbnQuJ1xuICAgICk7XG4gICAgY29uc3QgZmluYWxRdWVzdGlvbiA9IGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/Jyk7XG4gICAgY29uc3QgYm9keSA9IFtcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGNvbXBhbnlOYW1lID8gdGV4dFdpdGhDb21wYW55IDogdGV4dFdpdGhvdXRDb21wYW55LCB7XG4gICAgICAgIGNvbXBhbnlOYW1lXG4gICAgICB9KSxcbiAgICAgIGlzVGVuYW50QWRtaW4gPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0ZW5hbnRBZG1pbk5vdGUpIDogJycsXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChmaW5hbFF1ZXN0aW9uKVxuICAgIF1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKCcgJyk7XG5cbiAgICBjb25zdCBsYWJlbHMgPSB7XG4gICAgICBvazogZ2V0dGV4dCgnRGVhY3RpdmF0ZSBhY2Nlc3MnKSxcbiAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICB9O1xuXG4gICAgY29uc3Qgc3VjY2Vzc01zZyA9IGdldHRleHQoJ1N1cHBvcnQgdXNlciBhY2Nlc3MgZGVhY3RpdmF0ZWQuJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybSh0aXRsZSwgYm9keSwgU3RhdHVzLkRBTkdFUiwgbGFiZWxzKTtcbiAgICAgIGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5kaXNhYmxlU3VwcG9ydFVzZXIoKTtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKHN1Y2Nlc3NNc2cpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBpbnRlbmRlZCBlbXB0eVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy51aS5zdGF0ZSQuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gc3RhdGUuYWN0aXZhdGVTdXBwb3J0VXNlckF2YWlsYWJsZSAmJiBzdGF0ZS5zdXBwb3J0VXJsO1xuICAgIHRoaXMudXNlclN1cHBvcnRBdmFpbGFibGUgPSB0aGlzLnVpLnN0YXRlJC5nZXRWYWx1ZSgpLmFjdGl2YXRlU3VwcG9ydFVzZXJBdmFpbGFibGU7XG4gICAgdGhpcy5zdXBwb3J0VXJsID0gdGhpcy51aS5zdGF0ZSQuZ2V0VmFsdWUoKS5zdXBwb3J0VXJsO1xuICAgIHRoaXMuc3VwcG9ydFVzZXJFbmFibGVkJCA9IHRoaXMudWkuY3VycmVudFVzZXIucGlwZShtYXAodXNlciA9PiAhIXVzZXI/LnN1cHBvcnRVc2VyRW5hYmxlZCkpO1xuICAgIHRoaXMuaXNDb2xsYXBzaWJsZSA9IHRoaXMudXNlclN1cHBvcnRBdmFpbGFibGUgJiYgISF0aGlzLnN1cHBvcnRVcmw7XG4gICAgdGhpcy50ZXh0Q2xhc3MgPSB0aGlzLmlzQ29sbGFwc2libGUgPyAndGV4dC10cnVuY2F0ZSB0ZXh0LTEyJyA6ICd0ZXh0LW1lZGl1bSc7XG4gICAgdGhpcy5kcmF3ZXJPcGVuJCA9IHRoaXMuaGVhZGVyU2VydmljZS5yaWdodERyYXdlck9wZW4kO1xuICAgIHRoaXMudGFiSW5kZXgkID0gdGhpcy5kcmF3ZXJPcGVuJC5waXBlKG1hcChkcmF3ZXJPcGVuID0+IChkcmF3ZXJPcGVuID8gJzAnIDogJy0xJykpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVmcmVzaEN1cnJlbnRVc2VyKCkge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyUmVzdWx0ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5jdXJyZW50KCk7XG4gICAgdGhpcy51aS5jdXJyZW50VXNlci5uZXh0KGN1cnJlbnRVc2VyUmVzdWx0LmRhdGEpO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9fbGluayBzdGlja3ktdG9wXCJcbiAgW3RhYmluZGV4XT1cInRhYkluZGV4JCB8IGFzeW5jXCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIChjbGljayk9XCJpc0NvbGxhcHNlZCA9ICFpc0NvbGxhcHNlZFwiXG4gICpuZ0lmPVwiaXNDb2xsYXBzaWJsZVwiXG4+XG4gIDxpIGM4eUljb249XCJjOHktYzh5LXN1cHBvcnRcIj48L2k+XG4gIDxzcGFuIGNsYXNzPVwidGV4dC1ib2xkXCI+e3sgJ1N1cHBvcnQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8aVxuICAgIGNsYXNzPVwibS1sLWF1dG9cIlxuICAgIGM4eUljb249XCJhbmdsZS11cFwiXG4gICAgW25nQ2xhc3NdPVwieyAnaWNvbi1yb3RhdGUtMTgwJzogaXNDb2xsYXBzZWQgfVwiXG4gID48L2k+XG48L2J1dHRvbj5cbjxkaXZcbiAgY2xhc3M9XCJjb2xsYXBzZVwiXG4gIGlkPVwiY29sbGFwc2VTdXBwb3J0XCJcbiAgW2NvbGxhcHNlXT1cImlzQ29sbGFwc2VkXCJcbiAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImM4eS1yaWdodC1kcmF3ZXJfX2xpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0FjdGl2YXRlIHN1cHBvcnQgYWNjZXNzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4JCB8IGFzeW5jXCJcbiAgICAqbmdJZj1cIiEoc3VwcG9ydFVzZXJFbmFibGVkJCB8IGFzeW5jKSAmJiB1c2VyU3VwcG9ydEF2YWlsYWJsZVwiXG4gICAgKGNsaWNrKT1cImFjdGl2YXRlU3VwcG9ydEFjY2VzcygpXCJcbiAgICBjOHlQcm9kdWN0RXhwZXJpZW5jZVxuICAgIFthY3Rpb25OYW1lXT1cIlBST0RVQ1RfRVhQRVJJRU5DRS5RVUlDS19MSU5LUy5FVkVOVFMuUVVJQ0tfTElOS19SSUdIVF9EUkFXRVJcIlxuICAgIFthY3Rpb25EYXRhXT1cInsgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuUVVJQ0tfTElOS1MuQUNUSU9OUy5BQ1RJVkFURV9TVVBQT1JUX0FDQ0VTUyB9XCJcbiAgPlxuICAgIDxpXG4gICAgICBjOHlJY29uPVwiYzh5LWM4eS1zdXBwb3J0XCJcbiAgICAgICpuZ0lmPVwiIWlzQ29sbGFwc2libGVcIlxuICAgID48L2k+XG4gICAgPHNwYW5cbiAgICAgIFtjbGFzc109XCJ0ZXh0Q2xhc3NcIlxuICAgICAgdGl0bGU9XCJ7eyAnQWN0aXZhdGUgc3VwcG9ydCBhY2Nlc3MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICA+XG4gICAgICB7eyAnQWN0aXZhdGUgc3VwcG9ydCBhY2Nlc3MnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9fbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnRGVhY3RpdmF0ZSBzdXBwb3J0IGFjY2VzcycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCQgfCBhc3luY1wiXG4gICAgKm5nSWY9XCIoc3VwcG9ydFVzZXJFbmFibGVkJCB8IGFzeW5jKSAmJiB1c2VyU3VwcG9ydEF2YWlsYWJsZVwiXG4gICAgKGNsaWNrKT1cImRlYWN0aXZhdGVTdXBwb3J0QWNjZXNzKClcIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLlFVSUNLX0xJTktTLkVWRU5UUy5RVUlDS19MSU5LX1JJR0hUX0RSQVdFUlwiXG4gICAgW2FjdGlvbkRhdGFdPVwieyBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5RVUlDS19MSU5LUy5BQ1RJT05TLkRFQUNUSVZBVEVfU1VQUE9SVF9BQ0NFU1MgfVwiXG4gID5cbiAgICA8aVxuICAgICAgYzh5SWNvbj1cImM4eS1jOHktc3VwcG9ydFwiXG4gICAgICAqbmdJZj1cIiFpc0NvbGxhcHNpYmxlXCJcbiAgICA+PC9pPlxuICAgIDxzcGFuXG4gICAgICBbY2xhc3NdPVwidGV4dENsYXNzXCJcbiAgICAgIHRpdGxlPVwie3sgJ0RlYWN0aXZhdGUgc3VwcG9ydCBhY2Nlc3MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICA+XG4gICAgICB7eyAnRGVhY3RpdmF0ZSBzdXBwb3J0IGFjY2VzcycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YVxuICAgIGNsYXNzPVwiYzh5LXJpZ2h0LWRyYXdlcl9fbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnUmVxdWVzdCBzdXBwb3J0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4JCB8IGFzeW5jXCJcbiAgICByb2xlPVwiYnV0dG9uXCJcbiAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3NlcGFyYXRvci10b3AnOiAhaXNDb2xsYXBzaWJsZSB9XCJcbiAgICAqbmdJZj1cInN1cHBvcnRVcmxcIlxuICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgIFtocmVmXT1cInN1cHBvcnRVcmxcIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLlFVSUNLX0xJTktTLkVWRU5UUy5RVUlDS19MSU5LX1JJR0hUX0RSQVdFUlwiXG4gICAgW2FjdGlvbkRhdGFdPVwieyBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5RVUlDS19MSU5LUy5BQ1RJT05TLk9QRU5fU1VQUE9SVF9MSU5LIH1cIlxuICA+XG4gICAgPGlcbiAgICAgIGM4eUljb249XCJjOHktYzh5LXN1cHBvcnRcIlxuICAgICAgKm5nSWY9XCIhaXNDb2xsYXBzaWJsZVwiXG4gICAgPjwvaT5cbiAgICA8c3BhblxuICAgICAgW2NsYXNzXT1cInRleHRDbGFzc1wiXG4gICAgICB0aXRsZT1cInt7ICdSZXF1ZXN0IHN1cHBvcnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICA+XG4gICAgICB7eyAnUmVxdWVzdCBzdXBwb3J0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9hPlxuPC9kaXY+XG4iXX0=
@@ -128,13 +128,15 @@ export class TranslateService {
128
128
  return this.getQueryParameter('lang');
129
129
  }
130
130
  parseLocaleCode(localeCode, outputSeparator = '_') {
131
- const matches = localeCode.match(/^([a-z]{2})([_-]([a-z]{2}))?$/i);
131
+ // - 2 letter language code
132
+ // - optional region code that's either 2 letters OR 3 digits
133
+ const matches = localeCode.match(/^([a-z]{2})([_-]([a-z]{2}|[0-9]{3}))?$/i);
132
134
  if (!matches) {
133
- throw new Error(`Could not parse locale code "${localeCode}", make sure it's a two- or four-letter code (case insensitive) separated with "_" or "-".`);
135
+ throw new Error(`Could not parse locale code "${localeCode}". Expected format: language code (2 letters) optionally followed by region code (2 letters or 3 digits) separated with "_" or "-", e.g. "en-US" or "es-419".`);
134
136
  }
135
137
  const langCode = matches[1].toLowerCase();
136
- const countryCode = matches[3]?.toUpperCase();
137
- const langCountryCode = `${langCode}${countryCode ? `${outputSeparator}${countryCode}` : ''}`;
138
+ const regionCode = matches[3]?.toUpperCase();
139
+ const langCountryCode = `${langCode}${regionCode ? `${outputSeparator}${regionCode}` : ''}`;
138
140
  return { langCode, langCountryCode };
139
141
  }
140
142
  /**
@@ -259,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
259
261
  }] }, { type: i4.BsLocaleService, decorators: [{
260
262
  type: Optional
261
263
  }] }] });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2kxOG4vdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLElBQUksbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUUzRDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQkFBZ0I7YUFDcEIsc0JBQWlCLEdBQUcsY0FBYyxBQUFqQixDQUFrQjtJQUMxQyxNQUFNLENBQUMsV0FBVztRQUNoQixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUtELFlBQ1UsWUFBaUMs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QUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDVixZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixZQUFZLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7OEdBL1BVLGdCQUFnQiwrR0FhakIsUUFBUTtrSEFiUCxnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFjSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgYXMgTmd4VHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsga2V5cyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0QW5ndWxhckxvY2FsZXNMYW5ndWFnZVN0cmluZyB9IGZyb20gJy4vaTE4bi5tb2R1bGUnO1xuaW1wb3J0IHsgbG9hZExvY2FsZSB9IGZyb20gJy4vbG9hZC1sb2NhbGUnO1xuaW1wb3J0IHtcbiAgZGVmaW5lTG9jYWxlLFxuICBkZUxvY2FsZSxcbiAgZW5HYkxvY2FsZSxcbiAgZXNMb2NhbGUsXG4gIGZyTG9jYWxlLFxuICBqYUxvY2FsZSxcbiAga29Mb2NhbGUsXG4gIG5sTG9jYWxlLFxuICBwbExvY2FsZSxcbiAgcHRCckxvY2FsZSxcbiAgemhDbkxvY2FsZVxufSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuaW1wb3J0IHsgQnNMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyJztcblxuLyoqXG4gKiBBIHNlcnZpY2UgdG8gbWFuYWdlIHRoZSBsYW5ndWFnZSBvZiB0aGUgYXBwbGljYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVNlcnZpY2Uge1xuICBzdGF0aWMgU0FWRV9MQU5HVUFHRV9LRVkgPSAnYzh5X2xhbmd1YWdlJztcbiAgc3RhdGljIGRlZmF1bHRMYW5nKCkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oVHJhbnNsYXRlU2VydmljZS5TQVZFX0xBTkdVQUdFX0tFWSk7XG4gIH1cbiAgbGFuZ3NEZXRhaWw6IGFueSA9IHRoaXMub3B0aW9ucy5nZXQoJ2xhbmd1YWdlcycsIHt9KTtcbiAgbGFuZ3M6IGFueSA9IGtleXModGhpcy5sYW5nc0RldGFpbCkuZmlsdGVyKGsgPT4gdGhpcy5sYW5nc0RldGFpbFtrXSk7XG4gIHByaXZhdGUgREVGQVVMVF9TRVBBUkFUT1IgPSAnXyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ3hUcmFuc2xhdGU6IE5neFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1aTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBic0xvY2FsZVNlcnZpY2U6IEJzTG9jYWxlU2VydmljZVxuICApIHtcbiAgICBjb25zdCBxdWVyeVN0cmluZ0xhbmcgPSB0aGlzLnF1ZXJ5U3RyaW5nTGFuZygpO1xuICAgIGlmIChxdWVyeVN0cmluZ0xhbmcpIHtcbiAgICAgIHRoaXMuc2F2ZUluTG9jYWxTdG9yYWdlKHF1ZXJ5U3RyaW5nTGFuZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN3aXRjaGVzIHRoZSBhcHAgdG8gZ2l2ZW4gbG9jYWxlIChpbmNsLiBBbmd1bGFyLCBCb290c3RyYXAsIHRyYW5zbGF0aW9ucykuXG4gICAqIEBwYXJhbSBsb2NhbGVDb2RlIFRoZSBsb2NhbGUgY29kZS4gU3VwcG9ydGVkIGZvcm1hdHM6XG4gICAqIC0gdHdvLWxldHRlciBjb2RlcyBmb3IgbGFuZ3VhZ2Ugb25seSwgZm9yIGV4YW1wbGU6IGBlbmAsIGBkZWBcbiAgICogLSBmb3VyLWxldHRlciBjb2RlcyBmb3IgbGFuZ3VhZ2UgYW5kIGNvdW50cnksIHNlcGFyYXRlZCB3aXRoIHVuZGVyc2NvcmUgb3IgZGFzaCwgZm9yIGV4YW1wbGU6IGB6aF9DTmAsIGB6aF9jbmAsIGB6aC1DTmAsIGB6aC1jbmBcbiAgICovXG4gIGFzeW5jIHN3aXRjaFRvTGFuZ3VhZ2UobG9jYWxlQ29kZTogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBsYW5nQ291bnRyeUNvZGU6IG5neExvY2FsZUNvZGUsIGxhbmdDb2RlOiBuZ3hMb2NhbGVDb2RlRmFsbGJhY2sgfSA9XG4gICAgICB0aGlzLnBhcnNlTG9jYWxlQ29kZShsb2NhbGVDb2RlLCAnLScpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRMb2NhbGVzKG5neExvY2FsZUNvZGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChuZ3hMb2NhbGVDb2RlRmFsbGJhY2sgIT09IG5neExvY2FsZUNvZGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkTG9jYWxlcyhuZ3hMb2NhbGVDb2RlRmFsbGJhY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IGxhbmdDb2RlOiBic0xvY2FsZUNvZGUsIGxhbmdDb3VudHJ5Q29kZTogbmd4VHJhbnNsYXRlTG9jYWxlQ29kZSB9ID1cbiAgICAgIHRoaXMucGFyc2VMb2NhbGVDb2RlKGxvY2FsZUNvZGUpO1xuICAgIHRoaXMuc2V0QnNMb2NhbGUoYnNMb2NhbGVDb2RlKTtcbiAgICB0aGlzLnNldExhbmd1YWdlKG5neFRyYW5zbGF0ZUxvY2FsZUNvZGUpO1xuICB9XG5cbiAgYXN5bmMgbG9hZExvY2FsZXMobW9kdWxlTGFuZykge1xuICAgIGNvbnN0IG1vZHVsZTogYW55ID0gYXdhaXQgbG9hZExvY2FsZShnZXRBbmd1bGFyTG9jYWxlc0xhbmd1YWdlU3RyaW5nKG1vZHVsZUxhbmcpKTtcbiAgICByZWdpc3RlckxvY2FsZURhdGEobW9kdWxlLmRlZmF1bHQpO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5uZ3hUcmFuc2xhdGUuc2V0RGVmYXVsdExhbmcodGhpcy5vcHRpb25zLmdldCgnZGVmYXVsdExhbmd1YWdlJywgJ2VuJykpO1xuICAgIHRoaXMubmd4VHJhbnNsYXRlLnVzZShsYW5nKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51aS5zdGF0ZSQubmV4dCh7IC4uLnRoaXMudWkuc3RhdGUsIGxhbmcgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gbGFuZztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyB0aGUgZmlyc3Qgc3VwcG9ydGVkIGxhbmd1YWdlXG4gICAqL1xuICBmaXJzdFN1cHBvcnRlZExhbmd1YWdlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlcyA9IFt0aGlzLnF1ZXJ5U3RyaW5nTGFuZygpLCB0aGlzLmxvY2FsU3RvcmFnZUxhbmcoKV1cbiAgICAgIC5jb25jYXQoW3RoaXMub3B0aW9ucy5nZXQoJ2RlZmF1bHRMYW5ndWFnZScpXSlcbiAgICAgIC5jb25jYXQodGhpcy5icm93c2VyTGFuZ3MoKSlcbiAgICAgIC5jb25jYXQoWydlbiddKVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLm1hcChsYW5nID0+IGxhbmcudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBjb25zdCBwcmVmZXJyZWRMYW5ndWFnZSA9IGxhbmd1YWdlcy5maW5kKGxhbmcgPT4gdGhpcy5nZXRTdXBwb3J0ZWQobGFuZykpO1xuICAgIHJldHVybiB0aGlzLmdldFN1cHBvcnRlZChwcmVmZXJyZWRMYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBpc28gbGFuZ3VhZ2UgY29kZSB0byBhIFBPIGxhbmd1YWdlIGNvZGUgKGUuZy4gZGUtZGUgZ2V0cyBkZV9kZSkuXG4gICAqIEBwYXJhbSBsYW5nIFRoZSBpc28gbGFuZ3VhZ2UgY29kZS5cbiAgICovXG4gIGNvbnZlcnRUb0xhbmd1YWdlQ29kZVBPKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VwID0gbGFuZy5pbmRleE9mKCctJykgPiAtMSA/ICctJyA6IHRoaXMuREVGQVVMVF9TRVBBUkFUT1I7XG4gICAgY29uc3QgW2xhbmdNYWluLCBsYW5nU3BlY2lmaWNdID0gbGFuZy5zcGxpdChzZXApO1xuICAgIGNvbnN0IGxhbmdMYXN0ID0gbGFuZ1NwZWNpZmljID8gYCR7dGhpcy5ERUZBVUxUX1NFUEFSQVRPUn0ke2xhbmdTcGVjaWZpY31gIDogJyc7XG4gICAgcmV0dXJuIGAke2xhbmdNYWlufSR7bGFuZ0xhc3R9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSBpbiB0aGUgbmF0aXZlIGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gbGFuZyBUaGUgbGFuZ3VhZ2UgdHdvLWxldHRlciBjb2RlLlxuICAgKiBAcmV0dXJuIFRoZSBuYXRpdmUgbmFtZS5cbiAgICovXG4gIGdldE5hdGl2ZUxhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFuZ0RhdGEgPSAodGhpcy5sYW5nc0RldGFpbCB8fCB7fSlbbGFuZ10gfHwge307XG4gICAgcmV0dXJuIGxhbmdEYXRhLm5hdGl2ZU5hbWUgfHwgbGFuZztcbiAgfVxuXG4gIHNhdmVJbkxvY2FsU3RvcmFnZShsYW5nOiBzdHJpbmcpIHtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oVHJhbnNsYXRlU2VydmljZS5TQVZFX0xBTkdVQUdFX0tFWSwgbGFuZyk7XG4gIH1cblxuICBnZXRTdXBwb3J0ZWQobG9jYWxlQ29kZTogc3RyaW5nKSB7XG4gICAgaWYgKCFsb2NhbGVDb2RlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBsb2NhbGVDb2RlUGFyc2VkID0gdGhpcy5wYXJzZUxvY2FsZUNvZGUobG9jYWxlQ29kZSk7XG4gICAgY29uc3QgbG9jYWxlQ29kZXNQYXJzZWQgPSB0aGlzLmxhbmdzLm1hcChsYW5nID0+IHRoaXMucGFyc2VMb2NhbGVDb2RlKGxhbmcpKTtcbiAgICBjb25zdCBsYW5nQ291bnRyeUNvZGVNYXRjaCA9IGxvY2FsZUNvZGVzUGFyc2VkLmZpbmQoXG4gICAgICAoeyBsYW5nQ291bnRyeUNvZGUgfSkgPT4gbGFuZ0NvdW50cnlDb2RlID09PSBsb2NhbGVDb2RlUGFyc2VkLmxhbmdDb3VudHJ5Q29kZVxuICAgICk7XG4gICAgaWYgKGxhbmdDb3VudHJ5Q29kZU1hdGNoKSB7XG4gICAgICByZXR1cm4gbGFuZ0NvdW50cnlDb2RlTWF0Y2gubGFuZ0NvdW50cnlDb2RlO1xuICAgIH1cbiAgICBjb25zdCBsYW5nQ29kZU1hdGNoID0gbG9jYWxlQ29kZXNQYXJzZWQuZmluZChcbiAgICAgICh7IGxhbmdDb2RlIH0pID0+IGxhbmdDb2RlID09PSBsb2NhbGVDb2RlUGFyc2VkLmxhbmdDb2RlXG4gICAgKTtcbiAgICBpZiAobGFuZ0NvZGVNYXRjaCkge1xuICAgICAgcmV0dXJuIGxhbmdDb2RlTWF0Y2gubGFuZ0NvdW50cnlDb2RlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxhbmd1YWdlIGZyb20gdGhlIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICogQHJldHVybiBUaGUgbGFuZ3VhZ2UgdHdvLWxldHRlciBjb2RlLlxuICAgKi9cbiAgcXVlcnlTdHJpbmdMYW5nKCkge1xuICAgIHJldHVybiB0aGlzLmdldFF1ZXJ5UGFyYW1ldGVyKCdsYW5nJyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlTG9jYWxlQ29kZShcbiAgICBsb2NhbGVDb2RlOiBzdHJpbmcsXG4gICAgb3V0cHV0U2VwYXJhdG9yID0gJ18nXG4gICk6IHsgbGFuZ0NvZGU6IHN0cmluZzsgbGFuZ0NvdW50cnlDb2RlOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IGxvY2FsZUNvZGUubWF0Y2goL14oW2Etel17Mn0pKFtfLV0oW2Etel17Mn0pKT8kL2kpO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IHBhcnNlIGxvY2FsZSBjb2RlIFwiJHtsb2NhbGVDb2RlfVwiLCBtYWtlIHN1cmUgaXQncyBhIHR3by0gb3IgZm91ci1sZXR0ZXIgY29kZSAoY2FzZSBpbnNlbnNpdGl2ZSkgc2VwYXJhdGVkIHdpdGggXCJfXCIgb3IgXCItXCIuYFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgbGFuZ0NvZGUgPSBtYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgY291bnRyeUNvZGUgPSBtYXRjaGVzWzNdPy50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IGxhbmdDb3VudHJ5Q29kZSA9IGAke2xhbmdDb2RlfSR7Y291bnRyeUNvZGUgPyBgJHtvdXRwdXRTZXBhcmF0b3J9JHtjb3VudHJ5Q29kZX1gIDogJyd9YDtcbiAgICByZXR1cm4geyBsYW5nQ29kZSwgbGFuZ0NvdW50cnlDb2RlIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGFuZ3VhZ2UgZnJvbSBsb2NhbCBzdG9yYWdlLlxuICAgKiBAcmV0dXJuIFRoZSBsYW5ndWFnZSB0d28tbGV0dGVyIGNvZGUuXG4gICAqL1xuICBwcml2YXRlIGxvY2FsU3RvcmFnZUxhbmcoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShUcmFuc2xhdGVTZXJ2aWNlLlNBVkVfTEFOR1VBR0VfS0VZKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoaWNoIGxhbmd1YWdlIGlzIHNldCBpbiB0aGUgYnJvd3Nlci5cbiAgICogQHJldHVybiBUaGUgbGFuZ3VhZ2VzIHRoZSBicm93c2VyIHN1cHBvcnRzIGFzIHN0cmluZyBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgYnJvd3NlckxhbmdzKCkge1xuICAgIGNvbnN0IHsgbmF2aWdhdG9yIH0gPSB3aW5kb3c7XG4gICAgY29uc3QgYnJvd3Nlckxhbmd1YWdlUHJvcGVydHlLZXlzID0gW1xuICAgICAgJ2xhbmd1YWdlcycsXG4gICAgICAnbGFuZ3VhZ2UnLFxuICAgICAgJ2Jyb3dzZXJMYW5ndWFnZScsXG4gICAgICAnc3lzdGVtTGFuZ3VhZ2UnLFxuICAgICAgJ3VzZXJMYW5ndWFnZSdcbiAgICBdO1xuICAgIHJldHVybiBicm93c2VyTGFuZ3VhZ2VQcm9wZXJ0eUtleXMucmVkdWNlKChsYW5ndWFnZXMsIHByb3BlcnR5KSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0eUxhbmd1YWdlcyA9IG5hdmlnYXRvcltwcm9wZXJ0eV07XG4gICAgICBpZiAodHlwZW9mIHByb3BlcnR5TGFuZ3VhZ2VzID09PSAnc3RyaW5nJykge1xuICAgICAgICBsYW5ndWFnZXMucHVzaChwcm9wZXJ0eUxhbmd1YWdlcyk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlMYW5ndWFnZXMpKSB7XG4gICAgICAgIGxhbmd1YWdlcyA9IGxhbmd1YWdlcy5jb25jYXQocHJvcGVydHlMYW5ndWFnZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxhbmd1YWdlcztcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1ldGVyKHF1ZXJ5S2V5KSB7XG4gICAgLy8gVE9ETzogcmVwbGFjZSB0aGlzIHdpdGggVVJMU2VhcmNoUGFyYW1zLCBpZSAxMSBzdGlsbCBkb2Vzbid0IHN1cHBvcnQgOigpXG4gICAgY29uc3QgcXVlcnkgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHF1ZXJ5LnNwbGl0KCcmJykuZmluZChwYWlyID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICAgIGlmIChrZXkgPT09IHF1ZXJ5S2V5KSB7XG4gICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgbG9jYWxlIGZvciBuZ3gtYm9vdHN0cmFwLlxuICAgKiBAcGFyYW0gbGFuZyBBIHR3by1sZXR0ZXIgbGFuZ3VhZ2UgY29kZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc2V0QnNMb2NhbGUobGFuZykge1xuICAgIHN3aXRjaCAobGFuZykge1xuICAgICAgY2FzZSAnZGUnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBkZUxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdlbic6IHtcbiAgICAgICAgLy8gJ2VuLWdiJyBpcyBjcmVhdGVkIGJlY2F1c2Ugb3ZlcndyaXRpbmcgZGVmYXVsdCAnZW4nIGJyZWFrcyBkYXRlLXBpY2tlciBzb21laG93XG4gICAgICAgIGRlZmluZUxvY2FsZSgnZW4tZ2InLCBlbkdiTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKCdlbi1nYicpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2VzJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgZXNMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZnInOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBmckxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdqYSc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIGphTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2tvJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywga29Mb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnbmwnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBubExvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdwbCc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIHBsTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3B0Jzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgcHRCckxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd6aCc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIHpoQ25Mb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBkZWZpbmVMb2NhbGUoJ2VuLWdiJywgZW5HYkxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZSgnZW4tZ2InKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2kxOG4vdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLElBQUksbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUUzRDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQkFBZ0I7YUFDcEIsc0JBQWlCLEdBQUcsY0FBYyxBQUFqQixDQUFrQjtJQUMxQyxNQUFNLENBQUMsV0FBVztRQUNoQixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUtELFlBQ1UsWUFBaUMs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QUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNWLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDVixZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FqUVUsZ0JBQWdCLCtHQWFqQixRQUFRO2tIQWJQLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSBhcyBOZ3hUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBrZXlzIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRBbmd1bGFyTG9jYWxlc0xhbmd1YWdlU3RyaW5nIH0gZnJvbSAnLi9pMThuLm1vZHVsZSc7XG5pbXBvcnQgeyBsb2FkTG9jYWxlIH0gZnJvbSAnLi9sb2FkLWxvY2FsZSc7XG5pbXBvcnQge1xuICBkZWZpbmVMb2NhbGUsXG4gIGRlTG9jYWxlLFxuICBlbkdiTG9jYWxlLFxuICBlc0xvY2FsZSxcbiAgZnJMb2NhbGUsXG4gIGphTG9jYWxlLFxuICBrb0xvY2FsZSxcbiAgbmxMb2NhbGUsXG4gIHBsTG9jYWxlLFxuICBwdEJyTG9jYWxlLFxuICB6aENuTG9jYWxlXG59IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5pbXBvcnQgeyBCc0xvY2FsZVNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG4vKipcbiAqIEEgc2VydmljZSB0byBtYW5hZ2UgdGhlIGxhbmd1YWdlIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XG4gIHN0YXRpYyBTQVZFX0xBTkdVQUdFX0tFWSA9ICdjOHlfbGFuZ3VhZ2UnO1xuICBzdGF0aWMgZGVmYXVsdExhbmcoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShUcmFuc2xhdGVTZXJ2aWNlLlNBVkVfTEFOR1VBR0VfS0VZKTtcbiAgfVxuICBsYW5nc0RldGFpbDogYW55ID0gdGhpcy5vcHRpb25zLmdldCgnbGFuZ3VhZ2VzJywge30pO1xuICBsYW5nczogYW55ID0ga2V5cyh0aGlzLmxhbmdzRGV0YWlsKS5maWx0ZXIoayA9PiB0aGlzLmxhbmdzRGV0YWlsW2tdKTtcbiAgcHJpdmF0ZSBERUZBVUxUX1NFUEFSQVRPUiA9ICdfJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5neFRyYW5zbGF0ZTogTmd4VHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHVpOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGJzTG9jYWxlU2VydmljZTogQnNMb2NhbGVTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nTGFuZyA9IHRoaXMucXVlcnlTdHJpbmdMYW5nKCk7XG4gICAgaWYgKHF1ZXJ5U3RyaW5nTGFuZykge1xuICAgICAgdGhpcy5zYXZlSW5Mb2NhbFN0b3JhZ2UocXVlcnlTdHJpbmdMYW5nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3dpdGNoZXMgdGhlIGFwcCB0byBnaXZlbiBsb2NhbGUgKGluY2wuIEFuZ3VsYXIsIEJvb3RzdHJhcCwgdHJhbnNsYXRpb25zKS5cbiAgICogQHBhcmFtIGxvY2FsZUNvZGUgVGhlIGxvY2FsZSBjb2RlLiBTdXBwb3J0ZWQgZm9ybWF0czpcbiAgICogLSB0d28tbGV0dGVyIGNvZGVzIGZvciBsYW5ndWFnZSBvbmx5LCBmb3IgZXhhbXBsZTogYGVuYCwgYGRlYFxuICAgKiAtIGZvdXItbGV0dGVyIGNvZGVzIGZvciBsYW5ndWFnZSBhbmQgY291bnRyeSwgc2VwYXJhdGVkIHdpdGggdW5kZXJzY29yZSBvciBkYXNoLCBmb3IgZXhhbXBsZTogYHpoX0NOYCwgYHpoX2NuYCwgYHpoLUNOYCwgYHpoLWNuYFxuICAgKi9cbiAgYXN5bmMgc3dpdGNoVG9MYW5ndWFnZShsb2NhbGVDb2RlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IGxhbmdDb3VudHJ5Q29kZTogbmd4TG9jYWxlQ29kZSwgbGFuZ0NvZGU6IG5neExvY2FsZUNvZGVGYWxsYmFjayB9ID1cbiAgICAgIHRoaXMucGFyc2VMb2NhbGVDb2RlKGxvY2FsZUNvZGUsICctJyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZExvY2FsZXMobmd4TG9jYWxlQ29kZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKG5neExvY2FsZUNvZGVGYWxsYmFjayAhPT0gbmd4TG9jYWxlQ29kZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRMb2NhbGVzKG5neExvY2FsZUNvZGVGYWxsYmFjayk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgbGFuZ0NvZGU6IGJzTG9jYWxlQ29kZSwgbGFuZ0NvdW50cnlDb2RlOiBuZ3hUcmFuc2xhdGVMb2NhbGVDb2RlIH0gPVxuICAgICAgdGhpcy5wYXJzZUxvY2FsZUNvZGUobG9jYWxlQ29kZSk7XG4gICAgdGhpcy5zZXRCc0xvY2FsZShic0xvY2FsZUNvZGUpO1xuICAgIHRoaXMuc2V0TGFuZ3VhZ2Uobmd4VHJhbnNsYXRlTG9jYWxlQ29kZSk7XG4gIH1cblxuICBhc3luYyBsb2FkTG9jYWxlcyhtb2R1bGVMYW5nKSB7XG4gICAgY29uc3QgbW9kdWxlOiBhbnkgPSBhd2FpdCBsb2FkTG9jYWxlKGdldEFuZ3VsYXJMb2NhbGVzTGFuZ3VhZ2VTdHJpbmcobW9kdWxlTGFuZykpO1xuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShtb2R1bGUuZGVmYXVsdCk7XG4gIH1cblxuICBzZXRMYW5ndWFnZShsYW5nOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5neFRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyh0aGlzLm9wdGlvbnMuZ2V0KCdkZWZhdWx0TGFuZ3VhZ2UnLCAnZW4nKSk7XG4gICAgdGhpcy5uZ3hUcmFuc2xhdGUudXNlKGxhbmcpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVpLnN0YXRlJC5uZXh0KHsgLi4udGhpcy51aS5zdGF0ZSwgbGFuZyB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBmaXJzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2VcbiAgICovXG4gIGZpcnN0U3VwcG9ydGVkTGFuZ3VhZ2UoKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gW3RoaXMucXVlcnlTdHJpbmdMYW5nKCksIHRoaXMubG9jYWxTdG9yYWdlTGFuZygpXVxuICAgICAgLmNvbmNhdChbdGhpcy5vcHRpb25zLmdldCgnZGVmYXVsdExhbmd1YWdlJyldKVxuICAgICAgLmNvbmNhdCh0aGlzLmJyb3dzZXJMYW5ncygpKVxuICAgICAgLmNvbmNhdChbJ2VuJ10pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAubWFwKGxhbmcgPT4gbGFuZy50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGNvbnN0IHByZWZlcnJlZExhbmd1YWdlID0gbGFuZ3VhZ2VzLmZpbmQobGFuZyA9PiB0aGlzLmdldFN1cHBvcnRlZChsYW5nKSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3VwcG9ydGVkKHByZWZlcnJlZExhbmd1YWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGlzbyBsYW5ndWFnZSBjb2RlIHRvIGEgUE8gbGFuZ3VhZ2UgY29kZSAoZS5nLiBkZS1kZSBnZXRzIGRlX2RlKS5cbiAgICogQHBhcmFtIGxhbmcgVGhlIGlzbyBsYW5ndWFnZSBjb2RlLlxuICAgKi9cbiAgY29udmVydFRvTGFuZ3VhZ2VDb2RlUE8obGFuZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZXAgPSBsYW5nLmluZGV4T2YoJy0nKSA+IC0xID8gJy0nIDogdGhpcy5ERUZBVUxUX1NFUEFSQVRPUjtcbiAgICBjb25zdCBbbGFuZ01haW4sIGxhbmdTcGVjaWZpY10gPSBsYW5nLnNwbGl0KHNlcCk7XG4gICAgY29uc3QgbGFuZ0xhc3QgPSBsYW5nU3BlY2lmaWMgPyBgJHt0aGlzLkRFRkFVTFRfU0VQQVJBVE9SfSR7bGFuZ1NwZWNpZmljfWAgOiAnJztcbiAgICByZXR1cm4gYCR7bGFuZ01haW59JHtsYW5nTGFzdH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxhbmd1YWdlIGluIHRoZSBuYXRpdmUgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBsYW5nIFRoZSBsYW5ndWFnZSB0d28tbGV0dGVyIGNvZGUuXG4gICAqIEByZXR1cm4gVGhlIG5hdGl2ZSBuYW1lLlxuICAgKi9cbiAgZ2V0TmF0aXZlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYW5nRGF0YSA9ICh0aGlzLmxhbmdzRGV0YWlsIHx8IHt9KVtsYW5nXSB8fCB7fTtcbiAgICByZXR1cm4gbGFuZ0RhdGEubmF0aXZlTmFtZSB8fCBsYW5nO1xuICB9XG5cbiAgc2F2ZUluTG9jYWxTdG9yYWdlKGxhbmc6IHN0cmluZykge1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShUcmFuc2xhdGVTZXJ2aWNlLlNBVkVfTEFOR1VBR0VfS0VZLCBsYW5nKTtcbiAgfVxuXG4gIGdldFN1cHBvcnRlZChsb2NhbGVDb2RlOiBzdHJpbmcpIHtcbiAgICBpZiAoIWxvY2FsZUNvZGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsZUNvZGVQYXJzZWQgPSB0aGlzLnBhcnNlTG9jYWxlQ29kZShsb2NhbGVDb2RlKTtcbiAgICBjb25zdCBsb2NhbGVDb2Rlc1BhcnNlZCA9IHRoaXMubGFuZ3MubWFwKGxhbmcgPT4gdGhpcy5wYXJzZUxvY2FsZUNvZGUobGFuZykpO1xuICAgIGNvbnN0IGxhbmdDb3VudHJ5Q29kZU1hdGNoID0gbG9jYWxlQ29kZXNQYXJzZWQuZmluZChcbiAgICAgICh7IGxhbmdDb3VudHJ5Q29kZSB9KSA9PiBsYW5nQ291bnRyeUNvZGUgPT09IGxvY2FsZUNvZGVQYXJzZWQubGFuZ0NvdW50cnlDb2RlXG4gICAgKTtcbiAgICBpZiAobGFuZ0NvdW50cnlDb2RlTWF0Y2gpIHtcbiAgICAgIHJldHVybiBsYW5nQ291bnRyeUNvZGVNYXRjaC5sYW5nQ291bnRyeUNvZGU7XG4gICAgfVxuICAgIGNvbnN0IGxhbmdDb2RlTWF0Y2ggPSBsb2NhbGVDb2Rlc1BhcnNlZC5maW5kKFxuICAgICAgKHsgbGFuZ0NvZGUgfSkgPT4gbGFuZ0NvZGUgPT09IGxvY2FsZUNvZGVQYXJzZWQubGFuZ0NvZGVcbiAgICApO1xuICAgIGlmIChsYW5nQ29kZU1hdGNoKSB7XG4gICAgICByZXR1cm4gbGFuZ0NvZGVNYXRjaC5sYW5nQ291bnRyeUNvZGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGFuZ3VhZ2UgZnJvbSB0aGUgcXVlcnkgcGFyYW1ldGVyLlxuICAgKiBAcmV0dXJuIFRoZSBsYW5ndWFnZSB0d28tbGV0dGVyIGNvZGUuXG4gICAqL1xuICBxdWVyeVN0cmluZ0xhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UXVlcnlQYXJhbWV0ZXIoJ2xhbmcnKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VMb2NhbGVDb2RlKFxuICAgIGxvY2FsZUNvZGU6IHN0cmluZyxcbiAgICBvdXRwdXRTZXBhcmF0b3IgPSAnXydcbiAgKTogeyBsYW5nQ29kZTogc3RyaW5nOyBsYW5nQ291bnRyeUNvZGU6IHN0cmluZyB9IHtcbiAgICAvLyAtIDIgbGV0dGVyIGxhbmd1YWdlIGNvZGVcbiAgICAvLyAtIG9wdGlvbmFsIHJlZ2lvbiBjb2RlIHRoYXQncyBlaXRoZXIgMiBsZXR0ZXJzIE9SIDMgZGlnaXRzXG4gICAgY29uc3QgbWF0Y2hlcyA9IGxvY2FsZUNvZGUubWF0Y2goL14oW2Etel17Mn0pKFtfLV0oW2Etel17Mn18WzAtOV17M30pKT8kL2kpO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IHBhcnNlIGxvY2FsZSBjb2RlIFwiJHtsb2NhbGVDb2RlfVwiLiBFeHBlY3RlZCBmb3JtYXQ6IGxhbmd1YWdlIGNvZGUgKDIgbGV0dGVycykgb3B0aW9uYWxseSBmb2xsb3dlZCBieSByZWdpb24gY29kZSAoMiBsZXR0ZXJzIG9yIDMgZGlnaXRzKSBzZXBhcmF0ZWQgd2l0aCBcIl9cIiBvciBcIi1cIiwgZS5nLiBcImVuLVVTXCIgb3IgXCJlcy00MTlcIi5gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBsYW5nQ29kZSA9IG1hdGNoZXNbMV0udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCByZWdpb25Db2RlID0gbWF0Y2hlc1szXT8udG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBsYW5nQ291bnRyeUNvZGUgPSBgJHtsYW5nQ29kZX0ke3JlZ2lvbkNvZGUgPyBgJHtvdXRwdXRTZXBhcmF0b3J9JHtyZWdpb25Db2RlfWAgOiAnJ31gO1xuICAgIHJldHVybiB7IGxhbmdDb2RlLCBsYW5nQ291bnRyeUNvZGUgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYW5ndWFnZSBmcm9tIGxvY2FsIHN0b3JhZ2UuXG4gICAqIEByZXR1cm4gVGhlIGxhbmd1YWdlIHR3by1sZXR0ZXIgY29kZS5cbiAgICovXG4gIHByaXZhdGUgbG9jYWxTdG9yYWdlTGFuZygpIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFRyYW5zbGF0ZVNlcnZpY2UuU0FWRV9MQU5HVUFHRV9LRVkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hpY2ggbGFuZ3VhZ2UgaXMgc2V0IGluIHRoZSBicm93c2VyLlxuICAgKiBAcmV0dXJuIFRoZSBsYW5ndWFnZXMgdGhlIGJyb3dzZXIgc3VwcG9ydHMgYXMgc3RyaW5nIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBicm93c2VyTGFuZ3MoKSB7XG4gICAgY29uc3QgeyBuYXZpZ2F0b3IgfSA9IHdpbmRvdztcbiAgICBjb25zdCBicm93c2VyTGFuZ3VhZ2VQcm9wZXJ0eUtleXMgPSBbXG4gICAgICAnbGFuZ3VhZ2VzJyxcbiAgICAgICdsYW5ndWFnZScsXG4gICAgICAnYnJvd3Nlckxhbmd1YWdlJyxcbiAgICAgICdzeXN0ZW1MYW5ndWFnZScsXG4gICAgICAndXNlckxhbmd1YWdlJ1xuICAgIF07XG4gICAgcmV0dXJuIGJyb3dzZXJMYW5ndWFnZVByb3BlcnR5S2V5cy5yZWR1Y2UoKGxhbmd1YWdlcywgcHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IHByb3BlcnR5TGFuZ3VhZ2VzID0gbmF2aWdhdG9yW3Byb3BlcnR5XTtcbiAgICAgIGlmICh0eXBlb2YgcHJvcGVydHlMYW5ndWFnZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGxhbmd1YWdlcy5wdXNoKHByb3BlcnR5TGFuZ3VhZ2VzKTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0eUxhbmd1YWdlcykpIHtcbiAgICAgICAgbGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzLmNvbmNhdChwcm9wZXJ0eUxhbmd1YWdlcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGFuZ3VhZ2VzO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnlLZXkpIHtcbiAgICAvLyBUT0RPOiByZXBsYWNlIHRoaXMgd2l0aCBVUkxTZWFyY2hQYXJhbXMsIGllIDExIHN0aWxsIGRvZXNuJ3Qgc3VwcG9ydCA6KClcbiAgICBjb25zdCBxdWVyeSA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgcXVlcnkuc3BsaXQoJyYnKS5maW5kKHBhaXIgPT4ge1xuICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFpci5zcGxpdCgnPScpO1xuICAgICAgaWYgKGtleSA9PT0gcXVlcnlLZXkpIHtcbiAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBsb2NhbGUgZm9yIG5neC1ib290c3RyYXAuXG4gICAqIEBwYXJhbSBsYW5nIEEgdHdvLWxldHRlciBsYW5ndWFnZSBjb2RlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRCc0xvY2FsZShsYW5nKSB7XG4gICAgc3dpdGNoIChsYW5nKSB7XG4gICAgICBjYXNlICdkZSc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIGRlTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2VuJzoge1xuICAgICAgICAvLyAnZW4tZ2InIGlzIGNyZWF0ZWQgYmVjYXVzZSBvdmVyd3JpdGluZyBkZWZhdWx0ICdlbicgYnJlYWtzIGRhdGUtcGlja2VyIHNvbWVob3dcbiAgICAgICAgZGVmaW5lTG9jYWxlKCdlbi1nYicsIGVuR2JMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UoJ2VuLWdiJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZXMnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBlc0xvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdmcic6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIGZyTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2phJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgamFMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAna28nOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBrb0xvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdubCc6IHtcbiAgICAgICAgZGVmaW5lTG9jYWxlKGxhbmcsIG5sTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3BsJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgcGxMb2NhbGUpO1xuICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UobGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncHQnOiB7XG4gICAgICAgIGRlZmluZUxvY2FsZShsYW5nLCBwdEJyTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3poJzoge1xuICAgICAgICBkZWZpbmVMb2NhbGUobGFuZywgemhDbkxvY2FsZSk7XG4gICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZShsYW5nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGRlZmluZUxvY2FsZSgnZW4tZ2InLCBlbkdiTG9jYWxlKTtcbiAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKCdlbi1nYicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -8,8 +8,12 @@ export const PRODUCT_EXPERIENCE_CORE_SHARED = {
8
8
  QUICK_LINKS: {
9
9
  EVENTS: { QUICK_LINK_RIGHT_DRAWER: 'quickLinkRightDrawer' },
10
10
  COMPONENTS: { RIGHT_DRAWER_COMPONENT: 'right-drawer' },
11
- ACTIONS: {},
11
+ ACTIONS: {
12
+ ACTIVATE_SUPPORT_ACCESS: 'activateSupportAccess',
13
+ DEACTIVATE_SUPPORT_ACCESS: 'deactivateSupportAccess',
14
+ OPEN_SUPPORT_LINK: 'openSupportLink'
15
+ },
12
16
  RESULTS: {}
13
17
  }
14
18
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2hhcmVkL2NvcmUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUc7SUFDNUMsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRTtRQUM1QyxVQUFVLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUU7UUFDbEQsT0FBTyxFQUFFLEVBQUU7UUFDWCxPQUFPLEVBQUUsRUFBRTtLQUNaO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUU7UUFDM0QsVUFBVSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFO1FBQ3RELE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEVBQUU7S0FDWjtDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUFJPRFVDVF9FWFBFUklFTkNFX0NPUkVfU0hBUkVEID0ge1xuICBBQ1RJT05fQkFSOiB7XG4gICAgRVZFTlRTOiB7IEFDVElPTl9CQVJfSVRFTTogJ2FjdGlvbkJhckl0ZW0nIH0sXG4gICAgQ09NUE9ORU5UUzogeyBBQ1RJT05fQkFSX0NPTVBPTkVOVDogJ2FjdGlvbi1iYXInIH0sXG4gICAgQUNUSU9OUzoge30sXG4gICAgUkVTVUxUUzoge31cbiAgfSxcbiAgUVVJQ0tfTElOS1M6IHtcbiAgICBFVkVOVFM6IHsgUVVJQ0tfTElOS19SSUdIVF9EUkFXRVI6ICdxdWlja0xpbmtSaWdodERyYXdlcicgfSxcbiAgICBDT01QT05FTlRTOiB7IFJJR0hUX0RSQVdFUl9DT01QT05FTlQ6ICdyaWdodC1kcmF3ZXInIH0sXG4gICAgQUNUSU9OUzoge30sXG4gICAgUkVTVUxUUzoge31cbiAgfVxufSBhcyBjb25zdDtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2hhcmVkL2NvcmUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUc7SUFDNUMsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRTtRQUM1QyxVQUFVLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUU7UUFDbEQsT0FBTyxFQUFFLEVBQUU7UUFDWCxPQUFPLEVBQUUsRUFBRTtLQUNaO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUU7UUFDM0QsVUFBVSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFO1FBQ3RELE9BQU8sRUFBRTtZQUNQLHVCQUF1QixFQUFFLHVCQUF1QjtZQUNoRCx5QkFBeUIsRUFBRSx5QkFBeUI7WUFDcEQsaUJBQWlCLEVBQUUsaUJBQWlCO1NBQ3JDO1FBQ0QsT0FBTyxFQUFFLEVBQUU7S0FDWjtDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUFJPRFVDVF9FWFBFUklFTkNFX0NPUkVfU0hBUkVEID0ge1xuICBBQ1RJT05fQkFSOiB7XG4gICAgRVZFTlRTOiB7IEFDVElPTl9CQVJfSVRFTTogJ2FjdGlvbkJhckl0ZW0nIH0sXG4gICAgQ09NUE9ORU5UUzogeyBBQ1RJT05fQkFSX0NPTVBPTkVOVDogJ2FjdGlvbi1iYXInIH0sXG4gICAgQUNUSU9OUzoge30sXG4gICAgUkVTVUxUUzoge31cbiAgfSxcbiAgUVVJQ0tfTElOS1M6IHtcbiAgICBFVkVOVFM6IHsgUVVJQ0tfTElOS19SSUdIVF9EUkFXRVI6ICdxdWlja0xpbmtSaWdodERyYXdlcicgfSxcbiAgICBDT01QT05FTlRTOiB7IFJJR0hUX0RSQVdFUl9DT01QT05FTlQ6ICdyaWdodC1kcmF3ZXInIH0sXG4gICAgQUNUSU9OUzoge1xuICAgICAgQUNUSVZBVEVfU1VQUE9SVF9BQ0NFU1M6ICdhY3RpdmF0ZVN1cHBvcnRBY2Nlc3MnLFxuICAgICAgREVBQ1RJVkFURV9TVVBQT1JUX0FDQ0VTUzogJ2RlYWN0aXZhdGVTdXBwb3J0QWNjZXNzJyxcbiAgICAgIE9QRU5fU1VQUE9SVF9MSU5LOiAnb3BlblN1cHBvcnRMaW5rJ1xuICAgIH0sXG4gICAgUkVTVUxUUzoge31cbiAgfVxufSBhcyBjb25zdDtcbiJdfQ==