@bnsights/bbsf-admin-portal 1.1.3 → 1.1.4
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.
- package/README.md +4 -0
- package/esm2022/bnsights-test-test-admin-portal.mjs +5 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +1 -1
- package/esm2022/lib/Pages/ActiveDirectories/active-directory.module.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +1 -1
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +3 -3
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +3 -3
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +1 -1
- package/esm2022/lib/Pages/departments/department/department.component.mjs +1 -1
- package/esm2022/lib/Pages/departments/departments.module.mjs +1 -1
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +1 -1
- package/esm2022/lib/Pages/home/home.module.mjs +1 -1
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +1 -1
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +1 -1
- package/esm2022/lib/Pages/jobs/jobs.module.mjs +1 -1
- package/esm2022/lib/Pages/license/license/license.component.mjs +1 -1
- package/esm2022/lib/Pages/license/license.module.mjs +1 -1
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +1 -1
- package/esm2022/lib/Pages/localizations/localizations.module.mjs +1 -1
- package/esm2022/lib/Pages/logs/log/log.component.mjs +1 -1
- package/esm2022/lib/Pages/logs/logs.module.mjs +1 -1
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +1 -1
- package/esm2022/lib/Pages/lookups/lookups.module.mjs +1 -1
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +1 -1
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +1 -1
- package/esm2022/lib/Pages/notifications/notifications.module.mjs +1 -1
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +1 -1
- package/esm2022/lib/Pages/providers/providers.module.mjs +1 -1
- package/esm2022/lib/Pages/publicHolidays/public-holidays.module.mjs +1 -1
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +1 -1
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +1 -1
- package/esm2022/lib/Pages/roles/roles.module.mjs +1 -1
- package/esm2022/lib/Pages/sectors/sectors.module.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/LicenseModel/LicenseModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/LocalizationModels/EditResourceModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/add-survey-submissio.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/add-survey.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-field-options.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-filed-value.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/UserModels/AddUserModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/UserModels/EditUserModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +1 -1
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +1 -1
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +1 -1
- package/esm2022/lib/Pages/workflows/workflows.module.mjs +1 -1
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +4 -4
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/fesm2022/bnsights-test-test-admin-portal.mjs +27181 -0
- package/fesm2022/bnsights-test-test-admin-portal.mjs.map +1 -0
- package/package.json +2 -2
- package/src/lib/assets/sass/custom-styles.scss +99 -33
- package/src/lib/assets/sass/style-rtl.scss +6 -8
- package/src/lib/assets/sass/style.scss +5 -7
package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs
CHANGED
|
@@ -139,11 +139,11 @@ export class AuthenticationConfigurationComponent extends AppBaseComponent {
|
|
|
139
139
|
loadAzureADConfigurationConfigurations() {
|
|
140
140
|
}
|
|
141
141
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AuthenticationConfigurationComponent, deps: [{ token: i0.Injector }, { token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i3.ConfigurationsService }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AuthenticationConfigurationComponent, selector: "lib-auth-configuration", viewQueries: [{ propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }, { propertyName: "reloadConfirmationModalControl", first: true, predicate: ["reloadConfirmationModalControl"], descendants: true }, { propertyName: "editBoardMemberModal", first: true, predicate: ["editAuthConfigurationModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder\">\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\"\r\n (click)=\"loadUAEPassConfigurations()\">{{utilityService.getResourceValue(\"UAEPassConfigurationData\")}}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\" *ngIf=\"uaePassConfigurationIsLoaded\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"col-xl-12 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n <div class=\"mb-7 d-flex justify-content-end w-100\">\r\n <a (click)=\"showEditModal(authenticationModeEnumValues.UAEPass)\" routerLinkActive=\"router-link-active\" class=\"btn btn-sm\r\n btn-light-primary btn-icon\">\r\n <i class=\"fa fa-pen\"></i>\r\n </a>\r\n </div>\r\n <div class=\"w-100 mb-10\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('BaseUrl')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.baseUrl}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('ClientID')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.clientID}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('RedirectUrl')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.redirectUrl}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('DefaultPermissionSet')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.defaultPermissionSetLocalization}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('AccessLevels')}}</p>\r\n <span *ngFor=\"let level of uaePassConfiguration.accessLevels\"\r\n class=\"readonly-view\">{{getUAEPassUserTypeValue(level)}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('EnableLinkingExistingUsers')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.enableLinkingExistingUsers ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('EnableImportingNewUser')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.enableImportingNewUser ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('EnableUpdateUserInformationOnLogin')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.enableUpdateUserInformationOnLogin ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('EnableSOPPermissionMapping')}}</p>\r\n <span class=\"readonly-view\">{{uaePassConfiguration.enableSOPPermissionMapping ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"uaePassConfiguration.enableLinkingExistingUsers\">\r\n <div class=\"request-readOnly\">\r\n <p>{{utilityService.getResourceValue('LinkingMode')}}</p>\r\n <span class=\"readonly-view\">{{getUAEPassLinkingModeValue(uaePassConfiguration.linkingMode)}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\"\r\n (click)=\"loadAzureADConfigurationConfigurations()\">{{utilityService.getResourceValue(\"AzureADConfigurationData\")}}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <p>\r\n Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth\r\n master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro\r\n keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat\r\n salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.\r\n </p>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<auth-configuration-edit #editAuthConfigurationModal></auth-configuration-edit>\r\n<BBSF-ConfirmationModal *ngIf=\"reloadControlLoaded\" [options]=\"reloadConfirmationOptions\" id=\"reloadConfirmationModalControl\"\r\n #reloadConfirmationModalControl></BBSF-ConfirmationModal>", dependencies: [{ kind: "component", type: i4.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i7.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { kind: "directive", type: i8.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i8.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i8.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i8.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i8.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i8.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i8.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i9.EditAuthConfigurationComponent, selector: "auth-configuration-edit", inputs: ["pagingElement", "onSuccessTakePenaltyHandler"] }] }); }
|
|
142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AuthenticationConfigurationComponent, selector: "lib-auth-configuration", viewQueries: [{ propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }, { propertyName: "reloadConfirmationModalControl", first: true, predicate: ["reloadConfirmationModalControl"], descendants: true }, { propertyName: "editBoardMemberModal", first: true, predicate: ["editAuthConfigurationModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder\">\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\"\r\n (click)=\"loadUAEPassConfigurations()\">{{utilityService.getResourceValue(\"UAEPassConfigurationData\")}}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\" *ngIf=\"uaePassConfigurationIsLoaded\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"col-xl-12 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n\r\n <div class=\"w-100 mb-10\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('BaseUrl')}}</p>\r\n <span>{{uaePassConfiguration.baseUrl}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('ClientID')}}</p>\r\n <span>{{uaePassConfiguration.clientID}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('RedirectUrl')}}</p>\r\n <span>{{uaePassConfiguration.redirectUrl}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('DefaultPermissionSet')}}</p>\r\n <span>{{uaePassConfiguration.defaultPermissionSetLocalization}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('AccessLevels')}}</p>\r\n <span *ngFor=\"let level of uaePassConfiguration.accessLevels\">{{getUAEPassUserTypeValue(level)}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableLinkingExistingUsers')}}</p>\r\n <span>{{uaePassConfiguration.enableLinkingExistingUsers ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableImportingNewUser')}}</p>\r\n <span>{{uaePassConfiguration.enableImportingNewUser ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableUpdateUserInformationOnLogin')}}</p>\r\n <span>{{uaePassConfiguration.enableUpdateUserInformationOnLogin ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableSOPPermissionMapping')}}</p>\r\n <span>{{uaePassConfiguration.enableSOPPermissionMapping ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"uaePassConfiguration.enableLinkingExistingUsers\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('LinkingMode')}}</p>\r\n <span>{{getUAEPassLinkingModeValue(uaePassConfiguration.linkingMode)}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end w-100\">\r\n <a (click)=\"showEditModal(authenticationModeEnumValues.UAEPass)\" routerLinkActive=\"router-link-active\"\r\n class=\"btn btn-primary btn-sm\">\r\n Edit <i class=\"fa fa-pen ms-1\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\"\r\n (click)=\"loadAzureADConfigurationConfigurations()\">{{utilityService.getResourceValue(\"AzureADConfigurationData\")}}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <p>\r\n Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth\r\n master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro\r\n keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat\r\n salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.\r\n </p>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<auth-configuration-edit #editAuthConfigurationModal></auth-configuration-edit>\r\n<BBSF-ConfirmationModal *ngIf=\"reloadControlLoaded\" [options]=\"reloadConfirmationOptions\" id=\"reloadConfirmationModalControl\"\r\n #reloadConfirmationModalControl></BBSF-ConfirmationModal>", dependencies: [{ kind: "component", type: i4.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i7.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { kind: "directive", type: i8.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i8.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i8.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i8.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i8.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i8.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i8.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i9.EditAuthConfigurationComponent, selector: "auth-configuration-edit", inputs: ["pagingElement", "onSuccessTakePenaltyHandler"] }] }); }
|
|
143
143
|
}
|
|
144
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AuthenticationConfigurationComponent, decorators: [{
|
|
145
145
|
type: Component,
|
|
146
|
-
args: [{ selector: 'lib-auth-configuration', template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder\">\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\"\r\n (click)=\"loadUAEPassConfigurations()\">{{utilityService.getResourceValue(\"UAEPassConfigurationData\")}}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\" *ngIf=\"uaePassConfigurationIsLoaded\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"col-xl-12 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n
|
|
146
|
+
args: [{ selector: 'lib-auth-configuration', template: "<block-ui></block-ui>\r\n\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bolder\">\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\"\r\n (click)=\"loadUAEPassConfigurations()\">{{utilityService.getResourceValue(\"UAEPassConfigurationData\")}}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\" *ngIf=\"uaePassConfigurationIsLoaded\">\r\n <div class=\"card-body py-3 px-0\">\r\n <div class=\"col-xl-12 mb-10\">\r\n <div class=\"d-flex h-100 align-items-center \">\r\n <div class=\"w-100 d-flex flex-column flex-center rounded-3 bg-light\r\n py-10 px-10 h-100\">\r\n\r\n <div class=\"w-100 mb-10\">\r\n <div class=\"d-flex align-items-center mb-5\">\r\n <div class=\"fw-bold fs-6 text-gray-800 flex-grow-1 pe-3\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('BaseUrl')}}</p>\r\n <span>{{uaePassConfiguration.baseUrl}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('ClientID')}}</p>\r\n <span>{{uaePassConfiguration.clientID}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('RedirectUrl')}}</p>\r\n <span>{{uaePassConfiguration.redirectUrl}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('DefaultPermissionSet')}}</p>\r\n <span>{{uaePassConfiguration.defaultPermissionSetLocalization}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('AccessLevels')}}</p>\r\n <span *ngFor=\"let level of uaePassConfiguration.accessLevels\">{{getUAEPassUserTypeValue(level)}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableLinkingExistingUsers')}}</p>\r\n <span>{{uaePassConfiguration.enableLinkingExistingUsers ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableImportingNewUser')}}</p>\r\n <span>{{uaePassConfiguration.enableImportingNewUser ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableUpdateUserInformationOnLogin')}}</p>\r\n <span>{{uaePassConfiguration.enableUpdateUserInformationOnLogin ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('EnableSOPPermissionMapping')}}</p>\r\n <span>{{uaePassConfiguration.enableSOPPermissionMapping ?\r\n utilityService.getResourceValue('True') : utilityService.getResourceValue('False')}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"uaePassConfiguration.enableLinkingExistingUsers\">\r\n <div class=\"readOnly-view\">\r\n <p>{{utilityService.getResourceValue('LinkingMode')}}</p>\r\n <span>{{getUAEPassLinkingModeValue(uaePassConfiguration.linkingMode)}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end w-100\">\r\n <a (click)=\"showEditModal(authenticationModeEnumValues.UAEPass)\" routerLinkActive=\"router-link-active\"\r\n class=\"btn btn-primary btn-sm\">\r\n Edit <i class=\"fa fa-pen ms-1\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n <li ngbNavItem class=\"nav-item mt-2\">\r\n <a ngbNavLink class=\"nav-link text-active-primary ms-0 me-10 py-5\"\r\n (click)=\"loadAzureADConfigurationConfigurations()\">{{utilityService.getResourceValue(\"AzureADConfigurationData\")}}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"card\">\r\n <div class=\"card-body py-3 px-0\">\r\n <p>\r\n Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth\r\n master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro\r\n keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat\r\n salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.\r\n </p>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<auth-configuration-edit #editAuthConfigurationModal></auth-configuration-edit>\r\n<BBSF-ConfirmationModal *ngIf=\"reloadControlLoaded\" [options]=\"reloadConfirmationOptions\" id=\"reloadConfirmationModalControl\"\r\n #reloadConfirmationModalControl></BBSF-ConfirmationModal>" }]
|
|
147
147
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i3.ConfigurationsService }, { type: i2.RequestHandlerService }], propDecorators: { ConfirmationModalControl: [{
|
|
148
148
|
type: ViewChild,
|
|
149
149
|
args: ['ConfirmationModalControl', { static: false }]
|
|
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
154
154
|
type: ViewChild,
|
|
155
155
|
args: ["editAuthConfigurationModal", { static: false }]
|
|
156
156
|
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvY29uZmlndXJhdGlvbnMvYXV0aC1jb25maWd1cmF0aW9uL2F1dGgtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2NvbmZpZ3VyYXRpb25zL2F1dGgtY29uZmlndXJhdGlvbi9hdXRoLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQThCLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUE4QixNQUFNLHlCQUF5QixDQUFDO0FBRXBLLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ25JLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUlyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFNekksTUFBTSxPQUFPLG9DQUFxQyxTQUFRLGdCQUFnQjtJQTJDeEUsWUFBb0IsUUFBa0IsRUFDNUIsZUFBZ0MsRUFDakMsY0FBOEIsRUFDN0IscUJBQTRDLEVBQzVDLHFCQUE0QztRQUNwRCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtR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Q0FBZ0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTlELG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbHRlckl0ZW0sIFRleHRCb3hPcHRpb25zLCBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIFN0eWxlQ29uZmlybWF0aW9uTW9kZSwgQXBwQmFzZUNvbXBvbmVudCwgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9Db25maWd1cmF0aW9uc1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJCU0ZBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24sIFVBRVBhc3NDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Db25maWd1cmF0aW9uTW9kZWxzL0NvbmZpZ3VyYXRpb25Nb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRWRpdEF1dGhDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRoLWNvbmZpZ3VyYXRpb24tZWRpdC9hdXRoLWNvbmZpZ3VyYXRpb24tZWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1vZGUsIFVBRVBhc3NMaW5raW5nTW9kZSwgVUFFUGFzc1VzZXJUeXBlcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9FbnVtcy9jb25maWd1cmF0aW9uL2F1dGhlbnRlY2F0aW9uLWNvbmZpZ3VyYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYXV0aC1jb25maWd1cmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vI3JlZ2lvbiBwcm9wc1xyXG4gIGF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbk1vZGVsOiBCQlNGQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uID0gbmV3IEJCU0ZBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oKTtcclxuICB1YWVQYXNzQ29uZmlndXJhdGlvbjogVUFFUGFzc0NvbmZpZ3VyYXRpb24gPSBuZXcgVUFFUGFzc0NvbmZpZ3VyYXRpb24oKTtcclxuICB1YWVQYXNzQ29uZmlndXJhdGlvbklzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXV0aGVudGljYXRpb25Nb2RlRW51bVZhbHVlcyA9IEF1dGhlbnRpY2F0aW9uTW9kZTtcclxuXHJcbiAgdWFlUGFzc0xpbmtpbmdNb2RlRW51bTogVUFFUGFzc0xpbmtpbmdNb2RlO1xyXG4gIHVhZVBhc3NVc2VyVHlwZUVudW06IFVBRVBhc3NVc2VyVHlwZXM7XHJcblxyXG4gIHVhZVBhc3NVc2VyVHlwZUxpc3Q6IGFueVtdID0gW107XHJcbiAgdWFlUGFzc0xpbmtpbmdNb2RlTGlzdDogYW55W10gPSBbXTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFNob3dQYWdlQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEFwaVVybCA9IFwiL2FwaS9hZG1pbi9Db25maWd1cmF0aW9uL1wiO1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBDb25maWd1cmF0aW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBjbGllbnRTaWRlUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVDb25maWd1cmF0aW9uSWQ6IHN0cmluZztcclxuICBEZWxldGVDb25maXJtYXRpb25PcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgZGVsZXRlQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDb25maXJtYXRpb25Nb2RhbENvbnRyb2w6IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50O1xyXG5cclxuICAvL1JlbG9hZCBKc29uIE1vZGVsIENvbnRyb2xzXHJcbiAgcmVsb2FkQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIHJlbG9hZENvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgncmVsb2FkQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcmVsb2FkQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcImVkaXRBdXRoQ29uZmlndXJhdGlvbk1vZGFsXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGVkaXRCb2FyZE1lbWJlck1vZGFsOiBFZGl0QXV0aENvbmZpZ3VyYXRpb25Db21wb25lbnQ7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBDb25maWd1cmF0aW9uc1NlcnZpY2U6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBFdmVudHNcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZShcIkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvblwiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZShcIkhvbWVcIiksXHJcbiAgICAgICAgcGF0aDogJy9BZG1pbi9Ib21lJyxcclxuICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgcGF0aDogJycsXHJcbiAgICAgICAgaXNTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcblxyXG4gIC8vI3JlZ2lvbiBoZWxwZXJcclxuXHJcbiAgdHJhbnNsYXRlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoa2V5KTtcclxuICB9XHJcblxyXG4gIHNob3dFZGl0TW9kYWwgPSAobW9kZTogQXV0aGVudGljYXRpb25Nb2RlKSA9PiB7XHJcbiAgICB0aGlzLmVkaXRCb2FyZE1lbWJlck1vZGFsLnNob3dNb2RhbChtb2RlLCB0aGlzLmF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbk1vZGVsKTtcclxuICB9XHJcblxyXG4gIGxvYWRVQUVQYXNzVXNlclR5cGVzKCkge1xyXG4gICAgbGV0IGxpc3Q6IGFueVtdID0gW107XHJcbiAgICBmb3IgKHZhciBpdGVtIGluIFVBRVBhc3NVc2VyVHlwZXMpIHtcclxuICAgICAgaWYgKHBhcnNlSW50KGl0ZW0pKVxyXG4gICAgICAgIGxpc3QucHVzaCh7XHJcbiAgICAgICAgICBrZXk6ICtpdGVtLFxyXG4gICAgICAgICAgdmFsdWU6IFVBRVBhc3NVc2VyVHlwZXNbaXRlbV1cclxuICAgICAgICB9IGFzIGFueSlcclxuICAgIH1cclxuICAgIHRoaXMudWFlUGFzc1VzZXJUeXBlTGlzdCA9IGxpc3Q7XHJcbiAgfVxyXG5cclxuICBsb2FkVUFFUGFzc0xpbmtpbmdNb2RlKCkge1xyXG4gICAgbGV0IGxpc3Q6IGFueVtdID0gW107XHJcbiAgICBmb3IgKHZhciBpdGVtIGluIFVBRVBhc3NMaW5raW5nTW9kZSkge1xyXG4gICAgICBpZiAocGFyc2VJbnQoaXRlbSkpXHJcbiAgICAgICAgbGlzdC5wdXNoKHtcclxuICAgICAgICAgIGtleTogK2l0ZW0sXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy50cmFuc2xhdGUoVUFFUGFzc0xpbmtpbmdNb2RlW2l0ZW1dKVxyXG4gICAgICAgIH0gYXMgYW55KVxyXG4gICAgfVxyXG4gICAgdGhpcy51YWVQYXNzTGlua2luZ01vZGVMaXN0ID0gbGlzdDtcclxuICB9XHJcblxyXG4gIGdldFVBRVBhc3NVc2VyVHlwZVZhbHVlKGtleTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy51YWVQYXNzVXNlclR5cGVMaXN0LmZpbmQoaSA9PiBpLmtleSA9PSBrZXkpLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VUFFUGFzc0xpbmtpbmdNb2RlVmFsdWUoa2V5OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnVhZVBhc3NMaW5raW5nTW9kZUxpc3QuZmluZChpID0+IGkua2V5ID09IGtleSkudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxvYWRVQUVQYXNzQ29uZmlndXJhdGlvbnMoKTtcclxuICAgIHRoaXMubG9hZFVBRVBhc3NVc2VyVHlwZXMoKTtcclxuICAgIHRoaXMubG9hZFVBRVBhc3NMaW5raW5nTW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFN0YXJ0IG9mICBSZWxvYWQgUmVzb3VyY2UgcGFydFxyXG4gIHNob3dSZWxvYWRSZXNvdXJjZU1vZGFsKCkge1xyXG4gICAgdGhpcy5yZWxvYWRDb250cm9sTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5yZWxvYWRKc29uRnVuY3Rpb247XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSA9IHRoaXMudHJhbnNsYXRlKFwiUmVsb2FkQ29uZmlndXJhdGlvbnNDb25maXJtYXRpb25cIik7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyID0gdGhpcy50cmFuc2xhdGUoXCJSZWxvYWRDb25maWd1cmF0aW9uc1wiKTtcclxuICAgIHRoaXMucmVsb2FkQ29uZmlybWF0aW9uT3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0ID0gdGhpcy50cmFuc2xhdGUoXCJSZWxvYWRcIik7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuU3R5bGVDb25maXJtYXRpb25Nb2RlID0gU3R5bGVDb25maXJtYXRpb25Nb2RlLkRhbmdlcjtcclxuICAgIHRoaXMucmVsb2FkQ29uZmlybWF0aW9uT3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlKFwiU3VjY2Vzc01lc3NhZ2VcIik7XHJcbiAgICB0aGlzLnJlbG9hZENvbnRyb2xMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93TW9kYWwoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICByZWxvYWRKc29uRnVuY3Rpb24gPSAoKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLkNvbmZpZ3VyYXRpb25zU2VydmljZS5yZWxvYWRKc29uRmlsZSgpXHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIFVBRVBhc3MgRnVuY3Rpb25zXHJcblxyXG4gIGxvYWRVQUVQYXNzQ29uZmlndXJhdGlvbnMoKSB7XHJcbiAgICB0aGlzLnVhZVBhc3NDb25maWd1cmF0aW9uSXNMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuQ29uZmlndXJhdGlvbnNTZXJ2aWNlLmdldEF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbkRhdGEoKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb25Nb2RlbCA9IHJlcztcclxuICAgICAgICB0aGlzLnVhZVBhc3NDb25maWd1cmF0aW9uID0gcmVzLnVhZVBhc3NDb25maWc7XHJcbiAgICAgICAgdGhpcy51YWVQYXNzQ29uZmlndXJhdGlvbklzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gQXp1cmVBRENvbmZpZ3VyYXRpb25EYXRhXHJcblxyXG4gIGxvYWRBenVyZUFEQ29uZmlndXJhdGlvbkNvbmZpZ3VyYXRpb25zKCkge1xyXG5cclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMgbmF2LWxpbmUtdGFicy0yeCBib3JkZXItdHJhbnNwYXJlbnQgZnMtNSBmdy1ib2xkZXJcIj5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtIG10LTJcIj5cclxuICAgICAgICAgIDxhIG5nYk5hdkxpbmsgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1zLTAgbWUtMTAgcHktNVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJsb2FkVUFFUGFzc0NvbmZpZ3VyYXRpb25zKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVQUVQYXNzQ29uZmlndXJhdGlvbkRhdGFcIil9fTwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwidWFlUGFzc0NvbmZpZ3VyYXRpb25Jc0xvYWRlZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTEyIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC0zIGJnLWxpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgICBweS0xMCBweC0xMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTcgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNob3dFZGl0TW9kYWwoYXV0aGVudGljYXRpb25Nb2RlRW51bVZhbHVlcy5VQUVQYXNzKVwiIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIiBjbGFzcz1cImJ0biBidG4tc21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBidG4tbGlnaHQtcHJpbWFyeSBidG4taWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGVuXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgZnMtNiB0ZXh0LWdyYXktODAwIGZsZXgtZ3Jvdy0xIHBlLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWVzdC1yZWFkT25seVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdCYXNlVXJsJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVhZG9ubHktdmlld1wiPnt7dWFlUGFzc0NvbmZpZ3VyYXRpb24uYmFzZVVybH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVlc3QtcmVhZE9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQ2xpZW50SUQnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFkb25seS12aWV3XCI+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5jbGllbnRJRH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVlc3QtcmVhZE9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnUmVkaXJlY3RVcmwnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFkb25seS12aWV3XCI+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5yZWRpcmVjdFVybH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVlc3QtcmVhZE9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdFBlcm1pc3Npb25TZXQnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFkb25seS12aWV3XCI+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5kZWZhdWx0UGVybWlzc2lvblNldExvY2FsaXphdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVlc3QtcmVhZE9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQWNjZXNzTGV2ZWxzJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBsZXZlbCBvZiB1YWVQYXNzQ29uZmlndXJhdGlvbi5hY2Nlc3NMZXZlbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlYWRvbmx5LXZpZXdcIj57e2dldFVBRVBhc3NVc2VyVHlwZVZhbHVlKGxldmVsKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVlc3QtcmVhZE9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRW5hYmxlTGlua2luZ0V4aXN0aW5nVXNlcnMnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFkb25seS12aWV3XCI+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5lbmFibGVMaW5raW5nRXhpc3RpbmdVc2VycyA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ1RydWUnKSA6IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0ZhbHNlJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1ZXN0LXJlYWRPbmx5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0VuYWJsZUltcG9ydGluZ05ld1VzZXInKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFkb25seS12aWV3XCI+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5lbmFibGVJbXBvcnRpbmdOZXdVc2VyID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnVHJ1ZScpIDogdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRmFsc2UnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVlc3QtcmVhZE9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRW5hYmxlVXBkYXRlVXNlckluZm9ybWF0aW9uT25Mb2dpbicpfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlYWRvbmx5LXZpZXdcIj57e3VhZVBhc3NDb25maWd1cmF0aW9uLmVuYWJsZVVwZGF0ZVVzZXJJbmZvcm1hdGlvbk9uTG9naW4gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdUcnVlJykgOiB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdGYWxzZScpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWVzdC1yZWFkT25seVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdFbmFibGVTT1BQZXJtaXNzaW9uTWFwcGluZycpfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlYWRvbmx5LXZpZXdcIj57e3VhZVBhc3NDb25maWd1cmF0aW9uLmVuYWJsZVNPUFBlcm1pc3Npb25NYXBwaW5nID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnVHJ1ZScpIDogdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRmFsc2UnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJ1YWVQYXNzQ29uZmlndXJhdGlvbi5lbmFibGVMaW5raW5nRXhpc3RpbmdVc2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1ZXN0LXJlYWRPbmx5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0xpbmtpbmdNb2RlJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVhZG9ubHktdmlld1wiPnt7Z2V0VUFFUGFzc0xpbmtpbmdNb2RlVmFsdWUodWFlUGFzc0NvbmZpZ3VyYXRpb24ubGlua2luZ01vZGUpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW0gbXQtMlwiPlxyXG4gICAgICAgICAgPGEgbmdiTmF2TGluayBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbXMtMCBtZS0xMCBweS01XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImxvYWRBenVyZUFEQ29uZmlndXJhdGlvbkNvbmZpZ3VyYXRpb25zKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBenVyZUFEQ29uZmlndXJhdGlvbkRhdGFcIil9fTwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgUmF3IGRlbmltIHlvdSBwcm9iYWJseSBoYXZlbid0IGhlYXJkIG9mIHRoZW0gamVhbiBzaG9ydHMgQXVzdGluLiBOZXNjaXVudCB0b2Z1IHN0dW1wdG93biBhbGlxdWEsIHJldHJvIHN5bnRoXHJcbiAgICAgICAgICAgICAgICAgIG1hc3RlciBjbGVhbnNlLiBNdXN0YWNoZSBjbGljaGUgdGVtcG9yLCB3aWxsaWFtc2J1cmcgY2FybGVzIHZlZ2FuIGhlbHZldGljYS4gUmVwcmVoZW5kZXJpdCBidXRjaGVyIHJldHJvXHJcbiAgICAgICAgICAgICAgICAgIGtlZmZpeWVoIGRyZWFtY2F0Y2hlciBzeW50aC4gQ29zYnkgc3dlYXRlciBldSBiYW5oIG1pLCBxdWkgaXJ1cmUgdGVycnkgcmljaGFyZHNvbiBleCBzcXVpZC4gQWxpcXVpcCBwbGFjZWF0XHJcbiAgICAgICAgICAgICAgICAgIHNhbHZpYSBjaWxsdW0gaXBob25lLiBTZWl0YW4gYWxpcXVpcCBxdWlzIGNhcmRpZ2FuIGFtZXJpY2FuIGFwcGFyZWwsIGJ1dGNoZXIgdm9sdXB0YXRlIG5pc2kgcXVpLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGF1dGgtY29uZmlndXJhdGlvbi1lZGl0ICNlZGl0QXV0aENvbmZpZ3VyYXRpb25Nb2RhbD48L2F1dGgtY29uZmlndXJhdGlvbi1lZGl0PlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cInJlbG9hZENvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJyZWxvYWRDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJyZWxvYWRDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4gICNyZWxvYWRDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvY29uZmlndXJhdGlvbnMvYXV0aC1jb25maWd1cmF0aW9uL2F1dGgtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2NvbmZpZ3VyYXRpb25zL2F1dGgtY29uZmlndXJhdGlvbi9hdXRoLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQThCLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUE4QixNQUFNLHlCQUF5QixDQUFDO0FBRXBLLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ25JLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUlyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFNekksTUFBTSxPQUFPLG9DQUFxQyxTQUFRLGdCQUFnQjtJQTJDeEUsWUFBb0IsUUFBa0IsRUFDNUIsZUFBZ0MsRUFDakMsY0FBOEIsRUFDN0IscUJBQTRDLEVBQzVDLHFCQUE0QztRQUNwRCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBN0N0RCxlQUFlO1FBQ2YscUNBQWdDLEdBQW9DLElBQUksK0JBQStCLEVBQUUsQ0FBQztRQUMxRyx5QkFBb0IsR0FBeUIsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3hFLGlDQUE0QixHQUFZLEtBQUssQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxrQkFBa0IsQ0FBQztRQUtsRCx3QkFBbUIsR0FBVSxFQUFFLENBQUM7UUFDaEMsMkJBQXNCLEdBQVUsRUFBRSxDQUFDO1FBQ25DLFlBQVk7UUFFWixtQkFBbUI7UUFDbkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsV0FBTSxHQUFHLDJCQUEyQixDQUFDO1FBR3JDLDhCQUE4QjtRQUM5QixzQkFBaUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd0QywyQkFBc0IsR0FBVSxFQUFFLENBQUM7UUFLbkMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBS3JDLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQXFEckMsa0JBQWEsR0FBRyxDQUFDLElBQXdCLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUE7UUEyREQsdUJBQWtCLEdBQUcsR0FBb0IsRUFBRTtZQUN6QyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNwRCxDQUFDLENBQUE7SUFyR0QsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixRQUFRO1FBQ04sZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDekUsZUFBZSxDQUFDLGVBQWUsR0FBRztZQUNoQztnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLElBQUksRUFBRSxhQUFhO2dCQUNuQixXQUFXLEVBQUUsS0FBSztnQkFDbEIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7WUFDRDtnQkFDRSxLQUFLLEVBQUUsRUFBRTtnQkFDVCxJQUFJLEVBQUUsRUFBRTtnQkFDUixXQUFXLEVBQUUsSUFBSTtnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFNUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFDRCxZQUFZO0lBR1osZ0JBQWdCO0lBRWhCLFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBTUQsb0JBQW9CO1FBQ2xCLElBQUksSUFBSSxHQUFVLEVBQUUsQ0FBQztRQUNyQixLQUFLLElBQUksSUFBSSxJQUFJLGdCQUFnQixFQUFFO1lBQ2pDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDUixHQUFHLEVBQUUsQ0FBQyxJQUFJO29CQUNWLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7aUJBQ3ZCLENBQUMsQ0FBQTtTQUNaO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksSUFBSSxHQUFVLEVBQUUsQ0FBQztRQUNyQixLQUFLLElBQUksSUFBSSxJQUFJLGtCQUFrQixFQUFFO1lBQ25DLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDUixHQUFHLEVBQUUsQ0FBQyxJQUFJO29CQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN6QyxDQUFDLENBQUE7U0FDWjtRQUNELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELHVCQUF1QixDQUFDLEdBQVc7UUFDakMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEUsQ0FBQztJQUVELDBCQUEwQixDQUFDLEdBQVc7UUFDcEMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkUsQ0FBQztJQUVELFlBQVk7SUFFWixjQUFjO1FBQ1osSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELHdDQUF3QztJQUN4Qyx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDL0UsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDcEYsSUFBSSxDQUFDLHlCQUF5QixDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUtELFlBQVk7SUFHWiwyQkFBMkI7SUFFM0IseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUM7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtDQUFrQyxFQUFFO2FBQzVELFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxHQUFHLENBQUM7WUFDNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDOUMsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxZQUFZO0lBRVosa0NBQWtDO0lBRWxDLHNDQUFzQztJQUV0QyxDQUFDOzhHQTlLVSxvQ0FBb0M7a0dBQXBDLG9DQUFvQyxtZENmakQsaTFQQThIMkQ7OzJGRC9HOUMsb0NBQW9DO2tCQUpoRCxTQUFTOytCQUNFLHdCQUF3QjtnTkFpQ3dCLHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3hELDhCQUE4QjtzQkFEN0IsU0FBUzt1QkFBQyxnQ0FBZ0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTlELG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbHRlckl0ZW0sIFRleHRCb3hPcHRpb25zLCBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIFN0eWxlQ29uZmlybWF0aW9uTW9kZSwgQXBwQmFzZUNvbXBvbmVudCwgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9Db25maWd1cmF0aW9uc1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJCU0ZBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24sIFVBRVBhc3NDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Db25maWd1cmF0aW9uTW9kZWxzL0NvbmZpZ3VyYXRpb25Nb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRWRpdEF1dGhDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRoLWNvbmZpZ3VyYXRpb24tZWRpdC9hdXRoLWNvbmZpZ3VyYXRpb24tZWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1vZGUsIFVBRVBhc3NMaW5raW5nTW9kZSwgVUFFUGFzc1VzZXJUeXBlcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9FbnVtcy9jb25maWd1cmF0aW9uL2F1dGhlbnRlY2F0aW9uLWNvbmZpZ3VyYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYXV0aC1jb25maWd1cmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vI3JlZ2lvbiBwcm9wc1xyXG4gIGF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbk1vZGVsOiBCQlNGQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uID0gbmV3IEJCU0ZBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oKTtcclxuICB1YWVQYXNzQ29uZmlndXJhdGlvbjogVUFFUGFzc0NvbmZpZ3VyYXRpb24gPSBuZXcgVUFFUGFzc0NvbmZpZ3VyYXRpb24oKTtcclxuICB1YWVQYXNzQ29uZmlndXJhdGlvbklzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXV0aGVudGljYXRpb25Nb2RlRW51bVZhbHVlcyA9IEF1dGhlbnRpY2F0aW9uTW9kZTtcclxuXHJcbiAgdWFlUGFzc0xpbmtpbmdNb2RlRW51bTogVUFFUGFzc0xpbmtpbmdNb2RlO1xyXG4gIHVhZVBhc3NVc2VyVHlwZUVudW06IFVBRVBhc3NVc2VyVHlwZXM7XHJcblxyXG4gIHVhZVBhc3NVc2VyVHlwZUxpc3Q6IGFueVtdID0gW107XHJcbiAgdWFlUGFzc0xpbmtpbmdNb2RlTGlzdDogYW55W10gPSBbXTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFNob3dQYWdlQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEFwaVVybCA9IFwiL2FwaS9hZG1pbi9Db25maWd1cmF0aW9uL1wiO1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBDb25maWd1cmF0aW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBjbGllbnRTaWRlUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVDb25maWd1cmF0aW9uSWQ6IHN0cmluZztcclxuICBEZWxldGVDb25maXJtYXRpb25PcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgZGVsZXRlQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDb25maXJtYXRpb25Nb2RhbENvbnRyb2w6IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50O1xyXG5cclxuICAvL1JlbG9hZCBKc29uIE1vZGVsIENvbnRyb2xzXHJcbiAgcmVsb2FkQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIHJlbG9hZENvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgncmVsb2FkQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcmVsb2FkQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcImVkaXRBdXRoQ29uZmlndXJhdGlvbk1vZGFsXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGVkaXRCb2FyZE1lbWJlck1vZGFsOiBFZGl0QXV0aENvbmZpZ3VyYXRpb25Db21wb25lbnQ7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBDb25maWd1cmF0aW9uc1NlcnZpY2U6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBFdmVudHNcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZShcIkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvblwiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZShcIkhvbWVcIiksXHJcbiAgICAgICAgcGF0aDogJy9BZG1pbi9Ib21lJyxcclxuICAgICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgcGF0aDogJycsXHJcbiAgICAgICAgaXNTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcblxyXG4gIC8vI3JlZ2lvbiBoZWxwZXJcclxuXHJcbiAgdHJhbnNsYXRlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoa2V5KTtcclxuICB9XHJcblxyXG4gIHNob3dFZGl0TW9kYWwgPSAobW9kZTogQXV0aGVudGljYXRpb25Nb2RlKSA9PiB7XHJcbiAgICB0aGlzLmVkaXRCb2FyZE1lbWJlck1vZGFsLnNob3dNb2RhbChtb2RlLCB0aGlzLmF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbk1vZGVsKTtcclxuICB9XHJcblxyXG4gIGxvYWRVQUVQYXNzVXNlclR5cGVzKCkge1xyXG4gICAgbGV0IGxpc3Q6IGFueVtdID0gW107XHJcbiAgICBmb3IgKHZhciBpdGVtIGluIFVBRVBhc3NVc2VyVHlwZXMpIHtcclxuICAgICAgaWYgKHBhcnNlSW50KGl0ZW0pKVxyXG4gICAgICAgIGxpc3QucHVzaCh7XHJcbiAgICAgICAgICBrZXk6ICtpdGVtLFxyXG4gICAgICAgICAgdmFsdWU6IFVBRVBhc3NVc2VyVHlwZXNbaXRlbV1cclxuICAgICAgICB9IGFzIGFueSlcclxuICAgIH1cclxuICAgIHRoaXMudWFlUGFzc1VzZXJUeXBlTGlzdCA9IGxpc3Q7XHJcbiAgfVxyXG5cclxuICBsb2FkVUFFUGFzc0xpbmtpbmdNb2RlKCkge1xyXG4gICAgbGV0IGxpc3Q6IGFueVtdID0gW107XHJcbiAgICBmb3IgKHZhciBpdGVtIGluIFVBRVBhc3NMaW5raW5nTW9kZSkge1xyXG4gICAgICBpZiAocGFyc2VJbnQoaXRlbSkpXHJcbiAgICAgICAgbGlzdC5wdXNoKHtcclxuICAgICAgICAgIGtleTogK2l0ZW0sXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy50cmFuc2xhdGUoVUFFUGFzc0xpbmtpbmdNb2RlW2l0ZW1dKVxyXG4gICAgICAgIH0gYXMgYW55KVxyXG4gICAgfVxyXG4gICAgdGhpcy51YWVQYXNzTGlua2luZ01vZGVMaXN0ID0gbGlzdDtcclxuICB9XHJcblxyXG4gIGdldFVBRVBhc3NVc2VyVHlwZVZhbHVlKGtleTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy51YWVQYXNzVXNlclR5cGVMaXN0LmZpbmQoaSA9PiBpLmtleSA9PSBrZXkpLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VUFFUGFzc0xpbmtpbmdNb2RlVmFsdWUoa2V5OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnVhZVBhc3NMaW5raW5nTW9kZUxpc3QuZmluZChpID0+IGkua2V5ID09IGtleSkudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxvYWRVQUVQYXNzQ29uZmlndXJhdGlvbnMoKTtcclxuICAgIHRoaXMubG9hZFVBRVBhc3NVc2VyVHlwZXMoKTtcclxuICAgIHRoaXMubG9hZFVBRVBhc3NMaW5raW5nTW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFN0YXJ0IG9mICBSZWxvYWQgUmVzb3VyY2UgcGFydFxyXG4gIHNob3dSZWxvYWRSZXNvdXJjZU1vZGFsKCkge1xyXG4gICAgdGhpcy5yZWxvYWRDb250cm9sTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5yZWxvYWRKc29uRnVuY3Rpb247XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSA9IHRoaXMudHJhbnNsYXRlKFwiUmVsb2FkQ29uZmlndXJhdGlvbnNDb25maXJtYXRpb25cIik7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyID0gdGhpcy50cmFuc2xhdGUoXCJSZWxvYWRDb25maWd1cmF0aW9uc1wiKTtcclxuICAgIHRoaXMucmVsb2FkQ29uZmlybWF0aW9uT3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0ID0gdGhpcy50cmFuc2xhdGUoXCJSZWxvYWRcIik7XHJcbiAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk9wdGlvbnMuU3R5bGVDb25maXJtYXRpb25Nb2RlID0gU3R5bGVDb25maXJtYXRpb25Nb2RlLkRhbmdlcjtcclxuICAgIHRoaXMucmVsb2FkQ29uZmlybWF0aW9uT3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlKFwiU3VjY2Vzc01lc3NhZ2VcIik7XHJcbiAgICB0aGlzLnJlbG9hZENvbnRyb2xMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbG9hZENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93TW9kYWwoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICByZWxvYWRKc29uRnVuY3Rpb24gPSAoKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLkNvbmZpZ3VyYXRpb25zU2VydmljZS5yZWxvYWRKc29uRmlsZSgpXHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIFVBRVBhc3MgRnVuY3Rpb25zXHJcblxyXG4gIGxvYWRVQUVQYXNzQ29uZmlndXJhdGlvbnMoKSB7XHJcbiAgICB0aGlzLnVhZVBhc3NDb25maWd1cmF0aW9uSXNMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuQ29uZmlndXJhdGlvbnNTZXJ2aWNlLmdldEF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbkRhdGEoKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb25Nb2RlbCA9IHJlcztcclxuICAgICAgICB0aGlzLnVhZVBhc3NDb25maWd1cmF0aW9uID0gcmVzLnVhZVBhc3NDb25maWc7XHJcbiAgICAgICAgdGhpcy51YWVQYXNzQ29uZmlndXJhdGlvbklzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gQXp1cmVBRENvbmZpZ3VyYXRpb25EYXRhXHJcblxyXG4gIGxvYWRBenVyZUFEQ29uZmlndXJhdGlvbkNvbmZpZ3VyYXRpb25zKCkge1xyXG5cclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMgbmF2LWxpbmUtdGFicy0yeCBib3JkZXItdHJhbnNwYXJlbnQgZnMtNSBmdy1ib2xkZXJcIj5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtIG10LTJcIj5cclxuICAgICAgICAgIDxhIG5nYk5hdkxpbmsgY2xhc3M9XCJuYXYtbGluayB0ZXh0LWFjdGl2ZS1wcmltYXJ5IG1zLTAgbWUtMTAgcHktNVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJsb2FkVUFFUGFzc0NvbmZpZ3VyYXRpb25zKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVQUVQYXNzQ29uZmlndXJhdGlvbkRhdGFcIil9fTwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwidWFlUGFzc0NvbmZpZ3VyYXRpb25Jc0xvYWRlZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTEyIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1jZW50ZXIgcm91bmRlZC0zIGJnLWxpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgICBweS0xMCBweC0xMCBoLTEwMFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGQgZnMtNiB0ZXh0LWdyYXktODAwIGZsZXgtZ3Jvdy0xIHBlLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVhZE9ubHktdmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdCYXNlVXJsJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7dWFlUGFzc0NvbmZpZ3VyYXRpb24uYmFzZVVybH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRPbmx5LXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQ2xpZW50SUQnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5jbGllbnRJRH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRPbmx5LXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnUmVkaXJlY3RVcmwnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5yZWRpcmVjdFVybH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRPbmx5LXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdFBlcm1pc3Npb25TZXQnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5kZWZhdWx0UGVybWlzc2lvblNldExvY2FsaXphdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRPbmx5LXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQWNjZXNzTGV2ZWxzJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBsZXZlbCBvZiB1YWVQYXNzQ29uZmlndXJhdGlvbi5hY2Nlc3NMZXZlbHNcIj57e2dldFVBRVBhc3NVc2VyVHlwZVZhbHVlKGxldmVsKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRPbmx5LXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRW5hYmxlTGlua2luZ0V4aXN0aW5nVXNlcnMnKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5lbmFibGVMaW5raW5nRXhpc3RpbmdVc2VycyA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ1RydWUnKSA6IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0ZhbHNlJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWFkT25seS12aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0VuYWJsZUltcG9ydGluZ05ld1VzZXInKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3t1YWVQYXNzQ29uZmlndXJhdGlvbi5lbmFibGVJbXBvcnRpbmdOZXdVc2VyID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnVHJ1ZScpIDogdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRmFsc2UnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRPbmx5LXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRW5hYmxlVXBkYXRlVXNlckluZm9ybWF0aW9uT25Mb2dpbicpfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3VhZVBhc3NDb25maWd1cmF0aW9uLmVuYWJsZVVwZGF0ZVVzZXJJbmZvcm1hdGlvbk9uTG9naW4gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdUcnVlJykgOiB1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdGYWxzZScpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVhZE9ubHktdmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdFbmFibGVTT1BQZXJtaXNzaW9uTWFwcGluZycpfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3VhZVBhc3NDb25maWd1cmF0aW9uLmVuYWJsZVNPUFBlcm1pc3Npb25NYXBwaW5nID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnVHJ1ZScpIDogdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRmFsc2UnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJ1YWVQYXNzQ29uZmlndXJhdGlvbi5lbmFibGVMaW5raW5nRXhpc3RpbmdVc2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWFkT25seS12aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0xpbmtpbmdNb2RlJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7Z2V0VUFFUGFzc0xpbmtpbmdNb2RlVmFsdWUodWFlUGFzc0NvbmZpZ3VyYXRpb24ubGlua2luZ01vZGUpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNob3dFZGl0TW9kYWwoYXV0aGVudGljYXRpb25Nb2RlRW51bVZhbHVlcy5VQUVQYXNzKVwiIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQgPGkgY2xhc3M9XCJmYSBmYS1wZW4gbXMtMVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW0gbXQtMlwiPlxyXG4gICAgICAgICAgPGEgbmdiTmF2TGluayBjbGFzcz1cIm5hdi1saW5rIHRleHQtYWN0aXZlLXByaW1hcnkgbXMtMCBtZS0xMCBweS01XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImxvYWRBenVyZUFEQ29uZmlndXJhdGlvbkNvbmZpZ3VyYXRpb25zKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBenVyZUFEQ29uZmlndXJhdGlvbkRhdGFcIil9fTwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgUmF3IGRlbmltIHlvdSBwcm9iYWJseSBoYXZlbid0IGhlYXJkIG9mIHRoZW0gamVhbiBzaG9ydHMgQXVzdGluLiBOZXNjaXVudCB0b2Z1IHN0dW1wdG93biBhbGlxdWEsIHJldHJvIHN5bnRoXHJcbiAgICAgICAgICAgICAgICAgIG1hc3RlciBjbGVhbnNlLiBNdXN0YWNoZSBjbGljaGUgdGVtcG9yLCB3aWxsaWFtc2J1cmcgY2FybGVzIHZlZ2FuIGhlbHZldGljYS4gUmVwcmVoZW5kZXJpdCBidXRjaGVyIHJldHJvXHJcbiAgICAgICAgICAgICAgICAgIGtlZmZpeWVoIGRyZWFtY2F0Y2hlciBzeW50aC4gQ29zYnkgc3dlYXRlciBldSBiYW5oIG1pLCBxdWkgaXJ1cmUgdGVycnkgcmljaGFyZHNvbiBleCBzcXVpZC4gQWxpcXVpcCBwbGFjZWF0XHJcbiAgICAgICAgICAgICAgICAgIHNhbHZpYSBjaWxsdW0gaXBob25lLiBTZWl0YW4gYWxpcXVpcCBxdWlzIGNhcmRpZ2FuIGFtZXJpY2FuIGFwcGFyZWwsIGJ1dGNoZXIgdm9sdXB0YXRlIG5pc2kgcXVpLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGF1dGgtY29uZmlndXJhdGlvbi1lZGl0ICNlZGl0QXV0aENvbmZpZ3VyYXRpb25Nb2RhbD48L2F1dGgtY29uZmlndXJhdGlvbi1lZGl0PlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cInJlbG9hZENvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJyZWxvYWRDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJyZWxvYWRDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4gICNyZWxvYWRDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPiJdfQ==
|