vcomply-workflow-engine 6.1.59 → 6.1.60
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/esm2022/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +3 -2
- package/esm2022/lib/sharedComponents/list-loader/list-loader.component.mjs +10 -6
- package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +1 -1
- package/esm2022/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +2 -2
- package/esm2022/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.mjs +3 -3
- package/esm2022/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +3 -3
- package/esm2022/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.mjs +2 -2
- package/esm2022/lib/workflow/shared/services/grc.service.mjs +2 -2
- package/fesm2022/vcomply-workflow-engine.mjs +18 -13
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/list-loader/list-loader.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -402,7 +402,7 @@ export class ProgramResponsibilityListingComponent {
|
|
|
402
402
|
return selectedRCIds;
|
|
403
403
|
}
|
|
404
404
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgramResponsibilityListingComponent, deps: [{ token: i1.GrcService }, { token: i2.ResponsibilityService }, { token: i3.GetUserDetailsPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
405
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgramResponsibilityListingComponent, isStandalone: true, selector: "app-program-responsibility-listing", inputs: { getSelectedProgramAndResp: ["selectedProgramAndResp", "getSelectedProgramAndResp"], selectedRC: "selectedRC", MODE: "MODE" }, outputs: { closeList: "closeList" }, providers: [GetUserDetailsPipe], viewQueries: [{ propertyName: "responsibilityListingComponent", first: true, predicate: ["dataListing"], descendants: true }], ngImport: i0, template: "<div class=\"program-responsibility-listing\" [class.animate]=\"animation\">\n <div
|
|
405
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgramResponsibilityListingComponent, isStandalone: true, selector: "app-program-responsibility-listing", inputs: { getSelectedProgramAndResp: ["selectedProgramAndResp", "getSelectedProgramAndResp"], selectedRC: "selectedRC", MODE: "MODE" }, outputs: { closeList: "closeList" }, providers: [GetUserDetailsPipe], viewQueries: [{ propertyName: "responsibilityListingComponent", first: true, predicate: ["dataListing"], descendants: true }], ngImport: i0, template: "<div class=\"program-responsibility-listing\" [class.animate]=\"animation\">\n <div class=\"program-responsibility-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n <h3 class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibilities</h3>\n </div>\n <div class=\"program-responsibility-listing-body\">\n <!-- <app-table-card-loader *ngIf=\"programCountLoader\"></app-table-card-loader> -->\n <!-- <app-table-card\n *ngIf=\"!programCountLoader\"\n class=\"vx-w-100\"\n [tableCard]=\"programTypes\"\n [singleSelectedText]=\"'Responsibility Selected'\"\n [selectedTab]=\"selectedTab\"\n [multipleSelectedText]=\"'Responsibilities Selected'\"\n (setSelectedTab)=\"setSelectedTab($event)\">\n </app-table-card> -->\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\"></i>\n <input type=\"text\" #searchRiskCategory (keyup.enter)=\"handleSearch($event.target.value)\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <div class=\"program-responsibility-listing-body-inner vx-mb-2 vx-d-flex\" [class.vx-justify-center]=\"\n !responsibilityLoader && !responsibilityData?.data?.length\n \">\n <ng-container *ngIf=\"responsibilityLoader || responsibilityData?.data?.length\">\n <!-- <div class=\"inner-item-left vx-pr-2\">\n\n <app-grc-category-listing *ngIf=\"!programLoader\" [headerText]=\"'Programs'\" [programData]=\"programData\" [selectedCatAndRisk]=\"selectedCatAndRisk\" [nameDisplayKey]=\"'item_name'\" [currentPage]=\"programCurrentPage\" [selectedTabIndex]=\"selectedTab\" [selectedCategoryIds]=\"selectedProgramIds\" (activeSelectedCategory)=\"activeSelectedProgram($event)\" (onCategoryPageChange)=\"onProgramPageChange($event)\"></app-grc-category-listing>\n \n <app-list-loader *ngIf=\"programLoader\"></app-list-loader>\n\n </div> -->\n\n <!-- <div class=\"inner-item-mid vx-pr-2\">\n <app-grc-sub-category-listing *ngIf=\"!categoryLoader && !programLoader\" [headerText]=\"'Programs'\" [categories]=\"categoryData\" [nameDisplayKey]=\"'item_name'\" [currentPage]=\"categoryCurrentPage\" [selectedCategoryIds]=\"selectedCategoryIds\" [activeProgram]=\"selectedProgram\" [selectedProgramAndResp]=\"selectedProgramAndResp\" (activeSelectedCategory)=\"activeSelectedSubCategory($event)\" (onCategoryPageChange)=\"onSubCategoryPageChange($event)\"></app-grc-sub-category-listing>\n <app-list-loader *ngIf=\"categoryLoader || programLoader\"></app-list-loader>\n </div> -->\n\n <div class=\"inner-item-right\">\n <!-- <app-grc-responsibility-listing></app-grc-responsibility-listing> -->\n\n <app-grc-responsibility-listing #dataListing *ngIf=\"\n !responsibilityLoader &&\n !categoryLoader &&\n !programLoader &&\n responsibilityData?.data?.length !== 0\n \" [headerText]=\"'Responsibilities'\" [MODE]=\"MODE\" [responsibilityData]=\"responsibilityData\"\n [activeProgram]=\"selectedProgram\" [activeCategory]=\"selectedCategory\"\n [selectedProgramAndResp]=\"selectedProgramAndResp\" [allSelectedResponsibilityIds]=\"selectedResponsibilities\"\n (changeSelectedProgramAndResp)=\"\n changeSelectedProgramAndResp($event)\n \" [currentPage]=\"responsibilityCurrentPage\" [perPageLimit]=\"30\"\n [totalListData]=\"responsibilityData?.total_items\" [totalPages]=\"responsibilityData?.total_pages\"\n (getUpdatedDataList)=\"getUpdatedDataList($event)\"></app-grc-responsibility-listing>\n\n <app-list-loader *ngIf=\"responsibilityLoader || categoryLoader || programLoader\"\n [fullWidth]=\"true\"></app-list-loader>\n\n <app-no-data *ngIf=\"\n responsibilityData?.data?.length === 0 &&\n !(responsibilityLoader || categoryLoader || programLoader)\n \" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n </ng-container>\n <app-no-data *ngIf=\"!responsibilityLoader && !responsibilityData?.data?.length\" [noDataImage]=\"CDN_LINK?.noData\"\n [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n <app-floating-bar [selectedData]=\"\n selectedResponsibilities | filterResponsibility : responsibilityData?.data\n \" (closeList)=\"close()\" (closeEvent)=\"save()\" [displayElementKey]=\"'title'\"\n [singularText]=\"'Responsibility selected'\" [pluralText]=\"'Responsibilities selected'\"\n (deleteEvent)=\"deleteEvent($event)\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .program-responsibility-listing{position:fixed;inset:0 30px 0 0}::ng-deep .program-responsibility-listing:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .program-responsibility-listing.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .program-responsibility-listing-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .program-responsibility-listing-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .program-responsibility-listing-body .search-block{position:relative}::ng-deep .program-responsibility-listing-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .program-responsibility-listing-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .program-responsibility-listing-body .search-block input::placeholder{color:#747576}::ng-deep .program-responsibility-listing-body .search-block i{position:absolute;left:1rem;font-size:12px;font-weight:400;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .program-responsibility-listing-body-inner{height:calc(100vh - 14.25rem)}::ng-deep .program-responsibility-listing-body-inner .inner-item-left{width:0%}::ng-deep .program-responsibility-listing-body-inner .inner-item-mid{width:0%}::ng-deep .program-responsibility-listing-body-inner .inner-item-right{width:100%}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "ngmodule", type: FormgroupModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: FloatingBarModule }, { kind: "component", type: i5.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: GrcResponsibilityListingComponent, selector: "app-grc-responsibility-listing", inputs: ["tableCard", "activeProgram", "headerText", "currentPage", "perPageLimit", "totalListData", "totalPages", "selectedListData", "selectedListDataIds", "MODE", "allSelectedResponsibilityIds", "responsibilityData", "selectedProgramAndResp"], outputs: ["getUpdatedDataList", "changeSelectedProgramAndResp"] }, { kind: "ngmodule", type: ListLoaderModule }, { kind: "component", type: i6.ListLoaderComponent, selector: "app-list-loader", inputs: ["fullWidth"] }, { kind: "ngmodule", type: NoDataModule }, { kind: "component", type: i7.NoDataComponentUI, selector: "app-no-data", inputs: ["action", "secondaryAction", "noDataImage", "noDataText", "noDataButton", "secondaryButton", "noDataSecButton", "altText", "smallButton"], outputs: ["buttonAction", "secondaryActionButton"] }, { kind: "ngmodule", type: WorkflowPipesModule }, { kind: "pipe", type: i8.FilterResponsibilityPipe, name: "filterResponsibility" }] }); }
|
|
406
406
|
}
|
|
407
407
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgramResponsibilityListingComponent, decorators: [{
|
|
408
408
|
type: Component,
|
|
@@ -421,7 +421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
421
421
|
NoDataModule,
|
|
422
422
|
TableCardLoaderComponent,
|
|
423
423
|
WorkflowPipesModule,
|
|
424
|
-
], outputs: ['closeList'], providers: [GetUserDetailsPipe], template: "<div class=\"program-responsibility-listing\" [class.animate]=\"animation\">\n <div
|
|
424
|
+
], outputs: ['closeList'], providers: [GetUserDetailsPipe], template: "<div class=\"program-responsibility-listing\" [class.animate]=\"animation\">\n <div class=\"program-responsibility-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n <h3 class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Responsibilities</h3>\n </div>\n <div class=\"program-responsibility-listing-body\">\n <!-- <app-table-card-loader *ngIf=\"programCountLoader\"></app-table-card-loader> -->\n <!-- <app-table-card\n *ngIf=\"!programCountLoader\"\n class=\"vx-w-100\"\n [tableCard]=\"programTypes\"\n [singleSelectedText]=\"'Responsibility Selected'\"\n [selectedTab]=\"selectedTab\"\n [multipleSelectedText]=\"'Responsibilities Selected'\"\n (setSelectedTab)=\"setSelectedTab($event)\">\n </app-table-card> -->\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\"></i>\n <input type=\"text\" #searchRiskCategory (keyup.enter)=\"handleSearch($event.target.value)\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <div class=\"program-responsibility-listing-body-inner vx-mb-2 vx-d-flex\" [class.vx-justify-center]=\"\n !responsibilityLoader && !responsibilityData?.data?.length\n \">\n <ng-container *ngIf=\"responsibilityLoader || responsibilityData?.data?.length\">\n <!-- <div class=\"inner-item-left vx-pr-2\">\n\n <app-grc-category-listing *ngIf=\"!programLoader\" [headerText]=\"'Programs'\" [programData]=\"programData\" [selectedCatAndRisk]=\"selectedCatAndRisk\" [nameDisplayKey]=\"'item_name'\" [currentPage]=\"programCurrentPage\" [selectedTabIndex]=\"selectedTab\" [selectedCategoryIds]=\"selectedProgramIds\" (activeSelectedCategory)=\"activeSelectedProgram($event)\" (onCategoryPageChange)=\"onProgramPageChange($event)\"></app-grc-category-listing>\n \n <app-list-loader *ngIf=\"programLoader\"></app-list-loader>\n\n </div> -->\n\n <!-- <div class=\"inner-item-mid vx-pr-2\">\n <app-grc-sub-category-listing *ngIf=\"!categoryLoader && !programLoader\" [headerText]=\"'Programs'\" [categories]=\"categoryData\" [nameDisplayKey]=\"'item_name'\" [currentPage]=\"categoryCurrentPage\" [selectedCategoryIds]=\"selectedCategoryIds\" [activeProgram]=\"selectedProgram\" [selectedProgramAndResp]=\"selectedProgramAndResp\" (activeSelectedCategory)=\"activeSelectedSubCategory($event)\" (onCategoryPageChange)=\"onSubCategoryPageChange($event)\"></app-grc-sub-category-listing>\n <app-list-loader *ngIf=\"categoryLoader || programLoader\"></app-list-loader>\n </div> -->\n\n <div class=\"inner-item-right\">\n <!-- <app-grc-responsibility-listing></app-grc-responsibility-listing> -->\n\n <app-grc-responsibility-listing #dataListing *ngIf=\"\n !responsibilityLoader &&\n !categoryLoader &&\n !programLoader &&\n responsibilityData?.data?.length !== 0\n \" [headerText]=\"'Responsibilities'\" [MODE]=\"MODE\" [responsibilityData]=\"responsibilityData\"\n [activeProgram]=\"selectedProgram\" [activeCategory]=\"selectedCategory\"\n [selectedProgramAndResp]=\"selectedProgramAndResp\" [allSelectedResponsibilityIds]=\"selectedResponsibilities\"\n (changeSelectedProgramAndResp)=\"\n changeSelectedProgramAndResp($event)\n \" [currentPage]=\"responsibilityCurrentPage\" [perPageLimit]=\"30\"\n [totalListData]=\"responsibilityData?.total_items\" [totalPages]=\"responsibilityData?.total_pages\"\n (getUpdatedDataList)=\"getUpdatedDataList($event)\"></app-grc-responsibility-listing>\n\n <app-list-loader *ngIf=\"responsibilityLoader || categoryLoader || programLoader\"\n [fullWidth]=\"true\"></app-list-loader>\n\n <app-no-data *ngIf=\"\n responsibilityData?.data?.length === 0 &&\n !(responsibilityLoader || categoryLoader || programLoader)\n \" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n </ng-container>\n <app-no-data *ngIf=\"!responsibilityLoader && !responsibilityData?.data?.length\" [noDataImage]=\"CDN_LINK?.noData\"\n [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n <app-floating-bar [selectedData]=\"\n selectedResponsibilities | filterResponsibility : responsibilityData?.data\n \" (closeList)=\"close()\" (closeEvent)=\"save()\" [displayElementKey]=\"'title'\"\n [singularText]=\"'Responsibility selected'\" [pluralText]=\"'Responsibilities selected'\"\n (deleteEvent)=\"deleteEvent($event)\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .program-responsibility-listing{position:fixed;inset:0 30px 0 0}::ng-deep .program-responsibility-listing:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .program-responsibility-listing.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .program-responsibility-listing-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .program-responsibility-listing-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .program-responsibility-listing-body .search-block{position:relative}::ng-deep .program-responsibility-listing-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .program-responsibility-listing-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .program-responsibility-listing-body .search-block input::placeholder{color:#747576}::ng-deep .program-responsibility-listing-body .search-block i{position:absolute;left:1rem;font-size:12px;font-weight:400;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .program-responsibility-listing-body-inner{height:calc(100vh - 14.25rem)}::ng-deep .program-responsibility-listing-body-inner .inner-item-left{width:0%}::ng-deep .program-responsibility-listing-body-inner .inner-item-mid{width:0%}::ng-deep .program-responsibility-listing-body-inner .inner-item-right{width:100%}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"] }]
|
|
425
425
|
}], ctorParameters: function () { return [{ type: i1.GrcService }, { type: i2.ResponsibilityService }, { type: i3.GetUserDetailsPipe }]; }, propDecorators: { getSelectedProgramAndResp: [{
|
|
426
426
|
type: Input,
|
|
427
427
|
args: ['selectedProgramAndResp']
|
|
@@ -433,4 +433,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
433
433
|
type: ViewChild,
|
|
434
434
|
args: ['dataListing']
|
|
435
435
|
}] } });
|
|
436
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS1yZXNwb25zaWJpbGl0eS1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93L3NoYXJlZC9jb21wb25lbnRzL3Byb2dyYW0tcmVzcG9uc2liaWxpdHktbGlzdGluZy9wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvc2hhcmVkL2NvbXBvbmVudHMvcHJvZ3JhbS1yZXNwb25zaWJpbGl0eS1saXN0aW5nL3Byb2dyYW0tcmVzcG9uc2liaWxpdHktbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvYXRpbmdCYXJNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIubW9kdWxlJztcbmltcG9ydCB7IEZvcm1ncm91cE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9mb3JtZ3JvdXAvZm9ybWdyb3VwLm1vZHVsZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi91aS1raXQvdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBUYWJsZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1jYXJkL3RhYmxlLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEdyY0NhdGVnb3J5TGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1jYXRlZ29yeS1saXN0aW5nL2dyYy1jYXRlZ29yeS1saXN0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmNSZXNwb25zaWJpbGl0eUxpc3RpbmdDb21wb25lbnQgfSBmcm9tICcuLi9ncmMtcmVzcG9uc2liaWxpdHktbGlzdGluZy9ncmMtcmVzcG9uc2liaWxpdHktbGlzdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9EYXRhTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdWkta2l0L25vLWRhdGEvbm8tZGF0YS5tb2R1bGUnO1xuaW1wb3J0IHsgTGlzdExvYWRlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZENvbXBvbmVudHMvbGlzdC1sb2FkZXIvbGlzdC1sb2FkZXIubW9kdWxlJztcbmltcG9ydCB7IEdyY1N1YkNhdGVnb3J5TGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1zdWItY2F0ZWdvcnktbGlzdGluZy9ncmMtc3ViLWNhdGVnb3J5LWxpc3RpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUkVTUE9OU0lCSUxJVFlfVEFCTEVfQ0FSRCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9saW5rLXJlc3BvbnNpYmlsaXR5LmNvbnN0YW50JztcbmltcG9ydCB7IEdyY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ncmMuc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUNhcmRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL3RhYmxlLWNhcmQtbG9hZGVyL3RhYmxlLWNhcmQtbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTElOS1MgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXBpcGVzL3dvcmtmbG93LXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEdldFVzZXJEZXRhaWxzUGlwZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXBpcGVzL2dldC11c2VyLWRldGFpbHMucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgRm9ybWdyb3VwTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgRmxvYXRpbmdCYXJNb2R1bGUsXG4gICAgUGFnaW5hdGlvbk1vZHVsZSxcbiAgICBUYWJsZUNhcmRDb21wb25lbnQsXG4gICAgR3JjQ2F0ZWdvcnlMaXN0aW5nQ29tcG9uZW50LFxuICAgIEdyY1Jlc3BvbnNpYmlsaXR5TGlzdGluZ0NvbXBvbmVudCxcbiAgICBHcmNTdWJDYXRlZ29yeUxpc3RpbmdDb21wb25lbnQsXG4gICAgTGlzdExvYWRlck1vZHVsZSxcbiAgICBOb0RhdGFNb2R1bGUsXG4gICAgVGFibGVDYXJkTG9hZGVyQ29tcG9uZW50LFxuICAgIFdvcmtmbG93UGlwZXNNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcuY29tcG9uZW50Lmxlc3MnXSxcbiAgb3V0cHV0czogWydjbG9zZUxpc3QnXSxcbiAgcHJvdmlkZXJzOiBbR2V0VXNlckRldGFpbHNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmFtUmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvZ3JhbVR5cGVzID0gUkVTUE9OU0lCSUxJVFlfVEFCTEVfQ0FSRDtcbiAgQ0ROX0xJTksgPSBMSU5LUztcbiAgc2VsZWN0ZWRUYWI6IDAgfCAxIHwgMiB8IDMgPSAxO1xuXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuXG4gIHByb2dyYW1Mb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvZ3JhbUNvdW50TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHJlc3BvbnNpYmlsaXR5TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGNhdGVnb3J5TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkUHJvZ3JhbUFuZFJlc3A6IGFueVtdID0gW107XG4gIHByZVNlbGVjdGVkUHJvZ3JhbUFuZFJlc3A6IGFueVtdID0gW107XG4gIHNlYXJjaFN0cmluZzogc3RyaW5nID0gJyc7XG4gIGN1cnJlbnRCdXNpbmVzc0N5Y2xlITogYW55O1xuICBzZWxlY3RlZFByb2dyYW06IGFueTtcbiAgc2VsZWN0ZWRDYXRlZ29yeTogYW55O1xuICBwcm9ncmFtQ3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIGNhdGVnb3J5Q3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIHJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIHByb2dyYW1EYXRhOiBhbnk7XG4gIGNhdGVnb3J5RGF0YTogYW55O1xuICByZXNwb25zaWJpbGl0eURhdGE6IGFueSA9IHtcbiAgICBkYXRhOiBbXSxcbiAgfTtcbiAgc2VsZWN0ZWRQcm9ncmFtSWRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZENhdGVnb3J5SWRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXRpZXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkUkNJZHM6IG51bWJlcltdID0gW107XG5cbiAgcHJvZ3JhbUNhbGwhOiBTdWJzY3JpcHRpb247XG4gIGNhdGVnb3J5Q2FsbCE6IFN1YnNjcmlwdGlvbjtcbiAgcmVzcG9uc2liaWxpdHlDYWxsITogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgnc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCcpIHNldCBnZXRTZWxlY3RlZFByb2dyYW1BbmRSZXNwKGRhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzID0gZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5yaWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCA9IGRhdGEgfHwgW107XG4gICAgdGhpcy5wcmVTZWxlY3RlZFByb2dyYW1BbmRSZXNwID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApKTtcbiAgICB0aGlzLmdldFNlbGVjdGVkUHJvZ3JhbUlkcyh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApO1xuICAgIHRoaXMuZ2V0QWxsU2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzKHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCk7XG4gIH1cbiAgQElucHV0KCkgc2VsZWN0ZWRSQzogYW55W10gPSBbXTtcbiAgQElucHV0KCkgTU9ERTogJ0NSRUFURScgfCAnRURJVCcgPSAnQ1JFQVRFJztcblxuICBjbG9zZUxpc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGFMaXN0aW5nJylcbiAgcmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50ITogR3JjUmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JjU2VydmljZTogR3JjU2VydmljZSwgcHJpdmF0ZSByZXNwb25zaWJpbGl0eVNlcnZpY2U6IFJlc3BvbnNpYmlsaXR5U2VydmljZSwgcHJpdmF0ZSBnZXRVc2VyRGV0YWlsczogR2V0VXNlckRldGFpbHNQaXBlKSB7XG4gICAgdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZSA9IHRoaXMuZ3JjU2VydmljZT8uZ2V0QnVzaW5lc3NDeWNsZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllc0xpc3QoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2xvc2VMaXN0LmVtaXQodGhpcy5wcmVTZWxlY3RlZFByb2dyYW1BbmRSZXNwKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5jbG9zZUxpc3QuZW1pdCh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApO1xuICB9XG5cbiAgZ2V0UHJvZ3JhbXNMaXN0KGV2ZW50PzogYW55KSB7XG4gICAgaWYgKHRoaXMucHJvZ3JhbUNhbGwpIHtcbiAgICAgIHRoaXMucHJvZ3JhbUNhbGwudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5wcm9ncmFtTG9hZGVyID0gdHJ1ZTtcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICB0eXBlOiAnJyxcbiAgICAgICAgcGFnaW5hdGlvblR5cGU6ICdzbWFsbCcsXG4gICAgICAgIGE6ICcnLFxuICAgICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFN0cmluZyxcbiAgICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgICAgIHJpc2tJZHM6IFtdLFxuICAgICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLmdldFNlbGVjdGVkUkNJZHModGhpcy5zZWxlY3RlZFJDKSA/PyBbXSxcbiAgICAgICAgICBlbnRydXN0ZWRCeTogW10sXG4gICAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgICB9LFxuICAgICAgICBwYWdlTm86IHRoaXMucHJvZ3JhbUN1cnJlbnRQYWdlIHx8IDEsXG4gICAgICAgIHNvcnRPYmo6IHsgc29ydEJ5OiAnJywgdHlwZTogLTEgfSxcbiAgICAgICAgcGFnZU5hbWU6ICdjYXRlZ29yeScsXG4gICAgICAgIHR5cGVBcnI6IFt0aGlzLnNlbGVjdGVkVGFiXSxcbiAgICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgICAgZW5kX2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LmVuZF9kYXRlLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FycixcbiAgICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgICAgICB0aW1lX2ZpbHRlcl90eXBlOiAnJyxcbiAgICAgICAgc3RhdGU6IFsyLCAzXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLnByb2dyYW1DYWxsID0gdGhpcy5ncmNTZXJ2aWNlLmdldFByb2dyYW1zTGlzdChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvZ3JhbUxvYWRlciA9IGZhbHNlO1xuICAgICAgICAvLyB0aGlzLnByb2dyYW1EYXRhLmRhdGEgPSByZXMuZGF0YSA/PyBbXTtcbiAgICAgICAgdGhpcy5wcm9ncmFtRGF0YSA9IHsgLi4ucmVzIH07XG4gICAgICAgIHRoaXMub25TZWxlY3RlZFByb2dyYW1DaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yeUJ5UHJvZ3JhbUlkKHJlcz8uZGF0YVswXSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb2dyYW1Mb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBvblByb2dyYW1QYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnByb2dyYW1DdXJyZW50UGFnZSA9IGV2ZW50Py5wYWdlTm8gfHwgMTtcbiAgICB0aGlzLmdldFByb2dyYW1zTGlzdCgpO1xuICB9XG5cbiAgb25TdWJDYXRlZ29yeVBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA9IGV2ZW50Py5wYWdlTm8gfHwgMTtcbiAgICB0aGlzLmdldENhdGVnb3J5QnlQcm9ncmFtSWQodGhpcy5zZWxlY3RlZFByb2dyYW0pO1xuICB9XG5cbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50LmRlbGV0ZVNlbGVjdGVkUmVzcG9uc2liaWxpdHkoZXZlbnQpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRUYWIoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucHJvZ3JhbUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gZXZlbnQ/LnR5cGU7XG4gICAgdGhpcy5nZXRQcm9ncmFtc0xpc3QoKTtcbiAgfVxuXG4gIGhhbmRsZVNlYXJjaChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoU3RyaW5nICE9IGV2ZW50KSB7XG4gICAgICB0aGlzLnByb2dyYW1DdXJyZW50UGFnZSA9IDE7XG4gICAgICB0aGlzLnNlYXJjaFN0cmluZyA9IGV2ZW50O1xuICAgICAgdGhpcy5vblNlbGVjdGVkUHJvZ3JhbUNoYW5nZSgpO1xuICAgICAgdGhpcy5nZXRQcm9ncmFtc0xpc3QoKTtcbiAgICAgIHRoaXMuZ2V0UHJvZ3JhbXNDb3VudCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldFByb2dyYW1zQ291bnQocGFyYW1zT2JqZWN0PzogYW55KSB7XG4gICAgdGhpcy5wcm9ncmFtQ291bnRMb2FkZXIgPSB0cnVlO1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIHR5cGU6ICcnLFxuICAgICAgICBwYWdpbmF0aW9uVHlwZTogJ3NtYWxsJyxcbiAgICAgICAgYTogJycsXG4gICAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoU3RyaW5nLFxuICAgICAgICBmaWx0ZXJEYXRhOiB7XG4gICAgICAgICAgYXBwTGlzdDogW10sXG4gICAgICAgICAgcmlza0lkczogW10sXG4gICAgICAgICAgcmV2aWV3ZXJJZDogW10sXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXI6IHRoaXMuZ2V0U2VsZWN0ZWRSQ0lkcyh0aGlzLnNlbGVjdGVkUkMpID8/IFtdLFxuICAgICAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgICAgICBlbnRydXN0ZWRUbzogW10sXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDYXRlZ29yeTogW10sXG4gICAgICAgIH0sXG4gICAgICAgIHBhZ2VObzogMSxcbiAgICAgICAgc29ydE9iajogeyBzb3J0Qnk6ICcnLCB0eXBlOiAnJyB9LFxuICAgICAgICBwYWdlTmFtZTogJ2NhdGVnb3J5JyxcbiAgICAgICAgdHlwZUFycjogWzEsIDIsIDMsIDBdLFxuICAgICAgICBzdGFydF9kYXRlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5zdGFydF9kYXRlLFxuICAgICAgICBlbmRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uZW5kX2RhdGUsXG4gICAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGUsXG4gICAgICAgIHRpbWVfZmlsdGVyX3R5cGU6ICcnLFxuICAgICAgICBzdGF0ZTogWzIsIDNdLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuZ3JjU2VydmljZS5nZXRQcm9ncmFtc0xpc3RDb3VudChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvZ3JhbUNvdW50TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJvZ3JhbVR5cGVzWzBdLmNvdW50ID1cbiAgICAgICAgICByZXM/LnJlZ3VsYXRpb25Db3VudD8uYWN0aXZlICsgcmVzPy5yZWd1bGF0aW9uQ291bnQ/LmNvbXBsZXRlZDtcbiAgICAgICAgdGhpcy5wcm9ncmFtVHlwZXNbMV0uY291bnQgPVxuICAgICAgICAgIHJlcz8uc3RhbmRhcmRDb3VudD8uYWN0aXZlICsgcmVzPy5zdGFuZGFyZENvdW50Py5jb21wbGV0ZWQ7XG4gICAgICAgIHRoaXMucHJvZ3JhbVR5cGVzWzJdLmNvdW50ID1cbiAgICAgICAgICByZXM/LmludGVybmFsQ291bnQ/LmFjdGl2ZSArIHJlcz8uaW50ZXJuYWxDb3VudD8uY29tcGxldGVkO1xuICAgICAgICB0aGlzLnByb2dyYW1UeXBlc1szXS5jb3VudCA9XG4gICAgICAgICAgcmVzPy5vdGhlckNvdW50Py5hY3RpdmUgKyByZXM/Lm90aGVyQ291bnQ/LmNvbXBsZXRlZDtcbiAgICAgICAgLy8gfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldENhdGVnb3J5QnlQcm9ncmFtSWQocHJvZ3JhbTogYW55KSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlDYWxsKSB7XG4gICAgICB0aGlzLmNhdGVnb3J5Q2FsbC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbSA9IHByb2dyYW07XG4gICAgdGhpcy5jYXRlZ29yeUxvYWRlciA9IHRydWU7XG4gICAgLy8gdGhpcy5yZXNldENvbnRyb2xWYXJpYWJsZSgpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBpZDogcHJvZ3JhbT8uX2lkLFxuICAgICAgc2NvcGVUeXBlOiAncmlzaycsXG4gICAgICBwYWdpbmF0aW9uVHlwZTogJ3NtYWxsJyxcbiAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoU3RyaW5nLFxuICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICBhcHBMaXN0OiBbXSxcbiAgICAgICAgcmlza0lkczogW10sXG4gICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogdGhpcy5nZXRTZWxlY3RlZFJDSWRzKHRoaXMuc2VsZWN0ZWRSQykgPz8gW10sXG4gICAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNhdGVnb3J5OiBbXSxcbiAgICAgIH0sXG4gICAgICBwYWdlOiB0aGlzLmNhdGVnb3J5Q3VycmVudFBhZ2UgfHwgMSxcbiAgICAgIC8vIHNvcnRpbmdDb3VudDogdGhpcy5jYXRlZ29yeVNvcnRWYWx1ZSxcbiAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgIGJ1c2luZXNzQ3ljbGU6IHtcbiAgICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgICAgZW5kX2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LmVuZF9kYXRlLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FycixcbiAgICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgICAgICB0aW1lX2ZpbHRlcl90eXBlOiAnJyxcbiAgICAgICAgLy8gXCJzY29wZVR5cGVcIjogJ3Jpc2snLFxuICAgICAgICB0eXBlOiAncmlzaycsXG4gICAgICAgIGNhbGxGcm9tOiAnZ3JjJyxcbiAgICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgICAgIHJpc2tJZHM6IFtdLFxuICAgICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLmdldFNlbGVjdGVkUkNJZHModGhpcy5zZWxlY3RlZFJDKSA/PyBbXSxcbiAgICAgICAgICBlbnRydXN0ZWRCeTogW10sXG4gICAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuY2F0ZWdvcnlDYWxsID0gdGhpcy5ncmNTZXJ2aWNlLmdldFN1YkNhdGVnb3J5TGlzdChoZWFkZXJzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSB7IC4uLnJlcyB9O1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSByZXM/LmRhdGFbMF07XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllc0xpc3QoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhY3RpdmVTZWxlY3RlZFByb2dyYW0oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtID0gZXZlbnQ/LmNhdGVnb3J5O1xuICAgIHRoaXMub25TZWxlY3RlZFByb2dyYW1DaGFuZ2UoKTtcbiAgICB0aGlzLmdldENhdGVnb3J5QnlQcm9ncmFtSWQodGhpcy5zZWxlY3RlZFByb2dyYW0pO1xuICAgIC8vIHRoaXMuZ2V0U2VsZWN0ZWRDYXRlZ29yeUlkcyh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApO1xuICB9XG5cbiAgYWN0aXZlU2VsZWN0ZWRTdWJDYXRlZ29yeShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gZXZlbnQ/LmNhdGVnb3J5O1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllc0xpc3QoKTtcbiAgfVxuXG4gIGdldFJlc3BvbnNpYmlsaXRpZXNMaXN0KGV2ZW50PzogYW55KSB7XG4gICAgaWYgKHRoaXMucmVzcG9uc2liaWxpdHlDYWxsKSB7XG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q2FsbC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIHRoaXMucmVzcENvdW50ID0gZXZlbnQuc29ydFZhbHVlO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2lzQnVzaW5lc3NDeWNsZScsICd0cnVlJyk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFyZW50SWQnLCB0aGlzLnNlbGVjdGVkUHJvZ3JhbT8uY2F0ZWdvcnlfaWQpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NhdElkJywgdGhpcy5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9pZCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZU5vJywgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID8/IDEpO1xuICAgIC8vIGlmIChbMSwgLTFdLmluY2x1ZGVzKHRoaXMuY29udHJvbFNvcnRWYWx1ZSkpIHtcbiAgICAvLyAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NvcnRWYWx1ZScsIHRoaXMuY29udHJvbFNvcnRWYWx1ZSk7XG4gICAgLy8gICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzb3J0QnknLCAnRGF0YS5SZXBvcnROYW1lJyk7XG4gICAgLy8gfVxuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2luYXRpb25UeXBlJywgJ3NtYWxsJyk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZVR5cGUnLCAncmlzaycpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NhbGxGcm9tJywgJ2dyYycpO1xuICAgIGNvbnN0IHJjSWRzID0gdGhpcy5nZXRTZWxlY3RlZFJDSWRzKHRoaXMuc2VsZWN0ZWRSQykuam9pbignLCcpO1xuICAgIGxldCBidXNpbmVzc0N5Y2xlID0ge1xuICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgIGVuZF9kYXRlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5lbmRfZGF0ZSxcbiAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyLFxuICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgICAgdGltZV9maWx0ZXJfdHlwZTogJycsXG4gICAgICBwYWdlVHlwZTogJ3Jpc2snLFxuICAgICAgY2FsbEZyb206ICdncmMnLFxuICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICBhcHBMaXN0OiBbXSxcbiAgICAgICAgcmlza0lkczogW10sXG4gICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogdGhpcy5nZXRTZWxlY3RlZFJDSWRzKHRoaXMuc2VsZWN0ZWRSQykgPz8gW10sXG4gICAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNhdGVnb3J5OiBbXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDYWxsID0gdGhpcy5ncmNTZXJ2aWNlXG4gICAgICAuZ2V0QWxsUmVzcG9uc2liaWxpdGllcyh0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2UsIHJjSWRzKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IDMwO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gcmVzPy5kYXRhPy5wYWdlIHx8IDE7XG4gICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyAxO1xuICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplIC0gMSwgcmVzPy5kYXRhPy50b3RhbCB8fCAwKTtcbiAgICAgICAgICBcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5RGF0YSA9IHtcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuc2V0RGF0YUxpc3RTdHJ1Y3R1cmUocmVzPy5kYXRhPy5yZXNwb25zaWJpbGl0aWVzIHx8IFtdLCByZXM/LmRhdGE/LnVzZXJzIHx8IFtdLCByZXM/LmRhdGE/LnJlc3BvbnNpYmlsaXR5Q2VudGVycyB8fCBbXSksXG4gICAgICAgICAgICB0b3RhbF9pdGVtczogcmVzPy5kYXRhPy50b3RhbCB8fCAwLFxuICAgICAgICAgICAgdG90YWxfcGFnZXM6IE1hdGguY2VpbCgocmVzPy5kYXRhPy50b3RhbCB8fCAwKSAvIHBhZ2VTaXplKSxcbiAgICAgICAgICAgIGN1cnJlbnRfcGFnZTogY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBwZXJfcGFnZTogcGFnZVNpemUsXG4gICAgICAgICAgICBpdGVtc19mcm9tOiBzdGFydEluZGV4LFxuICAgICAgICAgICAgaXRlbXNfdG86IGVuZEluZGV4XG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFVwZGF0ZWREYXRhTGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gZXZlbnQ/LnBhZ2VObztcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXNMaXN0KCk7XG4gIH1cblxuICBzZXREYXRhTGlzdFN0cnVjdHVyZShyZXNwb25zaWJpbGl0aWVzOiBhbnlbXSwgdXNlcnM6IGFueVtdLCByZXNwb25zaWJpbGl0eUNlbnRlcnM6IGFueVtdKSB7XG4gICAgY29uc3QgZGF0YSA9IHJlc3BvbnNpYmlsaXRpZXM/Lm1hcCgocmVzcG9uc2liaWxpdHk6IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2liaWxpdHlDZW50ZXJJZHMgPSByZXNwb25zaWJpbGl0eT8ucmVzcG9uc2liaWxpdHlfY2VudGVycyB8fCBbXTtcblxuICAgICAgY29uc3QgbWFwcGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzID0gcmVzcG9uc2liaWxpdHlDZW50ZXJJZHMubWFwKChyY0lkOiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgcmMgPSByZXNwb25zaWJpbGl0eUNlbnRlcnMuZmluZCgoY2VudGVyOiBhbnkpID0+IGNlbnRlcj8uaWQgPT09IHJjSWQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IHJjPy5uYW1lIHx8ICcnLFxuICAgICAgICAgIGlkOiByY0lkXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYXNzaWdub3JEZXRhaWxzID0gdGhpcy5nZXRVc2VyRGV0YWlscy50cmFuc2Zvcm0oW3Jlc3BvbnNpYmlsaXR5Py5hc3NpZ25vcl0sIHVzZXJzKT8uWzBdIHx8IHt9O1xuICAgICAgY29uc3QgYXNzaWduZWVEZXRhaWxzID0gdGhpcy5nZXRVc2VyRGV0YWlscy50cmFuc2Zvcm0ocmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlcz8udXNlcklkIHx8IFtdLCB1c2VycykgfHwgW107XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJlc3BvbnNpYmlsaXR5LFxuICAgICAgICBuYW1lOiByZXNwb25zaWJpbGl0eT8udGl0bGUgfHwgJycsXG4gICAgICAgIGNvbnRyb2xJZDogcmVzcG9uc2liaWxpdHk/LmtleXx8ICcnLFxuICAgICAgICBfaWQ6IHJlc3BvbnNpYmlsaXR5Py5yaWQsXG4gICAgICAgIGVudHJ1c3RlZEJ5OiB7XG4gICAgICAgICAgbmFtZTogYXNzaWdub3JEZXRhaWxzPy5uYW1lIHx8ICcnLFxuICAgICAgICAgIGVtYWlsOiBhc3NpZ25vckRldGFpbHM/LmVtYWlsIHx8ICcnLFxuICAgICAgICAgIHByb2ZpbGVQaWM6IGFzc2lnbm9yRGV0YWlscz8uYXZhdGFyIHx8ICcnLFxuICAgICAgICAgIHNob3J0TmFtZTogYXNzaWdub3JEZXRhaWxzPy5zaG9ydF9uYW1lIHx8ICcnLFxuICAgICAgICB9LFxuICAgICAgICBlbnRydXN0ZWRUbzoge1xuICAgICAgICAgIG5hbWU6IGFzc2lnbmVlRGV0YWlsc1swXT8ubmFtZSB8fCAnJyxcbiAgICAgICAgICBlbWFpbDogYXNzaWduZWVEZXRhaWxzWzBdPy5lbWFpbCB8fCAnJyxcbiAgICAgICAgICBwcm9maWxlUGljOiBhc3NpZ25lZURldGFpbHNbMF0/LmF2YXRhciB8fCAnJyxcbiAgICAgICAgICBzaG9ydE5hbWU6IGFzc2lnbmVlRGV0YWlsc1swXT8uc2hvcnRfbmFtZSB8fCAnJyxcbiAgICAgICAgICBFbnRydXN0ZWRUb01lbWJlcnM6IGFzc2lnbmVlRGV0YWlscz8ubWFwKCh1c2VyOiBhbnkpID0+ICh7XG4gICAgICAgICAgICBtZW1iZXJfbmFtZTogdXNlcj8ubmFtZSxcbiAgICAgICAgICAgIHByb2ZpbGVfcGljOiB1c2VyPy5hdmF0YXIsXG4gICAgICAgICAgICBtZW1iZXJfc2hvcnRfbmFtZTogdXNlcj8uc2hvcnRfbmFtZVxuICAgICAgICAgIH0pKSB8fCBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgd2l0aGluRGF0YTogbWFwcGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzLFxuICAgICAgICBzdWJDYXRlZ29yeUlkOiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk/LmNhdGVnb3J5X2lkLFxuICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWRQcm9ncmFtQ2hhbmdlKCkge1xuICAgIHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgfVxuXG4gIGNoYW5nZVNlbGVjdGVkUHJvZ3JhbUFuZFJlc3AoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCA9IGV2ZW50O1xuICAgIHRoaXMuZ2V0U2VsZWN0ZWRQcm9ncmFtSWRzKHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCk7XG4gICAgdGhpcy5nZXRBbGxTZWxlY3RlZFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFByb2dyYW1BbmRSZXNwKTtcbiAgICB0aGlzLmdldFNlbGVjdGVkQ2F0ZWdvcnlJZHModGhpcy5zZWxlY3RlZFByb2dyYW1BbmRSZXNwKTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkUHJvZ3JhbUlkcyhzZWxlY3RlZERhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtSWRzID0gW107XG4gICAgc2VsZWN0ZWREYXRhPy5mb3JFYWNoKChzZWxlY3RlZDogYW55KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbUlkcy5wdXNoKHNlbGVjdGVkPy5wcm9ncmFtPy5wcm9ncmFtSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRDYXRlZ29yeUlkcyhzZWxlY3RlZERhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkcyA9IFtdO1xuICAgIGxldCBwcm9ncmFtSW5kZXggPSAtMTtcbiAgICBwcm9ncmFtSW5kZXggPSBzZWxlY3RlZERhdGEuZmluZEluZGV4KFxuICAgICAgKGNhdDogYW55KSA9PiBjYXQ/LnByb2dyYW0/LnByb2dyYW1JZCA9PT0gdGhpcy5zZWxlY3RlZFByb2dyYW0/LnByb2dyYW1JZFxuICAgICk7XG4gICAgaWYgKHByb2dyYW1JbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkcyA9IHNlbGVjdGVkRGF0YVtwcm9ncmFtSW5kZXhdPy5jYXRlZ29yeTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWRzID0gW107XG4gICAgfVxuICB9XG5cbiAgZ2V0QWxsU2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzKHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdGllcyA9IHNlbGVjdGVkRGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbT8ucmlkKTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkUkNJZHMoc2VsZWN0ZWRSQzogYW55W10pIHtcbiAgICBsZXQgc2VsZWN0ZWRSQ0lkczogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZFJDSWRzID0gc2VsZWN0ZWRSQz8ubWFwKChyYzogYW55KSA9PiByYz8ucmNpZCk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRSQ0lkcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInByb2dyYW0tcmVzcG9uc2liaWxpdHktbGlzdGluZ1wiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmctaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxuICA+XG4gICAgPGgzIGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBSZXNwb25zaWJpbGl0aWVzPC9oMz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmctYm9keVwiPlxuICAgIDwhLS0gPGFwcC10YWJsZS1jYXJkLWxvYWRlciAqbmdJZj1cInByb2dyYW1Db3VudExvYWRlclwiPjwvYXBwLXRhYmxlLWNhcmQtbG9hZGVyPiAtLT5cbiAgICA8IS0tIDxhcHAtdGFibGUtY2FyZFxuICAgICAgICAgICAgKm5nSWY9XCIhcHJvZ3JhbUNvdW50TG9hZGVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwidngtdy0xMDBcIlxuICAgICAgICAgICAgW3RhYmxlQ2FyZF09XCJwcm9ncmFtVHlwZXNcIlxuICAgICAgICAgICAgW3NpbmdsZVNlbGVjdGVkVGV4dF09XCInUmVzcG9uc2liaWxpdHkgU2VsZWN0ZWQnXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZFRhYl09XCJzZWxlY3RlZFRhYlwiXG4gICAgICAgICAgICBbbXVsdGlwbGVTZWxlY3RlZFRleHRdPVwiJ1Jlc3BvbnNpYmlsaXRpZXMgU2VsZWN0ZWQnXCJcbiAgICAgICAgICAgIChzZXRTZWxlY3RlZFRhYik9XCJzZXRTZWxlY3RlZFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvYXBwLXRhYmxlLWNhcmQ+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgI3NlYXJjaFJpc2tDYXRlZ29yeVxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwiaGFuZGxlU2VhcmNoKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUmVzcG9uc2liaWxpdGllc1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicHJvZ3JhbS1yZXNwb25zaWJpbGl0eS1saXN0aW5nLWJvZHktaW5uZXIgdngtbWItMiB2eC1kLWZsZXhcIlxuICAgICAgW2NsYXNzLnZ4LWp1c3RpZnktY2VudGVyXT1cIlxuICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgIXJlc3BvbnNpYmlsaXR5RGF0YT8uZGF0YT8ubGVuZ3RoXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUxvYWRlciB8fCByZXNwb25zaWJpbGl0eURhdGE/LmRhdGE/Lmxlbmd0aFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlubmVyLWl0ZW0tbGVmdCB2eC1wci0yXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1ncmMtY2F0ZWdvcnktbGlzdGluZyAqbmdJZj1cIiFwcm9ncmFtTG9hZGVyXCIgW2hlYWRlclRleHRdPVwiJ1Byb2dyYW1zJ1wiIFtwcm9ncmFtRGF0YV09XCJwcm9ncmFtRGF0YVwiICBbc2VsZWN0ZWRDYXRBbmRSaXNrXT1cInNlbGVjdGVkQ2F0QW5kUmlza1wiIFtuYW1lRGlzcGxheUtleV09XCInaXRlbV9uYW1lJ1wiIFtjdXJyZW50UGFnZV09XCJwcm9ncmFtQ3VycmVudFBhZ2VcIiBbc2VsZWN0ZWRUYWJJbmRleF09XCJzZWxlY3RlZFRhYlwiIFtzZWxlY3RlZENhdGVnb3J5SWRzXT1cInNlbGVjdGVkUHJvZ3JhbUlkc1wiIChhY3RpdmVTZWxlY3RlZENhdGVnb3J5KT1cImFjdGl2ZVNlbGVjdGVkUHJvZ3JhbSgkZXZlbnQpXCIgKG9uQ2F0ZWdvcnlQYWdlQ2hhbmdlKT1cIm9uUHJvZ3JhbVBhZ2VDaGFuZ2UoJGV2ZW50KVwiPjwvYXBwLWdyYy1jYXRlZ29yeS1saXN0aW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbGlzdC1sb2FkZXIgKm5nSWY9XCJwcm9ncmFtTG9hZGVyXCI+PC9hcHAtbGlzdC1sb2FkZXI+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiaW5uZXItaXRlbS1taWQgdngtcHItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWdyYy1zdWItY2F0ZWdvcnktbGlzdGluZyAqbmdJZj1cIiFjYXRlZ29yeUxvYWRlciAmJiAhcHJvZ3JhbUxvYWRlclwiICBbaGVhZGVyVGV4dF09XCInUHJvZ3JhbXMnXCIgW2NhdGVnb3JpZXNdPVwiY2F0ZWdvcnlEYXRhXCIgIFtuYW1lRGlzcGxheUtleV09XCInaXRlbV9uYW1lJ1wiICBbY3VycmVudFBhZ2VdPVwiY2F0ZWdvcnlDdXJyZW50UGFnZVwiIFtzZWxlY3RlZENhdGVnb3J5SWRzXT1cInNlbGVjdGVkQ2F0ZWdvcnlJZHNcIiBbYWN0aXZlUHJvZ3JhbV09XCJzZWxlY3RlZFByb2dyYW1cIiBbc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcF09XCJzZWxlY3RlZFByb2dyYW1BbmRSZXNwXCIgKGFjdGl2ZVNlbGVjdGVkQ2F0ZWdvcnkpPVwiYWN0aXZlU2VsZWN0ZWRTdWJDYXRlZ29yeSgkZXZlbnQpXCIgKG9uQ2F0ZWdvcnlQYWdlQ2hhbmdlKT1cIm9uU3ViQ2F0ZWdvcnlQYWdlQ2hhbmdlKCRldmVudClcIj48L2FwcC1ncmMtc3ViLWNhdGVnb3J5LWxpc3Rpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbGlzdC1sb2FkZXIgKm5nSWY9XCJjYXRlZ29yeUxvYWRlciB8fCBwcm9ncmFtTG9hZGVyXCI+PC9hcHAtbGlzdC1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lci1pdGVtLXJpZ2h0XCI+XG4gICAgICAgICAgPCEtLSA8YXBwLWdyYy1yZXNwb25zaWJpbGl0eS1saXN0aW5nPjwvYXBwLWdyYy1yZXNwb25zaWJpbGl0eS1saXN0aW5nPiAtLT5cblxuICAgICAgICAgIDxhcHAtZ3JjLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmdcbiAgICAgICAgICAgICNkYXRhTGlzdGluZ1xuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgIXJlc3BvbnNpYmlsaXR5TG9hZGVyICYmXG4gICAgICAgICAgICAgICFjYXRlZ29yeUxvYWRlciAmJlxuICAgICAgICAgICAgICAhcHJvZ3JhbUxvYWRlciAmJlxuICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eURhdGE/LmRhdGE/Lmxlbmd0aCAhPT0gMFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtoZWFkZXJUZXh0XT1cIidSZXNwb25zaWJpbGl0aWVzJ1wiXG4gICAgICAgICAgICBbTU9ERV09XCJNT0RFXCJcbiAgICAgICAgICAgIFtyZXNwb25zaWJpbGl0eURhdGFdPVwicmVzcG9uc2liaWxpdHlEYXRhXCJcbiAgICAgICAgICAgIFthY3RpdmVQcm9ncmFtXT1cInNlbGVjdGVkUHJvZ3JhbVwiXG4gICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcF09XCJzZWxlY3RlZFByb2dyYW1BbmRSZXNwXCJcbiAgICAgICAgICAgIFthbGxTZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWRzXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdGllc1wiXG4gICAgICAgICAgICAoY2hhbmdlU2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCk9XCJcbiAgICAgICAgICAgICAgY2hhbmdlU2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCgkZXZlbnQpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cInJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2VcIlxuICAgICAgICAgICAgW3BlclBhZ2VMaW1pdF09XCIzMFwiXG4gICAgICAgICAgICBbdG90YWxMaXN0RGF0YV09XCJyZXNwb25zaWJpbGl0eURhdGE/LnRvdGFsX2l0ZW1zXCJcbiAgICAgICAgICAgIFt0b3RhbFBhZ2VzXT1cInJlc3BvbnNpYmlsaXR5RGF0YT8udG90YWxfcGFnZXNcIlxuICAgICAgICAgICAgKGdldFVwZGF0ZWREYXRhTGlzdCk9XCJnZXRVcGRhdGVkRGF0YUxpc3QoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWdyYy1yZXNwb25zaWJpbGl0eS1saXN0aW5nPlxuXG4gICAgICAgICAgPGFwcC1saXN0LWxvYWRlclxuICAgICAgICAgICAgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUxvYWRlciB8fCBjYXRlZ29yeUxvYWRlciB8fCBwcm9ncmFtTG9hZGVyXCJcbiAgICAgICAgICA+PC9hcHAtbGlzdC1sb2FkZXI+XG5cbiAgICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5RGF0YT8uZGF0YT8ubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICAgICEocmVzcG9uc2liaWxpdHlMb2FkZXIgfHwgY2F0ZWdvcnlMb2FkZXIgfHwgcHJvZ3JhbUxvYWRlcilcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQ0ROX0xJTks/Lm5vRGF0YVwiXG4gICAgICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXG4gICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgKm5nSWY9XCIhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgIXJlc3BvbnNpYmlsaXR5RGF0YT8uZGF0YT8ubGVuZ3RoXCJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIkNETl9MSU5LPy5ub0RhdGFcIlxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXG4gICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZsb2F0aW5nLWJhclxuICAgICAgW3NlbGVjdGVkRGF0YV09XCJcbiAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzIHwgZmlsdGVyUmVzcG9uc2liaWxpdHkgOiByZXNwb25zaWJpbGl0eURhdGE/LmRhdGFcbiAgICAgIFwiXG4gICAgICAoY2xvc2VMaXN0KT1cImNsb3NlKClcIlxuICAgICAgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCJcbiAgICAgIFtkaXNwbGF5RWxlbWVudEtleV09XCIndGl0bGUnXCJcbiAgICAgIFtzaW5ndWxhclRleHRdPVwiJ1Jlc3BvbnNpYmlsaXR5IHNlbGVjdGVkJ1wiXG4gICAgICBbcGx1cmFsVGV4dF09XCInUmVzcG9uc2liaWxpdGllcyBzZWxlY3RlZCdcIlxuICAgICAgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUV2ZW50KCRldmVudClcIlxuICAgID48L2FwcC1mbG9hdGluZy1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
436
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS1yZXNwb25zaWJpbGl0eS1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93L3NoYXJlZC9jb21wb25lbnRzL3Byb2dyYW0tcmVzcG9uc2liaWxpdHktbGlzdGluZy9wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvc2hhcmVkL2NvbXBvbmVudHMvcHJvZ3JhbS1yZXNwb25zaWJpbGl0eS1saXN0aW5nL3Byb2dyYW0tcmVzcG9uc2liaWxpdHktbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvYXRpbmdCYXJNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIubW9kdWxlJztcbmltcG9ydCB7IEZvcm1ncm91cE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9mb3JtZ3JvdXAvZm9ybWdyb3VwLm1vZHVsZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi91aS1raXQvdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBUYWJsZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1jYXJkL3RhYmxlLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEdyY0NhdGVnb3J5TGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1jYXRlZ29yeS1saXN0aW5nL2dyYy1jYXRlZ29yeS1saXN0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmNSZXNwb25zaWJpbGl0eUxpc3RpbmdDb21wb25lbnQgfSBmcm9tICcuLi9ncmMtcmVzcG9uc2liaWxpdHktbGlzdGluZy9ncmMtcmVzcG9uc2liaWxpdHktbGlzdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9EYXRhTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdWkta2l0L25vLWRhdGEvbm8tZGF0YS5tb2R1bGUnO1xuaW1wb3J0IHsgTGlzdExvYWRlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZENvbXBvbmVudHMvbGlzdC1sb2FkZXIvbGlzdC1sb2FkZXIubW9kdWxlJztcbmltcG9ydCB7IEdyY1N1YkNhdGVnb3J5TGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1zdWItY2F0ZWdvcnktbGlzdGluZy9ncmMtc3ViLWNhdGVnb3J5LWxpc3RpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUkVTUE9OU0lCSUxJVFlfVEFCTEVfQ0FSRCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9saW5rLXJlc3BvbnNpYmlsaXR5LmNvbnN0YW50JztcbmltcG9ydCB7IEdyY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ncmMuc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUNhcmRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL3RhYmxlLWNhcmQtbG9hZGVyL3RhYmxlLWNhcmQtbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTElOS1MgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXBpcGVzL3dvcmtmbG93LXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEdldFVzZXJEZXRhaWxzUGlwZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXBpcGVzL2dldC11c2VyLWRldGFpbHMucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgRm9ybWdyb3VwTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgRmxvYXRpbmdCYXJNb2R1bGUsXG4gICAgUGFnaW5hdGlvbk1vZHVsZSxcbiAgICBUYWJsZUNhcmRDb21wb25lbnQsXG4gICAgR3JjQ2F0ZWdvcnlMaXN0aW5nQ29tcG9uZW50LFxuICAgIEdyY1Jlc3BvbnNpYmlsaXR5TGlzdGluZ0NvbXBvbmVudCxcbiAgICBHcmNTdWJDYXRlZ29yeUxpc3RpbmdDb21wb25lbnQsXG4gICAgTGlzdExvYWRlck1vZHVsZSxcbiAgICBOb0RhdGFNb2R1bGUsXG4gICAgVGFibGVDYXJkTG9hZGVyQ29tcG9uZW50LFxuICAgIFdvcmtmbG93UGlwZXNNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmcuY29tcG9uZW50Lmxlc3MnXSxcbiAgb3V0cHV0czogWydjbG9zZUxpc3QnXSxcbiAgcHJvdmlkZXJzOiBbR2V0VXNlckRldGFpbHNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmFtUmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvZ3JhbVR5cGVzID0gUkVTUE9OU0lCSUxJVFlfVEFCTEVfQ0FSRDtcbiAgQ0ROX0xJTksgPSBMSU5LUztcbiAgc2VsZWN0ZWRUYWI6IDAgfCAxIHwgMiB8IDMgPSAxO1xuXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuXG4gIHByb2dyYW1Mb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvZ3JhbUNvdW50TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHJlc3BvbnNpYmlsaXR5TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGNhdGVnb3J5TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkUHJvZ3JhbUFuZFJlc3A6IGFueVtdID0gW107XG4gIHByZVNlbGVjdGVkUHJvZ3JhbUFuZFJlc3A6IGFueVtdID0gW107XG4gIHNlYXJjaFN0cmluZzogc3RyaW5nID0gJyc7XG4gIGN1cnJlbnRCdXNpbmVzc0N5Y2xlITogYW55O1xuICBzZWxlY3RlZFByb2dyYW06IGFueTtcbiAgc2VsZWN0ZWRDYXRlZ29yeTogYW55O1xuICBwcm9ncmFtQ3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIGNhdGVnb3J5Q3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIHJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIHByb2dyYW1EYXRhOiBhbnk7XG4gIGNhdGVnb3J5RGF0YTogYW55O1xuICByZXNwb25zaWJpbGl0eURhdGE6IGFueSA9IHtcbiAgICBkYXRhOiBbXSxcbiAgfTtcbiAgc2VsZWN0ZWRQcm9ncmFtSWRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZENhdGVnb3J5SWRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXRpZXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkUkNJZHM6IG51bWJlcltdID0gW107XG5cbiAgcHJvZ3JhbUNhbGwhOiBTdWJzY3JpcHRpb247XG4gIGNhdGVnb3J5Q2FsbCE6IFN1YnNjcmlwdGlvbjtcbiAgcmVzcG9uc2liaWxpdHlDYWxsITogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgnc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCcpIHNldCBnZXRTZWxlY3RlZFByb2dyYW1BbmRSZXNwKGRhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzID0gZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5yaWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCA9IGRhdGEgfHwgW107XG4gICAgdGhpcy5wcmVTZWxlY3RlZFByb2dyYW1BbmRSZXNwID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApKTtcbiAgICB0aGlzLmdldFNlbGVjdGVkUHJvZ3JhbUlkcyh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApO1xuICAgIHRoaXMuZ2V0QWxsU2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzKHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCk7XG4gIH1cbiAgQElucHV0KCkgc2VsZWN0ZWRSQzogYW55W10gPSBbXTtcbiAgQElucHV0KCkgTU9ERTogJ0NSRUFURScgfCAnRURJVCcgPSAnQ1JFQVRFJztcblxuICBjbG9zZUxpc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGFMaXN0aW5nJylcbiAgcmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50ITogR3JjUmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JjU2VydmljZTogR3JjU2VydmljZSwgcHJpdmF0ZSByZXNwb25zaWJpbGl0eVNlcnZpY2U6IFJlc3BvbnNpYmlsaXR5U2VydmljZSwgcHJpdmF0ZSBnZXRVc2VyRGV0YWlsczogR2V0VXNlckRldGFpbHNQaXBlKSB7XG4gICAgdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZSA9IHRoaXMuZ3JjU2VydmljZT8uZ2V0QnVzaW5lc3NDeWNsZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllc0xpc3QoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2xvc2VMaXN0LmVtaXQodGhpcy5wcmVTZWxlY3RlZFByb2dyYW1BbmRSZXNwKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5jbG9zZUxpc3QuZW1pdCh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApO1xuICB9XG5cbiAgZ2V0UHJvZ3JhbXNMaXN0KGV2ZW50PzogYW55KSB7XG4gICAgaWYgKHRoaXMucHJvZ3JhbUNhbGwpIHtcbiAgICAgIHRoaXMucHJvZ3JhbUNhbGwudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5wcm9ncmFtTG9hZGVyID0gdHJ1ZTtcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICB0eXBlOiAnJyxcbiAgICAgICAgcGFnaW5hdGlvblR5cGU6ICdzbWFsbCcsXG4gICAgICAgIGE6ICcnLFxuICAgICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFN0cmluZyxcbiAgICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgICAgIHJpc2tJZHM6IFtdLFxuICAgICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLmdldFNlbGVjdGVkUkNJZHModGhpcy5zZWxlY3RlZFJDKSA/PyBbXSxcbiAgICAgICAgICBlbnRydXN0ZWRCeTogW10sXG4gICAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgICB9LFxuICAgICAgICBwYWdlTm86IHRoaXMucHJvZ3JhbUN1cnJlbnRQYWdlIHx8IDEsXG4gICAgICAgIHNvcnRPYmo6IHsgc29ydEJ5OiAnJywgdHlwZTogLTEgfSxcbiAgICAgICAgcGFnZU5hbWU6ICdjYXRlZ29yeScsXG4gICAgICAgIHR5cGVBcnI6IFt0aGlzLnNlbGVjdGVkVGFiXSxcbiAgICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgICAgZW5kX2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LmVuZF9kYXRlLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FycixcbiAgICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgICAgICB0aW1lX2ZpbHRlcl90eXBlOiAnJyxcbiAgICAgICAgc3RhdGU6IFsyLCAzXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLnByb2dyYW1DYWxsID0gdGhpcy5ncmNTZXJ2aWNlLmdldFByb2dyYW1zTGlzdChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvZ3JhbUxvYWRlciA9IGZhbHNlO1xuICAgICAgICAvLyB0aGlzLnByb2dyYW1EYXRhLmRhdGEgPSByZXMuZGF0YSA/PyBbXTtcbiAgICAgICAgdGhpcy5wcm9ncmFtRGF0YSA9IHsgLi4ucmVzIH07XG4gICAgICAgIHRoaXMub25TZWxlY3RlZFByb2dyYW1DaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yeUJ5UHJvZ3JhbUlkKHJlcz8uZGF0YVswXSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb2dyYW1Mb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBvblByb2dyYW1QYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnByb2dyYW1DdXJyZW50UGFnZSA9IGV2ZW50Py5wYWdlTm8gfHwgMTtcbiAgICB0aGlzLmdldFByb2dyYW1zTGlzdCgpO1xuICB9XG5cbiAgb25TdWJDYXRlZ29yeVBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA9IGV2ZW50Py5wYWdlTm8gfHwgMTtcbiAgICB0aGlzLmdldENhdGVnb3J5QnlQcm9ncmFtSWQodGhpcy5zZWxlY3RlZFByb2dyYW0pO1xuICB9XG5cbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50LmRlbGV0ZVNlbGVjdGVkUmVzcG9uc2liaWxpdHkoZXZlbnQpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRUYWIoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucHJvZ3JhbUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gZXZlbnQ/LnR5cGU7XG4gICAgdGhpcy5nZXRQcm9ncmFtc0xpc3QoKTtcbiAgfVxuXG4gIGhhbmRsZVNlYXJjaChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoU3RyaW5nICE9IGV2ZW50KSB7XG4gICAgICB0aGlzLnByb2dyYW1DdXJyZW50UGFnZSA9IDE7XG4gICAgICB0aGlzLnNlYXJjaFN0cmluZyA9IGV2ZW50O1xuICAgICAgdGhpcy5vblNlbGVjdGVkUHJvZ3JhbUNoYW5nZSgpO1xuICAgICAgdGhpcy5nZXRQcm9ncmFtc0xpc3QoKTtcbiAgICAgIHRoaXMuZ2V0UHJvZ3JhbXNDb3VudCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldFByb2dyYW1zQ291bnQocGFyYW1zT2JqZWN0PzogYW55KSB7XG4gICAgdGhpcy5wcm9ncmFtQ291bnRMb2FkZXIgPSB0cnVlO1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIHR5cGU6ICcnLFxuICAgICAgICBwYWdpbmF0aW9uVHlwZTogJ3NtYWxsJyxcbiAgICAgICAgYTogJycsXG4gICAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoU3RyaW5nLFxuICAgICAgICBmaWx0ZXJEYXRhOiB7XG4gICAgICAgICAgYXBwTGlzdDogW10sXG4gICAgICAgICAgcmlza0lkczogW10sXG4gICAgICAgICAgcmV2aWV3ZXJJZDogW10sXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXI6IHRoaXMuZ2V0U2VsZWN0ZWRSQ0lkcyh0aGlzLnNlbGVjdGVkUkMpID8/IFtdLFxuICAgICAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgICAgICBlbnRydXN0ZWRUbzogW10sXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDYXRlZ29yeTogW10sXG4gICAgICAgIH0sXG4gICAgICAgIHBhZ2VObzogMSxcbiAgICAgICAgc29ydE9iajogeyBzb3J0Qnk6ICcnLCB0eXBlOiAnJyB9LFxuICAgICAgICBwYWdlTmFtZTogJ2NhdGVnb3J5JyxcbiAgICAgICAgdHlwZUFycjogWzEsIDIsIDMsIDBdLFxuICAgICAgICBzdGFydF9kYXRlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5zdGFydF9kYXRlLFxuICAgICAgICBlbmRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uZW5kX2RhdGUsXG4gICAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGUsXG4gICAgICAgIHRpbWVfZmlsdGVyX3R5cGU6ICcnLFxuICAgICAgICBzdGF0ZTogWzIsIDNdLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuZ3JjU2VydmljZS5nZXRQcm9ncmFtc0xpc3RDb3VudChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvZ3JhbUNvdW50TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJvZ3JhbVR5cGVzWzBdLmNvdW50ID1cbiAgICAgICAgICByZXM/LnJlZ3VsYXRpb25Db3VudD8uYWN0aXZlICsgcmVzPy5yZWd1bGF0aW9uQ291bnQ/LmNvbXBsZXRlZDtcbiAgICAgICAgdGhpcy5wcm9ncmFtVHlwZXNbMV0uY291bnQgPVxuICAgICAgICAgIHJlcz8uc3RhbmRhcmRDb3VudD8uYWN0aXZlICsgcmVzPy5zdGFuZGFyZENvdW50Py5jb21wbGV0ZWQ7XG4gICAgICAgIHRoaXMucHJvZ3JhbVR5cGVzWzJdLmNvdW50ID1cbiAgICAgICAgICByZXM/LmludGVybmFsQ291bnQ/LmFjdGl2ZSArIHJlcz8uaW50ZXJuYWxDb3VudD8uY29tcGxldGVkO1xuICAgICAgICB0aGlzLnByb2dyYW1UeXBlc1szXS5jb3VudCA9XG4gICAgICAgICAgcmVzPy5vdGhlckNvdW50Py5hY3RpdmUgKyByZXM/Lm90aGVyQ291bnQ/LmNvbXBsZXRlZDtcbiAgICAgICAgLy8gfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldENhdGVnb3J5QnlQcm9ncmFtSWQocHJvZ3JhbTogYW55KSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlDYWxsKSB7XG4gICAgICB0aGlzLmNhdGVnb3J5Q2FsbC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbSA9IHByb2dyYW07XG4gICAgdGhpcy5jYXRlZ29yeUxvYWRlciA9IHRydWU7XG4gICAgLy8gdGhpcy5yZXNldENvbnRyb2xWYXJpYWJsZSgpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBpZDogcHJvZ3JhbT8uX2lkLFxuICAgICAgc2NvcGVUeXBlOiAncmlzaycsXG4gICAgICBwYWdpbmF0aW9uVHlwZTogJ3NtYWxsJyxcbiAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoU3RyaW5nLFxuICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICBhcHBMaXN0OiBbXSxcbiAgICAgICAgcmlza0lkczogW10sXG4gICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogdGhpcy5nZXRTZWxlY3RlZFJDSWRzKHRoaXMuc2VsZWN0ZWRSQykgPz8gW10sXG4gICAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNhdGVnb3J5OiBbXSxcbiAgICAgIH0sXG4gICAgICBwYWdlOiB0aGlzLmNhdGVnb3J5Q3VycmVudFBhZ2UgfHwgMSxcbiAgICAgIC8vIHNvcnRpbmdDb3VudDogdGhpcy5jYXRlZ29yeVNvcnRWYWx1ZSxcbiAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgIGJ1c2luZXNzQ3ljbGU6IHtcbiAgICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgICAgZW5kX2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LmVuZF9kYXRlLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FycixcbiAgICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgICAgICB0aW1lX2ZpbHRlcl90eXBlOiAnJyxcbiAgICAgICAgLy8gXCJzY29wZVR5cGVcIjogJ3Jpc2snLFxuICAgICAgICB0eXBlOiAncmlzaycsXG4gICAgICAgIGNhbGxGcm9tOiAnZ3JjJyxcbiAgICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgICAgIHJpc2tJZHM6IFtdLFxuICAgICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLmdldFNlbGVjdGVkUkNJZHModGhpcy5zZWxlY3RlZFJDKSA/PyBbXSxcbiAgICAgICAgICBlbnRydXN0ZWRCeTogW10sXG4gICAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuY2F0ZWdvcnlDYWxsID0gdGhpcy5ncmNTZXJ2aWNlLmdldFN1YkNhdGVnb3J5TGlzdChoZWFkZXJzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSB7IC4uLnJlcyB9O1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSByZXM/LmRhdGFbMF07XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllc0xpc3QoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhY3RpdmVTZWxlY3RlZFByb2dyYW0oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtID0gZXZlbnQ/LmNhdGVnb3J5O1xuICAgIHRoaXMub25TZWxlY3RlZFByb2dyYW1DaGFuZ2UoKTtcbiAgICB0aGlzLmdldENhdGVnb3J5QnlQcm9ncmFtSWQodGhpcy5zZWxlY3RlZFByb2dyYW0pO1xuICAgIC8vIHRoaXMuZ2V0U2VsZWN0ZWRDYXRlZ29yeUlkcyh0aGlzLnNlbGVjdGVkUHJvZ3JhbUFuZFJlc3ApO1xuICB9XG5cbiAgYWN0aXZlU2VsZWN0ZWRTdWJDYXRlZ29yeShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gZXZlbnQ/LmNhdGVnb3J5O1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllc0xpc3QoKTtcbiAgfVxuXG4gIGdldFJlc3BvbnNpYmlsaXRpZXNMaXN0KGV2ZW50PzogYW55KSB7XG4gICAgaWYgKHRoaXMucmVzcG9uc2liaWxpdHlDYWxsKSB7XG4gICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q2FsbC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIHRoaXMucmVzcENvdW50ID0gZXZlbnQuc29ydFZhbHVlO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2lzQnVzaW5lc3NDeWNsZScsICd0cnVlJyk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFyZW50SWQnLCB0aGlzLnNlbGVjdGVkUHJvZ3JhbT8uY2F0ZWdvcnlfaWQpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NhdElkJywgdGhpcy5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9pZCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZU5vJywgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID8/IDEpO1xuICAgIC8vIGlmIChbMSwgLTFdLmluY2x1ZGVzKHRoaXMuY29udHJvbFNvcnRWYWx1ZSkpIHtcbiAgICAvLyAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NvcnRWYWx1ZScsIHRoaXMuY29udHJvbFNvcnRWYWx1ZSk7XG4gICAgLy8gICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzb3J0QnknLCAnRGF0YS5SZXBvcnROYW1lJyk7XG4gICAgLy8gfVxuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2luYXRpb25UeXBlJywgJ3NtYWxsJyk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZVR5cGUnLCAncmlzaycpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NhbGxGcm9tJywgJ2dyYycpO1xuICAgIGNvbnN0IHJjSWRzID0gdGhpcy5nZXRTZWxlY3RlZFJDSWRzKHRoaXMuc2VsZWN0ZWRSQykuam9pbignLCcpO1xuICAgIGxldCBidXNpbmVzc0N5Y2xlID0ge1xuICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgIGVuZF9kYXRlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5lbmRfZGF0ZSxcbiAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyLFxuICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgICAgdGltZV9maWx0ZXJfdHlwZTogJycsXG4gICAgICBwYWdlVHlwZTogJ3Jpc2snLFxuICAgICAgY2FsbEZyb206ICdncmMnLFxuICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICBhcHBMaXN0OiBbXSxcbiAgICAgICAgcmlza0lkczogW10sXG4gICAgICAgIHJldmlld2VySWQ6IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogdGhpcy5nZXRTZWxlY3RlZFJDSWRzKHRoaXMuc2VsZWN0ZWRSQykgPz8gW10sXG4gICAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgICAgZW50cnVzdGVkVG86IFtdLFxuICAgICAgICByZXNwb25zaWJpbGl0eUNhdGVnb3J5OiBbXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDYWxsID0gdGhpcy5ncmNTZXJ2aWNlXG4gICAgICAuZ2V0QWxsUmVzcG9uc2liaWxpdGllcyh0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2UsIHJjSWRzKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IDMwO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gcmVzPy5kYXRhPy5wYWdlIHx8IDE7XG4gICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyAxO1xuICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplIC0gMSwgcmVzPy5kYXRhPy50b3RhbCB8fCAwKTtcbiAgICAgICAgICBcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5RGF0YSA9IHtcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuc2V0RGF0YUxpc3RTdHJ1Y3R1cmUocmVzPy5kYXRhPy5yZXNwb25zaWJpbGl0aWVzIHx8IFtdLCByZXM/LmRhdGE/LnVzZXJzIHx8IFtdLCByZXM/LmRhdGE/LnJlc3BvbnNpYmlsaXR5Q2VudGVycyB8fCBbXSksXG4gICAgICAgICAgICB0b3RhbF9pdGVtczogcmVzPy5kYXRhPy50b3RhbCB8fCAwLFxuICAgICAgICAgICAgdG90YWxfcGFnZXM6IE1hdGguY2VpbCgocmVzPy5kYXRhPy50b3RhbCB8fCAwKSAvIHBhZ2VTaXplKSxcbiAgICAgICAgICAgIGN1cnJlbnRfcGFnZTogY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBwZXJfcGFnZTogcGFnZVNpemUsXG4gICAgICAgICAgICBpdGVtc19mcm9tOiBzdGFydEluZGV4LFxuICAgICAgICAgICAgaXRlbXNfdG86IGVuZEluZGV4XG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFVwZGF0ZWREYXRhTGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gZXZlbnQ/LnBhZ2VObztcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXNMaXN0KCk7XG4gIH1cblxuICBzZXREYXRhTGlzdFN0cnVjdHVyZShyZXNwb25zaWJpbGl0aWVzOiBhbnlbXSwgdXNlcnM6IGFueVtdLCByZXNwb25zaWJpbGl0eUNlbnRlcnM6IGFueVtdKSB7XG4gICAgY29uc3QgZGF0YSA9IHJlc3BvbnNpYmlsaXRpZXM/Lm1hcCgocmVzcG9uc2liaWxpdHk6IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2liaWxpdHlDZW50ZXJJZHMgPSByZXNwb25zaWJpbGl0eT8ucmVzcG9uc2liaWxpdHlfY2VudGVycyB8fCBbXTtcblxuICAgICAgY29uc3QgbWFwcGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzID0gcmVzcG9uc2liaWxpdHlDZW50ZXJJZHMubWFwKChyY0lkOiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgcmMgPSByZXNwb25zaWJpbGl0eUNlbnRlcnMuZmluZCgoY2VudGVyOiBhbnkpID0+IGNlbnRlcj8uaWQgPT09IHJjSWQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IHJjPy5uYW1lIHx8ICcnLFxuICAgICAgICAgIGlkOiByY0lkXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYXNzaWdub3JEZXRhaWxzID0gdGhpcy5nZXRVc2VyRGV0YWlscy50cmFuc2Zvcm0oW3Jlc3BvbnNpYmlsaXR5Py5hc3NpZ25vcl0sIHVzZXJzKT8uWzBdIHx8IHt9O1xuICAgICAgY29uc3QgYXNzaWduZWVEZXRhaWxzID0gdGhpcy5nZXRVc2VyRGV0YWlscy50cmFuc2Zvcm0ocmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlcz8udXNlcklkIHx8IFtdLCB1c2VycykgfHwgW107XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJlc3BvbnNpYmlsaXR5LFxuICAgICAgICBuYW1lOiByZXNwb25zaWJpbGl0eT8udGl0bGUgfHwgJycsXG4gICAgICAgIGNvbnRyb2xJZDogcmVzcG9uc2liaWxpdHk/LmtleXx8ICcnLFxuICAgICAgICBfaWQ6IHJlc3BvbnNpYmlsaXR5Py5yaWQsXG4gICAgICAgIGVudHJ1c3RlZEJ5OiB7XG4gICAgICAgICAgbmFtZTogYXNzaWdub3JEZXRhaWxzPy5uYW1lIHx8ICcnLFxuICAgICAgICAgIGVtYWlsOiBhc3NpZ25vckRldGFpbHM/LmVtYWlsIHx8ICcnLFxuICAgICAgICAgIHByb2ZpbGVQaWM6IGFzc2lnbm9yRGV0YWlscz8uYXZhdGFyIHx8ICcnLFxuICAgICAgICAgIHNob3J0TmFtZTogYXNzaWdub3JEZXRhaWxzPy5zaG9ydF9uYW1lIHx8ICcnLFxuICAgICAgICB9LFxuICAgICAgICBlbnRydXN0ZWRUbzoge1xuICAgICAgICAgIG5hbWU6IGFzc2lnbmVlRGV0YWlsc1swXT8ubmFtZSB8fCAnJyxcbiAgICAgICAgICBlbWFpbDogYXNzaWduZWVEZXRhaWxzWzBdPy5lbWFpbCB8fCAnJyxcbiAgICAgICAgICBwcm9maWxlUGljOiBhc3NpZ25lZURldGFpbHNbMF0/LmF2YXRhciB8fCAnJyxcbiAgICAgICAgICBzaG9ydE5hbWU6IGFzc2lnbmVlRGV0YWlsc1swXT8uc2hvcnRfbmFtZSB8fCAnJyxcbiAgICAgICAgICBFbnRydXN0ZWRUb01lbWJlcnM6IGFzc2lnbmVlRGV0YWlscz8ubWFwKCh1c2VyOiBhbnkpID0+ICh7XG4gICAgICAgICAgICBtZW1iZXJfbmFtZTogdXNlcj8ubmFtZSxcbiAgICAgICAgICAgIHByb2ZpbGVfcGljOiB1c2VyPy5hdmF0YXIsXG4gICAgICAgICAgICBtZW1iZXJfc2hvcnRfbmFtZTogdXNlcj8uc2hvcnRfbmFtZVxuICAgICAgICAgIH0pKSB8fCBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgd2l0aGluRGF0YTogbWFwcGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzLFxuICAgICAgICBzdWJDYXRlZ29yeUlkOiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk/LmNhdGVnb3J5X2lkLFxuICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWRQcm9ncmFtQ2hhbmdlKCkge1xuICAgIHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgfVxuXG4gIGNoYW5nZVNlbGVjdGVkUHJvZ3JhbUFuZFJlc3AoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCA9IGV2ZW50O1xuICAgIHRoaXMuZ2V0U2VsZWN0ZWRQcm9ncmFtSWRzKHRoaXMuc2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCk7XG4gICAgdGhpcy5nZXRBbGxTZWxlY3RlZFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFByb2dyYW1BbmRSZXNwKTtcbiAgICB0aGlzLmdldFNlbGVjdGVkQ2F0ZWdvcnlJZHModGhpcy5zZWxlY3RlZFByb2dyYW1BbmRSZXNwKTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkUHJvZ3JhbUlkcyhzZWxlY3RlZERhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtSWRzID0gW107XG4gICAgc2VsZWN0ZWREYXRhPy5mb3JFYWNoKChzZWxlY3RlZDogYW55KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbUlkcy5wdXNoKHNlbGVjdGVkPy5wcm9ncmFtPy5wcm9ncmFtSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRDYXRlZ29yeUlkcyhzZWxlY3RlZERhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkcyA9IFtdO1xuICAgIGxldCBwcm9ncmFtSW5kZXggPSAtMTtcbiAgICBwcm9ncmFtSW5kZXggPSBzZWxlY3RlZERhdGEuZmluZEluZGV4KFxuICAgICAgKGNhdDogYW55KSA9PiBjYXQ/LnByb2dyYW0/LnByb2dyYW1JZCA9PT0gdGhpcy5zZWxlY3RlZFByb2dyYW0/LnByb2dyYW1JZFxuICAgICk7XG4gICAgaWYgKHByb2dyYW1JbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkcyA9IHNlbGVjdGVkRGF0YVtwcm9ncmFtSW5kZXhdPy5jYXRlZ29yeTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWRzID0gW107XG4gICAgfVxuICB9XG5cbiAgZ2V0QWxsU2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzKHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdGllcyA9IHNlbGVjdGVkRGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbT8ucmlkKTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkUkNJZHMoc2VsZWN0ZWRSQzogYW55W10pIHtcbiAgICBsZXQgc2VsZWN0ZWRSQ0lkczogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZFJDSWRzID0gc2VsZWN0ZWRSQz8ubWFwKChyYzogYW55KSA9PiByYz8ucmNpZCk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRSQ0lkcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInByb2dyYW0tcmVzcG9uc2liaWxpdHktbGlzdGluZ1wiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1yZXNwb25zaWJpbGl0eS1saXN0aW5nLWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCI+XG4gICAgPGgzIGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBSZXNwb25zaWJpbGl0aWVzPC9oMz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmFtLXJlc3BvbnNpYmlsaXR5LWxpc3RpbmctYm9keVwiPlxuICAgIDwhLS0gPGFwcC10YWJsZS1jYXJkLWxvYWRlciAqbmdJZj1cInByb2dyYW1Db3VudExvYWRlclwiPjwvYXBwLXRhYmxlLWNhcmQtbG9hZGVyPiAtLT5cbiAgICA8IS0tIDxhcHAtdGFibGUtY2FyZFxuICAgICAgICAgICAgKm5nSWY9XCIhcHJvZ3JhbUNvdW50TG9hZGVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwidngtdy0xMDBcIlxuICAgICAgICAgICAgW3RhYmxlQ2FyZF09XCJwcm9ncmFtVHlwZXNcIlxuICAgICAgICAgICAgW3NpbmdsZVNlbGVjdGVkVGV4dF09XCInUmVzcG9uc2liaWxpdHkgU2VsZWN0ZWQnXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZFRhYl09XCJzZWxlY3RlZFRhYlwiXG4gICAgICAgICAgICBbbXVsdGlwbGVTZWxlY3RlZFRleHRdPVwiJ1Jlc3BvbnNpYmlsaXRpZXMgU2VsZWN0ZWQnXCJcbiAgICAgICAgICAgIChzZXRTZWxlY3RlZFRhYik9XCJzZXRTZWxlY3RlZFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvYXBwLXRhYmxlLWNhcmQ+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgI3NlYXJjaFJpc2tDYXRlZ29yeSAoa2V5dXAuZW50ZXIpPVwiaGFuZGxlU2VhcmNoKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUmVzcG9uc2liaWxpdGllc1wiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInByb2dyYW0tcmVzcG9uc2liaWxpdHktbGlzdGluZy1ib2R5LWlubmVyIHZ4LW1iLTIgdngtZC1mbGV4XCIgW2NsYXNzLnZ4LWp1c3RpZnktY2VudGVyXT1cIlxuICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgIXJlc3BvbnNpYmlsaXR5RGF0YT8uZGF0YT8ubGVuZ3RoXG4gICAgICBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUxvYWRlciB8fCByZXNwb25zaWJpbGl0eURhdGE/LmRhdGE/Lmxlbmd0aFwiPlxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJpbm5lci1pdGVtLWxlZnQgdngtcHItMlwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZ3JjLWNhdGVnb3J5LWxpc3RpbmcgKm5nSWY9XCIhcHJvZ3JhbUxvYWRlclwiIFtoZWFkZXJUZXh0XT1cIidQcm9ncmFtcydcIiBbcHJvZ3JhbURhdGFdPVwicHJvZ3JhbURhdGFcIiAgW3NlbGVjdGVkQ2F0QW5kUmlza109XCJzZWxlY3RlZENhdEFuZFJpc2tcIiBbbmFtZURpc3BsYXlLZXldPVwiJ2l0ZW1fbmFtZSdcIiBbY3VycmVudFBhZ2VdPVwicHJvZ3JhbUN1cnJlbnRQYWdlXCIgW3NlbGVjdGVkVGFiSW5kZXhdPVwic2VsZWN0ZWRUYWJcIiBbc2VsZWN0ZWRDYXRlZ29yeUlkc109XCJzZWxlY3RlZFByb2dyYW1JZHNcIiAoYWN0aXZlU2VsZWN0ZWRDYXRlZ29yeSk9XCJhY3RpdmVTZWxlY3RlZFByb2dyYW0oJGV2ZW50KVwiIChvbkNhdGVnb3J5UGFnZUNoYW5nZSk9XCJvblByb2dyYW1QYWdlQ2hhbmdlKCRldmVudClcIj48L2FwcC1ncmMtY2F0ZWdvcnktbGlzdGluZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8YXBwLWxpc3QtbG9hZGVyICpuZ0lmPVwicHJvZ3JhbUxvYWRlclwiPjwvYXBwLWxpc3QtbG9hZGVyPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlubmVyLWl0ZW0tbWlkIHZ4LXByLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1ncmMtc3ViLWNhdGVnb3J5LWxpc3RpbmcgKm5nSWY9XCIhY2F0ZWdvcnlMb2FkZXIgJiYgIXByb2dyYW1Mb2FkZXJcIiAgW2hlYWRlclRleHRdPVwiJ1Byb2dyYW1zJ1wiIFtjYXRlZ29yaWVzXT1cImNhdGVnb3J5RGF0YVwiICBbbmFtZURpc3BsYXlLZXldPVwiJ2l0ZW1fbmFtZSdcIiAgW2N1cnJlbnRQYWdlXT1cImNhdGVnb3J5Q3VycmVudFBhZ2VcIiBbc2VsZWN0ZWRDYXRlZ29yeUlkc109XCJzZWxlY3RlZENhdGVnb3J5SWRzXCIgW2FjdGl2ZVByb2dyYW1dPVwic2VsZWN0ZWRQcm9ncmFtXCIgW3NlbGVjdGVkUHJvZ3JhbUFuZFJlc3BdPVwic2VsZWN0ZWRQcm9ncmFtQW5kUmVzcFwiIChhY3RpdmVTZWxlY3RlZENhdGVnb3J5KT1cImFjdGl2ZVNlbGVjdGVkU3ViQ2F0ZWdvcnkoJGV2ZW50KVwiIChvbkNhdGVnb3J5UGFnZUNoYW5nZSk9XCJvblN1YkNhdGVnb3J5UGFnZUNoYW5nZSgkZXZlbnQpXCI+PC9hcHAtZ3JjLXN1Yi1jYXRlZ29yeS1saXN0aW5nPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWxpc3QtbG9hZGVyICpuZ0lmPVwiY2F0ZWdvcnlMb2FkZXIgfHwgcHJvZ3JhbUxvYWRlclwiPjwvYXBwLWxpc3QtbG9hZGVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5uZXItaXRlbS1yaWdodFwiPlxuICAgICAgICAgIDwhLS0gPGFwcC1ncmMtcmVzcG9uc2liaWxpdHktbGlzdGluZz48L2FwcC1ncmMtcmVzcG9uc2liaWxpdHktbGlzdGluZz4gLS0+XG5cbiAgICAgICAgICA8YXBwLWdyYy1yZXNwb25zaWJpbGl0eS1saXN0aW5nICNkYXRhTGlzdGluZyAqbmdJZj1cIlxuICAgICAgICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiZcbiAgICAgICAgICAgICAgIWNhdGVnb3J5TG9hZGVyICYmXG4gICAgICAgICAgICAgICFwcm9ncmFtTG9hZGVyICYmXG4gICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5RGF0YT8uZGF0YT8ubGVuZ3RoICE9PSAwXG4gICAgICAgICAgICBcIiBbaGVhZGVyVGV4dF09XCInUmVzcG9uc2liaWxpdGllcydcIiBbTU9ERV09XCJNT0RFXCIgW3Jlc3BvbnNpYmlsaXR5RGF0YV09XCJyZXNwb25zaWJpbGl0eURhdGFcIlxuICAgICAgICAgICAgW2FjdGl2ZVByb2dyYW1dPVwic2VsZWN0ZWRQcm9ncmFtXCIgW2FjdGl2ZUNhdGVnb3J5XT1cInNlbGVjdGVkQ2F0ZWdvcnlcIlxuICAgICAgICAgICAgW3NlbGVjdGVkUHJvZ3JhbUFuZFJlc3BdPVwic2VsZWN0ZWRQcm9ncmFtQW5kUmVzcFwiIFthbGxTZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWRzXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdGllc1wiXG4gICAgICAgICAgICAoY2hhbmdlU2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCk9XCJcbiAgICAgICAgICAgICAgY2hhbmdlU2VsZWN0ZWRQcm9ncmFtQW5kUmVzcCgkZXZlbnQpXG4gICAgICAgICAgICBcIiBbY3VycmVudFBhZ2VdPVwicmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZVwiIFtwZXJQYWdlTGltaXRdPVwiMzBcIlxuICAgICAgICAgICAgW3RvdGFsTGlzdERhdGFdPVwicmVzcG9uc2liaWxpdHlEYXRhPy50b3RhbF9pdGVtc1wiIFt0b3RhbFBhZ2VzXT1cInJlc3BvbnNpYmlsaXR5RGF0YT8udG90YWxfcGFnZXNcIlxuICAgICAgICAgICAgKGdldFVwZGF0ZWREYXRhTGlzdCk9XCJnZXRVcGRhdGVkRGF0YUxpc3QoJGV2ZW50KVwiPjwvYXBwLWdyYy1yZXNwb25zaWJpbGl0eS1saXN0aW5nPlxuXG4gICAgICAgICAgPGFwcC1saXN0LWxvYWRlciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5TG9hZGVyIHx8IGNhdGVnb3J5TG9hZGVyIHx8IHByb2dyYW1Mb2FkZXJcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCI+PC9hcHAtbGlzdC1sb2FkZXI+XG5cbiAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJcbiAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHlEYXRhPy5kYXRhPy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgICAgIShyZXNwb25zaWJpbGl0eUxvYWRlciB8fCBjYXRlZ29yeUxvYWRlciB8fCBwcm9ncmFtTG9hZGVyKVxuICAgICAgICAgICAgXCIgW25vRGF0YUltYWdlXT1cIkNETl9MSU5LPy5ub0RhdGFcIiBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCIhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgIXJlc3BvbnNpYmlsaXR5RGF0YT8uZGF0YT8ubGVuZ3RoXCIgW25vRGF0YUltYWdlXT1cIkNETl9MSU5LPy5ub0RhdGFcIlxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mbG9hdGluZy1iYXIgW3NlbGVjdGVkRGF0YV09XCJcbiAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0aWVzIHwgZmlsdGVyUmVzcG9uc2liaWxpdHkgOiByZXNwb25zaWJpbGl0eURhdGE/LmRhdGFcbiAgICAgIFwiIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiIFtkaXNwbGF5RWxlbWVudEtleV09XCIndGl0bGUnXCJcbiAgICAgIFtzaW5ndWxhclRleHRdPVwiJ1Jlc3BvbnNpYmlsaXR5IHNlbGVjdGVkJ1wiIFtwbHVyYWxUZXh0XT1cIidSZXNwb25zaWJpbGl0aWVzIHNlbGVjdGVkJ1wiXG4gICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoJGV2ZW50KVwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -212,7 +212,7 @@ export class RiskCategoryRiskListingComponent {
|
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoryRiskListingComponent, deps: [{ token: i1.GrcService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
215
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RiskCategoryRiskListingComponent, isStandalone: true, selector: "app-risk-category-risk-listing", inputs: { selectedTab: "selectedTab", selectedCatAndRiskData: ["selectedCatAndRisk", "selectedCatAndRiskData"], selectedRC: "selectedRC" }, outputs: { closeUsersList: "closeUsersList" }, viewQueries: [{ propertyName: "responsibilityListingComponent", first: true, predicate: ["dataListing"], descendants: true }], ngImport: i0, template: "<div class=\"risk-category-risk-listing\" [class.animate]=\"animation\">\n <div class=\"risk-category-risk-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n <h3 class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risks</h3></div>\n <div class=\"risk-category-risk-listing-body\">\n <app-table-card class=\"vx-w-100\" [tableCard]=\"tableCard\" [singleSelectedText]=\"'Category Selected'\" [multipleSelectedText]=\"'Categories Selected'\" (setSelectedTab)=\"setSelectedTab($event)\" [selectedTab]=\"1\"></app-table-card>\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\"></i>\n <input type=\"text\" #searchRiskCategory (keyup.enter)=\"handleSearch($event.target.value)\" placeholder=\"Search Risk Categories\" />\n </div>\n <div class=\"risk-category-risk-listing-body-inner vx-mb-2 vx-d-flex\" [class.with-noData]=\"(!isCategoryLoader && !categoriesList?.length)\">\n <ng-container *ngIf=\"isCategoryLoader || categoriesList?.length\">\n <div class=\"inner-item-left vx-pr-2\">\n <app-grc-category-listing *ngIf=\"!isCategoryLoader\" [headerText]=\"'Risk Categories'\" [categories]=\"categoriesList\" [selectedCatAndRisk]=\"selectedCatAndRisk\" [tableCard]=\"tableCard\" [currentPage]=\"categoryCurrentPage\" [selectedTabIndex]=\"selectedTab\" [selectedCategoryIds]=\"selectedCategoryIds\" (activeSelectedCategory)=\"activeSelectedCategory($event)\" (onCategoryPageChange)=\"onCategoryPageChange($event)\"></app-grc-category-listing>\n <app-list-loader *ngIf=\"isCategoryLoader\"></app-list-loader>\n </div>\n <div class=\"inner-item-right\">\n <app-grc-risk-listing #dataListing *ngIf=\"!isRiskLoader && !isCategoryLoader && risksList?.length\" [headerText]=\"'Risk Name'\" [dataList]=\"risksList\" [activeCategory]=\"activeCategory\" [selectedCatAndRisk]=\"selectedCatAndRisk\" (changeSelectedCatAndRisk)=\"changeSelectedCatAndRisk($event)\" [currentPage]=\"riskCurrentPage\" [perPageLimit]=\"activeCategory?.categoryRiskLimit\" [totalListData]=\"activeCategory?.categoryRiskCount\" [totalPages]=\"getTotalRiskPage()\" (getUpdatedDataList)=\"getUpdatedDataList($event)\" ></app-grc-risk-listing>\n <app-list-loader *ngIf=\"isRiskLoader || isCategoryLoader\"></app-list-loader>\n <app-no-data *ngIf=\"risksList?.length === 0 && !(isRiskLoader || isCategoryLoader)\" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n </ng-container>\n <app-no-data *ngIf=\"(!isCategoryLoader && !categoriesList?.length)\" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n <app-floating-bar [selectedData]=\"selectedRisks?.length ? selectedRisks : []\" (closeList)=\"close()\" (closeEvent)=\"save()\" [displayElementKey]=\"'name'\" [singularText]=\"'Risk selected'\" [pluralText]=\"'Risks selected'\" (deleteEvent)=\"deleteEvent($event)\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .risk-category-risk-listing{position:fixed;inset:0 30px 0 0}::ng-deep .risk-category-risk-listing:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .risk-category-risk-listing.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .risk-category-risk-listing-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-risk-listing-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .risk-category-risk-listing-body .search-block{position:relative}::ng-deep .risk-category-risk-listing-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .risk-category-risk-listing-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .risk-category-risk-listing-body .search-block input::placeholder{color:#747576}::ng-deep .risk-category-risk-listing-body .search-block i{position:absolute;left:1rem;font-size:12px;font-weight:400;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .risk-category-risk-listing-body-inner{height:calc(100vh - 17.5rem)}::ng-deep .risk-category-risk-listing-body-inner.with-noData{align-items:center;justify-content:center}::ng-deep .risk-category-risk-listing-body-inner .inner-item-left{width:25%}::ng-deep .risk-category-risk-listing-body-inner .inner-item-right{width:75%}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "ngmodule", type: FormgroupModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: FloatingBarModule }, { kind: "component", type: i3.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: TableCardComponent, selector: "app-table-card", inputs: ["singleSelectedText", "multipleSelectedText", "selectedTab", "tableCard"], outputs: ["setSelectedTab"] }, { kind: "component", type: GrcCategoryListingComponent, selector: "app-grc-category-listing", inputs: ["tableCard", "headerText", "currentPage", "selectedTabIndex", "selectedCatAndRisk", "selectedCategoryIds", "categories", "programData"], outputs: ["activeSelectedCategory", "onCategoryPageChange"] }, { kind: "component", type: GrcRiskListingComponent, selector: "app-grc-risk-listing", inputs: ["tableCard", "activeCategory", "headerText", "currentPage", "perPageLimit", "totalListData", "totalPages", "selectedListData", "selectedListDataIds", "selectedCatAndRisk", "calledFrom", "dataList"], outputs: ["getUpdatedDataList", "changeSelectedCatAndRisk"] }, { kind: "ngmodule", type: ListLoaderModule }, { kind: "component", type: i4.ListLoaderComponent, selector: "app-list-loader" }, { kind: "ngmodule", type: NoDataModule }, { kind: "component", type: i5.NoDataComponentUI, selector: "app-no-data", inputs: ["action", "secondaryAction", "noDataImage", "noDataText", "noDataButton", "secondaryButton", "noDataSecButton", "altText", "smallButton"], outputs: ["buttonAction", "secondaryActionButton"] }] }); }
|
|
215
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RiskCategoryRiskListingComponent, isStandalone: true, selector: "app-risk-category-risk-listing", inputs: { selectedTab: "selectedTab", selectedCatAndRiskData: ["selectedCatAndRisk", "selectedCatAndRiskData"], selectedRC: "selectedRC" }, outputs: { closeUsersList: "closeUsersList" }, viewQueries: [{ propertyName: "responsibilityListingComponent", first: true, predicate: ["dataListing"], descendants: true }], ngImport: i0, template: "<div class=\"risk-category-risk-listing\" [class.animate]=\"animation\">\n <div class=\"risk-category-risk-listing-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\n <h3 class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select Risks</h3></div>\n <div class=\"risk-category-risk-listing-body\">\n <app-table-card class=\"vx-w-100\" [tableCard]=\"tableCard\" [singleSelectedText]=\"'Category Selected'\" [multipleSelectedText]=\"'Categories Selected'\" (setSelectedTab)=\"setSelectedTab($event)\" [selectedTab]=\"1\"></app-table-card>\n <div class=\"search-block vx-mb-2\">\n <i class=\"icons\"></i>\n <input type=\"text\" #searchRiskCategory (keyup.enter)=\"handleSearch($event.target.value)\" placeholder=\"Search Risk Categories\" />\n </div>\n <div class=\"risk-category-risk-listing-body-inner vx-mb-2 vx-d-flex\" [class.with-noData]=\"(!isCategoryLoader && !categoriesList?.length)\">\n <ng-container *ngIf=\"isCategoryLoader || categoriesList?.length\">\n <div class=\"inner-item-left vx-pr-2\">\n <app-grc-category-listing *ngIf=\"!isCategoryLoader\" [headerText]=\"'Risk Categories'\" [categories]=\"categoriesList\" [selectedCatAndRisk]=\"selectedCatAndRisk\" [tableCard]=\"tableCard\" [currentPage]=\"categoryCurrentPage\" [selectedTabIndex]=\"selectedTab\" [selectedCategoryIds]=\"selectedCategoryIds\" (activeSelectedCategory)=\"activeSelectedCategory($event)\" (onCategoryPageChange)=\"onCategoryPageChange($event)\"></app-grc-category-listing>\n <app-list-loader *ngIf=\"isCategoryLoader\"></app-list-loader>\n </div>\n <div class=\"inner-item-right\">\n <app-grc-risk-listing #dataListing *ngIf=\"!isRiskLoader && !isCategoryLoader && risksList?.length\" [headerText]=\"'Risk Name'\" [dataList]=\"risksList\" [activeCategory]=\"activeCategory\" [selectedCatAndRisk]=\"selectedCatAndRisk\" (changeSelectedCatAndRisk)=\"changeSelectedCatAndRisk($event)\" [currentPage]=\"riskCurrentPage\" [perPageLimit]=\"activeCategory?.categoryRiskLimit\" [totalListData]=\"activeCategory?.categoryRiskCount\" [totalPages]=\"getTotalRiskPage()\" (getUpdatedDataList)=\"getUpdatedDataList($event)\" ></app-grc-risk-listing>\n <app-list-loader *ngIf=\"isRiskLoader || isCategoryLoader\"></app-list-loader>\n <app-no-data *ngIf=\"risksList?.length === 0 && !(isRiskLoader || isCategoryLoader)\" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n </ng-container>\n <app-no-data *ngIf=\"(!isCategoryLoader && !categoriesList?.length)\" [noDataImage]=\"CDN_LINK?.noData\" [noDataText]=\"'No data to display'\"></app-no-data>\n </div>\n <app-floating-bar [selectedData]=\"selectedRisks?.length ? selectedRisks : []\" (closeList)=\"close()\" (closeEvent)=\"save()\" [displayElementKey]=\"'name'\" [singularText]=\"'Risk selected'\" [pluralText]=\"'Risks selected'\" (deleteEvent)=\"deleteEvent($event)\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .risk-category-risk-listing{position:fixed;inset:0 30px 0 0}::ng-deep .risk-category-risk-listing:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .risk-category-risk-listing.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .risk-category-risk-listing-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .risk-category-risk-listing-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .risk-category-risk-listing-body .search-block{position:relative}::ng-deep .risk-category-risk-listing-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .risk-category-risk-listing-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .risk-category-risk-listing-body .search-block input::placeholder{color:#747576}::ng-deep .risk-category-risk-listing-body .search-block i{position:absolute;left:1rem;font-size:12px;font-weight:400;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .risk-category-risk-listing-body-inner{height:calc(100vh - 17.5rem)}::ng-deep .risk-category-risk-listing-body-inner.with-noData{align-items:center;justify-content:center}::ng-deep .risk-category-risk-listing-body-inner .inner-item-left{width:25%}::ng-deep .risk-category-risk-listing-body-inner .inner-item-right{width:75%}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "ngmodule", type: FormgroupModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: FloatingBarModule }, { kind: "component", type: i3.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: TableCardComponent, selector: "app-table-card", inputs: ["singleSelectedText", "multipleSelectedText", "selectedTab", "tableCard"], outputs: ["setSelectedTab"] }, { kind: "component", type: GrcCategoryListingComponent, selector: "app-grc-category-listing", inputs: ["tableCard", "headerText", "currentPage", "selectedTabIndex", "selectedCatAndRisk", "selectedCategoryIds", "categories", "programData"], outputs: ["activeSelectedCategory", "onCategoryPageChange"] }, { kind: "component", type: GrcRiskListingComponent, selector: "app-grc-risk-listing", inputs: ["tableCard", "activeCategory", "headerText", "currentPage", "perPageLimit", "totalListData", "totalPages", "selectedListData", "selectedListDataIds", "selectedCatAndRisk", "calledFrom", "dataList"], outputs: ["getUpdatedDataList", "changeSelectedCatAndRisk"] }, { kind: "ngmodule", type: ListLoaderModule }, { kind: "component", type: i4.ListLoaderComponent, selector: "app-list-loader", inputs: ["fullWidth"] }, { kind: "ngmodule", type: NoDataModule }, { kind: "component", type: i5.NoDataComponentUI, selector: "app-no-data", inputs: ["action", "secondaryAction", "noDataImage", "noDataText", "noDataButton", "secondaryButton", "noDataSecButton", "altText", "smallButton"], outputs: ["buttonAction", "secondaryActionButton"] }] }); }
|
|
216
216
|
}
|
|
217
217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RiskCategoryRiskListingComponent, decorators: [{
|
|
218
218
|
type: Component,
|
|
@@ -238,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
238
238
|
type: ViewChild,
|
|
239
239
|
args: ['dataListing']
|
|
240
240
|
}] } });
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvc2hhcmVkL2NvbXBvbmVudHMvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3Rpbmcvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvc2hhcmVkL2NvbXBvbmVudHMvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3Rpbmcvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFekYs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R0FBaEMsZ0NBQWdDLG9aQzVDN0MsaW1HQXlCTSwwd0RERUYsWUFBWSxrSUFDWixhQUFhLDhCQUNiLGVBQWUsOEJBQ2YsYUFBYSw4QkFDYixpQkFBaUIsNmtCQUNqQixnQkFBZ0IsK0JBQ2hCLGtCQUFrQiw0S0FDbEIsMkJBQTJCLG9SQUMzQix1QkFBdUIsNlVBQ3ZCLGdCQUFnQixnSEFDaEIsWUFBWTs7NEZBT0gsZ0NBQWdDO2tCQXJCNUMsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsWUFBWTtxQkFDYixVQUdPLENBQUMsYUFBYSxDQUFDLFdBQ2QsQ0FBQyxnQkFBZ0IsQ0FBQztpR0EwQk0sc0JBQXNCO3NCQUF0RCxLQUFLO3VCQUFDLG9CQUFvQjtnQkFNbEIsVUFBVTtzQkFBbEIsS0FBSztnQkFLTiw4QkFBOEI7c0JBRDdCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvYXRpbmdCYXJNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIubW9kdWxlJztcbmltcG9ydCB7IEZvcm1ncm91cE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9mb3JtZ3JvdXAvZm9ybWdyb3VwLm1vZHVsZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi91aS1raXQvdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBUYWJsZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1jYXJkL3RhYmxlLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEdyY0NhdGVnb3J5TGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1jYXRlZ29yeS1saXN0aW5nL2dyYy1jYXRlZ29yeS1saXN0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmNSaXNrTGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1yaXNrLWxpc3RpbmcvZ3JjLXJpc2stbGlzdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JjU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyYy5zZXJ2aWNlJztcbmltcG9ydCB7IFRBQkxFX0NBUkQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZ3JjT2JqZWN0LmNvbnN0YW50JztcbmltcG9ydCB7IE5vRGF0YU1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9uby1kYXRhL25vLWRhdGEubW9kdWxlJztcbmltcG9ydCB7IExJTktTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Nkbi1saW5rLmNvbnN0YW50JztcbmltcG9ydCB7IExpc3RMb2FkZXJNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL2xpc3QtbG9hZGVyL2xpc3QtbG9hZGVyLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yaXNrLWNhdGVnb3J5LXJpc2stbGlzdGluZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBGb3JtZ3JvdXBNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBGbG9hdGluZ0Jhck1vZHVsZSxcbiAgICBQYWdpbmF0aW9uTW9kdWxlLFxuICAgIFRhYmxlQ2FyZENvbXBvbmVudCxcbiAgICBHcmNDYXRlZ29yeUxpc3RpbmdDb21wb25lbnQsXG4gICAgR3JjUmlza0xpc3RpbmdDb21wb25lbnQsXG4gICAgTGlzdExvYWRlck1vZHVsZSxcbiAgICBOb0RhdGFNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yaXNrLWNhdGVnb3J5LXJpc2stbGlzdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jpc2stY2F0ZWdvcnktcmlzay1saXN0aW5nLmNvbXBvbmVudC5sZXNzJ10sXG4gIGlucHV0czogWydzZWxlY3RlZFRhYiddLFxuICBvdXRwdXRzOiBbJ2Nsb3NlVXNlcnNMaXN0J10sXG59KVxuZXhwb3J0IGNsYXNzIFJpc2tDYXRlZ29yeVJpc2tMaXN0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGFibGVDYXJkID0gVEFCTEVfQ0FSRDtcbiAgQ0ROX0xJTksgPSBMSU5LUztcblxuICBjYXRlZ29yeVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcmlza1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgaXNDYXRlZ29yeUxvYWRlciA9IGZhbHNlO1xuICBpc1Jpc2tMb2FkZXIgPSBmYWxzZTtcblxuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMTtcbiAgY2F0ZWdvcnlDdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgc2VhcmNoU3RyaW5nOiBzdHJpbmcgPSAnJztcbiAgY2F0ZWdvcmllc0xpc3Q6IGFueSA9IFtdO1xuICByaXNrc0xpc3Q6IGFueSA9IFtdO1xuICBhY3RpdmVDYXRlZ29yeTogYW55ID0ge307XG4gIHJpc2tDdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgc2VsZWN0ZWRDYXRBbmRSaXNrOiBhbnkgPSBbXTtcbiAgcHJlU2VsZWN0ZWRDYXRBbmRSaXNrOiBhbnkgPSBbXTtcbiAgc2VsZWN0ZWRDYXRlZ29yeUlkczogYW55ID0gW107XG4gIHNlbGVjdGVkQ2F0ZWdvcmllczogYW55ID0gW107XG4gIHNlbGVjdGVkUmlza3M6IGFueSA9IFtdO1xuXG4gIEBJbnB1dCgnc2VsZWN0ZWRDYXRBbmRSaXNrJykgc2V0IHNlbGVjdGVkQ2F0QW5kUmlza0RhdGEodmFsdWU6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRBbmRSaXNrID0gdmFsdWU7XG4gICAgdGhpcy5wcmVTZWxlY3RlZENhdEFuZFJpc2sgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgdGhpcy5nZXRTZWxlY3RlZENhdGVnb3JpZXNJZCh0aGlzLnNlbGVjdGVkQ2F0QW5kUmlzayk7XG4gICAgdGhpcy5nZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBzZWxlY3RlZFJDOiBhbnlbXSA9IFtdO1xuXG4gIGNsb3NlVXNlcnNMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCdkYXRhTGlzdGluZycpXG4gIHJlc3BvbnNpYmlsaXR5TGlzdGluZ0NvbXBvbmVudCE6IEdyY1Jpc2tMaXN0aW5nQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JjU2VydmljZTogR3JjU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gICAgdGhpcy5nZXRDYXRlZ29yaWVzTGlzdCgpO1xuICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0NvdW50KCk7XG4gIH1cblxuICBzZXRTZWxlY3RlZFRhYihldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IGV2ZW50Py50eXBlO1xuICAgIHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5nZXRDYXRlZ29yaWVzTGlzdCgpO1xuICB9XG5cbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2F0ZWdvcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgbGV0IHF1ZXJ5UGFyYW0gPSB7XG4gICAgICBwYWdlTm86IHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA/PyAxLFxuICAgICAgc2VhcmNoU3RyaW5nOiB0aGlzLnNlYXJjaFN0cmluZyA/PyAnJyxcbiAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRUYWIgPz8gMSxcbiAgICB9O1xuICAgIHRoaXMuaXNDYXRlZ29yeUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jYXRlZ29yeVN1YnNjcmlwdGlvbiA9IHRoaXMuZ3JjU2VydmljZVxuICAgICAgLmdldFJpc2tDYXRlZ29yaWVzKHF1ZXJ5UGFyYW0pXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmNhdGVnb3JpZXNMaXN0ID0gcmVzPy5tYXAoKGNhdGVnb3J5OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmNhdGVnb3J5LFxuICAgICAgICAgICAgICBuYW1lOiBjYXRlZ29yeT8uY2F0ZWdvcnlfbmFtZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5yaXNrQ3VycmVudFBhZ2UgPSAxO1xuICAgICAgICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3JpZXNMaXN0Py5sZW5ndGhcbiAgICAgICAgICAgID8gdGhpcy5jYXRlZ29yaWVzTGlzdFswXVxuICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgICB0aGlzLmNhdGVnb3JpZXNMaXN0Py5sZW5ndGggPyB0aGlzLmdldFJpc2tMaXN0KCkgOiBudWxsO1xuICAgICAgICAgIHRoaXMuaXNDYXRlZ29yeUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENhdGVnb3JpZXNDb3VudCgpIHtcbiAgICBsZXQgcXVlcnlQYXJhbSA9IHtcbiAgICAgIHNlYXJjaFN0cmluZzogdGhpcy5zZWFyY2hTdHJpbmcgPz8gJycsXG4gICAgICByY19pZHM6IHRoaXMuc2VsZWN0ZWRSQz8ubWFwKChyYzogYW55KSA9PiByYz8ucmNfaWQpID8/IFtdLFxuICAgIH07XG4gICAgdGhpcy5ncmNTZXJ2aWNlLmdldFJpc2tDYXRlZ29yaWVzQ291bnQocXVlcnlQYXJhbSkuc3Vic2NyaWJlKFxuICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudGFibGVDYXJkID0gcmVzLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtPy5jYXRlZ29yeVR5cGVOYW1lLFxuICAgICAgICAgICAgY291bnQ6IGl0ZW0/LmNhdGVnb3J5Q291bnQsXG4gICAgICAgICAgICB0eXBlOiBpdGVtPy5jYXRlZ29yeVR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgKGVycjogYW55KSA9PiB7fVxuICAgICk7XG4gIH1cblxuICBnZXRSaXNrTGlzdChjbGlja2VkVHlwZT86IGFueSkge1xuICAgIGlmICh0aGlzLnJpc2tTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucmlza1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBsZXQgcGF5bG9hZCA9IHtcbiAgICAgIHA6IHRoaXMucmlza0N1cnJlbnRQYWdlID8/IDEsXG4gICAgICBxOiB0aGlzLnNlYXJjaFN0cmluZyA/PyAnJyxcbiAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRUYWIgPz8gMSxcbiAgICAgIHNvdXJjZTogJ3Jpc2tfY2F0ZWdvcnknLFxuICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuYWN0aXZlQ2F0ZWdvcnk/LmNhdGVnb3J5X2lkID8/IFtdLFxuICAgICAgcmNfaWRzOiB0aGlzLnNlbGVjdGVkUkM/Lm1hcCgocmM6IGFueSkgPT4gcmM/LnJjX2lkKS5qb2luKCkgPz8gJycsXG4gICAgfTtcbiAgICB0aGlzLmlzUmlza0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5yaXNrU3Vic2NyaXB0aW9uID0gdGhpcy5ncmNTZXJ2aWNlLmdldFJpc2tzKHBheWxvYWQpLnN1YnNjcmliZShcbiAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJpc2tzTGlzdCA9IHRoaXMuc2V0RGF0YUxpc3RTdHJ1Y3R1cmUocmVzKTtcbiAgICAgICAgdGhpcy5pc1Jpc2tMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1Jpc2tMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc2V0RGF0YUxpc3RTdHJ1Y3R1cmUocmVzOiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gcmVzPy5tYXAoKHJpc2s6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucmlzayxcbiAgICAgICAgbmFtZTogcmlzaz8uUmlza05hbWUsXG4gICAgICAgIGNvbnRyb2xJZDogcmlzaz8uUmlza0NvbnRyb2xJZCxcbiAgICAgICAgX2lkOiByaXNrPy5FbmNyeXB0ZWRSaXNrSWQsXG4gICAgICAgIGVudHJ1c3RlZEJ5OiB7XG4gICAgICAgICAgbmFtZTogcmlzaz8uTWVtYmVyTmFtZSxcbiAgICAgICAgICBlbWFpbDogcmlzaz8uTWVtYmVyRW1haWwsXG4gICAgICAgICAgcHJvZmlsZVBpYzogcmlzaz8uTWVtYmVyUHJvZmlsZVBpYyA/PyAnJyxcbiAgICAgICAgICBzaG9ydE5hbWU6IHJpc2s/Lk1lbWJlclNvcnROYW1lLFxuICAgICAgICB9LFxuICAgICAgICBlbnRydXN0ZWRUbzoge30sXG4gICAgICAgIHdpdGhpbkRhdGE6IHJpc2s/LkVudGl0eT8ubWFwKCh3aXRoaW46IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiB3aXRoaW4/LnJjX25hbWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgYWN0aXZlU2VsZWN0ZWRDYXRlZ29yeShldmVudDogYW55KSB7XG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IGV2ZW50Py5jYXRlZ29yeTtcbiAgICB0aGlzLnJpc2tDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5nZXRSaXNrTGlzdChldmVudD8uY2xpY2tlZFR5cGUpO1xuICB9XG5cbiAgZ2V0VXBkYXRlZERhdGFMaXN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJpc2tDdXJyZW50UGFnZSA9IGV2ZW50Py5wYWdlTm87XG4gICAgdGhpcy5nZXRSaXNrTGlzdCgpO1xuICB9XG5cbiAgZ2V0VG90YWxSaXNrUGFnZSgpIHtcbiAgICBjb25zdCB0b3RhbFBhZ2UgPVxuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrQ291bnQgL1xuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrTGltaXQ7XG4gICAgcmV0dXJuIE1hdGguY2VpbChNYXRoLmFicyh0b3RhbFBhZ2UpKTtcbiAgfVxuXG4gIGhhbmRsZVNlYXJjaChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoU3RyaW5nICE9IGV2ZW50KSB7XG4gICAgICB0aGlzLmNhdGVnb3J5Q3VycmVudFBhZ2UgPSAxO1xuICAgICAgdGhpcy5zZWFyY2hTdHJpbmcgPSBldmVudDtcbiAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0xpc3QoKTtcbiAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0NvdW50KCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZVVzZXJzTGlzdC5lbWl0KHRoaXMucHJlU2VsZWN0ZWRDYXRBbmRSaXNrKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5jbG9zZVVzZXJzTGlzdC5lbWl0KHRoaXMuc2VsZWN0ZWRDYXRBbmRSaXNrKTtcbiAgfVxuXG4gIG9uQ2F0ZWdvcnlQYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmNhdGVnb3J5Q3VycmVudFBhZ2UgPSBldmVudD8ucGFnZU5vO1xuICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0xpc3QoKTtcbiAgfVxuXG4gIGNoYW5nZVNlbGVjdGVkQ2F0QW5kUmlzayhldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZENhdEFuZFJpc2sgPSBldmVudDtcbiAgICB0aGlzLmdldFJpc2tDYXRlZ29yeVBheWxvYWQoZXZlbnQpO1xuICAgIHRoaXMuZ2V0U2VsZWN0ZWRDYXRlZ29yaWVzSWQodGhpcy5zZWxlY3RlZENhdEFuZFJpc2spO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRDYXRlZ29yaWVzSWQoc2VsZWN0ZWREYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZHMgPSBbXTtcbiAgICBzZWxlY3RlZERhdGE/LmZvckVhY2goKHNlbGVjdGVkOiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZD8uY2F0ZWdvcnk/Ll9pZCA9PT0gJ3VuY2F0ZWdvcml6ZWQnKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkcz8ucHVzaCgndW5jYXRlZ29yaXplZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWRzPy5wdXNoKHNlbGVjdGVkPy5jYXRlZ29yeT8uY2F0ZWdvcnlfaWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChzZWxlY3RlZERhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSaXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzID0gW107XG4gICAgc2VsZWN0ZWREYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZFJpc2tzLnB1c2goLi4uaXRlbT8ucmlza3MpO1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMucHVzaChpdGVtPy5jYXRlZ29yeSk7XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlQ2F0ZWdvcnk/LmNhdGVnb3J5X2lkID09IGV2ZW50Py5DYXRlZ29yeUlkc1swXSkge1xuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxpc3RpbmdDb21wb25lbnQuZ2V0U2VsZWN0ZWREYXRhKGV2ZW50LCBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50Py5kZWxldGVTZWxlY3RlZFJpc2soXG4gICAgICAgIGV2ZW50Py5DYXRlZ29yeUlkc1swXSxcbiAgICAgICAgZXZlbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmdcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmctaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBSaXNrczwvaDM+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktcmlzay1saXN0aW5nLWJvZHlcIj5cbiAgICAgICAgPGFwcC10YWJsZS1jYXJkIGNsYXNzPVwidngtdy0xMDBcIiBbdGFibGVDYXJkXT1cInRhYmxlQ2FyZFwiIFtzaW5nbGVTZWxlY3RlZFRleHRdPVwiJ0NhdGVnb3J5IFNlbGVjdGVkJ1wiIFttdWx0aXBsZVNlbGVjdGVkVGV4dF09XCInQ2F0ZWdvcmllcyBTZWxlY3RlZCdcIiAoc2V0U2VsZWN0ZWRUYWIpPVwic2V0U2VsZWN0ZWRUYWIoJGV2ZW50KVwiIFtzZWxlY3RlZFRhYl09XCIxXCI+PC9hcHAtdGFibGUtY2FyZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC1tYi0yXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICAjc2VhcmNoUmlza0NhdGVnb3J5IChrZXl1cC5lbnRlcik9XCJoYW5kbGVTZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSaXNrIENhdGVnb3JpZXNcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktcmlzay1saXN0aW5nLWJvZHktaW5uZXIgdngtbWItMiB2eC1kLWZsZXhcIiBbY2xhc3Mud2l0aC1ub0RhdGFdPVwiKCFpc0NhdGVnb3J5TG9hZGVyICYmICFjYXRlZ29yaWVzTGlzdD8ubGVuZ3RoKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ2F0ZWdvcnlMb2FkZXIgfHwgY2F0ZWdvcmllc0xpc3Q/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lci1pdGVtLWxlZnQgdngtcHItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWdyYy1jYXRlZ29yeS1saXN0aW5nICpuZ0lmPVwiIWlzQ2F0ZWdvcnlMb2FkZXJcIiBbaGVhZGVyVGV4dF09XCInUmlzayBDYXRlZ29yaWVzJ1wiIFtjYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNMaXN0XCIgIFtzZWxlY3RlZENhdEFuZFJpc2tdPVwic2VsZWN0ZWRDYXRBbmRSaXNrXCIgW3RhYmxlQ2FyZF09XCJ0YWJsZUNhcmRcIiBbY3VycmVudFBhZ2VdPVwiY2F0ZWdvcnlDdXJyZW50UGFnZVwiIFtzZWxlY3RlZFRhYkluZGV4XT1cInNlbGVjdGVkVGFiXCIgW3NlbGVjdGVkQ2F0ZWdvcnlJZHNdPVwic2VsZWN0ZWRDYXRlZ29yeUlkc1wiIChhY3RpdmVTZWxlY3RlZENhdGVnb3J5KT1cImFjdGl2ZVNlbGVjdGVkQ2F0ZWdvcnkoJGV2ZW50KVwiIChvbkNhdGVnb3J5UGFnZUNoYW5nZSk9XCJvbkNhdGVnb3J5UGFnZUNoYW5nZSgkZXZlbnQpXCI+PC9hcHAtZ3JjLWNhdGVnb3J5LWxpc3Rpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbGlzdC1sb2FkZXIgKm5nSWY9XCJpc0NhdGVnb3J5TG9hZGVyXCI+PC9hcHAtbGlzdC1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyLWl0ZW0tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1ncmMtcmlzay1saXN0aW5nICNkYXRhTGlzdGluZyAqbmdJZj1cIiFpc1Jpc2tMb2FkZXIgJiYgIWlzQ2F0ZWdvcnlMb2FkZXIgJiYgcmlza3NMaXN0Py5sZW5ndGhcIiBbaGVhZGVyVGV4dF09XCInUmlzayBOYW1lJ1wiIFtkYXRhTGlzdF09XCJyaXNrc0xpc3RcIiBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIiBbc2VsZWN0ZWRDYXRBbmRSaXNrXT1cInNlbGVjdGVkQ2F0QW5kUmlza1wiIChjaGFuZ2VTZWxlY3RlZENhdEFuZFJpc2spPVwiY2hhbmdlU2VsZWN0ZWRDYXRBbmRSaXNrKCRldmVudClcIiBbY3VycmVudFBhZ2VdPVwicmlza0N1cnJlbnRQYWdlXCIgW3BlclBhZ2VMaW1pdF09XCJhY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrTGltaXRcIiBbdG90YWxMaXN0RGF0YV09XCJhY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrQ291bnRcIiBbdG90YWxQYWdlc109XCJnZXRUb3RhbFJpc2tQYWdlKClcIiAoZ2V0VXBkYXRlZERhdGFMaXN0KT1cImdldFVwZGF0ZWREYXRhTGlzdCgkZXZlbnQpXCIgPjwvYXBwLWdyYy1yaXNrLWxpc3Rpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbGlzdC1sb2FkZXIgKm5nSWY9XCJpc1Jpc2tMb2FkZXIgfHwgaXNDYXRlZ29yeUxvYWRlclwiPjwvYXBwLWxpc3QtbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJyaXNrc0xpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhKGlzUmlza0xvYWRlciB8fCBpc0NhdGVnb3J5TG9hZGVyKVwiIFtub0RhdGFJbWFnZV09XCJDRE5fTElOSz8ubm9EYXRhXCIgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIj48L2FwcC1uby1kYXRhPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCIoIWlzQ2F0ZWdvcnlMb2FkZXIgJiYgIWNhdGVnb3JpZXNMaXN0Py5sZW5ndGgpXCIgW25vRGF0YUltYWdlXT1cIkNETl9MSU5LPy5ub0RhdGFcIiBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXBwLWZsb2F0aW5nLWJhciAgW3NlbGVjdGVkRGF0YV09XCJzZWxlY3RlZFJpc2tzPy5sZW5ndGggPyBzZWxlY3RlZFJpc2tzIDogW11cIiAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCIgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCIgIFtkaXNwbGF5RWxlbWVudEtleV09XCInbmFtZSdcIiBbc2luZ3VsYXJUZXh0XT1cIidSaXNrIHNlbGVjdGVkJ1wiIFtwbHVyYWxUZXh0XT1cIidSaXNrcyBzZWxlY3RlZCdcIiAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoJGV2ZW50KVwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvc2hhcmVkL2NvbXBvbmVudHMvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3Rpbmcvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvc2hhcmVkL2NvbXBvbmVudHMvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3Rpbmcvcmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFekYs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R0FBaEMsZ0NBQWdDLG9aQzVDN0MsaW1HQXlCTSwwd0RERUYsWUFBWSxrSUFDWixhQUFhLDhCQUNiLGVBQWUsOEJBQ2YsYUFBYSw4QkFDYixpQkFBaUIsNmtCQUNqQixnQkFBZ0IsK0JBQ2hCLGtCQUFrQiw0S0FDbEIsMkJBQTJCLG9SQUMzQix1QkFBdUIsNlVBQ3ZCLGdCQUFnQix1SUFDaEIsWUFBWTs7NEZBT0gsZ0NBQWdDO2tCQXJCNUMsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsWUFBWTtxQkFDYixVQUdPLENBQUMsYUFBYSxDQUFDLFdBQ2QsQ0FBQyxnQkFBZ0IsQ0FBQztpR0EwQk0sc0JBQXNCO3NCQUF0RCxLQUFLO3VCQUFDLG9CQUFvQjtnQkFNbEIsVUFBVTtzQkFBbEIsS0FBSztnQkFLTiw4QkFBOEI7c0JBRDdCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvYXRpbmdCYXJNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIubW9kdWxlJztcbmltcG9ydCB7IEZvcm1ncm91cE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9mb3JtZ3JvdXAvZm9ybWdyb3VwLm1vZHVsZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdWkta2l0L3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi91aS1raXQvdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBUYWJsZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1jYXJkL3RhYmxlLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEdyY0NhdGVnb3J5TGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1jYXRlZ29yeS1saXN0aW5nL2dyYy1jYXRlZ29yeS1saXN0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmNSaXNrTGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2dyYy1yaXNrLWxpc3RpbmcvZ3JjLXJpc2stbGlzdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JjU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyYy5zZXJ2aWNlJztcbmltcG9ydCB7IFRBQkxFX0NBUkQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZ3JjT2JqZWN0LmNvbnN0YW50JztcbmltcG9ydCB7IE5vRGF0YU1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3VpLWtpdC9uby1kYXRhL25vLWRhdGEubW9kdWxlJztcbmltcG9ydCB7IExJTktTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Nkbi1saW5rLmNvbnN0YW50JztcbmltcG9ydCB7IExpc3RMb2FkZXJNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL2xpc3QtbG9hZGVyL2xpc3QtbG9hZGVyLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yaXNrLWNhdGVnb3J5LXJpc2stbGlzdGluZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBGb3JtZ3JvdXBNb2R1bGUsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBGbG9hdGluZ0Jhck1vZHVsZSxcbiAgICBQYWdpbmF0aW9uTW9kdWxlLFxuICAgIFRhYmxlQ2FyZENvbXBvbmVudCxcbiAgICBHcmNDYXRlZ29yeUxpc3RpbmdDb21wb25lbnQsXG4gICAgR3JjUmlza0xpc3RpbmdDb21wb25lbnQsXG4gICAgTGlzdExvYWRlck1vZHVsZSxcbiAgICBOb0RhdGFNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yaXNrLWNhdGVnb3J5LXJpc2stbGlzdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jpc2stY2F0ZWdvcnktcmlzay1saXN0aW5nLmNvbXBvbmVudC5sZXNzJ10sXG4gIGlucHV0czogWydzZWxlY3RlZFRhYiddLFxuICBvdXRwdXRzOiBbJ2Nsb3NlVXNlcnNMaXN0J10sXG59KVxuZXhwb3J0IGNsYXNzIFJpc2tDYXRlZ29yeVJpc2tMaXN0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGFibGVDYXJkID0gVEFCTEVfQ0FSRDtcbiAgQ0ROX0xJTksgPSBMSU5LUztcblxuICBjYXRlZ29yeVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcmlza1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgaXNDYXRlZ29yeUxvYWRlciA9IGZhbHNlO1xuICBpc1Jpc2tMb2FkZXIgPSBmYWxzZTtcblxuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMTtcbiAgY2F0ZWdvcnlDdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgc2VhcmNoU3RyaW5nOiBzdHJpbmcgPSAnJztcbiAgY2F0ZWdvcmllc0xpc3Q6IGFueSA9IFtdO1xuICByaXNrc0xpc3Q6IGFueSA9IFtdO1xuICBhY3RpdmVDYXRlZ29yeTogYW55ID0ge307XG4gIHJpc2tDdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgc2VsZWN0ZWRDYXRBbmRSaXNrOiBhbnkgPSBbXTtcbiAgcHJlU2VsZWN0ZWRDYXRBbmRSaXNrOiBhbnkgPSBbXTtcbiAgc2VsZWN0ZWRDYXRlZ29yeUlkczogYW55ID0gW107XG4gIHNlbGVjdGVkQ2F0ZWdvcmllczogYW55ID0gW107XG4gIHNlbGVjdGVkUmlza3M6IGFueSA9IFtdO1xuXG4gIEBJbnB1dCgnc2VsZWN0ZWRDYXRBbmRSaXNrJykgc2V0IHNlbGVjdGVkQ2F0QW5kUmlza0RhdGEodmFsdWU6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRBbmRSaXNrID0gdmFsdWU7XG4gICAgdGhpcy5wcmVTZWxlY3RlZENhdEFuZFJpc2sgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgdGhpcy5nZXRTZWxlY3RlZENhdGVnb3JpZXNJZCh0aGlzLnNlbGVjdGVkQ2F0QW5kUmlzayk7XG4gICAgdGhpcy5nZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBzZWxlY3RlZFJDOiBhbnlbXSA9IFtdO1xuXG4gIGNsb3NlVXNlcnNMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCdkYXRhTGlzdGluZycpXG4gIHJlc3BvbnNpYmlsaXR5TGlzdGluZ0NvbXBvbmVudCE6IEdyY1Jpc2tMaXN0aW5nQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JjU2VydmljZTogR3JjU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gICAgdGhpcy5nZXRDYXRlZ29yaWVzTGlzdCgpO1xuICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0NvdW50KCk7XG4gIH1cblxuICBzZXRTZWxlY3RlZFRhYihldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IGV2ZW50Py50eXBlO1xuICAgIHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5nZXRDYXRlZ29yaWVzTGlzdCgpO1xuICB9XG5cbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2F0ZWdvcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgbGV0IHF1ZXJ5UGFyYW0gPSB7XG4gICAgICBwYWdlTm86IHRoaXMuY2F0ZWdvcnlDdXJyZW50UGFnZSA/PyAxLFxuICAgICAgc2VhcmNoU3RyaW5nOiB0aGlzLnNlYXJjaFN0cmluZyA/PyAnJyxcbiAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRUYWIgPz8gMSxcbiAgICB9O1xuICAgIHRoaXMuaXNDYXRlZ29yeUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jYXRlZ29yeVN1YnNjcmlwdGlvbiA9IHRoaXMuZ3JjU2VydmljZVxuICAgICAgLmdldFJpc2tDYXRlZ29yaWVzKHF1ZXJ5UGFyYW0pXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmNhdGVnb3JpZXNMaXN0ID0gcmVzPy5tYXAoKGNhdGVnb3J5OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmNhdGVnb3J5LFxuICAgICAgICAgICAgICBuYW1lOiBjYXRlZ29yeT8uY2F0ZWdvcnlfbmFtZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5yaXNrQ3VycmVudFBhZ2UgPSAxO1xuICAgICAgICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3JpZXNMaXN0Py5sZW5ndGhcbiAgICAgICAgICAgID8gdGhpcy5jYXRlZ29yaWVzTGlzdFswXVxuICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgICB0aGlzLmNhdGVnb3JpZXNMaXN0Py5sZW5ndGggPyB0aGlzLmdldFJpc2tMaXN0KCkgOiBudWxsO1xuICAgICAgICAgIHRoaXMuaXNDYXRlZ29yeUxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENhdGVnb3JpZXNDb3VudCgpIHtcbiAgICBsZXQgcXVlcnlQYXJhbSA9IHtcbiAgICAgIHNlYXJjaFN0cmluZzogdGhpcy5zZWFyY2hTdHJpbmcgPz8gJycsXG4gICAgICByY19pZHM6IHRoaXMuc2VsZWN0ZWRSQz8ubWFwKChyYzogYW55KSA9PiByYz8ucmNfaWQpID8/IFtdLFxuICAgIH07XG4gICAgdGhpcy5ncmNTZXJ2aWNlLmdldFJpc2tDYXRlZ29yaWVzQ291bnQocXVlcnlQYXJhbSkuc3Vic2NyaWJlKFxuICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudGFibGVDYXJkID0gcmVzLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtPy5jYXRlZ29yeVR5cGVOYW1lLFxuICAgICAgICAgICAgY291bnQ6IGl0ZW0/LmNhdGVnb3J5Q291bnQsXG4gICAgICAgICAgICB0eXBlOiBpdGVtPy5jYXRlZ29yeVR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgKGVycjogYW55KSA9PiB7fVxuICAgICk7XG4gIH1cblxuICBnZXRSaXNrTGlzdChjbGlja2VkVHlwZT86IGFueSkge1xuICAgIGlmICh0aGlzLnJpc2tTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucmlza1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBsZXQgcGF5bG9hZCA9IHtcbiAgICAgIHA6IHRoaXMucmlza0N1cnJlbnRQYWdlID8/IDEsXG4gICAgICBxOiB0aGlzLnNlYXJjaFN0cmluZyA/PyAnJyxcbiAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRUYWIgPz8gMSxcbiAgICAgIHNvdXJjZTogJ3Jpc2tfY2F0ZWdvcnknLFxuICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuYWN0aXZlQ2F0ZWdvcnk/LmNhdGVnb3J5X2lkID8/IFtdLFxuICAgICAgcmNfaWRzOiB0aGlzLnNlbGVjdGVkUkM/Lm1hcCgocmM6IGFueSkgPT4gcmM/LnJjX2lkKS5qb2luKCkgPz8gJycsXG4gICAgfTtcbiAgICB0aGlzLmlzUmlza0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5yaXNrU3Vic2NyaXB0aW9uID0gdGhpcy5ncmNTZXJ2aWNlLmdldFJpc2tzKHBheWxvYWQpLnN1YnNjcmliZShcbiAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJpc2tzTGlzdCA9IHRoaXMuc2V0RGF0YUxpc3RTdHJ1Y3R1cmUocmVzKTtcbiAgICAgICAgdGhpcy5pc1Jpc2tMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1Jpc2tMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc2V0RGF0YUxpc3RTdHJ1Y3R1cmUocmVzOiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gcmVzPy5tYXAoKHJpc2s6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucmlzayxcbiAgICAgICAgbmFtZTogcmlzaz8uUmlza05hbWUsXG4gICAgICAgIGNvbnRyb2xJZDogcmlzaz8uUmlza0NvbnRyb2xJZCxcbiAgICAgICAgX2lkOiByaXNrPy5FbmNyeXB0ZWRSaXNrSWQsXG4gICAgICAgIGVudHJ1c3RlZEJ5OiB7XG4gICAgICAgICAgbmFtZTogcmlzaz8uTWVtYmVyTmFtZSxcbiAgICAgICAgICBlbWFpbDogcmlzaz8uTWVtYmVyRW1haWwsXG4gICAgICAgICAgcHJvZmlsZVBpYzogcmlzaz8uTWVtYmVyUHJvZmlsZVBpYyA/PyAnJyxcbiAgICAgICAgICBzaG9ydE5hbWU6IHJpc2s/Lk1lbWJlclNvcnROYW1lLFxuICAgICAgICB9LFxuICAgICAgICBlbnRydXN0ZWRUbzoge30sXG4gICAgICAgIHdpdGhpbkRhdGE6IHJpc2s/LkVudGl0eT8ubWFwKCh3aXRoaW46IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiB3aXRoaW4/LnJjX25hbWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgYWN0aXZlU2VsZWN0ZWRDYXRlZ29yeShldmVudDogYW55KSB7XG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IGV2ZW50Py5jYXRlZ29yeTtcbiAgICB0aGlzLnJpc2tDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5nZXRSaXNrTGlzdChldmVudD8uY2xpY2tlZFR5cGUpO1xuICB9XG5cbiAgZ2V0VXBkYXRlZERhdGFMaXN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJpc2tDdXJyZW50UGFnZSA9IGV2ZW50Py5wYWdlTm87XG4gICAgdGhpcy5nZXRSaXNrTGlzdCgpO1xuICB9XG5cbiAgZ2V0VG90YWxSaXNrUGFnZSgpIHtcbiAgICBjb25zdCB0b3RhbFBhZ2UgPVxuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrQ291bnQgL1xuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrTGltaXQ7XG4gICAgcmV0dXJuIE1hdGguY2VpbChNYXRoLmFicyh0b3RhbFBhZ2UpKTtcbiAgfVxuXG4gIGhhbmRsZVNlYXJjaChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoU3RyaW5nICE9IGV2ZW50KSB7XG4gICAgICB0aGlzLmNhdGVnb3J5Q3VycmVudFBhZ2UgPSAxO1xuICAgICAgdGhpcy5zZWFyY2hTdHJpbmcgPSBldmVudDtcbiAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0xpc3QoKTtcbiAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0NvdW50KCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZVVzZXJzTGlzdC5lbWl0KHRoaXMucHJlU2VsZWN0ZWRDYXRBbmRSaXNrKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5jbG9zZVVzZXJzTGlzdC5lbWl0KHRoaXMuc2VsZWN0ZWRDYXRBbmRSaXNrKTtcbiAgfVxuXG4gIG9uQ2F0ZWdvcnlQYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmNhdGVnb3J5Q3VycmVudFBhZ2UgPSBldmVudD8ucGFnZU5vO1xuICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0xpc3QoKTtcbiAgfVxuXG4gIGNoYW5nZVNlbGVjdGVkQ2F0QW5kUmlzayhldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZENhdEFuZFJpc2sgPSBldmVudDtcbiAgICB0aGlzLmdldFJpc2tDYXRlZ29yeVBheWxvYWQoZXZlbnQpO1xuICAgIHRoaXMuZ2V0U2VsZWN0ZWRDYXRlZ29yaWVzSWQodGhpcy5zZWxlY3RlZENhdEFuZFJpc2spO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRDYXRlZ29yaWVzSWQoc2VsZWN0ZWREYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZHMgPSBbXTtcbiAgICBzZWxlY3RlZERhdGE/LmZvckVhY2goKHNlbGVjdGVkOiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZD8uY2F0ZWdvcnk/Ll9pZCA9PT0gJ3VuY2F0ZWdvcml6ZWQnKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkcz8ucHVzaCgndW5jYXRlZ29yaXplZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWRzPy5wdXNoKHNlbGVjdGVkPy5jYXRlZ29yeT8uY2F0ZWdvcnlfaWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChzZWxlY3RlZERhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSaXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzID0gW107XG4gICAgc2VsZWN0ZWREYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZFJpc2tzLnB1c2goLi4uaXRlbT8ucmlza3MpO1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMucHVzaChpdGVtPy5jYXRlZ29yeSk7XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlQ2F0ZWdvcnk/LmNhdGVnb3J5X2lkID09IGV2ZW50Py5DYXRlZ29yeUlkc1swXSkge1xuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxpc3RpbmdDb21wb25lbnQuZ2V0U2VsZWN0ZWREYXRhKGV2ZW50LCBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0aW5nQ29tcG9uZW50Py5kZWxldGVTZWxlY3RlZFJpc2soXG4gICAgICAgIGV2ZW50Py5DYXRlZ29yeUlkc1swXSxcbiAgICAgICAgZXZlbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmdcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwicmlzay1jYXRlZ29yeS1yaXNrLWxpc3RpbmctaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBSaXNrczwvaDM+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktcmlzay1saXN0aW5nLWJvZHlcIj5cbiAgICAgICAgPGFwcC10YWJsZS1jYXJkIGNsYXNzPVwidngtdy0xMDBcIiBbdGFibGVDYXJkXT1cInRhYmxlQ2FyZFwiIFtzaW5nbGVTZWxlY3RlZFRleHRdPVwiJ0NhdGVnb3J5IFNlbGVjdGVkJ1wiIFttdWx0aXBsZVNlbGVjdGVkVGV4dF09XCInQ2F0ZWdvcmllcyBTZWxlY3RlZCdcIiAoc2V0U2VsZWN0ZWRUYWIpPVwic2V0U2VsZWN0ZWRUYWIoJGV2ZW50KVwiIFtzZWxlY3RlZFRhYl09XCIxXCI+PC9hcHAtdGFibGUtY2FyZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC1tYi0yXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICAjc2VhcmNoUmlza0NhdGVnb3J5IChrZXl1cC5lbnRlcik9XCJoYW5kbGVTZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSaXNrIENhdGVnb3JpZXNcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJpc2stY2F0ZWdvcnktcmlzay1saXN0aW5nLWJvZHktaW5uZXIgdngtbWItMiB2eC1kLWZsZXhcIiBbY2xhc3Mud2l0aC1ub0RhdGFdPVwiKCFpc0NhdGVnb3J5TG9hZGVyICYmICFjYXRlZ29yaWVzTGlzdD8ubGVuZ3RoKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ2F0ZWdvcnlMb2FkZXIgfHwgY2F0ZWdvcmllc0xpc3Q/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lci1pdGVtLWxlZnQgdngtcHItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWdyYy1jYXRlZ29yeS1saXN0aW5nICpuZ0lmPVwiIWlzQ2F0ZWdvcnlMb2FkZXJcIiBbaGVhZGVyVGV4dF09XCInUmlzayBDYXRlZ29yaWVzJ1wiIFtjYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNMaXN0XCIgIFtzZWxlY3RlZENhdEFuZFJpc2tdPVwic2VsZWN0ZWRDYXRBbmRSaXNrXCIgW3RhYmxlQ2FyZF09XCJ0YWJsZUNhcmRcIiBbY3VycmVudFBhZ2VdPVwiY2F0ZWdvcnlDdXJyZW50UGFnZVwiIFtzZWxlY3RlZFRhYkluZGV4XT1cInNlbGVjdGVkVGFiXCIgW3NlbGVjdGVkQ2F0ZWdvcnlJZHNdPVwic2VsZWN0ZWRDYXRlZ29yeUlkc1wiIChhY3RpdmVTZWxlY3RlZENhdGVnb3J5KT1cImFjdGl2ZVNlbGVjdGVkQ2F0ZWdvcnkoJGV2ZW50KVwiIChvbkNhdGVnb3J5UGFnZUNoYW5nZSk9XCJvbkNhdGVnb3J5UGFnZUNoYW5nZSgkZXZlbnQpXCI+PC9hcHAtZ3JjLWNhdGVnb3J5LWxpc3Rpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbGlzdC1sb2FkZXIgKm5nSWY9XCJpc0NhdGVnb3J5TG9hZGVyXCI+PC9hcHAtbGlzdC1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyLWl0ZW0tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1ncmMtcmlzay1saXN0aW5nICNkYXRhTGlzdGluZyAqbmdJZj1cIiFpc1Jpc2tMb2FkZXIgJiYgIWlzQ2F0ZWdvcnlMb2FkZXIgJiYgcmlza3NMaXN0Py5sZW5ndGhcIiBbaGVhZGVyVGV4dF09XCInUmlzayBOYW1lJ1wiIFtkYXRhTGlzdF09XCJyaXNrc0xpc3RcIiBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIiBbc2VsZWN0ZWRDYXRBbmRSaXNrXT1cInNlbGVjdGVkQ2F0QW5kUmlza1wiIChjaGFuZ2VTZWxlY3RlZENhdEFuZFJpc2spPVwiY2hhbmdlU2VsZWN0ZWRDYXRBbmRSaXNrKCRldmVudClcIiBbY3VycmVudFBhZ2VdPVwicmlza0N1cnJlbnRQYWdlXCIgW3BlclBhZ2VMaW1pdF09XCJhY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrTGltaXRcIiBbdG90YWxMaXN0RGF0YV09XCJhY3RpdmVDYXRlZ29yeT8uY2F0ZWdvcnlSaXNrQ291bnRcIiBbdG90YWxQYWdlc109XCJnZXRUb3RhbFJpc2tQYWdlKClcIiAoZ2V0VXBkYXRlZERhdGFMaXN0KT1cImdldFVwZGF0ZWREYXRhTGlzdCgkZXZlbnQpXCIgPjwvYXBwLWdyYy1yaXNrLWxpc3Rpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbGlzdC1sb2FkZXIgKm5nSWY9XCJpc1Jpc2tMb2FkZXIgfHwgaXNDYXRlZ29yeUxvYWRlclwiPjwvYXBwLWxpc3QtbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJyaXNrc0xpc3Q/Lmxlbmd0aCA9PT0gMCAmJiAhKGlzUmlza0xvYWRlciB8fCBpc0NhdGVnb3J5TG9hZGVyKVwiIFtub0RhdGFJbWFnZV09XCJDRE5fTElOSz8ubm9EYXRhXCIgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIj48L2FwcC1uby1kYXRhPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCIoIWlzQ2F0ZWdvcnlMb2FkZXIgJiYgIWNhdGVnb3JpZXNMaXN0Py5sZW5ndGgpXCIgW25vRGF0YUltYWdlXT1cIkNETl9MSU5LPy5ub0RhdGFcIiBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXBwLWZsb2F0aW5nLWJhciAgW3NlbGVjdGVkRGF0YV09XCJzZWxlY3RlZFJpc2tzPy5sZW5ndGggPyBzZWxlY3RlZFJpc2tzIDogW11cIiAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCIgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCIgIFtkaXNwbGF5RWxlbWVudEtleV09XCInbmFtZSdcIiBbc2luZ3VsYXJUZXh0XT1cIidSaXNrIHNlbGVjdGVkJ1wiIFtwbHVyYWxUZXh0XT1cIidSaXNrcyBzZWxlY3RlZCdcIiAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoJGV2ZW50KVwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|