ngx-histaff-alpha 2.3.1 → 2.3.3
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/app/libraries/core-contract-seeker/core-contract-seeker/core-contract-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-control/core-control/core-control.component.mjs +3 -3
- package/esm2022/lib/app/libraries/core-control-no-grid-buffer/core-control-no-grid-buffer/core-control-no-grid-buffer.component.mjs +2 -2
- package/esm2022/lib/app/libraries/core-currency-input/core-currency-input/core-currency-input.component.mjs +9 -6
- package/esm2022/lib/app/libraries/core-employee-seeker/core-employee-seeker/core-employee-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-form/core-form/enum-interfaces.mjs +1 -1
- package/esm2022/lib/app/libraries/core-form-control-seeker/EnumCoreSeekerColumn.mjs +95 -0
- package/esm2022/lib/app/libraries/core-form-control-seeker/core-form-control-seeker/core-form-control-seeker.component.mjs +75 -23
- package/esm2022/lib/app/libraries/core-job-seeker/core-job-seeker.component.mjs +6 -3
- package/esm2022/lib/app/libraries/core-page-edit/core-page-edit.component.mjs +6 -1
- package/esm2022/lib/app/libraries/core-position-concurrent-seeker/core-position-concurrent-seeker/core-position-concurrent-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-position-seeker/core-position-seeker/core-position-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-table/ICoreTableColumnItem.mjs +1 -1
- package/esm2022/lib/app/libraries/core-table/core-table.component.mjs +3 -3
- package/esm2022/lib/app/libraries/core-wage-seeker/core-wage-seeker/core-wage-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-working-seeker/core-working-seeker/core-working-seeker.component.mjs +5 -3
- package/esm2022/lib/app/libraries/d3/core-statistic-widget/core-statistic-widget.component.mjs +8 -17
- package/esm2022/lib/app/libraries/decision/decision.component.mjs +4 -2
- package/esm2022/lib/app/libraries/huconcurrently/huconcurrently.component.mjs +6 -4
- package/esm2022/lib/app/libraries/job/job.component.mjs +21 -11
- package/esm2022/lib/app/libraries/position/position.component.mjs +4 -2
- package/esm2022/lib/app/libraries/staffprofile/staffprofile.component.mjs +4 -2
- package/esm2022/lib/app/libraries/wage/wage.component.mjs +4 -64
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-histaff-alpha.mjs +254 -138
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/core-contract-seeker/core-contract-seeker/core-contract-seeker.component.d.ts +3 -1
- package/lib/app/libraries/core-currency-input/core-currency-input/core-currency-input.component.d.ts +3 -2
- package/lib/app/libraries/core-employee-seeker/core-employee-seeker/core-employee-seeker.component.d.ts +3 -1
- package/lib/app/libraries/core-form/core-form/enum-interfaces.d.ts +3 -0
- package/lib/app/libraries/core-form-control-seeker/EnumCoreSeekerColumn.d.ts +87 -0
- package/lib/app/libraries/core-form-control-seeker/core-form-control-seeker/core-form-control-seeker.component.d.ts +16 -2
- package/lib/app/libraries/core-job-seeker/core-job-seeker.component.d.ts +3 -1
- package/lib/app/libraries/core-position-concurrent-seeker/core-position-concurrent-seeker/core-position-concurrent-seeker.component.d.ts +3 -1
- package/lib/app/libraries/core-position-seeker/core-position-seeker/core-position-seeker.component.d.ts +3 -1
- package/lib/app/libraries/core-table/ICoreTableColumnItem.d.ts +8 -0
- package/lib/app/libraries/core-wage-seeker/core-wage-seeker/core-wage-seeker.component.d.ts +3 -1
- package/lib/app/libraries/core-working-seeker/core-working-seeker/core-working-seeker.component.d.ts +3 -1
- package/lib/app/libraries/decision/decision.component.d.ts +1 -1
- package/lib/app/libraries/huconcurrently/huconcurrently.component.d.ts +1 -1
- package/lib/app/libraries/job/job.component.d.ts +2 -2
- package/lib/app/libraries/position/position.component.d.ts +1 -1
- package/lib/app/libraries/staffprofile/staffprofile.component.d.ts +1 -1
- package/lib/app/libraries/wage/wage.component.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -288,7 +288,7 @@ export class StaffProfileComponent extends BaseComponent {
|
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: StaffProfileComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.RandomAvatarService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.OrganizationService }, { token: i5.HttpClient }, { token: i6.LayoutService }, { token: i7.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
291
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: StaffProfileComponent, isStandalone: true, selector: "cms-profile-staffprofile", inputs: { hideHeader: "hideHeader", height: "height" }, viewQueries: [{ propertyName: "avatar", first: true, predicate: ["avatar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"staff-profile-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\"\r\n [outerParam$]=\"outerParam$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [autoResizeWithWindow]=\"true\"\r\n [selfResolveCorePageHeaderButtonClick]=\"true\"\r\n (rowDoubleClick)=\"onRowDoubleClick($event)\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (selectedIdsChange)=\"onSelectedIdsChange1($event)\"\r\n [frozen]=\"3\"\r\n [outerSort]=\"outerSort\"\r\n [showParamKit]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [hideStatusInclusion]=\"false\"\r\n [statusInclusionFor]=\"statusInclusionFor\"\r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\"\r\n [generateTemplateRequest]=\"generateTemplateRequest\"\r\n [importPreviewPath]=\"'staffprofile-import'\" \r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" (ngModelChange)=\"onOrgIdsChange($event)\">\r\n </core-org-tree>\r\n\r\n \r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img *ngIf=\"avatar != null\" [src]=\"avatar | mapAvatarToServer\" class=\"in-table-avatar\" appImageErrorResolver>\r\n <img *ngIf=\"avatar == null\" [src]=\"defaultAvatar\" class=\"in-table-avatar\" appImageErrorResolver>\r\n\r\n </ng-template>\r\n\r\n</div>\r\n<app-fullscreen-modal-loader *ngIf=\"loading\"></app-fullscreen-modal-loader>", styles: [".staff-profile-container img{border-radius:50%}\n"], dependencies: [{ kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "hideDatePeriodComparison", "hideStatusInclusion", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "pipe", type: MapAvatarToServerPipe, name: "mapAvatarToServer" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
291
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: StaffProfileComponent, isStandalone: true, selector: "cms-profile-staffprofile", inputs: { hideHeader: "hideHeader", height: "height", columns: "columns" }, viewQueries: [{ propertyName: "avatar", first: true, predicate: ["avatar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"staff-profile-container\">\r\n <core-page-list \r\n [height]=\"height\"\r\n [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\" *ngIf=\"!!avatar\"\r\n [outerParam$]=\"outerParam$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [autoResizeWithWindow]=\"true\"\r\n [selfResolveCorePageHeaderButtonClick]=\"true\"\r\n (rowDoubleClick)=\"onRowDoubleClick($event)\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (selectedIdsChange)=\"onSelectedIdsChange1($event)\"\r\n [frozen]=\"3\"\r\n [outerSort]=\"outerSort\"\r\n [showParamKit]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [hideStatusInclusion]=\"false\"\r\n [statusInclusionFor]=\"statusInclusionFor\"\r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\"\r\n [generateTemplateRequest]=\"generateTemplateRequest\"\r\n [importPreviewPath]=\"'staffprofile-import'\" \r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" (ngModelChange)=\"onOrgIdsChange($event)\">\r\n </core-org-tree>\r\n\r\n \r\n </ng-template>\r\n\r\n <ng-template #avatar let-avatar=\"context.avatar\">\r\n <img *ngIf=\"avatar != null\" [src]=\"avatar | mapAvatarToServer\" class=\"in-table-avatar\" appImageErrorResolver>\r\n <img *ngIf=\"avatar == null\" [src]=\"defaultAvatar\" class=\"in-table-avatar\" appImageErrorResolver>\r\n\r\n </ng-template>\r\n\r\n</div>\r\n<app-fullscreen-modal-loader *ngIf=\"loading\"></app-fullscreen-modal-loader>", styles: [".staff-profile-container img{border-radius:50%}\n"], dependencies: [{ kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "hideDatePeriodComparison", "hideStatusInclusion", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "pipe", type: MapAvatarToServerPipe, name: "mapAvatarToServer" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
292
292
|
}
|
|
293
293
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: StaffProfileComponent, decorators: [{
|
|
294
294
|
type: Component,
|
|
@@ -308,5 +308,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
308
308
|
}], avatar: [{
|
|
309
309
|
type: ViewChild,
|
|
310
310
|
args: ['avatar']
|
|
311
|
+
}], columns: [{
|
|
312
|
+
type: Input
|
|
311
313
|
}] } });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZmZwcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9zdGFmZnByb2ZpbGUvc3RhZmZwcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9zdGFmZnByb2ZpbGUvc3RhZmZwcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE4QixLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBMkUsTUFBTSw0Q0FBNEMsQ0FBQztBQU01SixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUU3RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3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O3NCQUFkLEtBQUs7Z0JBRWUsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBBZnRlclZpZXdJbml0LCBJbnB1dCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRW51bVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9lbnVtL0VudW1Tb3J0RGlyZWN0aW9uJztcclxuaW1wb3J0IHsgSUZpbHRlck9wZXJhdG9yLCBJSW5PcGVyYXRvciwgSVNvcnRJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdCc7XHJcbmltcG9ydCB7IENvcmVQYWdlTGlzdENvbXBvbmVudCwgSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24sIElDb3JlUGFnZUxpc3RDUlVELCBJQ29yZVBhZ2VMaXN0RWRpdFJvdXRpbmcgfSBmcm9tICcuLi9jb3JlLXBhZ2UtbGlzdC9jb3JlLXBhZ2UtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYW5kb21BdmF0YXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmFuZG9tLWF2YXRhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZ2FuaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvRW51bUNvcmVCdXR0b25WTlNDb2RlJztcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25WTlMgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL0lDb3JlQnV0dG9uVk5TJztcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IElHZW5lcmF0ZVRlbXBsYXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQ29yZVRhYmxlQ29sdW1uSXRlbSB9IGZyb20gJy4uL2NvcmUtdGFibGUvSUNvcmVUYWJsZUNvbHVtbkl0ZW0nO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tICcuLi9jb3JlLXRhYmxlL0VudW1Db3JlVGFibGVQaXBlVHlwZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ1bGxzY3JlZW5Nb2RhbExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2Z1bGxzY3JlZW4tbW9kYWwtbG9hZGVyL2Z1bGxzY3JlZW4tbW9kYWwtbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXBBdmF0YXJUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi9hcHAtcGlwZXMvbWFwLWF2YXRhci10by1zZXJ2ZXIucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ntcy1wcm9maWxlLXN0YWZmcHJvZmlsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb3JlUGFnZUxpc3RDb21wb25lbnQsIFxyXG4gICAgQ29yZU9yZ1RyZWVDb21wb25lbnQsIFxyXG4gICAgRm9ybXNNb2R1bGUsIFxyXG4gICAgRnVsbHNjcmVlbk1vZGFsTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIE1hcEF2YXRhclRvU2VydmVyUGlwZSxcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YWZmcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3RhZmZwcm9maWxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGFmZlByb2ZpbGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgaGlkZUhlYWRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG5cclxuICBAVmlld0NoaWxkKCdhdmF0YXInKSBhdmF0YXIhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiBTVEFSVDogTG9jYWwgZmlsdGVyIHBhcmFtcyAqL1xyXG4gIG9yZ0lkcyE6IG51bWJlcltdO1xyXG4gIC8qIEVORDogTG9jYWwgZmlsdGVyIHBhcmFtcyAqL1xyXG5cclxuICAvKlxyXG4gIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0XHJcbiAgKi9cclxuICBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvcjogc3RyaW5nID0gJ2pvaW5EYXRlJztcclxuICBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5OiBFbnVtVHJhbnNsYXRlS2V5ID1cclxuICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fU1RBRkZfUFJPRklMRV9KT0lOX0RBVEU7XHJcbiAgc3RhdHVzSW5jbHVzaW9uRm9yOiBzdHJpbmcgPSAnd29ya1N0YXR1c0lkJztcclxuICBzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleTogRW51bVRyYW5zbGF0ZUtleSA9XHJcbiAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0RFTU9fQVRUQUNITUVOVF9TVEFUVVNfSUQ7XHJcbiAgc3RhdHVzT3B0aW9uc0FwaTogYXBpID0gYXBpLkhVX0VNUExPWUVFX0NWX0dFVF9FTVBMT1lFRV9TVEFUVVNfTElTVDtcclxuICBsb2FkaW5nITogYm9vbGVhbjtcclxuICB0aXRsZSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX1RJVExFX1NUQUZGX1BST0ZJTEU7XHJcblxyXG4gIG91dGVyU29ydDogSVNvcnRJdGVtW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiBcImpvYk9yZGVyTnVtXCIsXHJcbiAgICAgIHNvcnREaXJlY3Rpb246IEVudW1Tb3J0RGlyZWN0aW9uLkFTQ1xyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgb3V0ZXJQYXJhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgb3V0ZXJGaWx0ZXJPcGVyYXRvcnM6IElGaWx0ZXJPcGVyYXRvcltdID0gW107XHJcbiAgb3V0ZXJJbk9wZXJhdG9yczogSUluT3BlcmF0b3JbXSA9IFtcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdvcmdJZCcsXHJcbiAgICAgIHZhbHVlczogdGhpcy5vcmdJZHMgfHwgW10sXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGFwaURlZmluaXRpb246IElDb3JlUGFnZUxpc3RBcGlEZWZpbml0aW9uID0ge1xyXG4gICAgcXVlcnlMaXN0UmVsYXRpdmVQYXRoOiBhcGkuSFVfRU1QTE9ZRUVfUVVFUllfTElTVCxcclxuICB9O1xyXG5cclxuICBjcnVkOiBJQ29yZVBhZ2VMaXN0Q1JVRCA9IHtcclxuICAgIGRlbGV0ZUlkczogYXBpLkhVX0VNUExPWUVFX0RFTEVURV9JRFMsXHJcbiAgfTtcclxuXHJcbiAgYXZhdGFyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBjb2x1bW5zOiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0NPTU1PTl9JRCxcclxuICAgICAgZmllbGQ6ICdpZCcsXHJcbiAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICB3aWR0aDogMjAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX0FWQVRBUiwgLy8gdG8gYmUgYXNpZ25lZCB0byBFbnVtVHJhbnNsYXRlS2V5XHJcbiAgICAgIGZpZWxkOiAnYXZhdGFyJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgaGlkZVNlYXJjaEJveDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDgwLFxyXG4gICAgICB0ZW1wbGF0ZVJlZjogdGhpcy5hdmF0YXJUZW1wbGF0ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246XHJcbiAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX0VNUExPWUVFX0NPREUsIC8vIHRvIGJlIGFzaWduZWQgdG8gRW51bVRyYW5zbGF0ZUtleVxyXG4gICAgICBmaWVsZDogJ2NvZGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDgwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX0ZVTExOQU1FLCAvLyB0byBiZSBhc2lnbmVkIHRvIEVudW1UcmFuc2xhdGVLZXlcclxuICAgICAgZmllbGQ6ICdmdWxsbmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTUwLFxyXG4gICAgICBwaXBlOiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuTk9STUFMSVpFX0hVTUFOX05BTUUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOlxyXG4gICAgICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fU1lTX1VTRVJfRU1QTE9ZRUVfUFJPRklMRV9DT0RFLCAvLyB0byBiZSBhc2lnbmVkIHRvIEVudW1UcmFuc2xhdGVLZXlcclxuICAgICAgZmllbGQ6ICdwcm9maWxlQ29kZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogODAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOlxyXG4gICAgICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fU1RBRkZfUFJPRklMRV9QT1NJVElPTl9OQU1FLCAvLyB0byBiZSBhc2lnbmVkIHRvIEVudW1UcmFuc2xhdGVLZXlcclxuICAgICAgZmllbGQ6ICduYW1lT25Qcm9maWxlRW1wbG95ZWUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDMwMCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fU1RBRkZfUFJPRklMRV9PUkdfTkFNRSwgLy8gdG8gYmUgYXNpZ25lZCB0byBFbnVtVHJhbnNsYXRlS2V5XHJcbiAgICAgIGZpZWxkOiAnb3JnTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMjAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9XT1JLX1NUQVRVU19OQU1FLCAvLyB0byBiZSBhc2lnbmVkIHRvIEVudW1UcmFuc2xhdGVLZXlcclxuICAgICAgZmllbGQ6ICd3b3JrU3RhdHVzTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMjAwLFxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBkZWZhdWx0QXZhdGFyITogc3RyaW5nO1xyXG5cclxuICBlZGl0Um91dGU6IElDb3JlUGFnZUxpc3RFZGl0Um91dGluZyA9IHtcclxuICAgIGF1eGlsaWFyeTogJ3BvcHVwQXV4JyxcclxuICB9O1xyXG5cclxuICBnZW5lcmF0ZVRlbXBsYXRlUmVxdWVzdCE6IElHZW5lcmF0ZVRlbXBsYXRlUmVxdWVzdDtcclxuXHJcbiAgaWQ6IGFueTtcclxuXHJcbiAgLyogRW5kIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0ICovXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmFzOiBSYW5kb21BdmF0YXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHB1YmxpYyBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKG1scyk7XHJcbiAgICB0aGlzLmRlZmF1bHRBdmF0YXIgPSByYXMuZ2V0KCk7XHJcblxyXG4gICAgLyogR2V0IG9yZ0lkcyBzdGFydHVwIHZhbHVlICovXHJcbiAgICBjb25zdCBuZXdPcmdJZHM6IG51bWJlcltdID0gW107XHJcbiAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC52YWx1ZS5hY3RpdmVLZXlzLm1hcCgoeCkgPT5cclxuICAgICAgbmV3T3JnSWRzLnB1c2goTnVtYmVyKHgpKVxyXG4gICAgKTtcclxuICAgIHRoaXMub25PcmdJZHNDaGFuZ2UobmV3T3JnSWRzKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICB0aGlzLmxhbmcgPSB4O1xyXG4gICAgICB0aGlzLmdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0ID0ge1xyXG4gICAgICAgIGV4Q29kZTogJ1NUQUZGX1BST0ZJTEUnLFxyXG4gICAgICAgIGxhbmc6IHhcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICAvLyBO4bq/dSBjaGnhu4F1IGNhbyBoZWlnaHQgY+G7p2EgU3RhZmZQcm9maWxlQ29tcG9uZW50IGtow7RuZyDEkcaw4bujYyB0cnV54buBbiB2w6BvXHJcbiAgICAvLyBUaMOsIGNoaeG7gXUgY2FvIGPhu6dhIG7DsyBz4bq9IGLhurFuZyBnacOhIHRy4buLIGJp4bq/biB0aGnDqm4gY+G7p2EgY29udGVudENvbnRhaW5lckhlaWdodCRcclxuICAgIC8vIHRy4burIMSRaSBraG/huqNuZyBwYWRkaW5nQm90dG9tIChiYXNpY1NwYWNpbmcpIFxyXG4gICAgaWYgKCF0aGlzLmhlaWdodCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuY29udGVudENvbnRhaW5lckhlaWdodCQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSB4IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmJhc2ljU3BhY2luZztcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sdW1ucy5maWx0ZXIoKGMpID0+IGMuZmllbGQgPT09ICdhdmF0YXInKVswXS50ZW1wbGF0ZVJlZiA9XHJcbiAgICAgIHRoaXMuYXZhdGFyO1xyXG4gIH1cclxuXHJcbiAgb25PcmdJZHNDaGFuZ2Uob3JnSWRzOiBudW1iZXJbXSkge1xyXG4gICAgdGhpcy5vcmdJZHMgPSBvcmdJZHM7XHJcbiAgICB0aGlzLm91dGVySW5PcGVyYXRvcnMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgICB2YWx1ZXM6IG9yZ0lkcyxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBvblJvd0RvdWJsZUNsaWNrKGU6IGFueSkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2J0b2EoZS5pZC50b1N0cmluZygpKV0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBvblNlbGVjdGVkSWRzQ2hhbmdlMShlOiBzdHJpbmdbXSB8IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gZTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG4gIH1cclxuXHJcbiAgb25Sb3dDbGljayhlOiBhbnkpIHtcclxuICAgIHRoaXMuaWQgPSBlLmlkO1xyXG4gIH1cclxuXHJcbiAgb25Db3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKGU6IElDb3JlQnV0dG9uVk5TKSB7XHJcbiAgICBjb25zb2xlLmxvZygnU3RhZmZQcm9maWxlQ29tcG9uZW50IG9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljaycsIGUpO1xyXG4gICAgbGV0IGZpbGVuYW1lID0gJyc7XHJcbiAgICBzd2l0Y2ggKGUuY29kZSkge1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfQ1JFQVRFOlxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXBwLXN0YWZmLXByb2ZpbGUtZWRpdCddLCB7XHJcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRURJVDpcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYnRvYSh0aGlzLmlkLnRvU3RyaW5nKCkpXSwge1xyXG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RFTEVURTpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5UOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYWxsJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9QUklOVF8yQ18yMDA4OlxyXG4gICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKHRoaXMubWxzLnRyYW5zKCdQUklOVF9PTkVfUkVDT1JEJyksIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5odHRwLmdldChhcGkuSFVfRU1QTE9ZRUVfQ1ZfR0VUX0ZJTEVfTkFNRSArIHRoaXMuc2VsZWN0ZWRJZHNbMF0udG9TdHJpbmcoKSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGZpbGVuYW1lID0gcmVzcG9uc2UuaW5uZXJCb2R5O1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldChhcGkuSFVfRU1QTE9ZRUVfQ1ZfR0VUXzJDMjAwOCwge1xyXG4gICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxyXG4gICAgICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zZWxlY3RlZElkc1swXS50b1N0cmluZygpIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCbG9iKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb3dubG9hZFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgICAgICAgIGxpbmsuaHJlZiA9IGRvd25sb2FkVXJsO1xyXG4gICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgJzJDX0JOVl8yMDA4XycgKyBmaWxlbmFtZSArICcuZG9jJyk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoZG93bmxvYWRVcmwpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBqc29uQm9keSA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShqc29uQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhkYXRhLm1lc3NhZ2VDb2RlLCBhbGVydE9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGRhdGEubWVzc2FnZUNvZGUsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5UXzJDXzk4OlxyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKHRoaXMubWxzLnRyYW5zKCdQUklOVF9PTkVfUkVDT1JEJyksIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQoYXBpLkhVX0VNUExPWUVFX0NWX0dFVF9GSUxFX05BTUUgKyB0aGlzLnNlbGVjdGVkSWRzWzBdLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmaWxlbmFtZSA9IHJlc3BvbnNlLmlubmVyQm9keTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0KGFwaS5IVV9FTVBMT1lFRV9DVl9HRVRfMkM5OCwge1xyXG4gICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxyXG4gICAgICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zZWxlY3RlZElkc1swXS50b1N0cmluZygpIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCbG9iKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb3dubG9hZFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgICAgICAgIGxpbmsuaHJlZiA9IGRvd25sb2FkVXJsO1xyXG4gICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgJzJDX0JOVl85OF8nICsgZmlsZW5hbWUgKyAnLmRvYycpO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICAgICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGRvd25sb2FkVXJsKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QganNvbkJvZHkgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoanNvbkJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKGRhdGEubWVzc2FnZUNvZGUsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfVVBEQVRFOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRJZHNbMF0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic3RhZmYtcHJvZmlsZS1jb250YWluZXJcIj5cclxuICA8Y29yZS1wYWdlLWxpc3QgXHJcbiAgICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICBbYXBpRGVmaW5pdGlvbl09XCJhcGlEZWZpbml0aW9uXCIgW2NvbHVtbnNdPVwiY29sdW1uc1wiIFtlZGl0Um91dGVdPVwiZWRpdFJvdXRlXCIgW2NydWRdPVwiY3J1ZFwiXHJcbiAgICBbdGl0bGVdPVwidGl0bGVcIiBbbGVmdF09XCJvcmdUcmVlXCIgKm5nSWY9XCIhIWF2YXRhclwiXHJcbiAgICBbb3V0ZXJQYXJhbSRdPVwib3V0ZXJQYXJhbSRcIlxyXG4gICAgW291dGVySW5PcGVyYXRvcnNdPVwib3V0ZXJJbk9wZXJhdG9yc1wiXHJcbiAgICBbYXV0b1Jlc2l6ZVdpdGhXaW5kb3ddPVwidHJ1ZVwiXHJcbiAgICBbc2VsZlJlc29sdmVDb3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrXT1cInRydWVcIlxyXG4gICAgKHJvd0RvdWJsZUNsaWNrKT1cIm9uUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgIChjb3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKT1cIm9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljaygkZXZlbnQpXCJcclxuICAgIChzZWxlY3RlZElkc0NoYW5nZSk9XCJvblNlbGVjdGVkSWRzQ2hhbmdlMSgkZXZlbnQpXCJcclxuICAgIFtmcm96ZW5dPVwiM1wiXHJcbiAgICBbb3V0ZXJTb3J0XT1cIm91dGVyU29ydFwiXHJcbiAgICBbc2hvd1BhcmFtS2l0XT1cInRydWVcIlxyXG4gICAgW2RhdGVQZXJpb2RDb21wYXJpc29uRm9yXT1cImRhdGVQZXJpb2RDb21wYXJpc29uRm9yXCJcclxuICAgIFtkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5XT1cImRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXlcIlxyXG4gICAgW2hpZGVTdGF0dXNJbmNsdXNpb25dPVwiZmFsc2VcIlxyXG4gICAgW3N0YXR1c0luY2x1c2lvbkZvcl09XCJzdGF0dXNJbmNsdXNpb25Gb3JcIlxyXG4gICAgW3N0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XT1cInN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XCJcclxuICAgIFtzdGF0dXNPcHRpb25zQXBpXT1cInN0YXR1c09wdGlvbnNBcGlcIlxyXG4gICAgW2dlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XT1cImdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XCJcclxuICAgIFtpbXBvcnRQcmV2aWV3UGF0aF09XCInc3RhZmZwcm9maWxlLWltcG9ydCdcIiAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICA+PC9jb3JlLXBhZ2UtbGlzdD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNvcmdUcmVlPlxyXG4gICAgPGNvcmUtb3JnLXRyZWUgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiAobmdNb2RlbENoYW5nZSk9XCJvbk9yZ0lkc0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8L2NvcmUtb3JnLXRyZWU+XHJcblxyXG4gICAgXHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhcj1cImNvbnRleHQuYXZhdGFyXCI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyICE9IG51bGxcIiBbc3JjXT1cImF2YXRhciB8IG1hcEF2YXRhclRvU2VydmVyXCIgY2xhc3M9XCJpbi10YWJsZS1hdmF0YXJcIiBhcHBJbWFnZUVycm9yUmVzb2x2ZXI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyID09IG51bGxcIiBbc3JjXT1cImRlZmF1bHRBdmF0YXJcIiBjbGFzcz1cImluLXRhYmxlLWF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuXHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwvZGl2PlxyXG48YXBwLWZ1bGxzY3JlZW4tbW9kYWwtbG9hZGVyICpuZ0lmPVwibG9hZGluZ1wiPjwvYXBwLWZ1bGxzY3JlZW4tbW9kYWwtbG9hZGVyPiJdfQ==
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZmZwcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9zdGFmZnByb2ZpbGUvc3RhZmZwcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9zdGFmZnByb2ZpbGUvc3RhZmZwcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE4QixLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBMkUsTUFBTSw0Q0FBNEMsQ0FBQztBQU01SixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUU3RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3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O3NCQUFkLEtBQUs7Z0JBRWUsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQTZDVixPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIEFmdGVyVmlld0luaXQsIElucHV0LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFbnVtU29ydERpcmVjdGlvbiB9IGZyb20gJy4uLy4uL2VudW0vRW51bVNvcnREaXJlY3Rpb24nO1xyXG5pbXBvcnQgeyBJRmlsdGVyT3BlcmF0b3IsIElJbk9wZXJhdG9yLCBJU29ydEl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0JztcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0Q29tcG9uZW50LCBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbiwgSUNvcmVQYWdlTGlzdENSVUQsIElDb3JlUGFnZUxpc3RFZGl0Um91dGluZyB9IGZyb20gJy4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFJhbmRvbUF2YXRhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yYW5kb20tYXZhdGFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JnYW5pemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25WTlNDb2RlIH0gZnJvbSAnLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvblZOUyB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvSUNvcmVCdXR0b25WTlMnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29yZS1wYWdlLWxpc3QvY29yZS1wYWdlLWxpc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IElDb3JlVGFibGVDb2x1bW5JdGVtIH0gZnJvbSAnLi4vY29yZS10YWJsZS9JQ29yZVRhYmxlQ29sdW1uSXRlbSc7XHJcbmltcG9ydCB7IEVudW1Db3JlVGFibGVQaXBlVHlwZSB9IGZyb20gJy4uL2NvcmUtdGFibGUvRW51bUNvcmVUYWJsZVBpcGVUeXBlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvcmVPcmdUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRnVsbHNjcmVlbk1vZGFsTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZnVsbHNjcmVlbi1tb2RhbC1sb2FkZXIvZnVsbHNjcmVlbi1tb2RhbC1sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IE1hcEF2YXRhclRvU2VydmVyUGlwZSB9IGZyb20gJy4uLy4uL2FwcC1waXBlcy9tYXAtYXZhdGFyLXRvLXNlcnZlci5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY21zLXByb2ZpbGUtc3RhZmZwcm9maWxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVQYWdlTGlzdENvbXBvbmVudCwgXHJcbiAgICBDb3JlT3JnVHJlZUNvbXBvbmVudCwgXHJcbiAgICBGb3Jtc01vZHVsZSwgXHJcbiAgICBGdWxsc2NyZWVuTW9kYWxMb2FkZXJDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgTWFwQXZhdGFyVG9TZXJ2ZXJQaXBlLFxyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RhZmZwcm9maWxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdGFmZnByb2ZpbGUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YWZmUHJvZmlsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBcclxuICBASW5wdXQoKSBoaWRlSGVhZGVyITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoZWlnaHQhOiBudW1iZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F2YXRhcicpIGF2YXRhciE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qIFNUQVJUOiBMb2NhbCBmaWx0ZXIgcGFyYW1zICovXHJcbiAgb3JnSWRzITogbnVtYmVyW107XHJcbiAgLyogRU5EOiBMb2NhbCBmaWx0ZXIgcGFyYW1zICovXHJcblxyXG4gIC8qXHJcbiAgUHJvcGVydGllcyBiZWluZyBwYXNzZWQgdG8gY29yZS1wYWdlLWxpc3RcclxuICAqL1xyXG4gIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yOiBzdHJpbmcgPSAnam9pbkRhdGUnO1xyXG4gIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXk6IEVudW1UcmFuc2xhdGVLZXkgPVxyXG4gICAgRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX0pPSU5fREFURTtcclxuICBzdGF0dXNJbmNsdXNpb25Gb3I6IHN0cmluZyA9ICd3b3JrU3RhdHVzSWQnO1xyXG4gIHN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5OiBFbnVtVHJhbnNsYXRlS2V5ID1cclxuICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fREVNT19BVFRBQ0hNRU5UX1NUQVRVU19JRDtcclxuICBzdGF0dXNPcHRpb25zQXBpOiBhcGkgPSBhcGkuSFVfRU1QTE9ZRUVfQ1ZfR0VUX0VNUExPWUVFX1NUQVRVU19MSVNUO1xyXG4gIGxvYWRpbmchOiBib29sZWFuO1xyXG4gIHRpdGxlID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfVElUTEVfU1RBRkZfUFJPRklMRTtcclxuXHJcbiAgb3V0ZXJTb3J0OiBJU29ydEl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgZmllbGQ6IFwiam9iT3JkZXJOdW1cIixcclxuICAgICAgc29ydERpcmVjdGlvbjogRW51bVNvcnREaXJlY3Rpb24uQVNDXHJcbiAgICB9XHJcbiAgXVxyXG5cclxuICBvdXRlclBhcmFtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBvdXRlckZpbHRlck9wZXJhdG9yczogSUZpbHRlck9wZXJhdG9yW10gPSBbXTtcclxuICBvdXRlckluT3BlcmF0b3JzOiBJSW5PcGVyYXRvcltdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgdmFsdWVzOiB0aGlzLm9yZ0lkcyB8fCBbXSxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgYXBpRGVmaW5pdGlvbjogSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24gPSB7XHJcbiAgICBxdWVyeUxpc3RSZWxhdGl2ZVBhdGg6IGFwaS5IVV9FTVBMT1lFRV9RVUVSWV9MSVNULFxyXG4gIH07XHJcblxyXG4gIGNydWQ6IElDb3JlUGFnZUxpc3RDUlVEID0ge1xyXG4gICAgZGVsZXRlSWRzOiBhcGkuSFVfRU1QTE9ZRUVfREVMRVRFX0lEUyxcclxuICB9O1xyXG5cclxuICBhdmF0YXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IElDb3JlVGFibGVDb2x1bW5JdGVtW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fQ09NTU9OX0lELFxyXG4gICAgICBmaWVsZDogJ2lkJyxcclxuICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgYWxpZ246ICdyaWdodCcsXHJcbiAgICAgIHdpZHRoOiAyMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1NUQUZGX1BST0ZJTEVfQVZBVEFSLCAvLyB0byBiZSBhc2lnbmVkIHRvIEVudW1UcmFuc2xhdGVLZXlcclxuICAgICAgZmllbGQ6ICdhdmF0YXInLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICBoaWRlU2VhcmNoQm94OiB0cnVlLFxyXG4gICAgICB3aWR0aDogODAsXHJcbiAgICAgIHRlbXBsYXRlUmVmOiB0aGlzLmF2YXRhclRlbXBsYXRlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjpcclxuICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1NUQUZGX1BST0ZJTEVfRU1QTE9ZRUVfQ09ERSwgLy8gdG8gYmUgYXNpZ25lZCB0byBFbnVtVHJhbnNsYXRlS2V5XHJcbiAgICAgIGZpZWxkOiAnY29kZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogODAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1NUQUZGX1BST0ZJTEVfRlVMTE5BTUUsIC8vIHRvIGJlIGFzaWduZWQgdG8gRW51bVRyYW5zbGF0ZUtleVxyXG4gICAgICBmaWVsZDogJ2Z1bGxuYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIHBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZS5OT1JNQUxJWkVfSFVNQU5fTkFNRSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246XHJcbiAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TWVNfVVNFUl9FTVBMT1lFRV9QUk9GSUxFX0NPREUsIC8vIHRvIGJlIGFzaWduZWQgdG8gRW51bVRyYW5zbGF0ZUtleVxyXG4gICAgICBmaWVsZDogJ3Byb2ZpbGVDb2RlJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiA4MCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246XHJcbiAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX1BPU0lUSU9OX05BTUUsIC8vIHRvIGJlIGFzaWduZWQgdG8gRW51bVRyYW5zbGF0ZUtleVxyXG4gICAgICBmaWVsZDogJ25hbWVPblByb2ZpbGVFbXBsb3llZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMzAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9TVEFGRl9QUk9GSUxFX09SR19OQU1FLCAvLyB0byBiZSBhc2lnbmVkIHRvIEVudW1UcmFuc2xhdGVLZXlcclxuICAgICAgZmllbGQ6ICdvcmdOYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAyMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1NUQUZGX1dPUktfU1RBVFVTX05BTUUsIC8vIHRvIGJlIGFzaWduZWQgdG8gRW51bVRyYW5zbGF0ZUtleVxyXG4gICAgICBmaWVsZDogJ3dvcmtTdGF0dXNOYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAyMDAsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGRlZmF1bHRBdmF0YXIhOiBzdHJpbmc7XHJcblxyXG4gIGVkaXRSb3V0ZTogSUNvcmVQYWdlTGlzdEVkaXRSb3V0aW5nID0ge1xyXG4gICAgYXV4aWxpYXJ5OiAncG9wdXBBdXgnLFxyXG4gIH07XHJcblxyXG4gIGdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0ITogSUdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0O1xyXG5cclxuICBpZDogYW55O1xyXG5cclxuICAvKiBFbmQgUHJvcGVydGllcyBiZWluZyBwYXNzZWQgdG8gY29yZS1wYWdlLWxpc3QgKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyByYXM6IFJhbmRvbUF2YXRhclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIG9yZ2FuaXphdGlvblNlcnZpY2U6IE9yZ2FuaXphdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICAgIHRoaXMuZGVmYXVsdEF2YXRhciA9IHJhcy5nZXQoKTtcclxuXHJcbiAgICAvKiBHZXQgb3JnSWRzIHN0YXJ0dXAgdmFsdWUgKi9cclxuICAgIGNvbnN0IG5ld09yZ0lkczogbnVtYmVyW10gPSBbXTtcclxuICAgIHRoaXMub3JnYW5pemF0aW9uU2VydmljZS5zdGF0dXMkLnZhbHVlLmFjdGl2ZUtleXMubWFwKCh4KSA9PlxyXG4gICAgICBuZXdPcmdJZHMucHVzaChOdW1iZXIoeCkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5vbk9yZ0lkc0NoYW5nZShuZXdPcmdJZHMpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgIHRoaXMubGFuZyA9IHg7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3QgPSB7XHJcbiAgICAgICAgZXhDb2RlOiAnU1RBRkZfUFJPRklMRScsXHJcbiAgICAgICAgbGFuZzogeFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIC8vIE7hur91IGNoaeG7gXUgY2FvIGhlaWdodCBj4bunYSBTdGFmZlByb2ZpbGVDb21wb25lbnQga2jDtG5nIMSRxrDhu6NjIHRydXnhu4FuIHbDoG9cclxuICAgIC8vIFRow6wgY2hp4buBdSBjYW8gY+G7p2EgbsOzIHPhur0gYuG6sW5nIGdpw6EgdHLhu4sgYmnhur9uIHRoacOqbiBj4bunYSBjb250ZW50Q29udGFpbmVySGVpZ2h0JFxyXG4gICAgLy8gdHLhu6sgxJFpIGtob+G6o25nIHBhZGRpbmdCb3R0b20gKGJhc2ljU3BhY2luZykgXHJcbiAgICBpZiAoIXRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5jb250ZW50Q29udGFpbmVySGVpZ2h0JC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhlaWdodCA9IHggLSB0aGlzLmxheW91dFNlcnZpY2UuYmFzaWNTcGFjaW5nO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb2x1bW5zLmZpbHRlcigoYykgPT4gYy5maWVsZCA9PT0gJ2F2YXRhcicpWzBdLnRlbXBsYXRlUmVmID1cclxuICAgICAgdGhpcy5hdmF0YXI7XHJcbiAgfVxyXG5cclxuICBvbk9yZ0lkc0NoYW5nZShvcmdJZHM6IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLm9yZ0lkcyA9IG9yZ0lkcztcclxuICAgIHRoaXMub3V0ZXJJbk9wZXJhdG9ycyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOiAnb3JnSWQnLFxyXG4gICAgICAgIHZhbHVlczogb3JnSWRzLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIG9uUm93RG91YmxlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYnRvYShlLmlkLnRvU3RyaW5nKCkpXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcblxyXG4gIG9uU2VsZWN0ZWRJZHNDaGFuZ2UxKGU6IHN0cmluZ1tdIHwgbnVtYmVyW10pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBlO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZElkcyk7XHJcbiAgfVxyXG5cclxuICBvblJvd0NsaWNrKGU6IGFueSkge1xyXG4gICAgdGhpcy5pZCA9IGUuaWQ7XHJcbiAgfVxyXG5cclxuICBvbkNvcmVQYWdlSGVhZGVyQnV0dG9uQ2xpY2soZTogSUNvcmVCdXR0b25WTlMpIHtcclxuICAgIGNvbnNvbGUubG9nKCdTdGFmZlByb2ZpbGVDb21wb25lbnQgb25Db3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrJywgZSk7XHJcbiAgICBsZXQgZmlsZW5hbWUgPSAnJztcclxuICAgIHN3aXRjaCAoZS5jb2RlKSB7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9DUkVBVEU6XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhcHAtc3RhZmYtcHJvZmlsZS1lZGl0J10sIHtcclxuICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9FRElUOlxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtidG9hKHRoaXMuaWQudG9TdHJpbmcoKSldLCB7XHJcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfREVMRVRFOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUFJJTlQ6XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2NhbGwnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5UXzJDXzIwMDg6XHJcbiAgICAgICAgZGVidWdnZXI7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4odGhpcy5tbHMudHJhbnMoJ1BSSU5UX09ORV9SRUNPUkQnKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmh0dHAuZ2V0KGFwaS5IVV9FTVBMT1lFRV9DVl9HRVRfRklMRV9OQU1FICsgdGhpcy5zZWxlY3RlZElkc1swXS50b1N0cmluZygpKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZmlsZW5hbWUgPSByZXNwb25zZS5pbm5lckJvZHk7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0KGFwaS5IVV9FTVBMT1lFRV9DVl9HRVRfMkMyMDA4LCB7XHJcbiAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXHJcbiAgICAgICAgICAgICAgcGFyYW1zOiB7IGlkOiB0aGlzLnNlbGVjdGVkSWRzWzBdLnRvU3RyaW5nKCkgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJsb2IpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRvd25sb2FkVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICAgICAgbGluay5ocmVmID0gZG93bmxvYWRVcmw7XHJcbiAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCAnMkNfQk5WXzIwMDhfJyArIGZpbGVuYW1lICsgJy5kb2MnKTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChkb3dubG9hZFVybCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25Cb2R5ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGpzb25Cb2R5KTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGRhdGEubWVzc2FnZUNvZGUsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZGF0YS5tZXNzYWdlQ29kZSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfUFJJTlRfMkNfOTg6XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4odGhpcy5tbHMudHJhbnMoJ1BSSU5UX09ORV9SRUNPUkQnKSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5odHRwLmdldChhcGkuSFVfRU1QTE9ZRUVfQ1ZfR0VUX0ZJTEVfTkFNRSArIHRoaXMuc2VsZWN0ZWRJZHNbMF0udG9TdHJpbmcoKSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGZpbGVuYW1lID0gcmVzcG9uc2UuaW5uZXJCb2R5O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQoYXBpLkhVX0VNUExPWUVFX0NWX0dFVF8yQzk4LCB7XHJcbiAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXHJcbiAgICAgICAgICAgICAgcGFyYW1zOiB7IGlkOiB0aGlzLnNlbGVjdGVkSWRzWzBdLnRvU3RyaW5nKCkgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJsb2IpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRvd25sb2FkVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICAgICAgbGluay5ocmVmID0gZG93bmxvYWRVcmw7XHJcbiAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCAnMkNfQk5WXzk4XycgKyBmaWxlbmFtZSArICcuZG9jJyk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoZG93bmxvYWRVcmwpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBqc29uQm9keSA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShqc29uQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4oZGF0YS5tZXNzYWdlQ29kZSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9VUERBVEU6XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZElkc1swXSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdGFmZi1wcm9maWxlLWNvbnRhaW5lclwiPlxyXG4gIDxjb3JlLXBhZ2UtbGlzdCBcclxuICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgIFthcGlEZWZpbml0aW9uXT1cImFwaURlZmluaXRpb25cIiBbY29sdW1uc109XCJjb2x1bW5zXCIgW2VkaXRSb3V0ZV09XCJlZGl0Um91dGVcIiBbY3J1ZF09XCJjcnVkXCJcclxuICAgIFt0aXRsZV09XCJ0aXRsZVwiIFtsZWZ0XT1cIm9yZ1RyZWVcIiAqbmdJZj1cIiEhYXZhdGFyXCJcclxuICAgIFtvdXRlclBhcmFtJF09XCJvdXRlclBhcmFtJFwiXHJcbiAgICBbb3V0ZXJJbk9wZXJhdG9yc109XCJvdXRlckluT3BlcmF0b3JzXCJcclxuICAgIFthdXRvUmVzaXplV2l0aFdpbmRvd109XCJ0cnVlXCJcclxuICAgIFtzZWxmUmVzb2x2ZUNvcmVQYWdlSGVhZGVyQnV0dG9uQ2xpY2tdPVwidHJ1ZVwiXHJcbiAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCJcclxuICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgKGNvcmVQYWdlSGVhZGVyQnV0dG9uQ2xpY2spPVwib25Db3JlUGFnZUhlYWRlckJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgKHNlbGVjdGVkSWRzQ2hhbmdlKT1cIm9uU2VsZWN0ZWRJZHNDaGFuZ2UxKCRldmVudClcIlxyXG4gICAgW2Zyb3plbl09XCIzXCJcclxuICAgIFtvdXRlclNvcnRdPVwib3V0ZXJTb3J0XCJcclxuICAgIFtzaG93UGFyYW1LaXRdPVwidHJ1ZVwiXHJcbiAgICBbZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JdPVwiZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JcIlxyXG4gICAgW2RhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXldPVwiZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleVwiXHJcbiAgICBbaGlkZVN0YXR1c0luY2x1c2lvbl09XCJmYWxzZVwiXHJcbiAgICBbc3RhdHVzSW5jbHVzaW9uRm9yXT1cInN0YXR1c0luY2x1c2lvbkZvclwiXHJcbiAgICBbc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXldPVwic3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXlcIlxyXG4gICAgW3N0YXR1c09wdGlvbnNBcGldPVwic3RhdHVzT3B0aW9uc0FwaVwiXHJcbiAgICBbZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3RdPVwiZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3RcIlxyXG4gICAgW2ltcG9ydFByZXZpZXdQYXRoXT1cIidzdGFmZnByb2ZpbGUtaW1wb3J0J1wiICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgID48L2NvcmUtcGFnZS1saXN0PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI29yZ1RyZWU+XHJcbiAgICA8Y29yZS1vcmctdHJlZSBbKG5nTW9kZWwpXT1cIm9yZ0lkc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uT3JnSWRzQ2hhbmdlKCRldmVudClcIj5cclxuICAgIDwvY29yZS1vcmctdHJlZT5cclxuXHJcbiAgICBcclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2F2YXRhciBsZXQtYXZhdGFyPVwiY29udGV4dC5hdmF0YXJcIj5cclxuICAgIDxpbWcgKm5nSWY9XCJhdmF0YXIgIT0gbnVsbFwiIFtzcmNdPVwiYXZhdGFyIHwgbWFwQXZhdGFyVG9TZXJ2ZXJcIiBjbGFzcz1cImluLXRhYmxlLWF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuICAgIDxpbWcgKm5nSWY9XCJhdmF0YXIgPT0gbnVsbFwiIFtzcmNdPVwiZGVmYXVsdEF2YXRhclwiIGNsYXNzPVwiaW4tdGFibGUtYXZhdGFyXCIgYXBwSW1hZ2VFcnJvclJlc29sdmVyPlxyXG5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuPC9kaXY+XHJcbjxhcHAtZnVsbHNjcmVlbi1tb2RhbC1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCI+PC9hcHAtZnVsbHNjcmVlbi1tb2RhbC1sb2FkZXI+Il19
|
|
@@ -139,68 +139,6 @@ export class WageComponent extends BaseComponent {
|
|
|
139
139
|
align: 'left',
|
|
140
140
|
width: 110,
|
|
141
141
|
},
|
|
142
|
-
// {
|
|
143
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_TAXTABLE,
|
|
144
|
-
// field: 'taxTableName',
|
|
145
|
-
// type: 'string',
|
|
146
|
-
// align: 'left',
|
|
147
|
-
// width: 100,
|
|
148
|
-
// },
|
|
149
|
-
// {
|
|
150
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_REGION,
|
|
151
|
-
// field: 'regionName',
|
|
152
|
-
// type: 'date',
|
|
153
|
-
// pipe: EnumCoreTablePipeType.DATE,
|
|
154
|
-
// align: 'center',
|
|
155
|
-
// width: 100,
|
|
156
|
-
// },
|
|
157
|
-
// {
|
|
158
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_SALARY_TYPE_NAME,
|
|
159
|
-
// field: 'salaryType',
|
|
160
|
-
// type: 'string',
|
|
161
|
-
// align: 'left',
|
|
162
|
-
// width: 100,
|
|
163
|
-
// },
|
|
164
|
-
// {
|
|
165
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_SALARY_SCALE_NAME,
|
|
166
|
-
// field: 'salaryScaleName',
|
|
167
|
-
// type: 'string',
|
|
168
|
-
// align: 'left',
|
|
169
|
-
// hidden: true,
|
|
170
|
-
// width: 200,
|
|
171
|
-
// },
|
|
172
|
-
// {
|
|
173
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_SALARY_RANK_NAME,
|
|
174
|
-
// field: 'salaryRankName',
|
|
175
|
-
// type: 'string',
|
|
176
|
-
// align: 'left',
|
|
177
|
-
// hidden: true,
|
|
178
|
-
// width: 200,
|
|
179
|
-
// },
|
|
180
|
-
// {
|
|
181
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_SALARY_LEVEL_NAME,
|
|
182
|
-
// field: 'salaryLevelName',
|
|
183
|
-
// type: 'string',
|
|
184
|
-
// align: 'left',
|
|
185
|
-
// hidden: true,
|
|
186
|
-
// width: 200,
|
|
187
|
-
// },
|
|
188
|
-
// {
|
|
189
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_COEFFICIENT,
|
|
190
|
-
// field: 'coefficient',
|
|
191
|
-
// type: 'string',
|
|
192
|
-
// pipe: EnumCoreTablePipeType.NUMBER,
|
|
193
|
-
// align: 'center',
|
|
194
|
-
// width: 70,
|
|
195
|
-
// },
|
|
196
|
-
// {
|
|
197
|
-
// caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_SAL_PERCENT,
|
|
198
|
-
// field: 'salPercent',
|
|
199
|
-
// type: 'string',
|
|
200
|
-
// pipe: EnumCoreTablePipeType.NUMBER,
|
|
201
|
-
// align: 'left',
|
|
202
|
-
// width: 70,
|
|
203
|
-
// },
|
|
204
142
|
{
|
|
205
143
|
caption: EnumTranslateKey.UI_COMPONENT_LABEL_WAGE_EXPIRE_UPSAL_DATE,
|
|
206
144
|
field: 'expireUpsalDate',
|
|
@@ -363,7 +301,7 @@ export class WageComponent extends BaseComponent {
|
|
|
363
301
|
}
|
|
364
302
|
}
|
|
365
303
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: WageComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.RandomAvatarService }, { token: i3.OrganizationService }, { token: i4.AppService }, { token: i5.AlertService }, { token: i6.CorePageListService }, { token: i7.HttpClient }, { token: i8.EvaluateDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: WageComponent, isStandalone: true, selector: "cms-profile-wage", inputs: { hideHeader: "hideHeader" }, viewQueries: [{ propertyName: "avatar", first: true, predicate: ["avatar"], descendants: true }, { propertyName: "sticker", first: true, predicate: ["sticker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"cms-profile-wage-container\">\r\n <core-page-list\r\n [apiDefinition]=\"apiDefinition\"\r\n [columns]=\"columns\"\r\n [editRoute]=\"editRoute\"\r\n [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\"\r\n [normalMode]=\"true\"\r\n [outerParam$]=\"outerParam$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [autoResizeWithWindow]=\"true\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (selectedIdsChange)=\"onSelectedIdsChangeeee($event)\" \r\n [extraManualOffset]=\"178\"\r\n (rowClick)=\"onRowClick($event)\"\r\n [showParamKit]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [hideStatusInclusion]=\"false\"\r\n [statusInclusionFor]=\"statusInclusionFor\"\r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"workStatusOptionsApi\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\"\r\n [frozen]=\"3\"\r\n [outerSort]=\"outerSort\"\r\n [generateTemplateRequest]=\"generateTemplateRequest\"\r\n [importPreviewPath]=\"'hu-working-hsl-pc-import'\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" (ngModelChange)=\"onOrgIdsChange($event)\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #sticker let-code=\"context.statusName\">\r\n <core-status-sticker [code]=\"code\"></core-status-sticker>\r\n </ng-template>\r\n <app-evaluate-dialog [buttonItems]=\"buttonItems\" *ngIf=\"evaluateDialogService.showConfirmDialog$.value == true\"></app-evaluate-dialog>\r\n</div>", styles: [".btn-Update{margin-top:18px;color:#fff;background-color:#f37540;cursor:pointer;font-size:15px;height:36px;width:100px;border-radius:50px;transition:0s!important;border:var(--color-bg-pagination-button) 1px solid;display:flex;align-items:center;justify-content:center}.btn-Update:hover{box-shadow:0 0 5px #0000004d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "hideDatePeriodComparison", "hideStatusInclusion", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: EvaluateDialogComponent, selector: "app-evaluate-dialog", inputs: ["showingUp", "buttonItems"] }, { kind: "component", type: CoreStatusStickerComponent, selector: "core-status-sticker", inputs: ["code", "isTrueCode"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
304
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: WageComponent, isStandalone: true, selector: "cms-profile-wage", inputs: { hideHeader: "hideHeader", columns: "columns" }, viewQueries: [{ propertyName: "avatar", first: true, predicate: ["avatar"], descendants: true }, { propertyName: "sticker", first: true, predicate: ["sticker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"cms-profile-wage-container\">\r\n <core-page-list\r\n [apiDefinition]=\"apiDefinition\"\r\n [columns]=\"columns\"\r\n [editRoute]=\"editRoute\"\r\n [crud]=\"crud\"\r\n [title]=\"title\" [left]=\"orgTree\"\r\n [normalMode]=\"true\"\r\n [outerParam$]=\"outerParam$\"\r\n [outerInOperators]=\"outerInOperators\"\r\n [autoResizeWithWindow]=\"true\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (selectedIdsChange)=\"onSelectedIdsChangeeee($event)\" \r\n [extraManualOffset]=\"178\"\r\n (rowClick)=\"onRowClick($event)\"\r\n [showParamKit]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [hideStatusInclusion]=\"false\"\r\n [statusInclusionFor]=\"statusInclusionFor\"\r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"workStatusOptionsApi\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\"\r\n [frozen]=\"3\"\r\n [outerSort]=\"outerSort\"\r\n [generateTemplateRequest]=\"generateTemplateRequest\"\r\n [importPreviewPath]=\"'hu-working-hsl-pc-import'\"\r\n ></core-page-list>\r\n\r\n <ng-template #orgTree>\r\n <core-org-tree [(ngModel)]=\"orgIds\" (ngModelChange)=\"onOrgIdsChange($event)\">\r\n </core-org-tree>\r\n </ng-template>\r\n\r\n <ng-template #sticker let-code=\"context.statusName\">\r\n <core-status-sticker [code]=\"code\"></core-status-sticker>\r\n </ng-template>\r\n <app-evaluate-dialog [buttonItems]=\"buttonItems\" *ngIf=\"evaluateDialogService.showConfirmDialog$.value == true\"></app-evaluate-dialog>\r\n</div>", styles: [".btn-Update{margin-top:18px;color:#fff;background-color:#f37540;cursor:pointer;font-size:15px;height:36px;width:100px;border-radius:50px;transition:0s!important;border:var(--color-bg-pagination-button) 1px solid;display:flex;align-items:center;justify-content:center}.btn-Update:hover{box-shadow:0 0 5px #0000004d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "hideDatePeriodComparison", "hideStatusInclusion", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: EvaluateDialogComponent, selector: "app-evaluate-dialog", inputs: ["showingUp", "buttonItems"] }, { kind: "component", type: CoreStatusStickerComponent, selector: "core-status-sticker", inputs: ["code", "isTrueCode"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
367
305
|
}
|
|
368
306
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: WageComponent, decorators: [{
|
|
369
307
|
type: Component,
|
|
@@ -383,5 +321,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
383
321
|
}], sticker: [{
|
|
384
322
|
type: ViewChild,
|
|
385
323
|
args: ['sticker']
|
|
324
|
+
}], columns: [{
|
|
325
|
+
type: Input
|
|
386
326
|
}] } });
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvd2FnZS93YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy93YWdlL3dhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQTJFLE1BQU0sNENBQTRDLENBQUM7QUFDNUosT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDOUYsT0FBTyxFQUFFLFdB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QkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNHLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUFsZXJ0T3B0aW9ucyB9IGZyb20gXCIuLi9hbGVydC9hbGVydC9hbGVydC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJQ29yZVBhcmFtQ29udHJvbCB9IGZyb20gXCIuLi9jb3JlLWhlYWRlci1wYXJhbXMvZW51bS1hbmQtaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUxpc3RDb21wb25lbnQsIElDb3JlUGFnZUxpc3RBcGlEZWZpbml0aW9uLCBJQ29yZVBhZ2VMaXN0Q1JVRCwgSUNvcmVQYWdlTGlzdEVkaXRSb3V0aW5nIH0gZnJvbSBcIi4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBJRmlsdGVyT3BlcmF0b3IsIElJbk9wZXJhdG9yLCBJU29ydEl0ZW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tIFwiLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGVcIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0U2VydmljZSwgSUdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0IH0gZnJvbSBcIi4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tIFwiLi4vY29yZS10YWJsZS9JQ29yZVRhYmxlQ29sdW1uSXRlbVwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tIFwiLi4vY29yZS10YWJsZS9FbnVtQ29yZVRhYmxlUGlwZVR5cGVcIjtcclxuaW1wb3J0IHsgRW51bVNvcnREaXJlY3Rpb24gfSBmcm9tIFwiLi4vLi4vZW51bS9FbnVtU29ydERpcmVjdGlvblwiO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL29yZ2FuaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUmFuZG9tQXZhdGFyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9yYW5kb20tYXZhdGFyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hcHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vYWxlcnQvYWxlcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFdmFsdWF0ZURpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdmFsdWF0ZS1kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSBcIi4uLy4uL2VudW0vRW51bUZvcm1CYXNlQ29udG9sVHlwZVwiO1xyXG5pbXBvcnQgeyBJRm9ybWF0ZWRSZXNwb25zZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlXCI7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uVk5TIH0gZnJvbSBcIi4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvSUNvcmVCdXR0b25WTlNcIjtcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnNcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgRXZhbHVhdGVEaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi4vZXZhbHVhdGUtZGlhbG9nL2V2YWx1YXRlLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vY29yZS1zdGF0dXMtc3RpY2tlci9jb3JlLXN0YXR1cy1zdGlja2VyL2NvcmUtc3RhdHVzLXN0aWNrZXIuY29tcG9uZW50XCI7XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNtcy1wcm9maWxlLXdhZ2VcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvcmVQYWdlTGlzdENvbXBvbmVudCxcclxuICAgIENvcmVPcmdUcmVlQ29tcG9uZW50LFxyXG4gICAgRXZhbHVhdGVEaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb3JlU3RhdHVzU3RpY2tlckNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3dhZ2UuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vd2FnZS5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdhZ2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBoaWRlSGVhZGVyITogYm9vbGVhbjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYXZhdGFyJykgYXZhdGFyITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdzdGlja2VyJykgc3RpY2tlciE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGlkOiBhbnk7XHJcbiAgLyogU1RBUlQ6IExvY2FsIGZpbHRlciBwYXJhbXMgKi9cclxuICBvcmdJZHMhOiBudW1iZXJbXTtcclxuICAvKiBFTkQ6IExvY2FsIGZpbHRlciBwYXJhbXMgKi9cclxuXHJcbiAgbGlzdEluc3RhbmNlITogbnVtYmVyO1xyXG4gIHBhcmFtUm93cyE6IElDb3JlUGFyYW1Db250cm9sW11bXTtcclxuICBzZWxlY3RlZElkczogbnVtYmVyW10gPSBbXTtcclxuICAvKlxyXG4gIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0XHJcbiAgKi9cclxuXHJcbiAgYWxlcnRPcHRpb25zOiBJQWxlcnRPcHRpb25zID0ge1xyXG4gICAgYXV0b0Nsb3NlOiB0cnVlLFxyXG4gICAga2VlcEFmdGVyUm91dGVDaGFuZ2U6IHRydWUsXHJcbiAgICB0aW1lQ2xvc2U6IDEwMDAwXHJcbiAgfTtcclxuXHJcbiAgdGl0bGUgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9USVRMRV9XQUdFXHJcbiAgb3V0ZXJQYXJhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcblxyXG4gIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yOiBzdHJpbmcgPSAnZWZmZWN0RGF0ZSc7XHJcbiAgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleTogRW51bVRyYW5zbGF0ZUtleSAgPSBFbnVtVHJhbnNsYXRlS2V5Lk5VTEw7XHJcbiAgc3RhdHVzSW5jbHVzaW9uRm9yOiBzdHJpbmcgPSAnZW1wV29ya1N0YXR1cyc7XHJcbiAgc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXk6IEVudW1UcmFuc2xhdGVLZXkgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1dFTEZBUkVfTU5HX0VNUExPWUVFX1NUQVRVUztcclxuICB3b3JrU3RhdHVzT3B0aW9uc0FwaTogYXBpID0gYXBpLkhVX0VNUExPWUVFX0NWX0dFVF9FTVBMT1lFRV9TVEFUVVNfTElTVDtcclxuICBvdXRlckZpbHRlck9wZXJhdG9ycyE6IElGaWx0ZXJPcGVyYXRvcltdO1xyXG4gIG91dGVySW5PcGVyYXRvcnM6IElJbk9wZXJhdG9yW10gPSBbXTtcclxuXHJcbiAgYXBpRGVmaW5pdGlvbjogSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24gPSB7XHJcbiAgICBxdWVyeUxpc3RSZWxhdGl2ZVBhdGg6IGFwaS5IVV9XQUdFX1FVRVJZX0xJU1QsXHJcbiAgfVxyXG5cclxuICBjcnVkOiBJQ29yZVBhZ2VMaXN0Q1JVRCA9IHtcclxuICAgIGRlbGV0ZUlkczogYXBpLkhVX1dBR0VfREVMRVRFX0lEUyxcclxuICAgIHRvZ2dsZUFwcHJvdmVJZHM6IGFwaS5IVV9XQUdFX0NIQU5HRVNUQVRVU0FQUFJPVkVcclxuICB9XHJcblxyXG4gIGF2YXRhclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3QhOiBJR2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3Q7XHJcbiAgYnV0dG9uSXRlbXM6IEVudW1Db3JlQnV0dG9uVk5TQ29kZVtdID0gW1xyXG4gICAgRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0NBTkNFTCxcclxuICAgIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9VUERBVEVcclxuICBdO1xyXG5cclxuICBjb2x1bW5zOiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0NPTU1PTl9JRCxcclxuICAgICAgZmllbGQ6ICdpZCcsXHJcbiAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICB3aWR0aDogMjAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9TVEFUVVMsXHJcbiAgICAgIGZpZWxkOiAnc3RhdHVzTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTIwLFxyXG5cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX1dBR0VfRU1QTE9ZRUVfQ09ERSxcclxuICAgICAgZmllbGQ6ICdlbXBsb3llZUNvZGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDgwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9FTVBMT1lFRV9OQU1FLFxyXG4gICAgICBmaWVsZDogJ2VtcGxveWVlTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMjUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9PUkdfTkFNRSxcclxuICAgICAgZmllbGQ6ICdvcmdOYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAzMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX1BPU0lUSU9OX05BTUUsXHJcbiAgICAgIGZpZWxkOiAncG9zaXRpb25OYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAzMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX0VGRkVDVERBVEUsXHJcbiAgICAgIGZpZWxkOiAnZWZmZWN0RGF0ZScsXHJcbiAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgcGlwZTogRW51bUNvcmVUYWJsZVBpcGVUeXBlLkRBVEUsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICB3aWR0aDogMTAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9FWFBJUkVEQVRFLFxyXG4gICAgICBmaWVsZDogJ2V4cGlyZURhdGUnLFxyXG4gICAgICB0eXBlOiAnZGF0ZScsXHJcbiAgICAgIHBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZS5EQVRFLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHdpZHRoOiAxMzAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX1RZUEVfTkFNRSxcclxuICAgICAgZmllbGQ6ICd0eXBlTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMzAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9ERUNJU0lPTk5PLFxyXG4gICAgICBmaWVsZDogJ2RlY2lzaW9uTm8nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDExMCxcclxuICAgIH0sXHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX1dBR0VfVEFYVEFCTEUsXHJcbiAgICAvLyAgIGZpZWxkOiAndGF4VGFibGVOYW1lJyxcclxuICAgIC8vICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAvLyAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAvLyAgIHdpZHRoOiAxMDAsXHJcbiAgICAvLyB9LFxyXG4gICAgLy8ge1xyXG4gICAgLy8gICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX1JFR0lPTixcclxuICAgIC8vICAgZmllbGQ6ICdyZWdpb25OYW1lJyxcclxuICAgIC8vICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgLy8gICBwaXBlOiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuREFURSxcclxuICAgIC8vICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgLy8gICB3aWR0aDogMTAwLFxyXG4gICAgLy8gfSxcclxuICAgIC8vIHtcclxuICAgIC8vICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9TQUxBUllfVFlQRV9OQU1FLFxyXG4gICAgLy8gICBmaWVsZDogJ3NhbGFyeVR5cGUnLFxyXG4gICAgLy8gICB0eXBlOiAnc3RyaW5nJyxcclxuICAgIC8vICAgYWxpZ246ICdsZWZ0JyxcclxuICAgIC8vICAgd2lkdGg6IDEwMCxcclxuICAgIC8vIH0sXHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX1dBR0VfU0FMQVJZX1NDQUxFX05BTUUsXHJcbiAgICAvLyAgIGZpZWxkOiAnc2FsYXJ5U2NhbGVOYW1lJyxcclxuICAgIC8vICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAvLyAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAvLyAgIGhpZGRlbjogdHJ1ZSxcclxuICAgIC8vICAgd2lkdGg6IDIwMCxcclxuICAgIC8vIH0sXHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX1dBR0VfU0FMQVJZX1JBTktfTkFNRSxcclxuICAgIC8vICAgZmllbGQ6ICdzYWxhcnlSYW5rTmFtZScsXHJcbiAgICAvLyAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgLy8gICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgLy8gICBoaWRkZW46IHRydWUsXHJcbiAgICAvLyAgIHdpZHRoOiAyMDAsXHJcbiAgICAvLyB9LFxyXG4gICAgLy8ge1xyXG4gICAgLy8gICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX1NBTEFSWV9MRVZFTF9OQU1FLFxyXG4gICAgLy8gICBmaWVsZDogJ3NhbGFyeUxldmVsTmFtZScsXHJcbiAgICAvLyAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgLy8gICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgLy8gICBoaWRkZW46IHRydWUsXHJcbiAgICAvLyAgIHdpZHRoOiAyMDAsXHJcbiAgICAvLyB9LFxyXG4gICAgLy8ge1xyXG4gICAgLy8gICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX0NPRUZGSUNJRU5ULFxyXG4gICAgLy8gICBmaWVsZDogJ2NvZWZmaWNpZW50JyxcclxuICAgIC8vICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAvLyAgIHBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZS5OVU1CRVIsXHJcbiAgICAvLyAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgIC8vICAgd2lkdGg6IDcwLFxyXG4gICAgLy8gfSxcclxuICAgIC8vIHtcclxuICAgIC8vICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9TQUxfUEVSQ0VOVCxcclxuICAgIC8vICAgZmllbGQ6ICdzYWxQZXJjZW50JyxcclxuICAgIC8vICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAvLyAgIHBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZS5OVU1CRVIsXHJcbiAgICAvLyAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAvLyAgIHdpZHRoOiA3MCxcclxuICAgIC8vIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX1dBR0VfRVhQSVJFX1VQU0FMX0RBVEUsXHJcbiAgICAgIGZpZWxkOiAnZXhwaXJlVXBzYWxEYXRlJyxcclxuICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICBwaXBlOiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuREFURSxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICB3aWR0aDogMTAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9SRUFTT05fVVBTQUwsXHJcbiAgICAgIGZpZWxkOiAncmVhc29uVXBzYWwnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDExMCxcclxuICAgIH0sXHJcbiAgXVxyXG5cclxuICBkZWZhdWx0QXZhdGFyITogc3RyaW5nO1xyXG5cclxuICBlZGl0Um91dGU6IElDb3JlUGFnZUxpc3RFZGl0Um91dGluZyA9IHtcclxuICAgIGF1eGlsaWFyeTogJ3BvcHVwQXV4J1xyXG4gIH1cclxuICBvdXRlclNvcnQ6IElTb3J0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogXCJqb2JPcmRlck51bVwiLFxyXG4gICAgICBzb3J0RGlyZWN0aW9uOiBFbnVtU29ydERpcmVjdGlvbi5BU0NcclxuICAgIH1cclxuICBdXHJcbiAgLyogRW5kIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS10eXBlLWEgKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyByYXM6IFJhbmRvbUF2YXRhclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3JnYW5pemF0aW9uU2VydmljZTogT3JnYW5pemF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlLFxyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNvcmVQYWdlTGlzdFNlcnZpY2U6IENvcmVQYWdlTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHB1YmxpYyBldmFsdWF0ZURpYWxvZ1NlcnZpY2U6IEV2YWx1YXRlRGlhbG9nU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICAgIHRoaXMuZGVmYXVsdEF2YXRhciA9IHJhcy5nZXQoKTtcclxuXHJcbiAgICAvKiBHZXQgb3JnSWRzIHN0YXJ0dXAgdmFsdWUgKi9cclxuICAgIGNvbnN0IG5ld09yZ0lkczogbnVtYmVyW10gPSBbXTtcclxuICAgIHRoaXMub3JnYW5pemF0aW9uU2VydmljZS5zdGF0dXMkLnZhbHVlLmFjdGl2ZUtleXMubWFwKHggPT4gbmV3T3JnSWRzLnB1c2goTnVtYmVyKHgpKSlcclxuICAgIHRoaXMub25PcmdJZHNDaGFuZ2UobmV3T3JnSWRzKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLmZpZWxkID09PSAnYXZhdGFyJyk7XHJcbiAgICAgIGlmICghIWZpbHRlci5sZW5ndGgpIGZpbHRlclswXS50ZW1wbGF0ZVJlZiA9IHRoaXMuYXZhdGFyO1xyXG4gICAgICBjb25zdCBzdGlja2VyRmlsdGVyID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjID0+IGMuZmllbGQgPT09ICdzdGF0dXNOYW1lJyk7XHJcbiAgICAgIGlmICghIXN0aWNrZXJGaWx0ZXIubGVuZ3RoKSBzdGlja2VyRmlsdGVyWzBdLnRlbXBsYXRlUmVmID0gdGhpcy5zdGlja2VyO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9uT3JnSWRzQ2hhbmdlKG9yZ0lkczogbnVtYmVyW10pIHtcclxuICAgIHRoaXMub3JnSWRzID0gb3JnSWRzXHJcbiAgICB0aGlzLm91dGVySW5PcGVyYXRvcnMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgICB2YWx1ZXM6IG9yZ0lkc1xyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBvbkluc3RhbmNlQ3JlYXRlZChldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmxpc3RJbnN0YW5jZSA9IGV2ZW50O1xyXG4gIH1cclxuICBvbk5nTW9kZWxDaGFuZ2UgPSAobmdNb2RlbDogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XHJcblxyXG4gIH1cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmV2YWx1YXRlRGlhbG9nU2VydmljZS5kaWFsb2dDb25maXJtZWQkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHggPT4gISF4KVxyXG4gICAgICApLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICBpZighIXg/LmNvbmZpcm1lZCl7XHJcbiAgICAgICAgICB0aGlzLlVwZGF0ZVVwc2FsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKSAgICBcclxuICAgIHRoaXMucGFyYW1Sb3dzID0gW1xyXG4gICAgICBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmxleFNpemU6IDYsXHJcbiAgICAgICAgICBuYW1lOiAnZWZmZWN0VXBzYWxEYXRlJyxcclxuICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcblxyXG4gICAgICAgICAgZmxleFNpemU6IDYsXHJcbiAgICAgICAgICBuYW1lOiAncmVhc29uVXBzYWwnLFxyXG4gICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9SRUFTT05fVVBTQUwsXHJcbiAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICB0aGlzLmxhbmcgPSB4O1xyXG4gICAgICB0aGlzLmdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0ID0ge1xyXG4gICAgICAgIGV4Q29kZTogJ0hVX1dPUktJTkdfSFNMX1BDJyxcclxuICAgICAgICBsYW5nOiB4XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkSWRzQ2hhbmdlZWVlKGU6IG51bWJlcltdKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gZTtcclxuICB9XHJcbiAgVXBkYXRlVXBzYWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZElkcyA9PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4odGhpcy5tbHMudHJhbnMoXCJVSV9DT01QT05FTlRfVElUTEVfV0FHRV9JRFNfTlVMTFwiKSwgdGhpcy5hbGVydE9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goIC8vIDw9PSBJbm5lciBwdXNoIHRoaXMucGFyYW1Sb3dzWzBdWzBdLm5nTW9kZWwudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycpXHJcbiAgICAgIHRoaXMuYXBwU2VydmljZVxyXG4gICAgICAgIC5wb3N0KCcvYXBpL0h1V29ya2luZy9VcGRhdGVVcHNhbCcsIHsgaWRzOiB0aGlzLnNlbGVjdGVkSWRzLCBkYXRlQ2FsOiB0aGlzLmV2YWx1YXRlRGlhbG9nU2VydmljZS5kYXRlSW5wdXQkLnZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnKSwgcmVhc29uVXBzYWw6IHRoaXMuZXZhbHVhdGVEaWFsb2dTZXJ2aWNlLnJlYXNvbiQudmFsdWUgfSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCEhcmVzLm9rICYmIHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAvLyByZWxvYWQgbcOgbiBow6xuaCAgXHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RJbnN0YW5jZXMgPSB0aGlzLmNvcmVQYWdlTGlzdFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcihcclxuICAgICAgICAgICAgICAoeSkgPT4geS5pbnN0YW5jZU51bWJlciA9PT0gdGhpcy5saXN0SW5zdGFuY2VcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKCEhbGlzdEluc3RhbmNlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBsaXN0SW5zdGFuY2VzWzBdLnJlbG9hZEZsYWckLm5leHQoXHJcbiAgICAgICAgICAgICAgICAhISFsaXN0SW5zdGFuY2VzWzBdLnJlbG9hZEZsYWckLnZhbHVlXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gZW5kIHJlbG9hZCBtw6BuIGjDrG5oXHJcbiAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0gcmVzLmJvZHlcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tbHMudHJhbnMoYm9keS5tZXNzYWdlQ29kZSksIHRoaXMuYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICB9XHJcbiAgb25Sb3dDbGljayhlOiBhbnkpIHtcclxuICAgIHRoaXMuaWQgPSBlLmlkXHJcbiAgfVxyXG4gIG9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljayhlOiBJQ29yZUJ1dHRvblZOUykge1xyXG4gICAgc3dpdGNoIChlLmNvZGUpIHtcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5UOlxyXG4gICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICBsZXQgZmlsZW5hbWU9ICcnO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQoYXBpLkhVX0RFQ0lTSU9OX0ZJTEVfTkFNRSt0aGlzLmlkLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZmlsZW5hbWUgPSByZXNwb25zZS5pbm5lckJvZHk7IFxyXG4gICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5odHRwLmdldChhcGkuSFVfREVDSVNJT05fUFJJTlQsIHtcclxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxyXG4gICAgICAgICAgcGFyYW1zOiB7IGlkOiB0aGlzLmlkLnRvU3RyaW5nKCkgfVxyXG4gICAgICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IEJsb2IpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID09PSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJykge1xyXG4gICAgICAgICAgICBjb25zdCBkb3dubG9hZFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBkb3dubG9hZFVybDtcclxuICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUrJy5kb2MnKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGRvd25sb2FkVXJsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGpzb25Cb2R5ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoanNvbkJvZHkpO1xyXG4gICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGRhdGEubWVzc2FnZUNvZGUsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZGF0YS5tZXNzYWdlQ29kZSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KHJlc3BvbnNlKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9VUERBVEU6XHJcbiAgICAgICAgdGhpcy5ldmFsdWF0ZURpYWxvZ1NlcnZpY2UuY3JlYXRlTmV3KEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX1RJVExFX0hVX0VWQUxVQVRFX1VQREFURV9EQVRBLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfVElUTEVfSFVfRVZBTFVBVEVfSU5QVVRfUkVBU09OLCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlLClcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgIH1cclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY21zLXByb2ZpbGUtd2FnZS1jb250YWluZXJcIj5cclxuICA8Y29yZS1wYWdlLWxpc3RcclxuICAgIFthcGlEZWZpbml0aW9uXT1cImFwaURlZmluaXRpb25cIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbZWRpdFJvdXRlXT1cImVkaXRSb3V0ZVwiXHJcbiAgICBbY3J1ZF09XCJjcnVkXCJcclxuICAgIFt0aXRsZV09XCJ0aXRsZVwiIFtsZWZ0XT1cIm9yZ1RyZWVcIlxyXG4gICAgW25vcm1hbE1vZGVdPVwidHJ1ZVwiXHJcbiAgICBbb3V0ZXJQYXJhbSRdPVwib3V0ZXJQYXJhbSRcIlxyXG4gICAgW291dGVySW5PcGVyYXRvcnNdPVwib3V0ZXJJbk9wZXJhdG9yc1wiXHJcbiAgICBbYXV0b1Jlc2l6ZVdpdGhXaW5kb3ddPVwidHJ1ZVwiXHJcbiAgICAoY29yZVBhZ2VIZWFkZXJCdXR0b25DbGljayk9XCJvbkNvcmVQYWdlSGVhZGVyQnV0dG9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAoc2VsZWN0ZWRJZHNDaGFuZ2UpPVwib25TZWxlY3RlZElkc0NoYW5nZWVlZSgkZXZlbnQpXCIgXHJcbiAgICBbZXh0cmFNYW51YWxPZmZzZXRdPVwiMTc4XCJcclxuICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgW3Nob3dQYXJhbUtpdF09XCJ0cnVlXCJcclxuICAgIFtkYXRlUGVyaW9kQ29tcGFyaXNvbkZvcl09XCJkYXRlUGVyaW9kQ29tcGFyaXNvbkZvclwiXHJcbiAgICBbZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleV09XCJkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5XCJcclxuICAgIFtoaWRlU3RhdHVzSW5jbHVzaW9uXT1cImZhbHNlXCJcclxuICAgIFtzdGF0dXNJbmNsdXNpb25Gb3JdPVwic3RhdHVzSW5jbHVzaW9uRm9yXCJcclxuICAgIFtzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleV09XCJzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleVwiXHJcbiAgICBbc3RhdHVzT3B0aW9uc0FwaV09XCJ3b3JrU3RhdHVzT3B0aW9uc0FwaVwiXHJcbiAgICAob25JbnN0YW5jZUNyZWF0ZWQpPVwib25JbnN0YW5jZUNyZWF0ZWQoJGV2ZW50KVwiXHJcbiAgICBbZnJvemVuXT1cIjNcIlxyXG4gICAgW291dGVyU29ydF09XCJvdXRlclNvcnRcIlxyXG4gICAgW2dlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XT1cImdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XCJcclxuICAgIFtpbXBvcnRQcmV2aWV3UGF0aF09XCInaHUtd29ya2luZy1oc2wtcGMtaW1wb3J0J1wiXHJcbiAgICA+PC9jb3JlLXBhZ2UtbGlzdD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNvcmdUcmVlPlxyXG4gICAgPGNvcmUtb3JnLXRyZWUgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiAobmdNb2RlbENoYW5nZSk9XCJvbk9yZ0lkc0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8L2NvcmUtb3JnLXRyZWU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNzdGlja2VyIGxldC1jb2RlPVwiY29udGV4dC5zdGF0dXNOYW1lXCI+XHJcbiAgICA8Y29yZS1zdGF0dXMtc3RpY2tlciBbY29kZV09XCJjb2RlXCI+PC9jb3JlLXN0YXR1cy1zdGlja2VyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGFwcC1ldmFsdWF0ZS1kaWFsb2cgW2J1dHRvbkl0ZW1zXT1cImJ1dHRvbkl0ZW1zXCIgKm5nSWY9XCJldmFsdWF0ZURpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm1EaWFsb2ckLnZhbHVlID09IHRydWVcIj48L2FwcC1ldmFsdWF0ZS1kaWFsb2c+XHJcbjwvZGl2PiJdfQ==
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvd2FnZS93YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy93YWdlL3dhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBRVQsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQTJFLE1BQU0sNENBQTRDLENBQUM7QUFDNUosT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDOUYsT0FBTyxFQUFFLFdB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K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsV0FBVztxQkFDWjtnVEFNUSxVQUFVO3NCQUFsQixLQUFLO2dCQUVlLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBZ0RYLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUFsZXJ0T3B0aW9ucyB9IGZyb20gXCIuLi9hbGVydC9hbGVydC9hbGVydC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJQ29yZVBhcmFtQ29udHJvbCB9IGZyb20gXCIuLi9jb3JlLWhlYWRlci1wYXJhbXMvZW51bS1hbmQtaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUxpc3RDb21wb25lbnQsIElDb3JlUGFnZUxpc3RBcGlEZWZpbml0aW9uLCBJQ29yZVBhZ2VMaXN0Q1JVRCwgSUNvcmVQYWdlTGlzdEVkaXRSb3V0aW5nIH0gZnJvbSBcIi4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBJRmlsdGVyT3BlcmF0b3IsIElJbk9wZXJhdG9yLCBJU29ydEl0ZW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tIFwiLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGVcIjtcclxuaW1wb3J0IHsgQ29yZVBhZ2VMaXN0U2VydmljZSwgSUdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0IH0gZnJvbSBcIi4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tIFwiLi4vY29yZS10YWJsZS9JQ29yZVRhYmxlQ29sdW1uSXRlbVwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tIFwiLi4vY29yZS10YWJsZS9FbnVtQ29yZVRhYmxlUGlwZVR5cGVcIjtcclxuaW1wb3J0IHsgRW51bVNvcnREaXJlY3Rpb24gfSBmcm9tIFwiLi4vLi4vZW51bS9FbnVtU29ydERpcmVjdGlvblwiO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL29yZ2FuaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUmFuZG9tQXZhdGFyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9yYW5kb20tYXZhdGFyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hcHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vYWxlcnQvYWxlcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFdmFsdWF0ZURpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdmFsdWF0ZS1kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSBcIi4uLy4uL2VudW0vRW51bUZvcm1CYXNlQ29udG9sVHlwZVwiO1xyXG5pbXBvcnQgeyBJRm9ybWF0ZWRSZXNwb25zZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlXCI7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uVk5TIH0gZnJvbSBcIi4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvSUNvcmVCdXR0b25WTlNcIjtcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnNcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb3JlT3JnVHJlZUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgRXZhbHVhdGVEaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi4vZXZhbHVhdGUtZGlhbG9nL2V2YWx1YXRlLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vY29yZS1zdGF0dXMtc3RpY2tlci9jb3JlLXN0YXR1cy1zdGlja2VyL2NvcmUtc3RhdHVzLXN0aWNrZXIuY29tcG9uZW50XCI7XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNtcy1wcm9maWxlLXdhZ2VcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvcmVQYWdlTGlzdENvbXBvbmVudCxcclxuICAgIENvcmVPcmdUcmVlQ29tcG9uZW50LFxyXG4gICAgRXZhbHVhdGVEaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb3JlU3RhdHVzU3RpY2tlckNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3dhZ2UuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vd2FnZS5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdhZ2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBoaWRlSGVhZGVyITogYm9vbGVhbjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYXZhdGFyJykgYXZhdGFyITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdzdGlja2VyJykgc3RpY2tlciE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGlkOiBhbnk7XHJcbiAgLyogU1RBUlQ6IExvY2FsIGZpbHRlciBwYXJhbXMgKi9cclxuICBvcmdJZHMhOiBudW1iZXJbXTtcclxuICAvKiBFTkQ6IExvY2FsIGZpbHRlciBwYXJhbXMgKi9cclxuXHJcbiAgbGlzdEluc3RhbmNlITogbnVtYmVyO1xyXG4gIHBhcmFtUm93cyE6IElDb3JlUGFyYW1Db250cm9sW11bXTtcclxuICBzZWxlY3RlZElkczogbnVtYmVyW10gPSBbXTtcclxuICAvKlxyXG4gIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS1saXN0XHJcbiAgKi9cclxuXHJcbiAgYWxlcnRPcHRpb25zOiBJQWxlcnRPcHRpb25zID0ge1xyXG4gICAgYXV0b0Nsb3NlOiB0cnVlLFxyXG4gICAga2VlcEFmdGVyUm91dGVDaGFuZ2U6IHRydWUsXHJcbiAgICB0aW1lQ2xvc2U6IDEwMDAwXHJcbiAgfTtcclxuXHJcbiAgdGl0bGUgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9USVRMRV9XQUdFXHJcbiAgb3V0ZXJQYXJhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcblxyXG4gIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yOiBzdHJpbmcgPSAnZWZmZWN0RGF0ZSc7XHJcbiAgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleTogRW51bVRyYW5zbGF0ZUtleSAgPSBFbnVtVHJhbnNsYXRlS2V5Lk5VTEw7XHJcbiAgc3RhdHVzSW5jbHVzaW9uRm9yOiBzdHJpbmcgPSAnZW1wV29ya1N0YXR1cyc7XHJcbiAgc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXk6IEVudW1UcmFuc2xhdGVLZXkgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX1dFTEZBUkVfTU5HX0VNUExPWUVFX1NUQVRVUztcclxuICB3b3JrU3RhdHVzT3B0aW9uc0FwaTogYXBpID0gYXBpLkhVX0VNUExPWUVFX0NWX0dFVF9FTVBMT1lFRV9TVEFUVVNfTElTVDtcclxuICBvdXRlckZpbHRlck9wZXJhdG9ycyE6IElGaWx0ZXJPcGVyYXRvcltdO1xyXG4gIG91dGVySW5PcGVyYXRvcnM6IElJbk9wZXJhdG9yW10gPSBbXTtcclxuXHJcbiAgYXBpRGVmaW5pdGlvbjogSUNvcmVQYWdlTGlzdEFwaURlZmluaXRpb24gPSB7XHJcbiAgICBxdWVyeUxpc3RSZWxhdGl2ZVBhdGg6IGFwaS5IVV9XQUdFX1FVRVJZX0xJU1QsXHJcbiAgfVxyXG5cclxuICBjcnVkOiBJQ29yZVBhZ2VMaXN0Q1JVRCA9IHtcclxuICAgIGRlbGV0ZUlkczogYXBpLkhVX1dBR0VfREVMRVRFX0lEUyxcclxuICAgIHRvZ2dsZUFwcHJvdmVJZHM6IGFwaS5IVV9XQUdFX0NIQU5HRVNUQVRVU0FQUFJPVkVcclxuICB9XHJcblxyXG4gIGF2YXRhclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgZ2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3QhOiBJR2VuZXJhdGVUZW1wbGF0ZVJlcXVlc3Q7XHJcbiAgYnV0dG9uSXRlbXM6IEVudW1Db3JlQnV0dG9uVk5TQ29kZVtdID0gW1xyXG4gICAgRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0NBTkNFTCxcclxuICAgIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9VUERBVEVcclxuICBdO1xyXG5cclxuICBASW5wdXQoKSBjb2x1bW5zOiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0NPTU1PTl9JRCxcclxuICAgICAgZmllbGQ6ICdpZCcsXHJcbiAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICB3aWR0aDogMjAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9TVEFUVVMsXHJcbiAgICAgIGZpZWxkOiAnc3RhdHVzTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMTIwLFxyXG5cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX1dBR0VfRU1QTE9ZRUVfQ09ERSxcclxuICAgICAgZmllbGQ6ICdlbXBsb3llZUNvZGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDgwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9FTVBMT1lFRV9OQU1FLFxyXG4gICAgICBmaWVsZDogJ2VtcGxveWVlTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMjUwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9PUkdfTkFNRSxcclxuICAgICAgZmllbGQ6ICdvcmdOYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAzMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX1BPU0lUSU9OX05BTUUsXHJcbiAgICAgIGZpZWxkOiAncG9zaXRpb25OYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiAzMDAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX0VGRkVDVERBVEUsXHJcbiAgICAgIGZpZWxkOiAnZWZmZWN0RGF0ZScsXHJcbiAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgcGlwZTogRW51bUNvcmVUYWJsZVBpcGVUeXBlLkRBVEUsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICB3aWR0aDogMTAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9FWFBJUkVEQVRFLFxyXG4gICAgICBmaWVsZDogJ2V4cGlyZURhdGUnLFxyXG4gICAgICB0eXBlOiAnZGF0ZScsXHJcbiAgICAgIHBpcGU6IEVudW1Db3JlVGFibGVQaXBlVHlwZS5EQVRFLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHdpZHRoOiAxMzAsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPTVBPTkVOVF9MQUJFTF9XQUdFX1RZUEVfTkFNRSxcclxuICAgICAgZmllbGQ6ICd0eXBlTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMzAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9ERUNJU0lPTk5PLFxyXG4gICAgICBmaWVsZDogJ2RlY2lzaW9uTm8nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDExMCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGNhcHRpb246IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX0xBQkVMX1dBR0VfRVhQSVJFX1VQU0FMX0RBVEUsXHJcbiAgICAgIGZpZWxkOiAnZXhwaXJlVXBzYWxEYXRlJyxcclxuICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICBwaXBlOiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUuREFURSxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICB3aWR0aDogMTAwLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9SRUFTT05fVVBTQUwsXHJcbiAgICAgIGZpZWxkOiAncmVhc29uVXBzYWwnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDExMCxcclxuICAgIH0sXHJcbiAgXVxyXG5cclxuICBkZWZhdWx0QXZhdGFyITogc3RyaW5nO1xyXG5cclxuICBlZGl0Um91dGU6IElDb3JlUGFnZUxpc3RFZGl0Um91dGluZyA9IHtcclxuICAgIGF1eGlsaWFyeTogJ3BvcHVwQXV4J1xyXG4gIH1cclxuICBvdXRlclNvcnQ6IElTb3J0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBmaWVsZDogXCJqb2JPcmRlck51bVwiLFxyXG4gICAgICBzb3J0RGlyZWN0aW9uOiBFbnVtU29ydERpcmVjdGlvbi5BU0NcclxuICAgIH1cclxuICBdXHJcbiAgLyogRW5kIFByb3BlcnRpZXMgYmVpbmcgcGFzc2VkIHRvIGNvcmUtcGFnZS10eXBlLWEgKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyByYXM6IFJhbmRvbUF2YXRhclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3JnYW5pemF0aW9uU2VydmljZTogT3JnYW5pemF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlLFxyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNvcmVQYWdlTGlzdFNlcnZpY2U6IENvcmVQYWdlTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHB1YmxpYyBldmFsdWF0ZURpYWxvZ1NlcnZpY2U6IEV2YWx1YXRlRGlhbG9nU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICAgIHRoaXMuZGVmYXVsdEF2YXRhciA9IHJhcy5nZXQoKTtcclxuXHJcbiAgICAvKiBHZXQgb3JnSWRzIHN0YXJ0dXAgdmFsdWUgKi9cclxuICAgIGNvbnN0IG5ld09yZ0lkczogbnVtYmVyW10gPSBbXTtcclxuICAgIHRoaXMub3JnYW5pemF0aW9uU2VydmljZS5zdGF0dXMkLnZhbHVlLmFjdGl2ZUtleXMubWFwKHggPT4gbmV3T3JnSWRzLnB1c2goTnVtYmVyKHgpKSlcclxuICAgIHRoaXMub25PcmdJZHNDaGFuZ2UobmV3T3JnSWRzKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLmZpZWxkID09PSAnYXZhdGFyJyk7XHJcbiAgICAgIGlmICghIWZpbHRlci5sZW5ndGgpIGZpbHRlclswXS50ZW1wbGF0ZVJlZiA9IHRoaXMuYXZhdGFyO1xyXG4gICAgICBjb25zdCBzdGlja2VyRmlsdGVyID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjID0+IGMuZmllbGQgPT09ICdzdGF0dXNOYW1lJyk7XHJcbiAgICAgIGlmICghIXN0aWNrZXJGaWx0ZXIubGVuZ3RoKSBzdGlja2VyRmlsdGVyWzBdLnRlbXBsYXRlUmVmID0gdGhpcy5zdGlja2VyO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9uT3JnSWRzQ2hhbmdlKG9yZ0lkczogbnVtYmVyW10pIHtcclxuICAgIHRoaXMub3JnSWRzID0gb3JnSWRzXHJcbiAgICB0aGlzLm91dGVySW5PcGVyYXRvcnMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZDogJ29yZ0lkJyxcclxuICAgICAgICB2YWx1ZXM6IG9yZ0lkc1xyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBvbkluc3RhbmNlQ3JlYXRlZChldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmxpc3RJbnN0YW5jZSA9IGV2ZW50O1xyXG4gIH1cclxuICBvbk5nTW9kZWxDaGFuZ2UgPSAobmdNb2RlbDogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XHJcblxyXG4gIH1cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmV2YWx1YXRlRGlhbG9nU2VydmljZS5kaWFsb2dDb25maXJtZWQkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHggPT4gISF4KVxyXG4gICAgICApLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICBpZighIXg/LmNvbmZpcm1lZCl7XHJcbiAgICAgICAgICB0aGlzLlVwZGF0ZVVwc2FsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKSAgICBcclxuICAgIHRoaXMucGFyYW1Sb3dzID0gW1xyXG4gICAgICBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmxleFNpemU6IDYsXHJcbiAgICAgICAgICBuYW1lOiAnZWZmZWN0VXBzYWxEYXRlJyxcclxuICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcblxyXG4gICAgICAgICAgZmxleFNpemU6IDYsXHJcbiAgICAgICAgICBuYW1lOiAncmVhc29uVXBzYWwnLFxyXG4gICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfTEFCRUxfV0FHRV9SRUFTT05fVVBTQUwsXHJcbiAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICB0aGlzLmxhbmcgPSB4O1xyXG4gICAgICB0aGlzLmdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0ID0ge1xyXG4gICAgICAgIGV4Q29kZTogJ0hVX1dPUktJTkdfSFNMX1BDJyxcclxuICAgICAgICBsYW5nOiB4XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkSWRzQ2hhbmdlZWVlKGU6IG51bWJlcltdKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gZTtcclxuICB9XHJcbiAgVXBkYXRlVXBzYWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZElkcyA9PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4odGhpcy5tbHMudHJhbnMoXCJVSV9DT01QT05FTlRfVElUTEVfV0FHRV9JRFNfTlVMTFwiKSwgdGhpcy5hbGVydE9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goIC8vIDw9PSBJbm5lciBwdXNoIHRoaXMucGFyYW1Sb3dzWzBdWzBdLm5nTW9kZWwudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycpXHJcbiAgICAgIHRoaXMuYXBwU2VydmljZVxyXG4gICAgICAgIC5wb3N0KCcvYXBpL0h1V29ya2luZy9VcGRhdGVVcHNhbCcsIHsgaWRzOiB0aGlzLnNlbGVjdGVkSWRzLCBkYXRlQ2FsOiB0aGlzLmV2YWx1YXRlRGlhbG9nU2VydmljZS5kYXRlSW5wdXQkLnZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnKSwgcmVhc29uVXBzYWw6IHRoaXMuZXZhbHVhdGVEaWFsb2dTZXJ2aWNlLnJlYXNvbiQudmFsdWUgfSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCEhcmVzLm9rICYmIHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAvLyByZWxvYWQgbcOgbiBow6xuaCAgXHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RJbnN0YW5jZXMgPSB0aGlzLmNvcmVQYWdlTGlzdFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcihcclxuICAgICAgICAgICAgICAoeSkgPT4geS5pbnN0YW5jZU51bWJlciA9PT0gdGhpcy5saXN0SW5zdGFuY2VcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKCEhbGlzdEluc3RhbmNlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBsaXN0SW5zdGFuY2VzWzBdLnJlbG9hZEZsYWckLm5leHQoXHJcbiAgICAgICAgICAgICAgICAhISFsaXN0SW5zdGFuY2VzWzBdLnJlbG9hZEZsYWckLnZhbHVlXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gZW5kIHJlbG9hZCBtw6BuIGjDrG5oXHJcbiAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0gcmVzLmJvZHlcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tbHMudHJhbnMoYm9keS5tZXNzYWdlQ29kZSksIHRoaXMuYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICB9XHJcbiAgb25Sb3dDbGljayhlOiBhbnkpIHtcclxuICAgIHRoaXMuaWQgPSBlLmlkXHJcbiAgfVxyXG4gIG9uQ29yZVBhZ2VIZWFkZXJCdXR0b25DbGljayhlOiBJQ29yZUJ1dHRvblZOUykge1xyXG4gICAgc3dpdGNoIChlLmNvZGUpIHtcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1BSSU5UOlxyXG4gICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICBsZXQgZmlsZW5hbWU9ICcnO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQoYXBpLkhVX0RFQ0lTSU9OX0ZJTEVfTkFNRSt0aGlzLmlkLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZmlsZW5hbWUgPSByZXNwb25zZS5pbm5lckJvZHk7IFxyXG4gICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5odHRwLmdldChhcGkuSFVfREVDSVNJT05fUFJJTlQsIHtcclxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxyXG4gICAgICAgICAgcGFyYW1zOiB7IGlkOiB0aGlzLmlkLnRvU3RyaW5nKCkgfVxyXG4gICAgICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IEJsb2IpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID09PSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJykge1xyXG4gICAgICAgICAgICBjb25zdCBkb3dubG9hZFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBkb3dubG9hZFVybDtcclxuICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUrJy5kb2MnKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGRvd25sb2FkVXJsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGpzb25Cb2R5ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoanNvbkJvZHkpO1xyXG4gICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGRhdGEubWVzc2FnZUNvZGUsIGFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZGF0YS5tZXNzYWdlQ29kZSwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KHJlc3BvbnNlKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9VUERBVEU6XHJcbiAgICAgICAgdGhpcy5ldmFsdWF0ZURpYWxvZ1NlcnZpY2UuY3JlYXRlTmV3KEVudW1UcmFuc2xhdGVLZXkuVUlfQ09NUE9ORU5UX1RJVExFX0hVX0VWQUxVQVRFX1VQREFURV9EQVRBLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5VSV9DT01QT05FTlRfVElUTEVfSFVfRVZBTFVBVEVfSU5QVVRfUkVBU09OLCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlLClcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgIH1cclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY21zLXByb2ZpbGUtd2FnZS1jb250YWluZXJcIj5cclxuICA8Y29yZS1wYWdlLWxpc3RcclxuICAgIFthcGlEZWZpbml0aW9uXT1cImFwaURlZmluaXRpb25cIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbZWRpdFJvdXRlXT1cImVkaXRSb3V0ZVwiXHJcbiAgICBbY3J1ZF09XCJjcnVkXCJcclxuICAgIFt0aXRsZV09XCJ0aXRsZVwiIFtsZWZ0XT1cIm9yZ1RyZWVcIlxyXG4gICAgW25vcm1hbE1vZGVdPVwidHJ1ZVwiXHJcbiAgICBbb3V0ZXJQYXJhbSRdPVwib3V0ZXJQYXJhbSRcIlxyXG4gICAgW291dGVySW5PcGVyYXRvcnNdPVwib3V0ZXJJbk9wZXJhdG9yc1wiXHJcbiAgICBbYXV0b1Jlc2l6ZVdpdGhXaW5kb3ddPVwidHJ1ZVwiXHJcbiAgICAoY29yZVBhZ2VIZWFkZXJCdXR0b25DbGljayk9XCJvbkNvcmVQYWdlSGVhZGVyQnV0dG9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAoc2VsZWN0ZWRJZHNDaGFuZ2UpPVwib25TZWxlY3RlZElkc0NoYW5nZWVlZSgkZXZlbnQpXCIgXHJcbiAgICBbZXh0cmFNYW51YWxPZmZzZXRdPVwiMTc4XCJcclxuICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgW3Nob3dQYXJhbUtpdF09XCJ0cnVlXCJcclxuICAgIFtkYXRlUGVyaW9kQ29tcGFyaXNvbkZvcl09XCJkYXRlUGVyaW9kQ29tcGFyaXNvbkZvclwiXHJcbiAgICBbZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleV09XCJkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5XCJcclxuICAgIFtoaWRlU3RhdHVzSW5jbHVzaW9uXT1cImZhbHNlXCJcclxuICAgIFtzdGF0dXNJbmNsdXNpb25Gb3JdPVwic3RhdHVzSW5jbHVzaW9uRm9yXCJcclxuICAgIFtzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleV09XCJzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleVwiXHJcbiAgICBbc3RhdHVzT3B0aW9uc0FwaV09XCJ3b3JrU3RhdHVzT3B0aW9uc0FwaVwiXHJcbiAgICAob25JbnN0YW5jZUNyZWF0ZWQpPVwib25JbnN0YW5jZUNyZWF0ZWQoJGV2ZW50KVwiXHJcbiAgICBbZnJvemVuXT1cIjNcIlxyXG4gICAgW291dGVyU29ydF09XCJvdXRlclNvcnRcIlxyXG4gICAgW2dlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XT1cImdlbmVyYXRlVGVtcGxhdGVSZXF1ZXN0XCJcclxuICAgIFtpbXBvcnRQcmV2aWV3UGF0aF09XCInaHUtd29ya2luZy1oc2wtcGMtaW1wb3J0J1wiXHJcbiAgICA+PC9jb3JlLXBhZ2UtbGlzdD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNvcmdUcmVlPlxyXG4gICAgPGNvcmUtb3JnLXRyZWUgWyhuZ01vZGVsKV09XCJvcmdJZHNcIiAobmdNb2RlbENoYW5nZSk9XCJvbk9yZ0lkc0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8L2NvcmUtb3JnLXRyZWU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNzdGlja2VyIGxldC1jb2RlPVwiY29udGV4dC5zdGF0dXNOYW1lXCI+XHJcbiAgICA8Y29yZS1zdGF0dXMtc3RpY2tlciBbY29kZV09XCJjb2RlXCI+PC9jb3JlLXN0YXR1cy1zdGlja2VyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGFwcC1ldmFsdWF0ZS1kaWFsb2cgW2J1dHRvbkl0ZW1zXT1cImJ1dHRvbkl0ZW1zXCIgKm5nSWY9XCJldmFsdWF0ZURpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm1EaWFsb2ckLnZhbHVlID09IHRydWVcIj48L2FwcC1ldmFsdWF0ZS1kaWFsb2c+XHJcbjwvZGl2PiJdfQ==
|