vcomply-workflow-engine 6.0.68 → 6.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +1 -10
- package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +1 -10
- package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +1 -10
- package/esm2022/lib/constants/api.constants.mjs +5 -3
- package/esm2022/lib/constants/mock.mjs +152 -0
- package/esm2022/lib/interfaces/frequency.interface.mjs +2 -0
- package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
- package/esm2022/lib/more-option/more-option.component.mjs +5 -51
- package/esm2022/lib/report-a-case/services/report-a-case.service.mjs +3 -2
- package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +4 -4
- package/esm2022/lib/services/common.service.mjs +40 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +6 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +3 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +5 -1
- package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +9 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +4 -2
- package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +247 -1
- package/esm2022/lib/sharedComponents/list-container/list-container.component.mjs +52 -0
- package/esm2022/lib/sharedComponents/program-list/constant.mjs +16 -0
- package/esm2022/lib/sharedComponents/program-list/interfaces/data-source.interface.mjs +2 -0
- package/esm2022/lib/sharedComponents/program-list/interfaces/list-item.interface.mjs +2 -0
- package/esm2022/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.mjs +23 -0
- package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +182 -0
- package/esm2022/lib/sharedComponents/program-list/program-list.module.mjs +47 -0
- package/esm2022/lib/sharedComponents/program-list/services/list-utils.service.mjs +27 -0
- package/esm2022/lib/sharedComponents/program-list/services/program-list-api.service.mjs +32 -0
- package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
- package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +19 -0
- package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +45 -17
- package/esm2022/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.mjs +13 -10
- package/esm2022/lib/workflow/shared/services/grc.service.mjs +2 -2
- package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +1 -10
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +269 -380
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +5 -31
- package/esm2022/lib/workflow-engine.module.mjs +13 -6
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +82 -35
- package/esm2022/lib/workflow-program/workflow-program.component.mjs +85 -242
- package/esm2022/lib/workflow-services/policy.service.mjs +4 -4
- package/esm2022/lib/workflow-services/programs.service.mjs +28 -112
- package/esm2022/lib/workflow-services/responsibility.service.mjs +47 -44
- package/fesm2022/vcomply-workflow-engine.mjs +3014 -2695
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/add-multiple-responsibility/add-multiple-responsibility.component.d.ts +0 -2
- package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +0 -2
- package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +0 -2
- package/lib/constants/api.constants.d.ts +4 -2
- package/lib/constants/mock.d.ts +15 -0
- package/lib/interfaces/frequency.interface.d.ts +37 -0
- package/lib/interfaces/responsibilty.interface.d.ts +11 -11
- package/lib/services/common.service.d.ts +28 -0
- package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -0
- package/lib/sharedComponents/frequency/frequency.service.d.ts +87 -0
- package/lib/sharedComponents/list-container/list-container.component.d.ts +9 -0
- package/lib/sharedComponents/program-list/constant.d.ts +9 -0
- package/lib/sharedComponents/program-list/interfaces/data-source.interface.d.ts +4 -0
- package/lib/sharedComponents/program-list/interfaces/list-item.interface.d.ts +5 -0
- package/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
- package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +45 -0
- package/lib/sharedComponents/program-list/program-list.module.d.ts +14 -0
- package/lib/sharedComponents/program-list/services/list-utils.service.d.ts +7 -0
- package/lib/sharedComponents/program-list/services/program-list-api.service.d.ts +14 -0
- package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
- package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
- package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +5 -1
- package/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.d.ts +3 -1
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +0 -2
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +32 -6
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -1
- package/lib/workflow-engine.module.d.ts +42 -40
- package/lib/workflow-policy/workflow-policy.component.d.ts +9 -0
- package/lib/workflow-program/workflow-program.component.d.ts +6 -4
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/lib/workflow-services/programs.service.d.ts +13 -53
- package/lib/workflow-services/responsibility.service.d.ts +14 -2
- package/package.json +1 -1
package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs
CHANGED
|
@@ -627,21 +627,12 @@ export class ImportAnAssessmentComponent {
|
|
|
627
627
|
this.assessmentData = {};
|
|
628
628
|
this.isShowLoader = false;
|
|
629
629
|
this.showSmiley = true;
|
|
630
|
-
this.submitWorkflow();
|
|
631
630
|
},
|
|
632
631
|
error: (err) => {
|
|
633
632
|
this.isShowLoader = false;
|
|
634
633
|
},
|
|
635
634
|
});
|
|
636
635
|
}
|
|
637
|
-
submitWorkflow() {
|
|
638
|
-
const message = { type: 'submit' };
|
|
639
|
-
const targetOrigin = this.getOrigin();
|
|
640
|
-
window.parent.postMessage(message, targetOrigin);
|
|
641
|
-
}
|
|
642
|
-
getOrigin() {
|
|
643
|
-
return window.location.origin;
|
|
644
|
-
}
|
|
645
636
|
smileyAction(id) {
|
|
646
637
|
if (id === smileyActions.VIEW_ASSESSMENTS) {
|
|
647
638
|
this.disconnectRefresh.emit(false);
|
|
@@ -678,4 +669,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
678
669
|
}], disconnectRefresh: [{
|
|
679
670
|
type: Output
|
|
680
671
|
}] } });
|
|
681
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFNN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7OztBQUcxRCxNQUFNLGFBQWEsR0FBRztJQUNwQixXQUFXLEVBQUUsYUFBYTtJQUMxQixnQkFBZ0IsRUFBRSxrQkFBa0I7Q0FDckMsQ0FBQztBQU9GLE1BQU0sT0FBTywyQkFBMkI7SUFxQ3RDLGFBQWEsQ0FBQyxVQUFtQjtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN0RSxJQUFJLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQy9D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O2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXNzZXNzbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENyZWF0ZUFzc2Vzc21lbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVpS2l0U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3VpLWtpdC5zZXJ2aWNlJztcbmltcG9ydCB7IElmcmFtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pZnJhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5cbnR5cGUgQU9BID0gYW55W11bXTtcbmNvbnN0IHNtaWxleUFjdGlvbnMgPSB7XG4gIElNUE9SVF9NT1JFOiAnSU1QT1JUX01PUkUnLFxuICBWSUVXX0FTU0VTU01FTlRTOiAnVklFV19BU1NFU1NNRU5UUycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQubGVzcycsICcuLi8uLi9mb3Jtcy5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgQFZpZXdDaGlsZCgnZWRpdG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGVkaXRvckNvbnQhOiBDcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50O1xuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRpc2Nvbm5lY3RSZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBpc1Nob3dMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xuICBmaWxlTmFtZTogYW55O1xuICBkYXRhOiBhbnk7XG4gIHVwbG9hZGVkRmlsZXM6IGFueSA9IFtdO1xuICBmaWxlUmVzcG9uc2U6IGFueSA9IFtdO1xuICBmaWxlVmFsdWU6IGFueTtcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xuICBlcnJvck1lc3NhZ2UgPSAnaW52YWxpZCBmaWxlIGVycm9yJztcbiAgZG93bmxvYWRTdGF0dXM6IHN0cmluZyA9ICdOT1RfRE9XTkxPQURJTkcnO1xuICBkb3dubG9hZFBlcmNlbnQgPSAwO1xuICBzbWlsZXlNZXNzYWdlQWN0aW9uID0gYFlvdSdyZSBBbGwgU2V0IWA7XG4gIGFjdGlvbkJ1dHRvbnMgPSBbXG4gICAge1xuICAgICAgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJyxcbiAgICAgIGNsYXNzOiAnd2hpdGUtYnRuJyxcbiAgICAgIGlkOiBzbWlsZXlBY3Rpb25zLklNUE9SVF9NT1JFLFxuICAgIH0sXG4gICAge1xuICAgICAgYnV0dG9uVGV4dDogJ1ZpZXcgQXNzZXNzbWVudHMnLFxuICAgICAgY2xhc3M6ICdibHVlLWJ0bicsXG4gICAgICBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTLFxuICAgIH0sXG4gIF07XG4gIHNob3dTbWlsZXkgPSBmYWxzZTtcbiAgYXNzZXNzbWVudERhdGEhOiBhbnk7XG4gIHNoZWV0RGF0YSE6IGFueTtcbiAgY29udmVydGVkRGF0YTogYW55O1xuICBpc1VwbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGNhdGVnb3J5RGF0YSE6IGFueTtcblxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBpc1VwbG9hZGVkO1xuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChpc1VwbG9hZGVkKTtcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcbiAgICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nsb3NlLXdvcmtmbG93LWVuZ2luZS1idG4nKTtcbiAgICAgIGlmIChjbG9zZUJ0bikgY2xvc2VCdG4uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpZnJhbWVTZXJ2aWNlOiBJZnJhbWVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSB0aGlzLmF1dGguZ2V0T3JnYW5pemF0aW9uSWQoKTtcbiAgfVxuXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XG4gIH1cblxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xuICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnRE9XTkxPQURJTkcnO1xuICAgIHRoaXMuZG93bmxvYWRQZXJjZW50ID0gMDtcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBgSW1wb3J0IGFuIEFzc2Vzc21lbnQtJHtkb3dubG9hZERhdGVbMl19LSR7ZG93bmxvYWREYXRlWzFdfS0ke2Rvd25sb2FkRGF0ZVszXX0ueGxzeGA7XG5cbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmRvd25sb2FkU3RhdHVzID0gdGhpcy5hc3Nlc3NtZW50U2VydmljZS5kb3duTG9hZEZpbGUoXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3hsc3gnLFxuICAgICAgICAgICAgZmlsZU5hbWVcbiAgICAgICAgICApO1xuICAgICAgICB9LCAxNTAwKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHRyaWdnZXJCcm93c2VGaWxlKCkge1xuICAgIGNvbnN0IGdldEZpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWFhLWZpbGUtaW5wdXQnKTtcbiAgICBpZiAoZ2V0RmlsZSkge1xuICAgICAgZ2V0RmlsZS5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIC8vICBoYW5kbGUgdXBsb2FkIGZpbGUgYXJlYVxuICB1cGxvYWRGaWxlKGV2dDogYW55KSB7XG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcbiAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChic3RyLCB7IHR5cGU6ICdiaW5hcnknIH0pO1xuICAgICAgY29uc3Qgd3NuYW1lOiBzdHJpbmcgPSB3Yi5TaGVldE5hbWVzWzBdO1xuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcbiAgICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xuICAgICAgY29uc3QgdGVtcERhdGE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZTFdO1xuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcbiAgICAgICAgaGVhZGVyOiAxLFxuICAgICAgfSkgYXMgQU9BO1xuICAgICAgdGhpcy5zaGVldERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcbiAgICAgICAgaGVhZGVyOiAxLFxuICAgICAgfSkgYXMgQU9BO1xuXG4gICAgICB0aGlzLmdlbmVyYXRlQ2F0ZWdvcnlMaXN0KHRoaXMuY2F0ZWdvcnlEYXRhKTtcblxuICAgICAgdGhpcy5hc3Nlc3NtZW50RGF0YSA9IHRoaXMuc2hlZXREYXRhLmZpbHRlcihcbiAgICAgICAgKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDBcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgIGlmICghdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSkge1xuICAgICAgICBjb25zdCBjbG9zZUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuJyk7XG4gICAgICAgIGlmIChjbG9zZUJ0bikgY2xvc2VCdG4uc3R5bGUuZGlzcGxheSA9ICdub25lJztcblxuICAgICAgICB0aGlzLmdlbmVyYXRlRWRpdG9yUGF5bG9hZCh0aGlzLmFzc2Vzc21lbnREYXRhKTtcbiAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVkaXRvckNvbnQudHJpZ2dlclByZXZpZXdXaXRoVmFsaWRhdGlvbigpO1xuICAgICAgICB9LCAxMDApO1xuICAgICAgfVxuICAgIH07XG4gICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xuICB9XG5cbiAgY2F0ZWdvcnlMaXN0ITogYW55O1xuICBnZW5lcmF0ZUNhdGVnb3J5TGlzdChjYXRlZ29yeURhdGE6IGFueSkge1xuICAgIGNvbnN0IGNhdExpc3Q6IGFueSA9IHt9O1xuICAgIGlmIChjYXRlZ29yeURhdGEpIHtcbiAgICAgIGNhdGVnb3J5RGF0YS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcbiAgICB9XG4gIH1cblxuICBjYXRlZ29yeU5hbWV0b0lkKGNhdGVnb3J5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0W2NhdGVnb3J5TmFtZV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKGRhdGE6IGFueSkge1xuICAgIC8vY2hlY2sgZm9ybWF0XG5cbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBhc3Nlc3NtZW50X25hbWU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogJ2NvbXBsaWFuY2UnLFxuICAgICAgICBjYXRlZ29yeV9hcnI6IFtdLFxuICAgICAgICBhcHByb3ZhbF93b3JrZmxvd19hcnI6IHtcbiAgICAgICAgICB0ZXN0OiAndGVzdCcsXG4gICAgICAgIH0sXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxuICAgICAgICBzb3VyY2VfcGFnZTogJ2NvbXBsaWFuY2UnLFxuICAgICAgfSxcbiAgICAgIGFzc2Vzc21lbnREYXRhOiB7XG4gICAgICAgIHZlcnNpb246IDIsXG4gICAgICAgIHF1ZXN0aW9uUmFuZG9taXplOiBmYWxzZSxcbiAgICAgICAgYW5vbnltb3VzUmVzcG9uc2U6IGZhbHNlLFxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcbiAgICAgICAgaGFzV2VsY29tZURlc2NyaXB0aW9uOiBmYWxzZSxcbiAgICAgICAgd2VsY29tZVRleHQ6ICcnLFxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxuICAgICAgICB3ZWxjb21lSW1hZ2U6ICcnLFxuICAgICAgICB3ZWxjb21lRGVzY3JpcHRpb246ICcnLFxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxuICAgICAgICBoYXNUaGFua3lvdUltYWdlOiBmYWxzZSxcbiAgICAgICAgdGhhbmt5b3VUZXh0OiAnJyxcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXG4gICAgICAgIGhhc1RoYW5reW91RGVzY3JpcHRpb246IGZhbHNlLFxuICAgICAgICB0aGFua3lvdURlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgZWxlbWVudHM6IFtdLFxuICAgICAgICBwYWdlRGV0YWlsc0xpc3Q6IFtdLFxuICAgICAgICBjdXN0b21SZXNwb25zZVNldDogW10sXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxuICAgICAgICByZXNwb25zZVNlZ21lbnQ6IHRoaXMuaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSBwYXlsb2FkO1xuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5kZXNjcmlwdGlvbiA9IHRoaXMuYXNzZXNzbWVudERhdGFbM11bMV07XG4gICAgLy8gdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyclswXSA9IHRoaXMuYXNzZXNzbWVudERhdGFbNF1bMV07XG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFtcbiAgICAgIHRoaXMuY2F0ZWdvcnlOYW1ldG9JZCh0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdKSxcbiAgICBdO1xuXG4gICAgLy9UT0RPOiBjcmVhdGUgYSBmdW5jdGlvbiB0byBjb252ZXJ0IGZyb20gY2F0ZWdvcmllcyBuYW1lcyB0byBjYXRlZ29yaWVzIGlkLlxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXG4gICAgLy8gdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyclswXSA9IFwiNjFjYzI3YzViM2U4NjQyYjMzM2YzNTkxXCI7XG4gICAgdGhpcy5nZW5lcmF0ZVF1ZXN0aW9uc0xpc3QoZGF0YS5zbGljZSg2KSwgcGF5bG9hZC5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyk7XG4gIH1cblxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XG4gICAgcXVlc3Rpb25zQXJyYXkgPSBbXTtcbiAgICBpZiAocXVlc3Rpb25zTGlzdD8ubGVuZ3RoKSB7XG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xuICAgICAgICBzd2l0Y2ggKHF1ZXN0aW9uWzBdKSB7XG4gICAgICAgICAgY2FzZSAnU2luZ2xlIFRleHRib3gnOlxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaChcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVNpbmdsZVRleHRib3goJ3NpbmdsZS10ZXh0Ym94JywgcXVlc3Rpb24sIGluZGV4KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ011bHRpcGxlIENob2ljZSc6XG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScsIHF1ZXN0aW9uLCBpbmRleClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ2NoZWNrYm94JywgcXVlc3Rpb24sIGluZGV4KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0Ryb3Bkb3duJzpcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2goXG4gICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVNdWx0aXBsZUNob2ljZSgnZHJvcGRvd24nLCBxdWVzdGlvbiwgaW5kZXgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnRGF0ZSAmIFRpbWUnOlxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaChcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLCBxdWVzdGlvbiwgaW5kZXgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlRmlsZVVwbG9hZChxdWVzdGlvbiwgaW5kZXgpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gTm8gbmVlZCB0byBkbyBhbnl0aGluZyBmb3IgZGVmYXVsdFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLmFzc2Vzc21lbnREYXRhLmVsZW1lbnRzID0gcXVlc3Rpb25zQXJyYXk7XG4gIH1cbiAgY29sTWFwOiBhbnkgPSB7XG4gICAgdHlwZTogMCxcbiAgICB0aXRsZTogMSxcbiAgICBzY29yZTogMixcbiAgICBvcHQxOiAzLFxuICAgIG9wdDI6IDQsXG4gICAgb3B0MzogNSxcbiAgICBvcHQ0OiA2LFxuICAgIG9wdDU6IDcsXG4gICAgb3B0NjogOCxcbiAgICByZXF1aXJlZDogOSxcbiAgICBmYWlsZWQ6IDEwLFxuICAgIGRlc2NyaXB0aW9uOiAxMSxcbiAgICBwbGFjZWhvbGRlcjogMTIsXG4gICAgY29tbWVudDogMTMsXG4gICAgb3RoZXI6IDE0LFxuICAgIHJhbmRvbWl6ZTogMTUsXG4gICAgYWxpZ25tZW50OiAxNixcbiAgICB1c2VyYXR0YWNobWVudDogMTcsXG4gICAgdXNlcmNvbW1lbnQ6IDE4LFxuICB9O1xuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTogc3RyaW5nLCBxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdzaW5nbGUtdGV4dGJveCcsXG4gICAgICBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLFxuICAgICAgcGFnZTogMSxcbiAgICAgIGhhc1ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgdmFsaWRhdGlvblR5cGU6ICcnLFxuICAgICAgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBoYXNDaGFyYWN0ZXJMZW5ndGg6IGZhbHNlLFxuICAgICAgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsXG4gICAgICB0aXRsZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnRpdGxlXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKVxuICAgICAgICA/Lmxlbmd0aFxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpXG4gICAgICAgID8ubGVuZ3RoXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGZhbHNlLFxuICAgICAgY29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpLFxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBvdGhlclZhbHVlOiAnT3RoZXInLFxuICAgICAgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICByZXZlcnNlOiBmYWxzZSxcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6XG4gICAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyYXR0YWNobWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxuICAgICAgaXNSZXNwb25kZW50Q29tbWVudDpcbiAgICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLFxuICAgICAgb3RoZXJDb25maWc6IHtcbiAgICAgICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxuICAgICAgfSxcbiAgICAgIGNob2ljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICByZXF1aXJlZDogMCxcbiAgICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxuICAgICAgICAgIGhlbHBpbmdMYWJlbDogJycsXG4gICAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxuICAgICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXG4gICAgICAgICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTogc3RyaW5nLCBxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHR5cGUsXG4gICAgICBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLFxuICAgICAgcGFnZTogMSxcbiAgICAgIGhhc1ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgdmFsaWRhdGlvblR5cGU6ICcnLFxuICAgICAgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBoYXNDaGFyYWN0ZXJMZW5ndGg6IGZhbHNlLFxuICAgICAgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsXG4gICAgICB0aXRsZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnRpdGxlXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKVxuICAgICAgICA/Lmxlbmd0aFxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpLnRyaW0oKSA/PyAnJyxcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGZhbHNlLFxuICAgICAgY29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKS50cmltKCksXG4gICAgICByYW5kb21pemU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5yYW5kb21pemVdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIG90aGVyVmFsdWU6ICdPdGhlcicsXG4gICAgICBhbGlnbm1lbnQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5hbGlnbm1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHJldmVyc2U6IGZhbHNlLFxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDpcbiAgICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICB1c2VyQXR0YWNoZWRGaWxlczogW10sXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLFxuICAgICAgaXNSZXNwb25kZW50Q29tbWVudDpcbiAgICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBvdGhlckNvbmZpZzoge1xuICAgICAgICBjb2xvcjogJyMwMDAwMDAnLFxuICAgICAgICBpc0ZhaWxlZDogZmFsc2UsXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXG4gICAgICB9LFxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pLFxuICAgIH07XG4gIH1cblxuICBnZW5lcmF0ZURhdGVUaW1lKHR5cGU6IHN0cmluZywgcXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0eXBlLFxuICAgICAgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCxcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSxcbiAgICAgIHZhbGlkYXRpb25UeXBlOiAnJyxcbiAgICAgIGlzUmVxdWlyZWQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5yZXF1aXJlZF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSxcbiAgICAgIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcbiAgICAgIG1heENoYXJhY3Rlckxlbmd0aDogMTAwLFxuICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKClcbiAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2UsXG4gICAgICBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2UsXG4gICAgICBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgaGFzT3RoZXI6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vdGhlcl0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgb3RoZXJWYWx1ZTogJ090aGVyJyxcbiAgICAgIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgcmV2ZXJzZTogZmFsc2UsXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OlxuICAgICAgICBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXG4gICAgICBpc1Jlc3BvbmRlbnRDb21tZW50OlxuICAgICAgICBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIG90aGVyQ29uZmlnOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMDAwMCcsXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcbiAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcbiAgICAgIH0sXG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgdmFsdWU6IDEsXG4gICAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgcmVxdWlyZWQ6IDAsXG4gICAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcbiAgICAgICAgICBoZWxwaW5nTGFiZWw6ICcnLFxuICAgICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcbiAgICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxuICAgICAgICAgIGNvbG9yOiAnIzAwMDAwMCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaGFzRGF0ZTogdHJ1ZSxcbiAgICAgIGhhc1RpbWU6IGZhbHNlLFxuICAgICAgZGF0ZUZvcm1hdDogJ0REL01NL1lZWVknLFxuICAgICAgdGltZUZvcm1hdDogMjQsXG4gICAgICBkYXRlOiB7XG4gICAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucGxhY2Vob2xkZXJdID8/ICdTZWxlY3QgRGF0ZScsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICB0aW1lOiB7XG4gICAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucGxhY2Vob2xkZXJdID8/ICdTZWxlY3QgVGltZScsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBnZW5lcmF0ZUZpbGVVcGxvYWQocXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZmlsZS11cGxvYWQnLFxuICAgICAgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCxcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSxcbiAgICAgIHZhbGlkYXRpb25UeXBlOiAnJyxcbiAgICAgIGlzUmVxdWlyZWQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5yZXF1aXJlZF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSxcbiAgICAgIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcbiAgICAgIG1heENoYXJhY3Rlckxlbmd0aDogMTAwLFxuICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKClcbiAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2UsXG4gICAgICBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKVxuICAgICAgICA/Lmxlbmd0aFxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZSxcbiAgICAgIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgaGFzT3RoZXI6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vdGhlcl0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgb3RoZXJWYWx1ZTogJ090aGVyJyxcbiAgICAgIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgcmV2ZXJzZTogZmFsc2UsXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OlxuICAgICAgICBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXG4gICAgICBpc1Jlc3BvbmRlbnRDb21tZW50OlxuICAgICAgICBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIG90aGVyQ29uZmlnOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMDAwMCcsXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcbiAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcbiAgICAgIH0sXG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgdmFsdWU6IDEsXG4gICAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgcmVxdWlyZWQ6IDAsXG4gICAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcbiAgICAgICAgICBoZWxwaW5nTGFiZWw6ICcnLFxuICAgICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcbiAgICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxuICAgICAgICAgIGNvbG9yOiAnIzAwMDAwMCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYWxsb3dlZEZpbGVUeXBlczoge1xuICAgICAgICBwZGY6IHRydWUsXG4gICAgICAgIGRvYzogdHJ1ZSxcbiAgICAgICAgcG5nOiB0cnVlLFxuICAgICAgICBqcGc6IHRydWUsXG4gICAgICAgIGdpZjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbjogYW55KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IFtcbiAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQxXSxcbiAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQyXSxcbiAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQzXSxcbiAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ0XSxcbiAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ1XSxcbiAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ2XSxcbiAgICBdLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk7XG4gICAgb3B0aW9ucy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xuICAgICAgaWYgKGVsZSkge1xuICAgICAgICBlbGUudG9TdHJpbmcoKT8udHJpbSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChvcHRpb25zPy5sZW5ndGggPT09IDApIHtcbiAgICAgIG9wdGlvbnMucHVzaCgnJyk7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbk1hcDogYW55ID0ge1xuICAgICAgJ09wdGlvbiAxJzogMyxcbiAgICAgICdPcHRpb24gMic6IDQsXG4gICAgICAnT3B0aW9uIDMnOiA1LFxuICAgICAgJ09wdGlvbiA0JzogNixcbiAgICAgICdPcHRpb24gNSc6IDcsXG4gICAgICAnT3B0aW9uIDYnOiA4LFxuICAgIH07XG4gICAgb3B0aW9ucy5mb3JFYWNoKChjaG9pY2U6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xuICAgICAgb3B0aW9uc1tpbmRleF0gPSB7XG4gICAgICAgIHRpdGxlOlxuICAgICAgICAgIGNob2ljZSAmJiB0eXBlb2YgY2hvaWNlID09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IGNob2ljZVxuICAgICAgICAgICAgOiBjaG9pY2UudG9TdHJpbmcoKSA/PyAnJyxcbiAgICAgICAgdmFsdWU6IDEsXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICByZXF1aXJlZDogMCxcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcbiAgICAgICAgaGVscGluZ0xhYmVsOiAnJyxcbiAgICAgICAgaXNGYWlsZWQ6XG4gICAgICAgICAgY2hvaWNlPy50b1N0cmluZygpPy50cmltKCkgPT1cbiAgICAgICAgICAgIHF1ZXN0aW9uW29wdGlvbk1hcFtxdWVzdGlvblt0aGlzLmNvbE1hcD8uZmFpbGVkXV1dXG4gICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXG4gICAgICAgIGNvbG9yOiAnIzAwMDAwMCcsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc2V0dGluZ3M6IGFueSA9IHtcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXG4gICAgZGVmYXVsdFNjb3JlOiAxLFxuICAgIG5lZ2F0aXZlU2NvcmVDcml0ZXJpYTogJ0ZBSUxFRCcsXG4gICAgbmVnYXRpdmVTY29yZTogMCxcbiAgICB3ZWlnaHRhZ2VFbmFibGVkOiBmYWxzZSxcbiAgICBzZXR0aW5nc0VuYWJsZWQ6IGZhbHNlLFxuICB9O1xuXG4gIGNoZWNrRm9ybWF0KGFzc2Vzc21lbnREYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBvcmdJblRlbXBsYXRlID0gdGhpcy5jYXRlZ29yeURhdGFbMF1bNV07XG4gICAgLy9Db21wbGV0bHkgYmxhbmsgZXhjZWwgc2hlZXRcbiAgICBpZiAoYXNzZXNzbWVudERhdGEubGVuZ3RoID09PSAwIHx8IG9yZ0luVGVtcGxhdGUgIT09IHRoaXMub3JnYW5pemF0aW9uSWQpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cbiAgICAgICAgJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy9JbnZhbGlkIFRlbXBhbHRlXG4gICAgdHJ5IHtcbiAgICAgIGlmIChcbiAgICAgICAgYXNzZXNzbWVudERhdGFbMl1bMF0gIT09ICdBc3Nlc3NtZW50IE5hbWUqJyB8fFxuICAgICAgICBhc3Nlc3NtZW50RGF0YVszXVswXSAhPT0gJ0Rlc2NyaXB0aW9uJyB8fFxuICAgICAgICBhc3Nlc3NtZW50RGF0YVs0XVswXSAhPT0gJ0Fzc2Vzc21lbnQgQ2F0ZWdvcnkqJyB8fFxuICAgICAgICBhc3Nlc3NtZW50RGF0YVs1XVswXSAhPT0gJ1F1ZXN0aW9uIFR5cGUqJ1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vQ2hlY2sgQXNzZXNzbWVudCBuYW1lXG4gICAgdHJ5IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWFzc2Vzc21lbnREYXRhWzJdWzFdIHx8XG4gICAgICAgIGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSAnJyB8fFxuICAgICAgICBhc3Nlc3NtZW50RGF0YVsyXVsxXSA9PT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRW50ZXIgYSBuYW1lIGZvciB0aGlzIEFzc2Vzc21lbnQuJztcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vY2F0ZWdvcnkgbm90IHNlbGVjdGVkXG4gICAgdHJ5IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWFzc2Vzc21lbnREYXRhWzRdWzFdIHx8XG4gICAgICAgIGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSAnJyB8fFxuICAgICAgICBhc3Nlc3NtZW50RGF0YVs0XVsxXSA9PT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy9Eb2VzIG5vdCBjb250YWlucyBhbnkgcXVlc3Rpb25zXG4gICAgdHJ5IHtcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YS5zbGljZSg3KT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBxdWVzdGlvbnMgdG8gdGhpcyB0ZW1wbGF0ZSBhbmQgdXBsb2FkIGl0IGFnYWluLic7XG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPVxuICAgICAgICAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBxdWVzdGlvbnMgdG8gdGhpcyB0ZW1wbGF0ZSBhbmQgdXBsb2FkIGl0IGFnYWluLic7XG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy9oYW5kbGUgdHlwZSBvZiBxdWVzdGlvbiBhbmQgb3B0aW9ucyBjb3VudFxuICAgIGZvciAobGV0IGkgPSA3OyBpIDw9IGFzc2Vzc21lbnREYXRhLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgaWYgKFxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ011bHRpcGxlIENob2ljZScgJiZcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdDaGVja2JveCcgJiZcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdEcm9wZG93bicgJiZcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdTaW5nbGUgVGV4dGJveCcgJiZcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdEYXRlICYgVGltZScgJiZcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdGaWxlIFVwbG9hZCdcbiAgICAgICkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XG4gICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgLy8gaWYgKGFzc2Vzc21lbnREYXRhW2ldWzFdID09PSAnJykge1xuICAgICAgLy8gICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xuICAgICAgLy8gICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgLy8gICByZXR1cm4gdHJ1ZTtcbiAgICAgIC8vIH1cbiAgICB9XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGluaXRpYWxpemVFbXB0eVJlc3BvbnNlU2VnbWVudCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICcnLFxuICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgbWF4U2NvcmU6IDEwLFxuICAgICAgc2VnbWVudHM6IFtdLFxuICAgIH07XG4gIH1cblxuICBwb3N0QXNzZXNzbWVudChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLmlzU2hvd0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZVxuICAgICAgLmNyZWF0ZUFzc2Vzc21lbnQodGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5wb3N0QXNzZXNzbWVudERldGFpbHMoXG4gICAgICAgICAgICByZXNwb25zZS5faWQsXG4gICAgICAgICAgICBkYXRhLm1vZGUsXG4gICAgICAgICAgICBkYXRhLmFzc2Vzc21lbnREZXRhaWxzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHBvc3RBc3Nlc3NtZW50RGV0YWlscyhpZDogYW55LCBtb2RlOiBhbnksIGFzc2Vzc21lbnREZXRhaWxzOiBhbnkpIHtcbiAgICB0aGlzLmlzVXBsb2FkZWQgPSBmYWxzZTtcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBxdWVzdGlvbjogYXNzZXNzbWVudERldGFpbHMsXG4gICAgICBhY3Rpb246ICdxdWVzdGlvbnNfc2F2ZScsXG4gICAgICBzdGF0ZTogbW9kZSxcbiAgICB9O1xuXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5zYXZlQXNzZXNzbWVudERldGFpbHMoaWQsIHBheWxvYWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmFzc2Vzc21lbnREYXRhID0ge307XG4gICAgICAgIHRoaXMuaXNTaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XG4gICAgICAgIHRoaXMuc3VibWl0V29ya2Zsb3coKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNTaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgc3VibWl0V29ya2Zsb3coKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHsgdHlwZTogJ3N1Ym1pdCcgfTtcbiAgICBjb25zdCB0YXJnZXRPcmlnaW4gPSB0aGlzLmdldE9yaWdpbigpO1xuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UobWVzc2FnZSwgdGFyZ2V0T3JpZ2luKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gIH1cblxuICBzbWlsZXlBY3Rpb24oaWQ6IGFueSkge1xuICAgIGlmIChpZCA9PT0gc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xuICAgICAgLy8gVE9ETzogTmF2aWdhdGUgdG8gJy9tYW5hZ2UtYXNzZXNzbWVudCdcbiAgICAgIGxldCB1cmw6IHN0cmluZztcbiAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xuICAgICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvbWFuYWdlLWFzc2Vzc21lbnQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID1cbiAgICAgICAgICAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2Fzc2Vzc21lbnQvbWFuYWdlLWFzc2Vzc21lbnQnO1xuICAgICAgfVxuICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh1cmwsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XG4gICAgICBjb25zdCBjbG9zZUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuJyk7XG4gICAgICBpZiAoY2xvc2VCdG4pIGNsb3NlQnRuLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImltcG9ydC1hbi1hc3Nlc3NtZW50XCIgW2F0dHIuaWRdPVwiJ3Njcm9sbFJlZmVyZW5jZSdcIj5cbiAgPCEtLSBtYWluIGNvbnRhaW5lciBzdGFydHMgaGVyZSAtLT5cbiAgPGRpdiBjbGFzcz1cImltcG9ydC1hbi1hc3Nlc3NtZW50LWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LWFuLWFzc2Vzc21lbnQtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cIkFTU0VUUy5zcHJlYWRzaGVldF9tdWx0aXBsZV9jYXRlZ29yeVwiIGFsdD1cIlwiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGg0PllvdSBjYW4gaW1wb3J0IGFuIGFzc2Vzc21lbnQgaW4ganVzdCB0d28gZWFzeSBzdGVwczo8L2g0PlxuICAgICAgPHVsIGNsYXNzPVwibGlzdFwiPlxuICAgICAgICA8bGk+RG93bmxvYWQgdGhlIHRlbXBsYXRlIGFuZCBmaWxsIGluIHRoZSBkZXRhaWxzLjwvbGk+XG4gICAgICAgIDxsaT5VcGxvYWQgdGhlIC54bHN4IGZpbGUgYW5kIHlvdeKAmXJlIGdvb2QgdG8gZ28hPC9saT5cbiAgICAgIDwvdWw+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJkb3dubG9hZFwiXG4gICAgICAgICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdOT1RfRE9XTkxPQURJTkcnXCJcbiAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYjs8L2k+IERvd25sb2FkIFRlbXBsYXRlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdET1dOTE9BRElORydcIj5cbiAgICAgICAgRG93bmxvYWQgaW4gUHJvZ3Jlc3NcbiAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIicyJ1wiPjwvYXBwLWxpbmUtbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdET1dOTE9BREVEJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3NcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYzs8L2k+RG93bmxvYWQgQ29tcGxldGVcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1hZ2FpblwiPlxuICAgICAgICAgIElzIHRoZSBmaWxlIG5vdCBkb3dubG9hZGVkP1xuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImlzV3JvbmdGb3JtYXRcIj57eyBlcnJvck1lc3NhZ2UgfX08L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImlzU2hvd0xvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG5cbjxpbnB1dFxuICB0eXBlPVwiZmlsZVwiXG4gIFsobmdNb2RlbCldPVwiZmlsZVZhbHVlXCJcbiAgaWQ9XCJpYWEtZmlsZS1pbnB1dFwiXG4gIGFjY2VwdD1cIi54bHN4XCJcbiAgY2xhc3M9XCJoaWRkZW4taW5wdXRcIlxuICBvbmNsaWNrPVwidGhpcy52YWx1ZSA9IG51bGxcIlxuICAoY2hhbmdlKT1cInVwbG9hZEZpbGUoJGV2ZW50KVwiXG4vPlxuXG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXG4gICpuZ0lmPVwic2hvd1NtaWxleVwiXG4gIFttZXNzYWdlXT1cInNtaWxleU1lc3NhZ2VBY3Rpb25cIlxuICBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcbiAgKGFjdGlvbik9XCJzbWlsZXlBY3Rpb24oJGV2ZW50KVwiXG4gIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCJcbj48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cblxuPGRpdiBjbGFzcz1cImltcG9ydFwiICpuZ0lmPVwiaXNVcGxvYWRlZFwiPlxuICA8YXBwLWNyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lclxuICAgICNlZGl0b3JcbiAgICBbb3BlblBvcnRhbF09XCInQVNTRVNTTUVOVF9JTVBPUlQnXCJcbiAgICAocG9zdEFzc2Vzc21lbnQpPVwicG9zdEFzc2Vzc21lbnQoJGV2ZW50KVwiXG4gICAgKHNldElzVXBsb2FkZWQpPVwic2V0SXNVcGxvYWRlZCgkZXZlbnQpXCJcbiAgICBbYXNzZXNzbWVudEpTT05dPVwiY29udmVydGVkRGF0YVwiXG4gID5cbiAgPC9hcHAtY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
672
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFNN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7OztBQUcxRCxNQUFNLGFBQWEsR0FBRztJQUNwQixXQUFXLEVBQUUsYUFBYTtJQUMxQixnQkFBZ0IsRUFBRSxrQkFBa0I7Q0FDckMsQ0FBQztBQU9GLE1BQU0sT0FBTywyQkFBMkI7SUFxQ3RDLGFBQWEsQ0FBQyxVQUFtQjtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN0RSxJQUFJLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQy9D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aEQsR0FBRyxHQUFHLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQzthQUMvRDtpQkFBTTtnQkFDTCxHQUFHO29CQUNELFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRywrQkFBK0IsQ0FBQzthQUN2RTtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xEO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQ3RFLElBQUksUUFBUTtnQkFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDaEQ7SUFDSCxDQUFDOytHQXhzQlUsMkJBQTJCO21HQUEzQiwyQkFBMkIsMlBDcEJ4QyxzeEVBc0VBOzs0RkRsRGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs4SkFPcEMsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRTVCLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXNzZXNzbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hc3Nlc3NtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSWZyYW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lmcmFtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hc3NldHMuY29uc3RhbnRzJztcblxudHlwZSBBT0EgPSBhbnlbXVtdO1xuY29uc3Qgc21pbGV5QWN0aW9ucyA9IHtcbiAgSU1QT1JUX01PUkU6ICdJTVBPUlRfTU9SRScsXG4gIFZJRVdfQVNTRVNTTUVOVFM6ICdWSUVXX0FTU0VTU01FTlRTJyxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pbXBvcnQtYW4tYXNzZXNzbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW1wb3J0QW5Bc3Nlc3NtZW50Q29tcG9uZW50IHtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBAVmlld0NoaWxkKCdlZGl0b3InLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZWRpdG9yQ29udCE6IENyZWF0ZUFzc2Vzc21lbnRDb250YWluZXJDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGlzU2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1dyb25nRm9ybWF0ID0gZmFsc2U7XG4gIGZpbGVOYW1lOiBhbnk7XG4gIGRhdGE6IGFueTtcbiAgdXBsb2FkZWRGaWxlczogYW55ID0gW107XG4gIGZpbGVSZXNwb25zZTogYW55ID0gW107XG4gIGZpbGVWYWx1ZTogYW55O1xuICBvcmdhbml6YXRpb25JZCA9IDA7XG4gIGVycm9yTWVzc2FnZSA9ICdpbnZhbGlkIGZpbGUgZXJyb3InO1xuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XG4gIGRvd25sb2FkUGVyY2VudCA9IDA7XG4gIHNtaWxleU1lc3NhZ2VBY3Rpb24gPSBgWW91J3JlIEFsbCBTZXQhYDtcbiAgYWN0aW9uQnV0dG9ucyA9IFtcbiAgICB7XG4gICAgICBidXR0b25UZXh0OiAnSW1wb3J0IE1vcmUgQXNzZXNzbWVudHMnLFxuICAgICAgY2xhc3M6ICd3aGl0ZS1idG4nLFxuICAgICAgaWQ6IHNtaWxleUFjdGlvbnMuSU1QT1JUX01PUkUsXG4gICAgfSxcbiAgICB7XG4gICAgICBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsXG4gICAgICBjbGFzczogJ2JsdWUtYnRuJyxcbiAgICAgIGlkOiBzbWlsZXlBY3Rpb25zLlZJRVdfQVNTRVNTTUVOVFMsXG4gICAgfSxcbiAgXTtcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xuICBhc3Nlc3NtZW50RGF0YSE6IGFueTtcbiAgc2hlZXREYXRhITogYW55O1xuICBjb252ZXJ0ZWREYXRhOiBhbnk7XG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2F0ZWdvcnlEYXRhITogYW55O1xuXG4gIHNldElzVXBsb2FkZWQoaXNVcGxvYWRlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XG4gICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KGlzVXBsb2FkZWQpO1xuICAgIGlmICghaXNVcGxvYWRlZCkge1xuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0bicpO1xuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgIHRoaXMuY29udmVydGVkRGF0YSA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UsXG4gICAgcHVibGljIGFzc2Vzc21lbnRTZXJ2aWNlOiBBc3Nlc3NtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGlmcmFtZVNlcnZpY2U6IElmcmFtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5vcmdhbml6YXRpb25JZCA9IHRoaXMuYXV0aC5nZXRPcmdhbml6YXRpb25JZCgpO1xuICB9XG5cbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLmFzc2Vzc21lbnREYXRhLCBjb25maXJtOiBmYWxzZSB9KTtcbiAgfVxuXG4gIGRvd25sb2FkVGVtcGxhdGUoKSB7XG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XG4gICAgdGhpcy5kb3dubG9hZFBlcmNlbnQgPSAwO1xuICAgIGNvbnN0IGRvd25sb2FkRGF0ZSA9IG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkuc3BsaXQoJyAnKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcblxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bmxvYWRUZW1wbGF0ZSgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25Mb2FkRmlsZShcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veGxzeCcsXG4gICAgICAgICAgICBmaWxlTmFtZVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIDE1MDApO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnRE9XTkxPQURFRCc7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XG4gICAgY29uc3QgZ2V0RmlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpYWEtZmlsZS1pbnB1dCcpO1xuICAgIGlmIChnZXRGaWxlKSB7XG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXG4gIHVwbG9hZEZpbGUoZXZ0OiBhbnkpIHtcbiAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IGV2dC50YXJnZXQgYXMgRGF0YVRyYW5zZmVyO1xuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XG4gICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XG4gICAgICBjb25zdCB3c25hbWUxOiBzdHJpbmcgPSB3Yi5TaGVldE5hbWVzWzFdO1xuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XG4gICAgICBjb25zdCB0ZW1wRGF0YTogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lMV07XG4gICAgICB0aGlzLmNhdGVnb3J5RGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih0ZW1wRGF0YSwge1xuICAgICAgICBoZWFkZXI6IDEsXG4gICAgICB9KSBhcyBBT0E7XG4gICAgICB0aGlzLnNoZWV0RGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cywge1xuICAgICAgICBoZWFkZXI6IDEsXG4gICAgICB9KSBhcyBBT0E7XG5cbiAgICAgIHRoaXMuZ2VuZXJhdGVDYXRlZ29yeUxpc3QodGhpcy5jYXRlZ29yeURhdGEpO1xuXG4gICAgICB0aGlzLmFzc2Vzc21lbnREYXRhID0gdGhpcy5zaGVldERhdGEuZmlsdGVyKFxuICAgICAgICAoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMFxuICAgICAgKTtcblxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgICAgaWYgKCF0aGlzLmNoZWNrRm9ybWF0KHRoaXMuYXNzZXNzbWVudERhdGEpKSB7XG4gICAgICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nsb3NlLXdvcmtmbG93LWVuZ2luZS1idG4nKTtcbiAgICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKHRoaXMuYXNzZXNzbWVudERhdGEpO1xuICAgICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNVcGxvYWRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZWRpdG9yQ29udC50cmlnZ2VyUHJldmlld1dpdGhWYWxpZGF0aW9uKCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgICB9XG4gICAgfTtcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XG4gIH1cblxuICBjYXRlZ29yeUxpc3QhOiBhbnk7XG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XG4gICAgY29uc3QgY2F0TGlzdDogYW55ID0ge307XG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xuICAgICAgY2F0ZWdvcnlEYXRhLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICAgIGNhdExpc3RbZWxlWzBdXSA9IGVsZVsxXTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSBjYXRMaXN0O1xuICAgIH1cbiAgfVxuXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jYXRlZ29yeUxpc3RbY2F0ZWdvcnlOYW1lXSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlMaXN0W2NhdGVnb3J5TmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XG4gICAgLy9jaGVjayBmb3JtYXRcblxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGFzc2Vzc21lbnRfbmFtZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgYXNzZXNzbWVudF90eXBlOiAnY29tcGxpYW5jZScsXG4gICAgICAgIGNhdGVnb3J5X2FycjogW10sXG4gICAgICAgIGFwcHJvdmFsX3dvcmtmbG93X2Fycjoge1xuICAgICAgICAgIHRlc3Q6ICd0ZXN0JyxcbiAgICAgICAgfSxcbiAgICAgICAgYXBwcm92YWxfcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHNvdXJjZV9wYWdlOiAnY29tcGxpYW5jZScsXG4gICAgICB9LFxuICAgICAgYXNzZXNzbWVudERhdGE6IHtcbiAgICAgICAgdmVyc2lvbjogMixcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxuICAgICAgICBhbm9ueW1vdXNSZXNwb25zZTogZmFsc2UsXG4gICAgICAgIGhhc1dlbGNvbWU6IGZhbHNlLFxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxuICAgICAgICB3ZWxjb21lVGV4dDogJycsXG4gICAgICAgIGhhc1dlbGNvbWVJbWFnZTogZmFsc2UsXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXG4gICAgICAgIHdlbGNvbWVEZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGhhc1RoYW5rczogZmFsc2UsXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxuICAgICAgICB0aGFua3lvdVRleHQ6ICcnLFxuICAgICAgICB0aGFua3lvdUltYWdlOiAnJyxcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXG4gICAgICAgIHRoYW5reW91RGVzY3JpcHRpb246ICcnLFxuICAgICAgICBlbGVtZW50czogW10sXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXG4gICAgICAgIGN1c3RvbVJlc3BvbnNlU2V0OiBbXSxcbiAgICAgICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuY29udmVydGVkRGF0YSA9IHBheWxvYWQ7XG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmFzc2Vzc21lbnRfbmFtZSA9IHRoaXMuYXNzZXNzbWVudERhdGFbMl1bMV07XG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gdGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXTtcbiAgICB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyID0gW1xuICAgICAgdGhpcy5jYXRlZ29yeU5hbWV0b0lkKHRoaXMuYXNzZXNzbWVudERhdGFbNF1bMV0pLFxuICAgIF07XG5cbiAgICAvL1RPRE86IGNyZWF0ZSBhIGZ1bmN0aW9uIHRvIGNvbnZlcnQgZnJvbSBjYXRlZ29yaWVzIG5hbWVzIHRvIGNhdGVnb3JpZXMgaWQuXG4gICAgLy9UT0RPOiBjaGVjayB0aGUgYXBpIGZvciBzdWItZmxvdyBsaWtlIGFzc2Vzc21lbnQtc2V0dGluZy5cbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcbiAgICB0aGlzLmdlbmVyYXRlUXVlc3Rpb25zTGlzdChkYXRhLnNsaWNlKDYpLCBwYXlsb2FkLmFzc2Vzc21lbnREYXRhLmVsZW1lbnRzKTtcbiAgfVxuXG4gIGdlbmVyYXRlUXVlc3Rpb25zTGlzdChxdWVzdGlvbnNMaXN0OiBhbnksIHF1ZXN0aW9uc0FycmF5OiBhbnkpIHtcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xuICAgIGlmIChxdWVzdGlvbnNMaXN0Py5sZW5ndGgpIHtcbiAgICAgIHF1ZXN0aW9uc0xpc3QuZm9yRWFjaCgocXVlc3Rpb246IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKCk7XG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcbiAgICAgICAgICBjYXNlICdTaW5nbGUgVGV4dGJveCc6XG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLCBxdWVzdGlvbiwgaW5kZXgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2goXG4gICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVNdWx0aXBsZUNob2ljZSgnbXVsdGlwbGUtY2hvaWNlJywgcXVlc3Rpb24sIGluZGV4KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0NoZWNrYm94JzpcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2goXG4gICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVNdWx0aXBsZUNob2ljZSgnY2hlY2tib3gnLCBxdWVzdGlvbiwgaW5kZXgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnRHJvcGRvd24nOlxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaChcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicsIHF1ZXN0aW9uLCBpbmRleClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKFxuICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlRGF0ZVRpbWUoJ2RhdGUtdGltZScsIHF1ZXN0aW9uLCBpbmRleClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdGaWxlIFVwbG9hZCc6XG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBObyBuZWVkIHRvIGRvIGFueXRoaW5nIGZvciBkZWZhdWx0XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbnZlcnRlZERhdGEuYXNzZXNzbWVudERhdGEuZWxlbWVudHMgPSBxdWVzdGlvbnNBcnJheTtcbiAgfVxuICBjb2xNYXA6IGFueSA9IHtcbiAgICB0eXBlOiAwLFxuICAgIHRpdGxlOiAxLFxuICAgIHNjb3JlOiAyLFxuICAgIG9wdDE6IDMsXG4gICAgb3B0MjogNCxcbiAgICBvcHQzOiA1LFxuICAgIG9wdDQ6IDYsXG4gICAgb3B0NTogNyxcbiAgICBvcHQ2OiA4LFxuICAgIHJlcXVpcmVkOiA5LFxuICAgIGZhaWxlZDogMTAsXG4gICAgZGVzY3JpcHRpb246IDExLFxuICAgIHBsYWNlaG9sZGVyOiAxMixcbiAgICBjb21tZW50OiAxMyxcbiAgICBvdGhlcjogMTQsXG4gICAgcmFuZG9taXplOiAxNSxcbiAgICBhbGlnbm1lbnQ6IDE2LFxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcbiAgICB1c2VyY29tbWVudDogMTgsXG4gIH07XG4gIGdlbmVyYXRlU2luZ2xlVGV4dGJveCh0eXBlOiBzdHJpbmcsIHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JyxcbiAgICAgIG5hbWU6IGBRdWVzdGlvbl8ke2luZGV4fWAsXG4gICAgICBwYWdlOiAxLFxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICB2YWxpZGF0aW9uVHlwZTogJycsXG4gICAgICBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsXG4gICAgICBtaW5DaGFyYWN0ZXJMZW5ndGg6IDAsXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCxcbiAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXG4gICAgICBoYXNEZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpXG4gICAgICAgID8ubGVuZ3RoXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGZhbHNlLFxuICAgICAgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKClcbiAgICAgICAgPy5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2UsXG4gICAgICBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXG4gICAgICByYW5kb21pemU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5yYW5kb21pemVdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIG90aGVyVmFsdWU6ICdPdGhlcicsXG4gICAgICBhbGlnbm1lbnQ6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5hbGlnbm1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHJldmVyc2U6IGZhbHNlLFxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDpcbiAgICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICB1c2VyQXR0YWNoZWRGaWxlczogW10sXG4gICAgICBpc1Jlc3BvbmRlbnRDb21tZW50OlxuICAgICAgICBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXG4gICAgICBvdGhlckNvbmZpZzoge1xuICAgICAgICBjb2xvcjogJyMwMDAwMDAnLFxuICAgICAgICBpc0ZhaWxlZDogZmFsc2UsXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXG4gICAgICB9LFxuICAgICAgY2hvaWNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgIHZhbHVlOiAxLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgIHJlcXVpcmVkOiAwLFxuICAgICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXG4gICAgICAgICAgaGVscGluZ0xhYmVsOiAnJyxcbiAgICAgICAgICBpc0ZhaWxlZDogZmFsc2UsXG4gICAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcbiAgICAgICAgICBjb2xvcjogJyMwMDAwMDAnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgZ2VuZXJhdGVNdWx0aXBsZUNob2ljZSh0eXBlOiBzdHJpbmcsIHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdHlwZSxcbiAgICAgIG5hbWU6IGBRdWVzdGlvbl8ke2luZGV4fWAsXG4gICAgICBwYWdlOiAxLFxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICB2YWxpZGF0aW9uVHlwZTogJycsXG4gICAgICBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsXG4gICAgICBtaW5DaGFyYWN0ZXJMZW5ndGg6IDAsXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCxcbiAgICAgIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXG4gICAgICBoYXNEZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpXG4gICAgICAgID8ubGVuZ3RoXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGZhbHNlLFxuICAgICAgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCkudHJpbSgpID8/ICcnLFxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGhcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogZmFsc2UsXG4gICAgICBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgaGFzT3RoZXI6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vdGhlcl0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgb3RoZXJWYWx1ZTogJ090aGVyJyxcbiAgICAgIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgcmV2ZXJzZTogZmFsc2UsXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OlxuICAgICAgICBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXG4gICAgICBpc1Jlc3BvbmRlbnRDb21tZW50OlxuICAgICAgICBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIG90aGVyQ29uZmlnOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMDAwMCcsXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcbiAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcbiAgICAgIH0sXG4gICAgICBjaG9pY2VzOiB0aGlzLmdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbiksXG4gICAgfTtcbiAgfVxuXG4gIGdlbmVyYXRlRGF0ZVRpbWUodHlwZTogc3RyaW5nLCBxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHR5cGUsXG4gICAgICBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLFxuICAgICAgcGFnZTogMSxcbiAgICAgIGhhc1ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgdmFsaWRhdGlvblR5cGU6ICcnLFxuICAgICAgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBoYXNDaGFyYWN0ZXJMZW5ndGg6IGZhbHNlLFxuICAgICAgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsXG4gICAgICB0aXRsZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnRpdGxlXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKVxuICAgICAgICA/Lmxlbmd0aFxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aFxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZSxcbiAgICAgIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCkudHJpbSgpLFxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBvdGhlclZhbHVlOiAnT3RoZXInLFxuICAgICAgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICByZXZlcnNlOiBmYWxzZSxcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6XG4gICAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyYXR0YWNobWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxuICAgICAgdmlzaWJpbGl0eUxvZ2ljOiBbXSxcbiAgICAgIGlzUmVzcG9uZGVudENvbW1lbnQ6XG4gICAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgb3RoZXJDb25maWc6IHtcbiAgICAgICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxuICAgICAgfSxcbiAgICAgIGNob2ljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICByZXF1aXJlZDogMCxcbiAgICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxuICAgICAgICAgIGhlbHBpbmdMYWJlbDogJycsXG4gICAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxuICAgICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXG4gICAgICAgICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBoYXNEYXRlOiB0cnVlLFxuICAgICAgaGFzVGltZTogZmFsc2UsXG4gICAgICBkYXRlRm9ybWF0OiAnREQvTU0vWVlZWScsXG4gICAgICB0aW1lRm9ybWF0OiAyNCxcbiAgICAgIGRhdGU6IHtcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBEYXRlJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHRpbWU6IHtcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBUaW1lJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIGdlbmVyYXRlRmlsZVVwbG9hZChxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdmaWxlLXVwbG9hZCcsXG4gICAgICBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLFxuICAgICAgcGFnZTogMSxcbiAgICAgIGhhc1ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgdmFsaWRhdGlvblR5cGU6ICcnLFxuICAgICAgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBoYXNDaGFyYWN0ZXJMZW5ndGg6IGZhbHNlLFxuICAgICAgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsXG4gICAgICB0aXRsZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnRpdGxlXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKVxuICAgICAgICA/Lmxlbmd0aFxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpXG4gICAgICAgID8ubGVuZ3RoXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGZhbHNlLFxuICAgICAgY29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5jb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpLFxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICBvdGhlclZhbHVlOiAnT3RoZXInLFxuICAgICAgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXG4gICAgICByZXZlcnNlOiBmYWxzZSxcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6XG4gICAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyYXR0YWNobWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxuICAgICAgdmlzaWJpbGl0eUxvZ2ljOiBbXSxcbiAgICAgIGlzUmVzcG9uZGVudENvbW1lbnQ6XG4gICAgICAgIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgb3RoZXJDb25maWc6IHtcbiAgICAgICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxuICAgICAgfSxcbiAgICAgIGNob2ljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICByZXF1aXJlZDogMCxcbiAgICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxuICAgICAgICAgIGhlbHBpbmdMYWJlbDogJycsXG4gICAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxuICAgICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXG4gICAgICAgICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiB7XG4gICAgICAgIHBkZjogdHJ1ZSxcbiAgICAgICAgZG9jOiB0cnVlLFxuICAgICAgICBwbmc6IHRydWUsXG4gICAgICAgIGpwZzogdHJ1ZSxcbiAgICAgICAgZ2lmOiB0cnVlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZ2VuZXJhdGVDaG9pY2VzKHF1ZXN0aW9uOiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb25zID0gW1xuICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDFdLFxuICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDJdLFxuICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDNdLFxuICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDRdLFxuICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDVdLFxuICAgICAgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDZdLFxuICAgIF0uZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlKTtcbiAgICBvcHRpb25zLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICBpZiAoZWxlKSB7XG4gICAgICAgIGVsZS50b1N0cmluZygpPy50cmltKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKG9wdGlvbnM/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgb3B0aW9ucy5wdXNoKCcnKTtcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9uTWFwOiBhbnkgPSB7XG4gICAgICAnT3B0aW9uIDEnOiAzLFxuICAgICAgJ09wdGlvbiAyJzogNCxcbiAgICAgICdPcHRpb24gMyc6IDUsXG4gICAgICAnT3B0aW9uIDQnOiA2LFxuICAgICAgJ09wdGlvbiA1JzogNyxcbiAgICAgICdPcHRpb24gNic6IDgsXG4gICAgfTtcbiAgICBvcHRpb25zLmZvckVhY2goKGNob2ljZTogYW55LCBpbmRleDogYW55KSA9PiB7XG4gICAgICBvcHRpb25zW2luZGV4XSA9IHtcbiAgICAgICAgdGl0bGU6XG4gICAgICAgICAgY2hvaWNlICYmIHR5cGVvZiBjaG9pY2UgPT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gY2hvaWNlXG4gICAgICAgICAgICA6IGNob2ljZS50b1N0cmluZygpID8/ICcnLFxuICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIHJlcXVpcmVkOiAwLFxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxuICAgICAgICBoZWxwaW5nTGFiZWw6ICcnLFxuICAgICAgICBpc0ZhaWxlZDpcbiAgICAgICAgICBjaG9pY2U/LnRvU3RyaW5nKCk/LnRyaW0oKSA9PVxuICAgICAgICAgICAgcXVlc3Rpb25bb3B0aW9uTWFwW3F1ZXN0aW9uW3RoaXMuY29sTWFwPy5mYWlsZWRdXV1cbiAgICAgICAgICAgID8gdHJ1ZVxuICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgc2NvcmU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5zY29yZV0gPz8gMSxcbiAgICAgICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBzZXR0aW5nczogYW55ID0ge1xuICAgIGFzc2Vzc21lbnRNb2RlOiBmYWxzZSxcbiAgICBkZWZhdWx0U2NvcmU6IDEsXG4gICAgbmVnYXRpdmVTY29yZUNyaXRlcmlhOiAnRkFJTEVEJyxcbiAgICBuZWdhdGl2ZVNjb3JlOiAwLFxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxuICAgIHNldHRpbmdzRW5hYmxlZDogZmFsc2UsXG4gIH07XG5cbiAgY2hlY2tGb3JtYXQoYXNzZXNzbWVudERhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9yZ0luVGVtcGxhdGUgPSB0aGlzLmNhdGVnb3J5RGF0YVswXVs1XTtcbiAgICAvL0NvbXBsZXRseSBibGFuayBleGNlbCBzaGVldFxuICAgIGlmIChhc3Nlc3NtZW50RGF0YS5sZW5ndGggPT09IDAgfHwgb3JnSW5UZW1wbGF0ZSAhPT0gdGhpcy5vcmdhbml6YXRpb25JZCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPVxuICAgICAgICAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvL0ludmFsaWQgVGVtcGFsdGVcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICBhc3Nlc3NtZW50RGF0YVsyXVswXSAhPT0gJ0Fzc2Vzc21lbnQgTmFtZSonIHx8XG4gICAgICAgIGFzc2Vzc21lbnREYXRhWzNdWzBdICE9PSAnRGVzY3JpcHRpb24nIHx8XG4gICAgICAgIGFzc2Vzc21lbnREYXRhWzRdWzBdICE9PSAnQXNzZXNzbWVudCBDYXRlZ29yeSonIHx8XG4gICAgICAgIGFzc2Vzc21lbnREYXRhWzVdWzBdICE9PSAnUXVlc3Rpb24gVHlwZSonXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPVxuICAgICAgICAgICdZb3UgaGF2ZSB1cGxvYWRlZCB0aGUgd3JvbmcgdGVtcGxhdGUuIFBsZWFzZSBkb3dubG9hZCB0aGUgdGVtcGxhdGUgYWdhaW4gdG8gcHJvY2VlZC4nO1xuICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cbiAgICAgICAgJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy9DaGVjayBBc3Nlc3NtZW50IG5hbWVcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICAhYXNzZXNzbWVudERhdGFbMl1bMV0gfHxcbiAgICAgICAgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09ICcnIHx8XG4gICAgICAgIGFzc2Vzc21lbnREYXRhWzJdWzFdID09PSB1bmRlZmluZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xuICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0VudGVyIGEgbmFtZSBmb3IgdGhpcyBBc3Nlc3NtZW50Lic7XG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy9jYXRlZ29yeSBub3Qgc2VsZWN0ZWRcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICAhYXNzZXNzbWVudERhdGFbNF1bMV0gfHxcbiAgICAgICAgYXNzZXNzbWVudERhdGFbNF1bMV0gPT09ICcnIHx8XG4gICAgICAgIGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSB1bmRlZmluZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWxlY3QgdGhlIEFzc2Vzc21lbnQgQ2F0ZWdvcnkuJztcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWxlY3QgdGhlIEFzc2Vzc21lbnQgQ2F0ZWdvcnkuJztcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvL0RvZXMgbm90IGNvbnRhaW5zIGFueSBxdWVzdGlvbnNcbiAgICB0cnkge1xuICAgICAgaWYgKGFzc2Vzc21lbnREYXRhLnNsaWNlKDcpPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPVxuICAgICAgICAgICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9XG4gICAgICAgICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvL2hhbmRsZSB0eXBlIG9mIHF1ZXN0aW9uIGFuZCBvcHRpb25zIGNvdW50XG4gICAgZm9yIChsZXQgaSA9IDc7IGkgPD0gYXNzZXNzbWVudERhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnTXVsdGlwbGUgQ2hvaWNlJyAmJlxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0NoZWNrYm94JyAmJlxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0Ryb3Bkb3duJyAmJlxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ1NpbmdsZSBUZXh0Ym94JyAmJlxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0RhdGUgJiBUaW1lJyAmJlxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0ZpbGUgVXBsb2FkJ1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cbiAgICAgICAgICAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICAvLyBpZiAoYXNzZXNzbWVudERhdGFbaV1bMV0gPT09ICcnKSB7XG4gICAgICAvLyAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XG4gICAgICAvLyAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XG4gICAgICAvLyAgIHJldHVybiB0cnVlO1xuICAgICAgLy8gfVxuICAgIH1cblxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KCkge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogJycsXG4gICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICBtYXhTY29yZTogMTAsXG4gICAgICBzZWdtZW50czogW10sXG4gICAgfTtcbiAgfVxuXG4gIHBvc3RBc3Nlc3NtZW50KGRhdGE6IGFueSkge1xuICAgIHRoaXMuaXNTaG93TG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlXG4gICAgICAuY3JlYXRlQXNzZXNzbWVudCh0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnBvc3RBc3Nlc3NtZW50RGV0YWlscyhcbiAgICAgICAgICAgIHJlc3BvbnNlLl9pZCxcbiAgICAgICAgICAgIGRhdGEubW9kZSxcbiAgICAgICAgICAgIGRhdGEuYXNzZXNzbWVudERldGFpbHNcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcG9zdEFzc2Vzc21lbnREZXRhaWxzKGlkOiBhbnksIG1vZGU6IGFueSwgYXNzZXNzbWVudERldGFpbHM6IGFueSkge1xuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHF1ZXN0aW9uOiBhc3Nlc3NtZW50RGV0YWlscyxcbiAgICAgIGFjdGlvbjogJ3F1ZXN0aW9uc19zYXZlJyxcbiAgICAgIHN0YXRlOiBtb2RlLFxuICAgIH07XG5cbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLnNhdmVBc3Nlc3NtZW50RGV0YWlscyhpZCwgcGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB7fTtcbiAgICAgICAgdGhpcy5pc1Nob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNTaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgc21pbGV5QWN0aW9uKGlkOiBhbnkpIHtcbiAgICBpZiAoaWQgPT09IHNtaWxleUFjdGlvbnMuVklFV19BU1NFU1NNRU5UUykge1xuICAgICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICAgIC8vIFRPRE86IE5hdmlnYXRlIHRvICcvbWFuYWdlLWFzc2Vzc21lbnQnXG4gICAgICBsZXQgdXJsOiBzdHJpbmc7XG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcbiAgICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL21hbmFnZS1hc3Nlc3NtZW50JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9XG4gICAgICAgICAgJ2h0dHBzOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9hc3Nlc3NtZW50L21hbmFnZS1hc3Nlc3NtZW50JztcbiAgICAgIH1cbiAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XG4gICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpO1xuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0bicpO1xuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbXBvcnQtYW4tYXNzZXNzbWVudFwiIFthdHRyLmlkXT1cIidzY3JvbGxSZWZlcmVuY2UnXCI+XG4gIDwhLS0gbWFpbiBjb250YWluZXIgc3RhcnRzIGhlcmUgLS0+XG4gIDxkaXYgY2xhc3M9XCJpbXBvcnQtYW4tYXNzZXNzbWVudC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cImltcG9ydC1hbi1hc3Nlc3NtZW50LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJBU1NFVFMuc3ByZWFkc2hlZXRfbXVsdGlwbGVfY2F0ZWdvcnlcIiBhbHQ9XCJcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxoND5Zb3UgY2FuIGltcG9ydCBhbiBhc3Nlc3NtZW50IGluIGp1c3QgdHdvIGVhc3kgc3RlcHM6PC9oND5cbiAgICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cbiAgICAgICAgPGxpPkRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhbmQgZmlsbCBpbiB0aGUgZGV0YWlscy48L2xpPlxuICAgICAgICA8bGk+VXBsb2FkIHRoZSAueGxzeCBmaWxlIGFuZCB5b3XigJlyZSBnb29kIHRvIGdvITwvbGk+XG4gICAgICA8L3VsPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZG93bmxvYWRcIlxuICAgICAgICAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnTk9UX0RPV05MT0FESU5HJ1wiXG4gICAgICAgIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWI7PC9pPiBEb3dubG9hZCBUZW1wbGF0ZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tcHJvZ3Jlc3NcIiAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnRE9XTkxPQURJTkcnXCI+XG4gICAgICAgIERvd25sb2FkIGluIFByb2dyZXNzXG4gICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCInMidcIj48L2FwcC1saW5lLWxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnRE9XTkxPQURFRCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWM7PC9pPkRvd25sb2FkIENvbXBsZXRlXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay1idG4tYWdhaW5cIj5cbiAgICAgICAgICBJcyB0aGUgZmlsZSBub3QgZG93bmxvYWRlZD9cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIj5SZXRyeSBEb3dubG9hZDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJpc1dyb25nRm9ybWF0XCI+e3sgZXJyb3JNZXNzYWdlIH19PC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJpc1Nob3dMb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuXG48aW5wdXRcbiAgdHlwZT1cImZpbGVcIlxuICBbKG5nTW9kZWwpXT1cImZpbGVWYWx1ZVwiXG4gIGlkPVwiaWFhLWZpbGUtaW5wdXRcIlxuICBhY2NlcHQ9XCIueGxzeFwiXG4gIGNsYXNzPVwiaGlkZGVuLWlucHV0XCJcbiAgb25jbGljaz1cInRoaXMudmFsdWUgPSBudWxsXCJcbiAgKGNoYW5nZSk9XCJ1cGxvYWRGaWxlKCRldmVudClcIlxuLz5cblxuPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxuICAqbmdJZj1cInNob3dTbWlsZXlcIlxuICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlQWN0aW9uXCJcbiAgW2FjdGlvbkJ1dHRvbnNdPVwiYWN0aW9uQnV0dG9uc1wiXG4gIChhY3Rpb24pPVwic21pbGV5QWN0aW9uKCRldmVudClcIlxuICAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiXG4+PC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XG5cbjxkaXYgY2xhc3M9XCJpbXBvcnRcIiAqbmdJZj1cImlzVXBsb2FkZWRcIj5cbiAgPGFwcC1jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXJcbiAgICAjZWRpdG9yXG4gICAgW29wZW5Qb3J0YWxdPVwiJ0FTU0VTU01FTlRfSU1QT1JUJ1wiXG4gICAgKHBvc3RBc3Nlc3NtZW50KT1cInBvc3RBc3Nlc3NtZW50KCRldmVudClcIlxuICAgIChzZXRJc1VwbG9hZGVkKT1cInNldElzVXBsb2FkZWQoJGV2ZW50KVwiXG4gICAgW2Fzc2Vzc21lbnRKU09OXT1cImNvbnZlcnRlZERhdGFcIlxuICA+XG4gIDwvYXBwLWNyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|