vcomply-workflow-engine 3.4.71 → 3.4.73
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/esm2020/lib/log-an-issue/log-an-issue.component.mjs +2 -15
- package/esm2020/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +3 -3
- package/fesm2015/vcomply-workflow-engine.mjs +9 -22
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +3 -16
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -736,22 +736,9 @@ export class LogAnIssueComponent {
|
|
|
736
736
|
}
|
|
737
737
|
const PAYLOAD = this.logService.payloadBuilder(form, this.additionalOptionStatus);
|
|
738
738
|
if (this.mode === 'CREATE') {
|
|
739
|
-
PAYLOAD.linkage_object = {
|
|
740
|
-
source: this.openedFrom,
|
|
741
|
-
type: '',
|
|
742
|
-
type_id: 0,
|
|
743
|
-
source_id: 0,
|
|
744
|
-
source_object_id: '',
|
|
745
|
-
};
|
|
746
739
|
if (this.openedFrom === 'COMPLIANCE_WORKROOM' &&
|
|
747
740
|
this.reponsibilityData?.responsibilityId) {
|
|
748
|
-
PAYLOAD.
|
|
749
|
-
source_id: this.reponsibilityData?.responsibilityId,
|
|
750
|
-
type: '',
|
|
751
|
-
type_id: 0,
|
|
752
|
-
source: this.openedFrom,
|
|
753
|
-
source_object_id: this.reponsibilityData?.responsibilityObjectId,
|
|
754
|
-
};
|
|
741
|
+
PAYLOAD.responsibilities_Linked.push(this.reponsibilityData?.responsibilityId);
|
|
755
742
|
}
|
|
756
743
|
if (['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(this.openedFrom)) {
|
|
757
744
|
if (this.logIssueForm?.linkageType &&
|
|
@@ -1085,4 +1072,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
1085
1072
|
type: ViewChild,
|
|
1086
1073
|
args: ['datePicker']
|
|
1087
1074
|
}] } });
|
|
1088
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR25DLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNM0QsTUFBTSxPQUFPLG1CQUFtQjtJQWdNOUIsWUFDVSxVQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixRQUF5QixFQUN6QixrQkFBcUM7UUFKckMsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQWxNdEMsc0JBQWlCLEdBQUc7WUFDM0IsNEJBQTRCO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixJQUFJLEVBQUUsSUFBSTtZQUNWLHNCQUFzQixFQUFFLEVBQUU7U0FDM0IsQ0FBQztRQUNPLGlCQUFZLEdBQUc7WUFDdEIsV0FBVyxFQUFF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Q0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ0lzc3VlU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2xvZy1pc3N1ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBJc3N1ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lzc3VlLWRhdGEnO1xyXG5pbXBvcnQgeyBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1sb2ctYW4taXNzdWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2ctYW4taXNzdWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dBbklzc3VlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIG9wZW5lZEZyb20hOiBhbnk7XHJcbiAgQElucHV0KCkgaXNzdWVJZCE6IGFueTtcclxuICBASW5wdXQoKSByZXBvbnNpYmlsaXR5RGF0YSA9IHtcclxuICAgIC8vIG9ubHkgdXNlZCBieSBsb2cgYW4gaXNzdWVcclxuICAgIHJlc3BvbnNpYmlsaXR5SWQ6IG51bGwsXHJcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICAgIHJlc3BvbnNpYmlsaXR5T2JqZWN0SWQ6ICcnLFxyXG4gIH07XHJcbiAgQElucHV0KCkgaXNzdWVEZXRhaWxzID0ge1xyXG4gICAgYXVkaXRQbGFuSWQ6IG51bGwsXHJcbiAgICBhdWRpdFBsYW5OYW1lOiAnJyxcclxuICAgIHJjSWQ6IG51bGwsXHJcbiAgICBhdWRpdE9iaklkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgbW9kZSA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IElzc3VlQ29uZmlndXJhdGlvbjtcclxuICBASW5wdXQoKSByZXNwb25zaWJpbGl0aWVzRGF0YTogYW55O1xyXG4gIEBPdXRwdXQoKSBwaWNrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIGN1cnJlbnRVc2VyITogYW55O1xyXG4gIHNjcm9sbFRvQm90dG9tOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZVBpY2tlck92ZXJsYXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGF0ZUVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRlOiBhbnk7XHJcbiAgc2hvd1NtaWxleTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNtaWxleU1lc3NhZ2U6IHN0cmluZyA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQuYDtcclxuICBpc3N1ZURhdGEhOiBhbnk7XHJcbiAgaXNSaXNrQ29udHJvbExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhY3Rpb25CdXR0b25zOiBhbnlbXSA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ1JlcG9ydCBNb3JlIElzc3VlcycsIGNsYXNzOiAnd2hpdGUtYnRuJywgaWQ6ICdhZGRNb3JlJyB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBJc3N1ZScsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogJ3ZpZXdJc3N1ZScgfSxcclxuICBdO1xyXG4gIGNyZWF0ZWREYXRhITogYW55O1xyXG4gIGRlc2NyaXB0aW9uOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICAvLyBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24nLFxyXG4gIH07XHJcblxyXG4gIGRhdGVDb25maWcgPSB7XHJcbiAgICBkaXNhYmxlS2V5cHJlc3M6IHRydWUsXHJcbiAgICBmb3JtYXQ6ICdERCBNTU0gWVlZWScsXHJcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXHJcbiAgICBvcGVuT25DbGljazogZmFsc2UsXHJcbiAgICBvcGVuT25Gb2N1czogZmFsc2UsXHJcbiAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXHJcbiAgfTtcclxuICBsaXN0RGF0YTogYW55ID0ge1xyXG4gICAgaXNzdWVUeXBlTGlzdDogW10sXHJcbiAgICB1c2VyTGlzdDogW10sXHJcbiAgICBjYXRlZ29yeUxpc3Q6IFtdLFxyXG4gICAgcmNMaXN0OiBbXSxcclxuICAgIGxpbmthZ2VMaXN0OiBbXSxcclxuICB9O1xyXG4gIERFRkFVTFRfVElNRSA9IERFRkFVTFRfVElNRTtcclxuXHJcbiAgZ2V0IG1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnRURJVCdcclxuICAgICAgPyAnIFRoZSBJc3N1ZSBoYXMgYmVlbiB1cGRhdGVkLidcclxuICAgICAgOiB0aGlzLnNtaWxleU1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBsb2dJc3N1ZUZvcm06IGFueSA9IHtcclxuICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgaXNzdWVEZXNjcmlwdGlvbjogJycsXHJcbiAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgaXNzdWVSQzogW10sXHJcbiAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgIGVudHJ1c3RUbzogW10sXHJcbiAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgaXNzdWVEdWVUaW1lOiBERUZBVUxUX1RJTUUsXHJcbiAgICBleGNlcHRpb25UeXBlOiAxLFxyXG4gICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgaXNzdWVQcmlvcml0eTogMSxcclxuICAgIGlzc3VlUmVjb21tZW5kYXRpb246ICcnLFxyXG4gICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICBpc3N1ZUNDVXNlcnM6IFtdLFxyXG4gICAgZmFpbHVyZUNDVXNlcnM6IFtdLFxyXG4gICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgbGlua2FnZVR5cGU6ICdSSVNLJyxcclxuICAgIHJlc3BvbnNpYmlsaXR5TGlua2VkOiBbXSxcclxuICB9O1xyXG4gIEF0dGFjaG1lbnRUcmFjazogYW55ID0gW1tdLCBbXSwgW11dO1xyXG4gIGFkZGl0aW9uYWxPcHRpb25TdGF0dXM6IGFueSA9IHtcclxuICAgIEVYQ0VQVElPTl9UWVBFOiBmYWxzZSxcclxuICAgIEVWSURFTkNFOiBmYWxzZSxcclxuICAgIFBSSU9SSVRZOiBmYWxzZSxcclxuICAgIElTU1VFX1RZUEU6IGZhbHNlLFxyXG4gICAgQVNTT0NJQVRFRF9SSVNLUzogZmFsc2UsXHJcbiAgICBPVkVSU0lHSFQ6IGZhbHNlLFxyXG4gIH07XHJcbiAgcmlza0NsYXNzaWZpY2F0aW9uID0gW1xyXG4gICAgeyBuYW1lOiAnTE9XJywgdmFsdWU6IDEsIGNsYXNzOiAnbG93JyB9LFxyXG4gICAgeyBuYW1lOiAnTE9XLU1lZGl1bScsIHZhbHVlOiAyLCBjbGFzczogJ2xvdy1tZWQnIH0sXHJcbiAgICB7IG5hbWU6ICdNZWRpdW0tSGlnaCcsIHZhbHVlOiAzLCBjbGFzczogJ21lZC1oaWdoJyB9LFxyXG4gICAgeyBuYW1lOiAnSGlnaCcsIHZhbHVlOiA0LCBjbGFzczogJ2hpZ2gnIH0sXHJcbiAgXTtcclxuICByaXNrUHJvcml0eSA9IFtcclxuICAgIHsgbmFtZTogJ0xPVycsIHZhbHVlOiAxLCBjbGFzczogJ2xvdycgfSxcclxuICAgIHsgbmFtZTogJ01FRElVTScsIHZhbHVlOiAyLCBjbGFzczogJ2xvdy1tZWQnIH0sXHJcbiAgICB7IG5hbWU6ICdISUdIJywgdmFsdWU6IDMsIGNsYXNzOiAnaGlnaCcgfSxcclxuICBdO1xyXG5cclxuICBzaWRlU2VsZWN0b3JFbGVtZW50czogYW55ID0gW1xyXG4gICAgJ0lTU1VFX0NBVEVHT1JZJyxcclxuICAgICdJU1NVRV9SQycsXHJcbiAgICAnSVNTVUVfV0hPJyxcclxuICAgICdJU1NVRV9UWVBFJyxcclxuICAgICdJU1NVRV9DQycsXHJcbiAgICAnSVNTVUVfRkNDJyxcclxuICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScsXHJcbiAgXTtcclxuICBzZWxlY3RvckNvbmZpZyA9IHtcclxuICAgIElTU1VFX0NBVEdPUlk6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBJc3N1ZSBDYXRlZ29yeScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnQ2F0ZWdvcnkgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBJc3N1ZSBDYXRlZ29yeScsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBDYXRlZ29yaWVzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9SQzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IFJlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnUmVzcG9uc2liaWxpdHkgY2VudGVyIHNlbGVjdGVkJyxcclxuICAgICAgZmxvYXRpbmdUZXh0UGx1cmFsOiAnUmVzcG9uc2liaWxpdHkgY2VudGVycyBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFJlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIEZvdW5kJyxcclxuICAgICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9XSE86IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBVc2VyJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggVXNlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBVc2VycyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfVFlQRToge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IElzc3VlIFR5cGUnLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ0lzc3VlIFR5cGUgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBJc3N1ZSBUeXBlJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIElzc3VlIFR5cGVzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9DQzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IHVzZXIocyknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9GQ0M6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCB1c2VyKHMpJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggVXNlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBVc2VycyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIGZpZWxkc1dpdGhFcnJvcjogYW55ID0gW107XHJcbiAgLy8gaGlkZGVuTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgYWN0aXZlRmllbGQ6IHN0cmluZyA9ICcnO1xyXG4gIGFjdGl2ZVNlbGVjdG9yOiBzdHJpbmcgPSAnJztcclxuICBsaXN0TG9hZGluZ1N0YXR1czogYW55W10gPSBbXTtcclxuICBjdXJyZW50VGltZTogc3RyaW5nID0gJyc7XHJcbiAgLyoqXHJcbiAgICogaXNSQ1ByZVNlbGVjdGVkLGlzUkNWaXNpYmxlIGFyZSB2YXJpYWJsZSB1c2VkIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBvZiByYyBmaWVsZCBhbmQgZWRpdCBidXR0b24gaW4gY2VydGFpbiBjb25kaXRpb25zXHJcbiAgICovXHJcbiAgaXNSQ1ByZVNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSQ1Zpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzUkNNYW5kYXRvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkYXRhRm9yRWRpdCE6IGFueTtcclxuICBpc1Jpc2tDb250cm9sVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRnV0dXJlRGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ0lzc3VlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZXJjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFRpbWUgPSB0aGlzLmdldEN1cnJlbnRUaW1lKCk7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgICB0aGlzLnNldFVzZXJEZXRhaWxzKCk7XHJcbiAgICB0aGlzLmZldGNoSXNzdWVUeXBlcygpO1xyXG4gICAgdGhpcy5mZXRjaFVzZXJMaXN0KCk7XHJcbiAgICB0aGlzLmZldGNoQ2F0ZWdvcnlMaXN0KCk7XHJcbiAgICB0aGlzLmZldGNoUkNMaXN0KCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZXJjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZmV0Y2hDb250cm9sUmlza3MoKTtcclxuICAgIHRoaXMuZGVjaWRlUkNtYW5kYXRvcnkoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICB9XHJcblxyXG4gIGRlY2lkZVJDbWFuZGF0b3J5KCkge1xyXG4gICAgdGhpcy5pc1JDTWFuZGF0b3J5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50VGltZSgpIHtcclxuICAgIHRoaXMuY3VycmVudFRpbWUgPSB0aGlzLmdldEN1cnJlbnRUaW1lKCk7XHJcbiAgfVxyXG4gIGdldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIGlmIChcclxuICAgICAgdG9kYXkuZ2V0RGF0ZSgpID09PSBuZXcgRGF0ZSh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUpLmdldERhdGUoKVxyXG4gICAgKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0b2RheS5nZXRIb3VycygpIDwgMTIgJiZcclxuICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCA1OSAmJlxyXG4gICAgICAgIHRvZGF5LmdldFNlY29uZHMoKSA8IDU5XHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBgJHtcclxuICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIHRvZGF5LmdldEhvdXJzKCkgOiB0b2RheS5nZXRIb3VycygpXHJcbiAgICAgICAgfToke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0TWludXRlcygpIDwgMTBcclxuICAgICAgICAgICAgPyAnMCcgKyB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICB9IGFtYDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYCR7XHJcbiAgICAgICAgICB0b2RheS5nZXRIb3VycygpIC0gMTIgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArICh0b2RheS5nZXRIb3VycygpIC0gMTIpXHJcbiAgICAgICAgICAgIDogdG9kYXkuZ2V0SG91cnMoKSAtIDEyXHJcbiAgICAgICAgfToke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0TWludXRlcygpIDwgMTBcclxuICAgICAgICAgICAgPyAnMCcgKyB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRNaW51dGVzKClcclxuICAgICAgICB9IHBtYDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcwMDowMCBhbSc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldFVzZXJEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlckRldGFpbHMoKS51c2VyO1xyXG4gIH1cclxuICBmZXRjaElzc3VlVHlwZXMoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzBdID0gZmFsc2U7XHJcbiAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldElzc3VlVHlwZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEuaXNzdWVUeXBlTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGZldGNoVXNlckxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0T3JnUGVvcGxlKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1sxXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZldGNoQ2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1syXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldElzc3VlQ2F0ZWdvcmllcygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1syXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QgPSB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoZTogYW55KSA9PiBlPy5jYXRlZ29yeV9uYW1lICE9PSAnVW5jYXRlZ29yaXplZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1syXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZldGNoUkNMaXN0KCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1szXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1szXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5yY0xpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkUkMoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0ZWRSQygpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZCAmJlxyXG4gICAgICB0aGlzLm9wZW5lZEZyb20gPT09ICdDT01QTElBTkNFX1dPUktST09NJ1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSB0aGlzLnJlcG9uc2liaWxpdHlEYXRhLnJjSWRcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEucmNMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5yY19pZCA9PT0gdGhpcy5yZXBvbnNpYmlsaXR5RGF0YS5yY0lkXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkICYmXHJcbiAgICAgIFtcclxuICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLnJjTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGUucmNfaWQgPT09IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAhKHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQgfHwgdGhpcy5pc3N1ZURldGFpbHM/LnJjSWQpICYmXHJcbiAgICAgIFtcclxuICAgICAgICAnQ09NUExJQU5DRV9XT1JLUk9PTScsXHJcbiAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTicsXHJcbiAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNSQ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSQ1Zpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250cm9sUmlza3MoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICB0aGlzLm9wZW5lZEZyb21cclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGlua2FnZShcclxuICAgICAgICB0aGlzLmlzc3VlRGV0YWlscz8uYXVkaXRPYmpJZCxcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rYWdlVHlwZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlua2FnZShhdWRpdElkOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0Q29udHJvbFJpc2soYXVkaXRJZCwgdHlwZSk/LnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QgPSBbLi4udGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCwgLi4uZGF0YV07XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCA9IHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgKHRoaW5nOiBhbnksIGluZGV4OiBhbnksIHNlbGY6IGFueSkgPT5cclxuICAgICAgICAgICAgaW5kZXggPT09XHJcbiAgICAgICAgICAgIHNlbGYuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgICh0OiBhbnkpID0+XHJcbiAgICAgICAgICAgICAgICB0Lml0ZW1JZCA9PT0gdGhpbmcuaXRlbUlkICYmIHQuaXRlbVR5cGUgPT09IHRoaW5nLml0ZW1UeXBlXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZnVuY3Rpb2ogY2hlY2sgd2VhdGhlciBhbGwgdGhlIHJlcXVpcmVkIGxpc3RzIGFyZSBsb2FkZWRcclxuICAgKiBJZiBsb2FkZWQgaGlkZXMgdGhlIGxvYWRlciBvdGhlcndpc2Ugc2hvd3MgdGhlIGxvYWRlci5cclxuICAgKi9cclxuICBjaGVja0FsbExpc3RMb2FkZWQoKSB7XHJcbiAgICBpZiAodGhpcy5saXN0TG9hZGluZ1N0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgICB0aGlzLmZldGNoSXNzdWVEZXRhaWxzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBlcnJvciBmcm9tIHRoZSBmaWVsZHMgd2l0aCBlcnJvciB0byByZW1vdmUgdGhlIGVycm9yIG1lc3NhZyBmcm9tIHRoZSBVSVxyXG4gICAqIEBwYXJhbSBlcnJvcktleSBlcnJvciBJZGVudGlmaWVyIHVzZWQgdG8gc2hvdyBlcnJvciBpbiBzcGVjaWZpYyBmaWVsZHMuXHJcbiAgICovXHJcbiAgcmVtb3ZlRXJyb3IoZXJyb3JLZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpZWxkc1dpdGhFcnJvci5pbmRleE9mKGVycm9yS2V5KTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMuZmllbGRzV2l0aEVycm9yLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5vcGVuKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfREFURV9USU1FJywgJ0lTU1VFX0RBVEVfVElNRScpO1xyXG4gIH1cclxuICBjbG9zZURhdGVQaWNrZXIoZXZ0OiBhbnkpIHtcclxuICAgIGlmICghZXZ0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldnQ/LmRhdGU/Ll9kKSB7XHJcbiAgICAgIGxldCBtb250aEFycmF5ID0gW1xyXG4gICAgICAgICdKYW4nLFxyXG4gICAgICAgICdGZWInLFxyXG4gICAgICAgICdNYXInLFxyXG4gICAgICAgICdBcHInLFxyXG4gICAgICAgICdKdW4nLFxyXG4gICAgICAgICdKdWwnLFxyXG4gICAgICAgICdBdWcnLFxyXG4gICAgICAgICdTZXAnLFxyXG4gICAgICAgICdPY3QnLFxyXG4gICAgICAgICdOb3YnLFxyXG4gICAgICAgICdEZWMnLFxyXG4gICAgICBdO1xyXG4gICAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/Ll9kKS5nZXREYXRlKCk7XHJcbiAgICAgIGNvbnN0IG1vbnRoVmFsdWUgPSBtb250aEFycmF5W25ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldE1vbnRoKCldO1xyXG4gICAgICBjb25zdCB5ZWFyVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/Ll9kKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICBjb25zdCBkYXRlU3RyID0gYCR7ZGF0ZVZhbHVlfSAke21vbnRoVmFsdWV9ICR7eWVhclZhbHVlfWA7XHJcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZURhdGUodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lLCBldnQ/LmRhdGU/Ll9kKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uX2QpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlID0gZXZ0Py5kYXRlPy5fZDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignJywgJycpO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcihhY3RpdmVGaWVsZDogc3RyaW5nLCBhY3RpdmVTZWxlY3Rvcj86IHN0cmluZykge1xyXG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9IGFjdGl2ZUZpZWxkO1xyXG4gICAgYWN0aXZlU2VsZWN0b3JcclxuICAgICAgPyAodGhpcy5hY3RpdmVTZWxlY3RvciA9IGFjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICA6ICh0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJycpO1xyXG4gICAgY29uc3Qgc2xpZGVyVHlwZSA9IFtcclxuICAgICAgJ0lTU1VFX1JDJyxcclxuICAgICAgJ0lTU1VFX0NBVEVHT1JZJyxcclxuICAgICAgJ0lTU1VFX1RZUEUnLFxyXG4gICAgICAnSVNTVUVfQ0MnLFxyXG4gICAgICAnSVNTVUVfRkNDJyxcclxuICAgICAgJ0lTU1VFX1dITycsXHJcbiAgICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJ1xyXG4gICAgXTtcclxuICAgIGlmIChzbGlkZXJUeXBlLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSkge1xyXG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpZWxkRGVzZWxlY3Rvcih0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJztcclxuICAgIHRoaXMuYWN0aXZlRmllbGQgPSAnJztcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdG9yQWN0aW9uKGV2dDogYW55LCB0eXBlOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9DQVRFR09SWSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5ID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCxcclxuICAgICAgICAgICdjYXRlZ29yeV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlQ2F0ZWdvcnknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jdXN0b21fdGFncz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCB0YWc6IGFueSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmN1c3RvbV90YWdzLmZvckVhY2goXHJcbiAgICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0YWcucHVzaCh7IG5hbWU6IGVsZW1lbnQsIHZhbHVlOiAnJyB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnID0gdGFnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvL1tcImlzc3VlTmFtZVwiLCBcImlzc3VlQ2F0ZWdvcnlcIiwgXCJpc3N1ZVJDXCIsIFwiZW50cnVzdFRvXCIsIFwiaXNzdWVEdWVEYXRlXCIsIFwiaXNzdWVSZWNvbW1lbmRhdGlvblwiXVxyXG4gICAgICBjYXNlICdJU1NVRV9SQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCxcclxuICAgICAgICAgICdyY19pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlUkMnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfV0hPJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUb1swXT8ubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdlbnRydXN0VG8nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfVFlQRSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEuaXNzdWVUeXBlTGlzdCxcclxuICAgICAgICAgICdpc3N1ZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0ZDQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlICdJU1NVRV9DT05UUk9MX1JJU0snOlxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LFxyXG4gICAgICAgICAgJ2l0ZW1JZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmthZ2VUeXBlID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbVR5cGU7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknOiB7XHJcbiAgICAgICAgdGhpcy5nZXRSQ0RhdGEoZXZ0KTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZXNwb25zaWJpbGl0eUxpbmtlZCA9IGV2dDtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSXRlbSh0eXBlOiBhbnksIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NBVEVHT1JZJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jYXRlZ29yeV9pZCA9PT0gZWxlbWVudC5jYXRlZ29yeV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1JDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5yY19pZCA9PT0gZWxlbWVudC5yY19pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1dITyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8uZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9pZCA9PT0gZWxlbWVudC5lbXBsb3llZV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUby5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1RZUEUnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uaXNzdWVfaWQgPT09IGVsZW1lbnQuaXNzdWVfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50LmVtcGxveWVlX2VtYWlsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9GQ0MnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9lbWFpbCA9PT0gZWxlbWVudC5lbXBsb3llZV9lbWFpbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9DT05UUk9MX1JJU0snOlxyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uaXRlbUlkID09PSBlbGVtZW50Lml0ZW1JZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLnJlc3BvbnNpYmlsaXR5TGlua2VkLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uUmVwb3J0SWQgPT09IGVsZW1lbnQuUmVwb3J0SWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVzcG9uc2liaWxpdHlMaW5rZWQuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0UkNEYXRhKHRoaXMubG9nSXNzdWVGb3JtLnJlc3BvbnNpYmlsaXR5TGlua2VkKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmNJZChyYzogYW55KSB7XHJcbiAgICByZXR1cm4gcmM/LnJlc3BvbnNpYmlsaXR5Q2VudGVyQXJyPy5sZW5ndGggPyByYy5yZXNwb25zaWJpbGl0eUNlbnRlckFyciA6IChyYz8ucmNfaWRfYXJyPy5sZW5ndGggPyByYy5yY19pZF9hcnIgOiBbXSk7XHJcbiAgfVxyXG5cclxuICBnZXRSQ0RhdGEoZXZ0OiBhbnkpIHtcclxuICAgIGNvbnN0IHJjU2VsZWN0ZWQ6IGFueVtdID0gW107XHJcbiAgICBldnQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJjSWQ6IGFueVtdID0gdGhpcy5nZXRSY0lkKGVsZW1lbnQpO1xyXG4gICAgICBpZiAocmNJZD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgcmNJZC5mb3JFYWNoKChyY0lkOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHJjRGF0YSA9IHRoaXMubGlzdERhdGE/LnJjTGlzdC5maW5kKChlbDogYW55KSA9PiBlbD8ucmNfaWQgPT09IHJjSWQpO1xyXG4gICAgICAgICAgaWYgKHJjRGF0YSAmJiAhcmNTZWxlY3RlZC5zb21lKChzZWxlY3RlZEVsOiBhbnkpID0+IHNlbGVjdGVkRWw/LnJjX2lkID09PSByY0RhdGE/LnJjX2lkKSkge1xyXG4gICAgICAgICAgICByY1NlbGVjdGVkLnB1c2gocmNEYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gcmNTZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIGFzc2lnbk15c2VsZihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJlbW92ZUVycm9yKCdlbnRydXN0VG8nKTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IFtdO1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IHRoaXMubGlzdERhdGEudXNlckxpc3QuZmlsdGVyKFxyXG4gICAgICAgIChlbXBsaXN0OiBhbnkpID0+IGVtcGxpc3QubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldEV4Y2VwdGlvbih0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmV4Y2VwdGlvblR5cGUgPSB0eXBlO1xyXG4gIH1cclxuICBzZXRFdmlkZW5jZSh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmV2aWRlbmNlUmVxdWlyZWQgPSB0eXBlO1xyXG4gIH1cclxuICBzZXRJc3N1ZVR5cGUodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUgPSB0eXBlO1xyXG4gIH1cclxuXHJcbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2V2ZW50LmNvZGVdID0gZXZlbnQuY2hlY2tlZDtcclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaWRUb0FycmF5KHNlbGVjdGVkSXRlbXM6IGFueSwgbGlzdEl0ZW1zOiBhbnksIGZpbHRlcmtleTogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHNlbGVjdGVkSXRlbXM7XHJcbiAgICBjb25zdCBsaXN0ID0gbGlzdEl0ZW1zO1xyXG4gICAgY29uc3Qga2V5ID0gZmlsdGVya2V5O1xyXG4gICAgY29uc3QgeCA9IGxpc3QuZmlsdGVyKChlbDogYW55KSA9PiBzZWxlY3RlZC5pbmNsdWRlcyhlbFtrZXldKSk7XHJcbiAgICByZXR1cm4geDtcclxuICB9XHJcbiAgLy8vQ29kZSBiZXR3ZWVuIDUwMyB0byA2MDggY2FuIGJlIG9wdGltaXplZCB0byByZW1vdmUgZHVwbGljYXRpb25cclxuICBzZWxlY3RGaWxlKHR5cGU6IHN0cmluZywgZmlsZXM6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzBdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMV0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1syXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShmaWxlOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IHRyYWNrSW5kZXggPSAwO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgIGNvbnN0IGRlc3RpbmF0aW9uU3RyaW5nID0gdGhpcy5hdXRoU2VydmljZS5nZXRPcmdhbml6YXRpb25JZCgpLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UudXBsb2FkRmlsZXMoZm9ybURhdGEsIGRlc3RpbmF0aW9uU3RyaW5nICsgJy8nKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uaW5kZXhPZihmaWxlPy5uYW1lKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLmluZGV4T2YoZmlsZS5uYW1lKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpbGUoZmlsZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCBmaWxlSW5kZXggPSAtMTtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8uZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoY3VycmVudEZpbGVzOiBhbnkpID0+IGN1cnJlbnRGaWxlcy5vcmdfZmlsZSA9PT0gZmlsZS5vcmdfZmlsZVxyXG4gICAgICAgICAgKSA/PyAtMTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIGZpbGVJbmRleCA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cz8uZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoY3VycmVudEZpbGVzOiBhbnkpID0+IGN1cnJlbnRGaWxlcy5vcmdfZmlsZSA9PT0gZmlsZS5vcmdfZmlsZVxyXG4gICAgICAgICAgKSA/PyAtMTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRJc3N1ZSgpIHtcclxuICAgIGNvbnN0IGZvcm0gPSBjbG9uZURlZXAodGhpcy5sb2dJc3N1ZUZvcm0pO1xyXG4gICAgaWYgKGZvcm0uaXNBc3NpZ25Ub015c2VsZikge1xyXG4gICAgICBmb3JtLmVudHJ1c3RUbyA9IHRoaXMubGlzdERhdGEudXNlckxpc3QuZmlsdGVyKFxyXG4gICAgICAgIChlbXBsaXN0OiBhbnkpID0+IGVtcGxpc3QubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZHNXaXRoRXJyb3IgPSBbXTtcclxuICAgIHRoaXMuZmllbGRzV2l0aEVycm9yID0gdGhpcy5sb2dTZXJ2aWNlLnZhbGlkYXRlKFxyXG4gICAgICBmb3JtLFxyXG4gICAgICB0aGlzLm9wZW5lZEZyb20sXHJcbiAgICAgIHRoaXMuaXNSQ01hbmRhdG9yeVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLmZpZWxkc1dpdGhFcnJvci5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IFBBWUxPQUQgPSB0aGlzLmxvZ1NlcnZpY2UucGF5bG9hZEJ1aWxkZXIoXHJcbiAgICAgIGZvcm0sXHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1xyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnKSB7XHJcbiAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3QgPSB7XHJcbiAgICAgICAgc291cmNlOiB0aGlzLm9wZW5lZEZyb20sXHJcbiAgICAgICAgdHlwZTogJycsXHJcbiAgICAgICAgdHlwZV9pZDogMCxcclxuICAgICAgICBzb3VyY2VfaWQ6IDAsXHJcbiAgICAgICAgc291cmNlX29iamVjdF9pZDogJycsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLm9wZW5lZEZyb20gPT09ICdDT01QTElBTkNFX1dPUktST09NJyAmJlxyXG4gICAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5SWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdCA9IHtcclxuICAgICAgICAgIHNvdXJjZV9pZDogdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZCxcclxuICAgICAgICAgIHR5cGU6ICcnLFxyXG4gICAgICAgICAgdHlwZV9pZDogMCxcclxuICAgICAgICAgIHNvdXJjZTogdGhpcy5vcGVuZWRGcm9tLFxyXG4gICAgICAgICAgc291cmNlX29iamVjdF9pZDogdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlPYmplY3RJZCxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXHJcbiAgICAgICAgICB0aGlzLm9wZW5lZEZyb21cclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rYWdlVHlwZSAmJlxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrLmxlbmd0aCA+IDBcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgWydSSVNLJywgJ1JFU1BPTlNJQklMSVRZJ10uaW5jbHVkZXModGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3Quc291cmNlX2lkID1cclxuICAgICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1JZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIFtcclxuICAgICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNzdWVEZXRhaWxzLmF1ZGl0UGxhbklkKSB7XHJcbiAgICAgICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0LnNvdXJjZV9pZCA9IHRoaXMuaXNzdWVEZXRhaWxzLmF1ZGl0UGxhbklkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgICF0aGlzLnZhbGlkYXRlRGF0ZShcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlVGltZSxcclxuICAgICAgICAgIG1vbWVudCh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUsICdERCBNTU0gWVlZWScpLnRvRGF0ZSgpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgUEFZTE9BRC5Jc3N1ZUxpbmthZ2UgPSB0aGlzLmRhdGFGb3JFZGl0Py5saW5rYWdlX29iamVjdDtcclxuICAgIH1cclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICB0aGlzLmxvZ1NlcnZpY2UudXBkYXRlSXNzdWUoUEFZTE9BRCwgdGhpcy5pc3N1ZUlkKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyB0aGlzLnNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHVwZGF0ZWQuYDtcclxuICAgICAgICAgIHRoaXMuaXNzdWVEYXRhID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxyXG4gICAgICAgICAgICAnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/JyxcclxuICAgICAgICAgICAgJ2FsZXJ0J1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScgfHwgdGhpcy5tb2RlID09PSAnJyB8fCAhdGhpcy5tb2RlKSB7XHJcbiAgICAgIHRoaXMubG9nU2VydmljZS5jcmVhdGVJc3N1ZShQQVlMT0FEKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzc3VlRGF0YSA9IHJlcztcclxuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcclxuICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXHJcbiAgICAgICAgICAgICdhbGVydCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbG9zZVNtaWxleShldnQ/OiBhbnkpIHtcclxuICAgIHRoaXMucmVzZXRJc3N1ZUZvcm0oKTtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbG9zZVdvcmtGbG93KHRoaXMuaXNzdWVEYXRhLCBmYWxzZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENsb3NlcyB3b3JrZmxvdyBlbmdpbmVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIGNvbmZpcm1cclxuICAgKi9cclxuICBjbG9zZVdvcmtGbG93KGV2dDogYW55LCBjb25maXJtOiBhbnkpIHtcclxuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0LCBjb25maXJtIH0pO1xyXG4gIH1cclxuICBhY3Rpb24oZXZ0OiBhbnkpIHtcclxuICAgIGlmIChldnQgPT09ICdhZGRNb3JlJykge1xyXG4gICAgICB0aGlzLnJlc2V0SXNzdWVGb3JtKCk7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XHJcbiAgICAgIC8vIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmlzc3VlRGF0YSwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmIChldnQgPT09ICd2aWV3SXNzdWUnKSB7XHJcbiAgICAgIHRoaXMudmlld0lzc3VlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2aWV3SXNzdWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xyXG4gICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgIHVybCA9ICdodHRwOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID0gJ2h0dHBzOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgKz0gJy9pc3N1ZS9pc3N1ZS13b3Jrcm9vbS8nICsgdGhpcy5pc3N1ZURhdGE/Ll9pZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCArPSAnL2F1ZGl0L2lzc3VlL2lzc3VlLXdvcmtyb29tLycgKyB0aGlzLmlzc3VlRGF0YT8uX2lkO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQb3B1bGF0ZSB0aGUgdGlja21hcmsgb2Ygb3B0aW9uYWwgZmllbGRzXHJcbiAgICovXHJcbiAgcG9wdWxhdGVPcHRpb25hbEZpZWxkcygpIHtcclxuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cykpIHtcclxuICAgICAgaWYgKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1trZXldID09PSB0cnVlKSB7XHJcbiAgICAgICAgYWN0aXZhdGVkT3B0aW9ucy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb24uZW1pdChhY3RpdmF0ZWRPcHRpb25zKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hzIGlzc3VlIGRldGFpbHMgd2hlbiBpbiBlZGl0IG1vZGUgYmFzZWQgb24gdGhlIGlucHV0IGlkIHBhc3NlZFxyXG4gICAqL1xyXG4gIGZldGNoSXNzdWVEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldElzc3VlRGV0YWlscyh0aGlzLmlzc3VlSWQpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVGb3JtKGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFBvcHVsYXRlcyB0aGUgaXNzdWUgZm9ybSB3aGVuIGluIGVkaXQgbW9kZVxyXG4gICAqIEBwYXJhbSBpc3N1ZURhdGEgaXNzdWUgZGF0YSBmZXRjaGVkIGZyb20gQVBJXHJcbiAgICovXHJcbiAgYXN5bmMgcG9wdWxhdGVGb3JtKGlzc3VlRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFGb3JFZGl0ID0gaXNzdWVEYXRhO1xyXG4gICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBpc3N1ZUR1ZURhdGUgPSBpc3N1ZURhdGE/LmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZVxyXG4gICAgICAuc3BsaXQoJy0nKVxyXG4gICAgICAubWFwKE51bWJlcik7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybSA9IHtcclxuICAgICAgaXNzdWVOYW1lOiBpc3N1ZURhdGEudGl0bGUgPz8gJycsXHJcbiAgICAgIGV2aWRlbmNlUmVxdWlyZWQ6IGlzc3VlRGF0YT8uZXZpZGVuY2U/LmV2aWRlbmNlX2ZsYWcgPz8gMCxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbjogaXNzdWVEYXRhPy5kZXNjcmlwdGlvbj8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uWzBdPy50ZXh0XHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogaXNzdWVEYXRhPy5kZXNjcmlwdGlvbj8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uWzBdPy5hdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGlzc3VlQ2F0ZWdvcnk6IGlzc3VlRGF0YT8uY2F0ZWdvcnlfaWRcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5jYXRlZ29yeV9pZCA9PT0gaXNzdWVEYXRhPy5jYXRlZ29yeV9pZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGlzc3VlQ3VzdG9tVGFnOiBpc3N1ZURhdGE/LmN1c3RvbV90YWdzID8/IFtdLFxyXG4gICAgICBpc3N1ZVJDOiBpc3N1ZURhdGE/LnJjX2lkcz8ubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5saXN0RGF0YS5yY0xpc3QuZmlsdGVyKChlOiBhbnkpID0+XHJcbiAgICAgICAgICBpc3N1ZURhdGE/LnJjX2lkcz8uaW5jbHVkZXMoZT8ucmNfaWQpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIDpbXSxcclxuICAgICAgcmVzcG9uc2liaWxpdHlMaW5rZWQ6IGlzc3VlRGF0YT8ubGlua2FnZV9yZXNwb25zaWJpbGl0eV9kZXRhaWxzPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ubGlua2FnZV9yZXNwb25zaWJpbGl0eV9kZXRhaWxzXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6XHJcbiAgICAgICAgaXNzdWVEYXRhPy5hc3NpZ25lZV9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZCA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOlxyXG4gICAgICAgIGlzc3VlRGF0YT8uYXNzaWduZWVfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgICAgID8gW11cclxuICAgICAgICAgIDogdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5teV9tZW1iZXJfaWQgPT09IGlzc3VlRGF0YT8uYXNzaWduZWVfaWRcclxuICAgICAgICAgICAgKSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiBpc3N1ZURhdGE/LmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZVxyXG4gICAgICAgID8gbW9tZW50KGAke2lzc3VlRHVlRGF0ZVswXX0tJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfWApXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiB0aGlzLmxvZ1NlcnZpY2UuY29udmVydEZyb20yNFRvMTJGb3JtYXQoXHJcbiAgICAgICAgaXNzdWVEYXRhLmZyZXF1ZW5jeV9kZXRhaWxzLmZyZXF1ZW5jeV90aW1lXHJcbiAgICAgICksXHJcbiAgICAgIGV4Y2VwdGlvblR5cGU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/PyAxLFxyXG4gICAgICBpc3N1ZVJpc2tSYXRpbmc6IGlzc3VlRGF0YS5yaXNrX2NsYXNzID8/IDEsXHJcbiAgICAgIGlzc3VlUHJpb3JpdHk6IGlzc3VlRGF0YS5wcmlvcml0eSA/PyAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb25bMF0/LnRleHRcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlzaz8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlza1swXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5jY19lbWFpbC5sZW5ndGhcclxuICAgICAgICA/IGF3YWl0IHRoaXMuZ2VuZXJhdGVPdmVyc2Vlckxpc3QoXHJcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlcj8uY2NfZW1haWxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBmYWlsdXJlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgICBsaW5rYWdlVHlwZTogJ1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgaXNzdWVUeXBlOiBpc3N1ZURhdGEuaXNzdWVUeXBlID8gaXNzdWVEYXRhLmlzc3VlVHlwZSA6ICdpc3N1ZScsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkM/Lmxlbmd0aCA+IDBcclxuICAgICAgICA/ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpXHJcbiAgICAgICAgOiAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICAgIGlzc3VlRGF0YS5saW5rYWdlX29iamVjdD8uc291cmNlID09PSAnR0xPQkFMJyAmJiBpc3N1ZURhdGE/LnJjX2lkXHJcbiAgICAgICAgPyAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgICAgICA6ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRPcHRpb25hbEZpZWxkKGlzc3VlRGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqIEBwYXJhbSBpc3N1ZURhdGEgIGlzc3VlIGRhdGEgZmV0Y2hlZCBmcm9tIEFQSVxyXG4gICAqL1xyXG4gIHNldE9wdGlvbmFsRmllbGQoaXNzdWVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cyA9IHtcclxuICAgICAgRVhDRVBUSU9OX1RZUEU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgRVZJREVOQ0U6IGlzc3VlRGF0YS5ldmlkZW5jZS5ldmlkZW5jZV9mbGFnID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBQUklPUklUWTogaXNzdWVEYXRhLnByaW9yaXR5ID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBJU1NVRV9UWVBFOiBmYWxzZSxcclxuICAgICAgQVNTT0NJQVRFRF9SSVNLUzogaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlzay5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YS5hc3NvY2lhdGVkX3Jpc2tbMF0udGV4dC5sZW5ndGhcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZVxyXG4gICAgICAgIDogZmFsc2UsXHJcbiAgICAgIE9WRVJTSUdIVDpcclxuICAgICAgICBpc3N1ZURhdGEub3ZlcnNlZXIuY2NfZW1haWwubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGxpc3Qgb2Ygc2VsZWN0ZWQgb3ZlcnNlZXJcclxuICAgKiBAcGFyYW0gYWxsVXNlckxpc3QgbGlzdCBvZiBhbGwgdXNlcnMgaW4gdGhlIG9yZ2FuemF0aW9uXHJcbiAgICogQHBhcmFtIG92ZXJzZWVyTGlzdCAgbGl0IG9mIHRoZSBvdmVyc2VlciB0aGF0IG5lZWRzIHRvIGJlIGZpbHRlcmVkXHJcbiAgICogQHJldHVybnMgIGxpc3Qgb2YgYXJyYXkgY29udGFpbmluZyB0aGUgdXNlcnMgb2JqZWN0c1xyXG4gICAqL1xyXG4gIGdlbmVyYXRlT3ZlcnNlZXJMaXN0KGFsbFVzZXJMaXN0OiBhbnksIG92ZXJzZWVyTGlzdDogYW55KSB7XHJcbiAgICByZXR1cm4gb3ZlcnNlZXJMaXN0Lm1hcCgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvdW5kVXNlciA9IGFsbFVzZXJMaXN0LmZpbmQoXHJcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5teV9tZW1iZXJfaWQgPT09IHVzZXIubWVtYmVyX2lkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChmb3VuZFVzZXIpIHtcclxuICAgICAgICByZXR1cm4gZm91bmRVc2VyO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVzZXRzIGlzc3VlIGZvcm1cclxuICAgKi9cclxuICByZXNldElzc3VlRm9ybSgpIHtcclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtID0ge1xyXG4gICAgICBpc3N1ZU5hbWU6ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogW10sXHJcbiAgICAgIHJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBbXSxcclxuICAgICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgICBpc3N1ZVJDOiBbXSxcclxuICAgICAgaXNzdWVUeXBlOiAnaXNzdWUnLFxyXG4gICAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOiBbXSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiBERUZBVUxUX1RJTUUsXHJcbiAgICAgIGV4Y2VwdGlvblR5cGU6IDEsXHJcbiAgICAgIGlzc3VlUmlza1JhdGluZzogMSxcclxuICAgICAgaXNzdWVQcmlvcml0eTogMSxcclxuICAgICAgaXNzdWVSZWNvbW1lbmRhdGlvbjogJycsXHJcbiAgICAgIGlzc3VlQXNzb2NpYXRlZFJpc2s6ICcnLFxyXG4gICAgICBpc3N1ZUNDVXNlcnM6IFtdLFxyXG4gICAgICBmYWlsdXJlQ0NVc2VyczogW10sXHJcbiAgICAgIHJlc3BvbnNpYmlsaXR5TGlua2VkOiBbXSxcclxuICAgIH07XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1trZXldID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkLmA7XHJcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHRoaXMubW9kZSk7XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gIH1cclxuICBjaGVja0Rlc2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLnZhbGlkYXRlRGF0ZShldmVudC5zZWxlY3RlZFZhbHVlLCB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lID0gZXZlbnQuc2VsZWN0ZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0ZSh0aW1lOiBzdHJpbmcsIGRhdGVTdHJpbmc6IGFueSkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkge1xyXG4gICAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChkYXRlU3RyaW5nLmdldFRpbWUoKSk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoXHJcbiAgICAgICAgaXNNb21lbnQgPyBkYXRlU3RyaW5nPy5kYXRlPy5fZCA6IGRhdGVTdHJpbmcuZ2V0VGltZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IGlzc3VlRHVlRGF0ZSA9IGN1cnJlbnREYXRlLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG1vbWVudChcclxuICAgICAgICBgJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfS0ke2lzc3VlRHVlRGF0ZVszXX0gJHt0aW1lfWAsXHJcbiAgICAgICAgJ01NTS1ERC1ZWVlZIEhIOm1tIGEnXHJcbiAgICAgICkudW5peCgpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWREYXRlICogMTAwMCA8IERhdGUubm93KCkpIHtcclxuICAgICAgICB0aGlzLmlzRnV0dXJlRGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pc0Z1dHVyZURhdGUgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0RGF0ZVZhbGlkYXRpb25NZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuICdQbGVhc2Ugc2V0IGEgZnV0dXJlIGRhdGUuJztcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8cD5sb2ctYW4taXNzdWUgd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cImxvZy1hbi1pc3N1ZVwiICpuZ0lmPVwiIXNob3dTbWlsZXlcIj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIj5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5MaW5rZWQgdG9cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJywgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgTGluayBNb3JlIFJlc3BvbnNpYmlsaXRpZXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIHJlc3BvbnNpYmlsaXR5XCJcclxuICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAqbmdJZj1cIiFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSAmJiAhbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoIFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJywgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScpXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwiWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHwgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdJZj1cIlsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pICYmIHJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0IGZ1bGwtd2lkdGhcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyByZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlOYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLCBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkWzBdKVwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIVsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pICYmIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRbMF0/LlJlcG9ydE5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkWzBdPy5SZXBvcnROYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiYgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoICkgfHwgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoID4xXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibGlua1Jlc3AucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgK3t7ICFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSA/IGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aCAtMSA6IGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJyAmJiBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScsICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjbGlua1Jlc3AgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZXNwIG9mIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQgfCBzbGljZTogIVsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pID8gMSA6IDBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJywgcmVzcClcIlxyXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJlc3A/LlJlcG9ydE5hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICBbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXHJcbiAgICAgICAgb3BlbmVkRnJvbVxyXG4gICAgICApIHx8IGlzUmlza0NvbnRyb2xWaXNpYmxlXHJcbiAgICBcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSycgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJsZWZ0XCJcclxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID4gMFwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPT09IDAgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5TZWxlY3QgYSBjb250cm9sIG9yIHJpc2s8L2xhYmVsPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycsICdJU1NVRV9DT05UUk9MX1JJU0snKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgY29udHJvbCBvciByaXNrLlwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICBkZWxldGVJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAnSVNTVUVfQ09OVFJPTF9SSVNLJyxcclxuICAgICAgICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUNvbnRyb2xOYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NPTlRST0xfUklTSycsbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1Db250cm9sTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DT05UUk9MX1JJU0snXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snLCAnSVNTVUVfQ09OVFJPTF9SSVNLJylcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWcgfCBrZXl2YWx1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8IS0tIHt7bG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnfGpzb259fSAtLT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3tcclxuICAgICAgICAgIHRhZz8udmFsdWU/LmN1c3RvbV90YWdfbmFtZVxyXG4gICAgICAgIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0YWc/LnZhbHVlPy5jdXN0b21fdGFnX25hbWVcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWcudmFsdWUuY3VzdG9tX3RhZ192YWx1ZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBJc3N1ZSBUaXRsZSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9USVRMRScgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIlxyXG4gICAgICAgIGFsdD1cIm5hbWVcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAhbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+SXNzdWUgVGl0bGUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGEgbmFtZSBmb3IgdGhpcyBpc3N1ZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWVcIlxyXG4gICAgICAgICAgKGZvY3VzaW4pPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfVElUTEUnLCAnSVNTVUVfVElUTEUnKVwiXHJcbiAgICAgICAgICAoa2V5dXApPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWU/LnRyaW0oKT8ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gcmVtb3ZlRXJyb3IoJ2lzc3VlTmFtZScpXHJcbiAgICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKGZvY3Vzb3V0KT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJycsICcnKVwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lID09ICcnIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLmxlbmd0aCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ0lTU1VFX1RJVExFJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1RJVExFJywgJ0lTU1VFX1RJVExFJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVOYW1lJylcIj5cclxuICAgICAgICAgIEVudGVyIGEgbmFtZSBmb3IgdGhpcyBpc3N1ZS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1swXT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1swXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgdXBsb2FkaW5nRmlsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWxpbmUtbG9hZGVyIFtsb2FkZXJIZWlnaHRdPVwiMlwiPjwvYXBwLWxpbmUtbG9hZGVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBsb2dJc3N1ZUZvcm0/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnSVNTVUVfREVTQ1JJUFRJT04nKVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxyXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgIGZpbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24nXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ0lTU1VFX0RFU0NSSVBUSU9OJywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNoZWNrRGVzY3JpcHRpb24oKVwiXHJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gaXNzdWUgdHlwZSBzdGFydC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnQgY2hlY2tlZFwiPlxyXG4gICAgICA8IS0tIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doYXQuc3ZnXCIgYWx0PVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfVElUTEUnXCI+IC0tPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+IElzc3VlIFR5cGUgPC9sYWJlbD5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgbmFtZT1cImlzc3VlLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgPT09ICdpc3N1ZSdcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRJc3N1ZVR5cGUoJ2lzc3VlJylcIlxyXG4gICAgICAgICAgPklzc3VlXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIG5hbWU9XCJpc3N1ZS10eXBlXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVUeXBlID09PSAnaW5jaWRlbnQnXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0SXNzdWVUeXBlKCdpbmNpZGVudCcpXCJcclxuICAgICAgICAgID5JbmNpZGVudFxyXG4gICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+IC0tPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIElzc3VlIENhdGVnb3J5IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0FURUdPUlknICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPT09IDAgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0FURUdPUlknXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWSdcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Jc3N1ZSBDYXRlZ29yeTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeSB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NBVEVHT1JZJywgJ0lTU1VFX0NBVEVHT1JZJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgY2F0ZWdvcnkgZm9yIHRoaXMgaXNzdWVcIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbSgnSVNTVUVfQ0FURUdPUlknLCBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0pXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0FURUdPUlknLGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWSdcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NBVEVHT1JZJywgJ0lTU1VFX0NBVEVHT1JZJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHBcclxuICAgICAgICAgIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbiAgICAgICAgICAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVDYXRlZ29yeScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTZWxlY3QgYW4gaXNzdWUgY2F0ZWdvcnkuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSB7e2xvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ3xqc29ufX0gLS0+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7IHRhZz8ubmFtZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInRhZz8ubmFtZVwiIFsobmdNb2RlbCldPVwidGFnLnZhbHVlXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoXCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJ1wiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+UmVzcG9uc2liaWxpdHkgQ2VudGVyXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgKm5nSWY9XCJpc1JDTWFuZGF0b3J5XCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNbMF0/Lml0ZW1fbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXT8uaXRlbV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAxXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiUkMucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAre3sgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5zbGljZSgxKT8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI1JDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IHJjIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVSQyB8IHNsaWNlIDogMTtcclxuICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJjPy5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBXaG8gLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfV0hPJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doby5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKGxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZikgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmKSAmJlxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5XaG8/IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5lbnRydXN0VG8gfHwgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsICdJU1NVRV9XSE8nKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGZcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIGlzIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eT9cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfV0hPJywgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1dITycsbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9XSE8nLCAnSVNTVUVfV0hPJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdlbnRydXN0VG8nKVwiPlxyXG4gICAgICAgICAgU2VsZWN0IHRoZSBwZXJzb24gcmVzcG9uc2libGUgZm9yIHJlc29sdmluZyB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInN3aXRjaC1yb3cgYWxpZ24tcmlnaHRcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFwcC1jcy1zd2l0Y2hcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgICAgICAgICAgIFsobmdWYWx1ZSldPVwibG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGZcIlxyXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJhc3NpZ25NeXNlbGYoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5PUiBBU1NJR04gVE8gTVlTRUxGPC9hcHAtY3Mtc3dpdGNoXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTWF4aW11biBUaW1lIHRvIFJlc29sdmUgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfREFURV9USU1FJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZVwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doZW4uc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9EQVRFX1RJTUUnXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZSAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0RBVEVfVElNRSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPk1heGltdW0gVGltZSB0byBSZXNvbHZlIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtdGltZS1waWNrZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaWNrZXItZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgYSBkZWFkbGluZS5cIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAjZGF0ZVBpY2tlclxyXG4gICAgICAgICAgICAgIChvblNlbGVjdCk9XCJcclxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjbG9zZURhdGVQaWNrZXIoJGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIHJlbW92ZUVycm9yKCdpc3N1ZUR1ZURhdGUnKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJkYXRlQ29uZmlnXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJwaWNrZXItZ3JvdXBcIlxyXG4gICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aW1lUGlja2VyLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJzZXRDdXJyZW50VGltZSgpXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCJcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidGltZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiY3VycmVudFRpbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxhcHAtdGltZS1waWNrZXJcclxuICAgICAgICAgICAgICBbdGltZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCJcclxuICAgICAgICAgICAgICAob25UaW1lU2VsZWN0aW9uKT1cIlxyXG4gICAgICAgICAgICAgICAgb25UaW1lQ2hhbmdlZCgkZXZlbnQpOyB0aW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9hcHAtdGltZS1waWNrZXI+XHJcbiAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlRHVlRGF0ZScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIGRhdGUgYnkgd2hpY2ggdGhpcyBpc3N1ZSBuZWVkcyB0byBiZSByZXNvbHZlZC5cclxuICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiIWlzRnV0dXJlRGF0ZVwiPlxyXG4gICAgICAgICAge3sgZ2V0RGF0ZVZhbGlkYXRpb25NZXNzYWdlIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFJlY29tbWVuZGVkIEFjdGlvbnMgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjb21tZW5kZWQtYWN0aW9uLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIShsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvbiB8IHNwYWNlQnJlYWtlcikubGVuZ3RoXCJcclxuICAgICAgLz5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIihsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvbiB8IHNwYWNlQnJlYWtlcikubGVuZ3RoID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+UmVjb21tZW5kZWQgQWN0aW9ucyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJBdHRhY2htZW50VHJhY2tbMV0/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXBsb2FkaW5nRmlsZSBvZiBBdHRhY2htZW50VHJhY2tbMV1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWxpbmUtbG9hZGVyIFtsb2FkZXJIZWlnaHRdPVwiMlwiPjwvYXBwLWxpbmUtbG9hZGVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdSRUNPTU1FTkRFRF9BQ1RJT05TJylcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb25cIlxyXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgZmlsZTogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdSZWNvbW1lbmRlZCBhY3Rpb25zJ1xyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZVJlY29tbWVuZGF0aW9uPy50cmltKCk/Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICA/IHJlbW92ZUVycm9yKCdpc3N1ZVJlY29tbWVuZGF0aW9uJylcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNoZWNrRGVzY3JpcHRpb24oKVwiXHJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnUkVDT01NRU5ERURfQUNUSU9OUycsICRldmVudClcIlxyXG4gICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU3BlY2lmeSB0aGUgcmVjb21tZW5kZWQgYWN0aW9ucyB0byByZXNvbHZlIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tICpuZ0lmPVwiIWhpZGRlbkxpc3QuaW5jbHVkZXMoJ1JJU0tfQ0xBU1NJRklDQVRJT04nKVwiICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiIC0tPlxyXG4gIDwhLS0gcmVtb3ZlZCB0aGUgYWJvdmUgY29uZGl0aW9uIHNpbmNlIFJpc2sgQ2xhc3NpZmljYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCBieSBkZWZhdWx0IGluIGxvZyBhbiBpc3N1ZSBmb3JtIC0tPlxyXG5cclxuICA8IS0tIFJpc2sgQ2xhc3NpZmljYXRpb24gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgaWQ9XCJyaXNrX2NsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJpc2tSYXRpbmdcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yaXNrcy5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZ1wiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBDbGFzc2lmaWNhdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgY2xhc3M9XCJsb3dcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2xhc3Mgb2Ygcmlza0NsYXNzaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2NsYXNzLmNsYXNzXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgbmFtZT1cImNsYXNzaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY2xhc3MudmFsdWVcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nID09PSBjbGFzcy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSaXNrUmF0aW5nXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4+e3sgY2xhc3MubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRXhjZXB0aW9uIFR5cGUgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5FWENFUFRJT05fVFlQRVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IG51bGxcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXhjZXB0aW9uIFR5cGU8L2xhYmVsPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwiMVwiXHJcbiAgICAgICAgICBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID09PSAxXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXhjZXB0aW9uKDEpXCJcclxuICAgICAgICAgID5EZXNpZ24gRXhjZXB0aW9uXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCIyXCJcclxuICAgICAgICAgIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IDJcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oMilcIlxyXG4gICAgICAgICAgPkVmZmVjdGl2ZW5lc3MgRXhjZXB0aW9uXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUHJpb3JpdHkgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5QUklPUklUWVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eVwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5ID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlByaW9yaXR5PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xhc3NpZmljYXRpb25cIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJpb3JpdHkgb2Ygcmlza1Byb3JpdHlcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJbcHJpb3JpdHkuY2xhc3NdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NpZmljYXRpb24tcHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJwcmlvcml0eS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5ID09PSBwcmlvcml0eS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVQcmlvcml0eVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHByaW9yaXR5Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEFzc29jaWF0ZWQgUmlza3MgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlQXNzb2NpYXRlZFJpc2tcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVBc3NvY2lhdGVkUmlzay50cmltKCkubGVuZ3RoXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQXNzb2NpYXRlZFJpc2sudHJpbSgpLmxlbmd0aFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkFzc29jaWF0ZWQgUmlza3MgPC9sYWJlbD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzJdPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzJdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyB1cGxvYWRpbmdGaWxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnQVNTT0NJQVRFRF9SSVNLUycpXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrXCJcclxuICAgICAgICAgIFtlZGl0b3JDb25maWddPVwie1xyXG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgIGZpbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0Fzc29jaWF0ZWQgUmlza3MnXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdBU1NPQ0lBVEVEX1JJU0tTJywgJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gT3ZlcnNlZXIgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLk9WRVJTSUdIVFwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgICFbJ0lTU1VFX0NDJywgJ0lTU1VFX0ZDQyddLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJcclxuICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDBcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDApIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NDJyB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9GQ0MnXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NDJykgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfRkNDJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPk92ZXJzaWdodDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NDJywgJ0lTU1VFX0NDJylcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgaGF2ZSBvdmVyc2lnaHQgb2YgdGhpcyBpc3N1ZT9cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJywgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJDQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAxXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICt7eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIiB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0MnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQycsICdJU1NVRV9DQycpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2VycyB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCAnSVNTVUVfRkNDJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIHNob3VsZCBiZSBub3RpZmllZCBpZiB0aGUgaXNzdWUgaXMgbm90IHJlc29sdmVkP1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLCBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdKVwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIkZDQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgK3t7IGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyIChjbGljayk9XCJGQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9GQ0MnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCAnSVNTVUVfRkNDJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI0NDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGNjIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsIGNjKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgY2M/LmVtcGxveWVlX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjRkNDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGZjYyBvZiBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLCBmY2MpXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBmY2M/LmVtcGxveWVlX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBFdmlkZW5jZSAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVWSURFTkNFXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwidHJ1ZVwiPlxyXG4gICAgICA8IS0tIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2Zvcm1hdC1ldmlkZW5jZS5zdmdcIiBhbHQ9XCJpbVwiPiAtLT5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXZpZGVuY2U8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZm9ybWF0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIlxyXG4gICAgICAgICAgICA+RG8geW91IHdhbnQgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgaXNzdWUgdG8gYmVcclxuICAgICAgICAgICAgdXBsb2FkZWQ/PC9zcGFuXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidmaWxlLWV2aWRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXZpZGVuY2VSZXF1aXJlZCA9PT0gMVwiXHJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSgxKVwiXHJcbiAgICAgICAgICAgICAgPlllc1xyXG4gICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidmaWxlLWV2aWRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIjBcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXZpZGVuY2VSZXF1aXJlZCA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSgwKVwiXHJcbiAgICAgICAgICAgICAgPk5vXHJcbiAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG48YXBwLXJhZGlvLWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9DQVRHT1JZXCJcclxuICBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy5jYXRlZ29yeUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5XCJcclxuICBbaWRlbnRpZmllcktleV09XCInY2F0ZWdvcnlfaWQnXCJcclxuICBbZGlzcGxheUtleV09XCInY2F0ZWdvcnlfbmFtZSdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9DQVRFR09SWSdcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9DQVRFR09SWScpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ0FURUdPUlknKVwiXHJcbj5cclxuPC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0XHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX1JDJ1wiXHJcbiAgW3Jlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RdPVwibGlzdERhdGE/LnJjTGlzdFwiXHJcbiAgW3JhZGlvU2VsZWN0aW9uXT1cImZhbHNlXCJcclxuICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnNdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDXCJcclxuICBbcmNJZEtleV09XCInaXRlbV9pZCdcIlxyXG4gIChzYXZlU2VsZWN0ZWRMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1JDJylcIlxyXG4gIChjbG9zZVJjTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1JDJylcIlxyXG4+XHJcbjwvYXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdD5cclxuXHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1dIT1wiXHJcbiAgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8udXNlckxpc3RcIlxyXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmVudHJ1c3RUb1wiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2VtcGxveWVlX2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcclxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1dITycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfV0hPJylcIlxyXG4+PC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1RZUEVcIlxyXG4gIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/Lmlzc3VlVHlwZUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGVcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidpc3N1ZV9pZCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidpc3N1ZV90eXBlX25hbWUnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfVFlQRSdcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9UWVBFJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9UWVBFJylcIlxyXG4+PC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtY2hlY2tib3gtbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX0NDXCJcclxuICBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gIFtpdGVtc0xpc3RdPVwiXHJcbiAgICBsaXN0RGF0YS51c2VyTGlzdFxyXG4gICAgICB8IHVzZXJGaWx0ZXJcclxuICAgICAgICA6ICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICA6IGxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cclxuICAgICAgICA6IHsgZW1wbG95ZWVfZW1haWw6IGN1cnJlbnRVc2VyPy5lbWFpbCB9XHJcbiAgXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzXCJcclxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9DQydcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9DQycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ0MnKVwiXHJcbj48L2FwcC1jaGVja2JveC1saXN0PlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfRkNDXCJcclxuICBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gIFtpdGVtc0xpc3RdPVwiXHJcbiAgICBsaXN0RGF0YS51c2VyTGlzdFxyXG4gICAgICB8IHVzZXJGaWx0ZXJcclxuICAgICAgICA6ICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICA6IGxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cclxuICAgICAgICA6IHsgZW1wbG95ZWVfZW1haWw6IGN1cnJlbnRVc2VyPy5lbWFpbCB9XHJcbiAgXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnNcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXHJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0ZDQydcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9GQ0MnKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0ZDQycpXCJcclxuPjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcblxyXG48YXBwLXJlc3BvbnNpYmlsaXR5LXJpc2stc2VsZWN0b3JcclxuICBbbG9hZGluZ109XCJpc1Jpc2tDb250cm9sTG9hZGluZ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snKVwiXHJcbiAgKGZldGNoTGlzdCk9XCJnZXRMaW5rYWdlKGlzc3VlRGV0YWlscz8uYXVkaXRPYmpJZCwgJGV2ZW50KVwiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0NPTlRST0xfUklTSycpXCJcclxuICBbYWN0aXZlRW50aXR5XT1cImxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGVcIlxyXG4gIFtsaXN0SXRlbXNdPVwibGlzdERhdGE/LmxpbmthZ2VMaXN0XCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrXCJcclxuPjwvYXBwLXJlc3BvbnNpYmlsaXR5LXJpc2stc2VsZWN0b3I+XHJcblxyXG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXHJcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcclxuICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcclxuICAoYWN0aW9uKT1cImFjdGlvbigkZXZlbnQpXCJcclxuICAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiXHJcbj5cclxuPC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XHJcblxyXG48YXBwLWxpbmstcmVzcG9uc2liaWxpdHktbGlzdFxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknXCJcclxuICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlc109XCJsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkXCJcclxuICAoY2xvc2VCdXR0b24pPVwiZmllbGREZXNlbGVjdG9yKCdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknKVwiXHJcbiAgW3Jlc3BJZEtleV09XCInUmVwb3J0SWQnXCJcclxuICBbcmFkaW9TZWxlY3Rpb25dPVwiZmFsc2VcIlxyXG4gIChzZWxlY3RlZFJlc3BvbnNpYmlsaXR5KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScpXCJcclxuPjwvYXBwLWxpbmstcmVzcG9uc2liaWxpdHktbGlzdD5cclxuXHJcbiJdfQ==
|
|
1075
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR25DLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNM0QsTUFBTSxPQUFPLG1CQUFtQjtJQWdNOUIsWUFDVSxVQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixRQUF5QixFQUN6QixrQkFBcUM7UUFKckMsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQWxNdEMsc0JBQWlCLEdBQUc7WUFDM0IsNEJBQTRCO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixJQUFJLEVBQUUsSUFBSTtZQUNWLHNCQUFzQixFQUFFLEVBQUU7U0FDM0IsQ0FBQztRQUNPLGlCQUFZLEdBQUc7WUFDdEIsV0FBVyxFQUFF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WUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9nSXNzdWVTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvbG9nLWlzc3VlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ3Zjb21wbHktZWRpdG9yJztcclxuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFVpS2l0U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3VpLWtpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IElzc3VlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXNzdWUtZGF0YSc7XHJcbmltcG9ydCB7IERFRkFVTFRfVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cy90aW1lLmNvbnN0YW50cyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWxvZy1hbi1pc3N1ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9nLWFuLWlzc3VlLmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ0FuSXNzdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSE6IGFueTtcclxuICBASW5wdXQoKSBpc3N1ZUlkITogYW55O1xyXG4gIEBJbnB1dCgpIHJlcG9uc2liaWxpdHlEYXRhID0ge1xyXG4gICAgLy8gb25seSB1c2VkIGJ5IGxvZyBhbiBpc3N1ZVxyXG4gICAgcmVzcG9uc2liaWxpdHlJZDogbnVsbCxcclxuICAgIHJlc3BvbnNpYmlsaXR5TmFtZTogJycsXHJcbiAgICByY0lkOiBudWxsLFxyXG4gICAgcmVzcG9uc2liaWxpdHlPYmplY3RJZDogJycsXHJcbiAgfTtcclxuICBASW5wdXQoKSBpc3N1ZURldGFpbHMgPSB7XHJcbiAgICBhdWRpdFBsYW5JZDogbnVsbCxcclxuICAgIGF1ZGl0UGxhbk5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICAgIGF1ZGl0T2JqSWQ6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCkgY29uZmlnITogSXNzdWVDb25maWd1cmF0aW9uO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXRpZXNEYXRhOiBhbnk7XHJcbiAgQE91dHB1dCgpIHBpY2tlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHBvcHVsYXRlT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XHJcbiAgY3VycmVudFVzZXIhOiBhbnk7XHJcbiAgc2Nyb2xsVG9Cb3R0b206IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkYXRlUGlja2VyT3ZlcmxheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEYXRlRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGU6IGFueTtcclxuICBzaG93U21pbGV5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc21pbGV5TWVzc2FnZTogc3RyaW5nID0gYFRoZSBpc3N1ZSBoYXMgYmVlbiByZXBvcnRlZC5gO1xyXG4gIGlzc3VlRGF0YSE6IGFueTtcclxuICBpc1Jpc2tDb250cm9sTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFjdGlvbkJ1dHRvbnM6IGFueVtdID0gW1xyXG4gICAgeyBidXR0b25UZXh0OiAnUmVwb3J0IE1vcmUgSXNzdWVzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdWaWV3IElzc3VlJywgY2xhc3M6ICdibHVlLWJ0bicsIGlkOiAndmlld0lzc3VlJyB9LFxyXG4gIF07XHJcbiAgY3JlYXRlZERhdGEhOiBhbnk7XHJcbiAgZGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIC8vIG1vZGU6ICdwcmltZScsXHJcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdEZXNjcmlwdGlvbicsXHJcbiAgfTtcclxuXHJcbiAgZGF0ZUNvbmZpZyA9IHtcclxuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcclxuICAgIGZvcm1hdDogJ0REIE1NTSBZWVlZJyxcclxuICAgIHVuU2VsZWN0T25DbGljazogdHJ1ZSxcclxuICAgIG9wZW5PbkNsaWNrOiBmYWxzZSxcclxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcclxuICAgIG1pbjogbmV3IERhdGUoKS5nZXREYXRlKCkudG9TdHJpbmcoKSxcclxuICB9O1xyXG4gIGxpc3REYXRhOiBhbnkgPSB7XHJcbiAgICBpc3N1ZVR5cGVMaXN0OiBbXSxcclxuICAgIHVzZXJMaXN0OiBbXSxcclxuICAgIGNhdGVnb3J5TGlzdDogW10sXHJcbiAgICByY0xpc3Q6IFtdLFxyXG4gICAgbGlua2FnZUxpc3Q6IFtdLFxyXG4gIH07XHJcbiAgREVGQVVMVF9USU1FID0gREVGQVVMVF9USU1FO1xyXG5cclxuICBnZXQgbWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdFRElUJ1xyXG4gICAgICA/ICcgVGhlIElzc3VlIGhhcyBiZWVuIHVwZGF0ZWQuJ1xyXG4gICAgICA6IHRoaXMuc21pbGV5TWVzc2FnZTtcclxuICB9XHJcblxyXG4gIGxvZ0lzc3VlRm9ybTogYW55ID0ge1xyXG4gICAgaXNzdWVOYW1lOiAnJyxcclxuICAgIGV2aWRlbmNlUmVxdWlyZWQ6IDAsXHJcbiAgICBpc3N1ZURlc2NyaXB0aW9uOiAnJyxcclxuICAgIGlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM6IFtdLFxyXG4gICAgaXNzdWVDYXRlZ29yeTogW10sXHJcbiAgICBpc3N1ZUN1c3RvbVRhZzogW10sXHJcbiAgICBpc3N1ZVJDOiBbXSxcclxuICAgIGlzc3VlVHlwZTogJ2lzc3VlJyxcclxuICAgIGlzQXNzaWduVG9NeXNlbGY6IGZhbHNlLFxyXG4gICAgZW50cnVzdFRvOiBbXSxcclxuICAgIGlzc3VlRHVlRGF0ZTogJycsXHJcbiAgICBpc3N1ZUR1ZVRpbWU6IERFRkFVTFRfVElNRSxcclxuICAgIGV4Y2VwdGlvblR5cGU6IDEsXHJcbiAgICBpc3N1ZVJpc2tSYXRpbmc6IDEsXHJcbiAgICBpc3N1ZVByaW9yaXR5OiAxLFxyXG4gICAgaXNzdWVSZWNvbW1lbmRhdGlvbjogJycsXHJcbiAgICByZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50czogW10sXHJcbiAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiAnJyxcclxuICAgIGFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgIGlzc3VlQ0NVc2VyczogW10sXHJcbiAgICBmYWlsdXJlQ0NVc2VyczogW10sXHJcbiAgICBsaW5rZWRDb250cm9sUmlzazogW10sXHJcbiAgICBsaW5rYWdlVHlwZTogJ1JJU0snLFxyXG4gICAgcmVzcG9uc2liaWxpdHlMaW5rZWQ6IFtdLFxyXG4gIH07XHJcbiAgQXR0YWNobWVudFRyYWNrOiBhbnkgPSBbW10sIFtdLCBbXV07XHJcbiAgYWRkaXRpb25hbE9wdGlvblN0YXR1czogYW55ID0ge1xyXG4gICAgRVhDRVBUSU9OX1RZUEU6IGZhbHNlLFxyXG4gICAgRVZJREVOQ0U6IGZhbHNlLFxyXG4gICAgUFJJT1JJVFk6IGZhbHNlLFxyXG4gICAgSVNTVUVfVFlQRTogZmFsc2UsXHJcbiAgICBBU1NPQ0lBVEVEX1JJU0tTOiBmYWxzZSxcclxuICAgIE9WRVJTSUdIVDogZmFsc2UsXHJcbiAgfTtcclxuICByaXNrQ2xhc3NpZmljYXRpb24gPSBbXHJcbiAgICB7IG5hbWU6ICdMT1cnLCB2YWx1ZTogMSwgY2xhc3M6ICdsb3cnIH0sXHJcbiAgICB7IG5hbWU6ICdMT1ctTWVkaXVtJywgdmFsdWU6IDIsIGNsYXNzOiAnbG93LW1lZCcgfSxcclxuICAgIHsgbmFtZTogJ01lZGl1bS1IaWdoJywgdmFsdWU6IDMsIGNsYXNzOiAnbWVkLWhpZ2gnIH0sXHJcbiAgICB7IG5hbWU6ICdIaWdoJywgdmFsdWU6IDQsIGNsYXNzOiAnaGlnaCcgfSxcclxuICBdO1xyXG4gIHJpc2tQcm9yaXR5ID0gW1xyXG4gICAgeyBuYW1lOiAnTE9XJywgdmFsdWU6IDEsIGNsYXNzOiAnbG93JyB9LFxyXG4gICAgeyBuYW1lOiAnTUVESVVNJywgdmFsdWU6IDIsIGNsYXNzOiAnbG93LW1lZCcgfSxcclxuICAgIHsgbmFtZTogJ0hJR0gnLCB2YWx1ZTogMywgY2xhc3M6ICdoaWdoJyB9LFxyXG4gIF07XHJcblxyXG4gIHNpZGVTZWxlY3RvckVsZW1lbnRzOiBhbnkgPSBbXHJcbiAgICAnSVNTVUVfQ0FURUdPUlknLFxyXG4gICAgJ0lTU1VFX1JDJyxcclxuICAgICdJU1NVRV9XSE8nLFxyXG4gICAgJ0lTU1VFX1RZUEUnLFxyXG4gICAgJ0lTU1VFX0NDJyxcclxuICAgICdJU1NVRV9GQ0MnLFxyXG4gICAgJ0lTU1VFX0NPTlRST0xfUklTSycsXHJcbiAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJyxcclxuICBdO1xyXG4gIHNlbGVjdG9yQ29uZmlnID0ge1xyXG4gICAgSVNTVUVfQ0FUR09SWToge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IElzc3VlIENhdGVnb3J5JyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdDYXRlZ29yeSBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIElzc3VlIENhdGVnb3J5JyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIENhdGVnb3JpZXMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1JDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdSZXNwb25zaWJpbGl0eSBjZW50ZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBmbG9hdGluZ1RleHRQbHVyYWw6ICdSZXNwb25zaWJpbGl0eSBjZW50ZXJzIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgRm91bmQnLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1dITzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IFVzZXInLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9UWVBFOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgSXNzdWUgVHlwZScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnSXNzdWUgVHlwZSBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIElzc3VlIFR5cGUnLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gSXNzdWUgVHlwZXMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX0NDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgdXNlcihzKScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX0ZDQzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IHVzZXIocyknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgZmllbGRzV2l0aEVycm9yOiBhbnkgPSBbXTtcclxuICAvLyBoaWRkZW5MaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBhY3RpdmVGaWVsZDogc3RyaW5nID0gJyc7XHJcbiAgYWN0aXZlU2VsZWN0b3I6IHN0cmluZyA9ICcnO1xyXG4gIGxpc3RMb2FkaW5nU3RhdHVzOiBhbnlbXSA9IFtdO1xyXG4gIGN1cnJlbnRUaW1lOiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBpc1JDUHJlU2VsZWN0ZWQsaXNSQ1Zpc2libGUgYXJlIHZhcmlhYmxlIHVzZWQgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG9mIHJjIGZpZWxkIGFuZCBlZGl0IGJ1dHRvbiBpbiBjZXJ0YWluIGNvbmRpdGlvbnNcclxuICAgKi9cclxuICBpc1JDUHJlU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1JDVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgaXNSQ01hbmRhdG9yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGFGb3JFZGl0ITogYW55O1xyXG4gIGlzUmlza0NvbnRyb2xWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNGdXR1cmVEYXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9nU2VydmljZTogTG9nSXNzdWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlcmN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuc2V0VXNlckRldGFpbHMoKTtcclxuICAgIHRoaXMuZmV0Y2hJc3N1ZVR5cGVzKCk7XHJcbiAgICB0aGlzLmZldGNoVXNlckxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hDYXRlZ29yeUxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hSQ0xpc3QoKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlcmN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mZXRjaENvbnRyb2xSaXNrcygpO1xyXG4gICAgdGhpcy5kZWNpZGVSQ21hbmRhdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZGVjaWRlUkNtYW5kYXRvcnkoKSB7XHJcbiAgICB0aGlzLmlzUkNNYW5kYXRvcnkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICB9XHJcbiAgZ2V0Q3VycmVudFRpbWUoKSB7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0b2RheS5nZXREYXRlKCkgPT09IG5ldyBEYXRlKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkuZ2V0RGF0ZSgpXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRvZGF5LmdldEhvdXJzKCkgPCAxMiAmJlxyXG4gICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSA8IDU5ICYmXHJcbiAgICAgICAgdG9kYXkuZ2V0U2Vjb25kcygpIDwgNTlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgdG9kYXkuZ2V0SG91cnMoKSA6IHRvZGF5LmdldEhvdXJzKClcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gYW1gO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBgJHtcclxuICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCkgLSAxMiA8IDEwXHJcbiAgICAgICAgICAgID8gJzAnICsgKHRvZGF5LmdldEhvdXJzKCkgLSAxMilcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRIb3VycygpIC0gMTJcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gcG1gO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJzAwOjAwIGFtJztcclxuICAgIH1cclxuICB9XHJcbiAgc2V0VXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLnVzZXI7XHJcbiAgfVxyXG4gIGZldGNoSXNzdWVUeXBlcygpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5pc3N1ZVR5cGVMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgZmV0Y2hVc2VyTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRPcmdQZW9wbGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlOiBhbnkpID0+IGU/LmNhdGVnb3J5X25hbWUgIT09ICdVbmNhdGVnb3JpemVkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hSQ0xpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZFJDKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkICYmXHJcbiAgICAgIHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMucmVwb25zaWJpbGl0eURhdGEucmNJZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YS5yY0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZTogYW55KSA9PiBlLnJjX2lkID09PSB0aGlzLnJlcG9uc2liaWxpdHlEYXRhLnJjSWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5pc3N1ZURldGFpbHM/LnJjSWQgJiZcclxuICAgICAgW1xyXG4gICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLFxyXG4gICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5pc3N1ZURldGFpbHM/LnJjSWRcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEucmNMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5yY19pZCA9PT0gdGhpcy5pc3N1ZURldGFpbHM/LnJjSWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgICEodGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZCB8fCB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZCkgJiZcclxuICAgICAgW1xyXG4gICAgICAgICdDT01QTElBTkNFX1dPUktST09NJyxcclxuICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1JDVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JDVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRyb2xSaXNrcygpIHtcclxuICAgIGlmIChcclxuICAgICAgWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgIHRoaXMub3BlbmVkRnJvbVxyXG4gICAgICApXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5nZXRMaW5rYWdlKFxyXG4gICAgICAgIHRoaXMuaXNzdWVEZXRhaWxzPy5hdWRpdE9iaklkLFxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmthZ2VUeXBlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMaW5rYWdlKGF1ZGl0SWQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRDb250cm9sUmlzayhhdWRpdElkLCB0eXBlKT8uc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCA9IFsuLi50aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LCAuLi5kYXRhXTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0ID0gdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAodGhpbmc6IGFueSwgaW5kZXg6IGFueSwgc2VsZjogYW55KSA9PlxyXG4gICAgICAgICAgICBpbmRleCA9PT1cclxuICAgICAgICAgICAgc2VsZi5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgKHQ6IGFueSkgPT5cclxuICAgICAgICAgICAgICAgIHQuaXRlbUlkID09PSB0aGluZy5pdGVtSWQgJiYgdC5pdGVtVHlwZSA9PT0gdGhpbmcuaXRlbVR5cGVcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVGhpcyBmdW5jdGlvaiBjaGVjayB3ZWF0aGVyIGFsbCB0aGUgcmVxdWlyZWQgbGlzdHMgYXJlIGxvYWRlZFxyXG4gICAqIElmIGxvYWRlZCBoaWRlcyB0aGUgbG9hZGVyIG90aGVyd2lzZSBzaG93cyB0aGUgbG9hZGVyLlxyXG4gICAqL1xyXG4gIGNoZWNrQWxsTGlzdExvYWRlZCgpIHtcclxuICAgIGlmICh0aGlzLmxpc3RMb2FkaW5nU3RhdHVzLmluY2x1ZGVzKGZhbHNlKSkge1xyXG4gICAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICAgIHRoaXMuZmV0Y2hJc3N1ZURldGFpbHMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGVycm9yIGZyb20gdGhlIGZpZWxkcyB3aXRoIGVycm9yIHRvIHJlbW92ZSB0aGUgZXJyb3IgbWVzc2FnIGZyb20gdGhlIFVJXHJcbiAgICogQHBhcmFtIGVycm9yS2V5IGVycm9yIElkZW50aWZpZXIgdXNlZCB0byBzaG93IGVycm9yIGluIHNwZWNpZmljIGZpZWxkcy5cclxuICAgKi9cclxuICByZW1vdmVFcnJvcihlcnJvcktleTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRzV2l0aEVycm9yLmluZGV4T2YoZXJyb3JLZXkpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5maWVsZHNXaXRoRXJyb3Iuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcbiAgb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9EQVRFX1RJTUUnLCAnSVNTVUVfREFURV9USU1FJyk7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZVBpY2tlcihldnQ6IGFueSkge1xyXG4gICAgaWYgKCFldnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uX2QpIHtcclxuICAgICAgbGV0IG1vbnRoQXJyYXkgPSBbXHJcbiAgICAgICAgJ0phbicsXHJcbiAgICAgICAgJ0ZlYicsXHJcbiAgICAgICAgJ01hcicsXHJcbiAgICAgICAgJ0FwcicsXHJcbiAgICAgICAgJ0p1bicsXHJcbiAgICAgICAgJ0p1bCcsXHJcbiAgICAgICAgJ0F1ZycsXHJcbiAgICAgICAgJ1NlcCcsXHJcbiAgICAgICAgJ09jdCcsXHJcbiAgICAgICAgJ05vdicsXHJcbiAgICAgICAgJ0RlYycsXHJcbiAgICAgIF07XHJcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldERhdGUoKTtcclxuICAgICAgY29uc3QgbW9udGhWYWx1ZSA9IG1vbnRoQXJyYXlbbmV3IERhdGUoZXZ0Py5kYXRlPy5fZCkuZ2V0TW9udGgoKV07XHJcbiAgICAgIGNvbnN0IHllYXJWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBgJHtkYXRlVmFsdWV9ICR7bW9udGhWYWx1ZX0gJHt5ZWFyVmFsdWV9YDtcclxuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRGF0ZSh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUsIGV2dD8uZGF0ZT8uX2QpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZXZ0Py5kYXRlPy5fZCkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUgPSBldnQ/LmRhdGU/Ll9kO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5jbG9zZSgpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCcnLCAnJyk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKGFjdGl2ZUZpZWxkOiBzdHJpbmcsIGFjdGl2ZVNlbGVjdG9yPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFjdGl2ZUZpZWxkID0gYWN0aXZlRmllbGQ7XHJcbiAgICBhY3RpdmVTZWxlY3RvclxyXG4gICAgICA/ICh0aGlzLmFjdGl2ZVNlbGVjdG9yID0gYWN0aXZlU2VsZWN0b3IpXHJcbiAgICAgIDogKHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJyk7XHJcbiAgICBjb25zdCBzbGlkZXJUeXBlID0gW1xyXG4gICAgICAnSVNTVUVfUkMnLFxyXG4gICAgICAnSVNTVUVfQ0FURUdPUlknLFxyXG4gICAgICAnSVNTVUVfVFlQRScsXHJcbiAgICAgICdJU1NVRV9DQycsXHJcbiAgICAgICdJU1NVRV9GQ0MnLFxyXG4gICAgICAnSVNTVUVfV0hPJyxcclxuICAgICAgJ0lTU1VFX0NPTlRST0xfUklTSycsXHJcbiAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknXHJcbiAgICBdO1xyXG4gICAgaWYgKHNsaWRlclR5cGUuaW5jbHVkZXMoYWN0aXZlRmllbGQpKSB7XHJcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmllbGREZXNlbGVjdG9yKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5hY3RpdmVTZWxlY3RvciA9ICcnO1xyXG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9ICcnO1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0b3JBY3Rpb24oZXZ0OiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NBVEVHT1JZJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LFxyXG4gICAgICAgICAgJ2NhdGVnb3J5X2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgaWYgKGV2dD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcignaXNzdWVDYXRlZ29yeScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmN1c3RvbV90YWdzPy5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHRhZzogYW55ID0gW107XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY3VzdG9tX3RhZ3MuZm9yRWFjaChcclxuICAgICAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRhZy5wdXNoKHsgbmFtZTogZWxlbWVudCwgdmFsdWU6ICcnIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWcgPSB0YWc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIC8vW1wiaXNzdWVOYW1lXCIsIFwiaXNzdWVDYXRlZ29yeVwiLCBcImlzc3VlUkNcIiwgXCJlbnRydXN0VG9cIiwgXCJpc3N1ZUR1ZURhdGVcIiwgXCJpc3N1ZVJlY29tbWVuZGF0aW9uXCJdXHJcbiAgICAgIGNhc2UgJ0lTU1VFX1JDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEucmNMaXN0LFxyXG4gICAgICAgICAgJ3JjX2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgaWYgKGV2dD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcignaXNzdWVSQycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9XSE8nOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgJ2VtcGxveWVlX2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvWzBdPy5teV9tZW1iZXJfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGYgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2VudHJ1c3RUbycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9UWVBFJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZSA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5pc3N1ZVR5cGVMaXN0LFxyXG4gICAgICAgICAgJ2lzc3VlX2lkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfQ0MnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfRkNDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NPTlRST0xfUklTSyc6XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2sgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QsXHJcbiAgICAgICAgICAnaXRlbUlkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2FnZVR5cGUgPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtVHlwZTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWSc6IHtcclxuICAgICAgICB0aGlzLmdldFJDRGF0YShldnQpO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlc3BvbnNpYmlsaXR5TGlua2VkID0gZXZ0O1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVJdGVtKHR5cGU6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfQ0FURUdPUlknOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNhdGVnb3J5X2lkID09PSBlbGVtZW50LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfUkMnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnJjX2lkID09PSBlbGVtZW50LnJjX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfV0hPJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUby5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2lkID09PSBlbGVtZW50LmVtcGxveWVlX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfVFlQRSc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pc3N1ZV9pZCA9PT0gZWxlbWVudC5pc3N1ZV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfQ0MnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZW1wbG95ZWVfZW1haWwgPT09IGVsZW1lbnQuZW1wbG95ZWVfZW1haWxcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0ZDQyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50LmVtcGxveWVlX2VtYWlsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NPTlRST0xfUklTSyc6XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2suZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pdGVtSWQgPT09IGVsZW1lbnQuaXRlbUlkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2suc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0ucmVzcG9uc2liaWxpdHlMaW5rZWQuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5SZXBvcnRJZCA9PT0gZWxlbWVudC5SZXBvcnRJZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZXNwb25zaWJpbGl0eUxpbmtlZC5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5nZXRSQ0RhdGEodGhpcy5sb2dJc3N1ZUZvcm0ucmVzcG9uc2liaWxpdHlMaW5rZWQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSY0lkKHJjOiBhbnkpIHtcclxuICAgIHJldHVybiByYz8ucmVzcG9uc2liaWxpdHlDZW50ZXJBcnI/Lmxlbmd0aCA/IHJjLnJlc3BvbnNpYmlsaXR5Q2VudGVyQXJyIDogKHJjPy5yY19pZF9hcnI/Lmxlbmd0aCA/IHJjLnJjX2lkX2FyciA6IFtdKTtcclxuICB9XHJcblxyXG4gIGdldFJDRGF0YShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgcmNTZWxlY3RlZDogYW55W10gPSBbXTtcclxuICAgIGV2dC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgcmNJZDogYW55W10gPSB0aGlzLmdldFJjSWQoZWxlbWVudCk7XHJcbiAgICAgIGlmIChyY0lkPy5sZW5ndGgpIHtcclxuICAgICAgICByY0lkLmZvckVhY2goKHJjSWQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcmNEYXRhID0gdGhpcy5saXN0RGF0YT8ucmNMaXN0LmZpbmQoKGVsOiBhbnkpID0+IGVsPy5yY19pZCA9PT0gcmNJZCk7XHJcbiAgICAgICAgICBpZiAocmNEYXRhICYmICFyY1NlbGVjdGVkLnNvbWUoKHNlbGVjdGVkRWw6IGFueSkgPT4gc2VsZWN0ZWRFbD8ucmNfaWQgPT09IHJjRGF0YT8ucmNfaWQpKSB7XHJcbiAgICAgICAgICAgIHJjU2VsZWN0ZWQucHVzaChyY0RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSByY1NlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgYXNzaWduTXlzZWxmKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2VudHJ1c3RUbycpO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gW107XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKGVtcGxpc3Q6IGFueSkgPT4gZW1wbGlzdC5teV9tZW1iZXJfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0RXhjZXB0aW9uKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZXhjZXB0aW9uVHlwZSA9IHR5cGU7XHJcbiAgfVxyXG4gIHNldEV2aWRlbmNlKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZXZpZGVuY2VSZXF1aXJlZCA9IHR5cGU7XHJcbiAgfVxyXG4gIHNldElzc3VlVHlwZSh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNbZXZlbnQuY29kZV0gPSBldmVudC5jaGVja2VkO1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpZFRvQXJyYXkoc2VsZWN0ZWRJdGVtczogYW55LCBsaXN0SXRlbXM6IGFueSwgZmlsdGVya2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRJdGVtcztcclxuICAgIGNvbnN0IGxpc3QgPSBsaXN0SXRlbXM7XHJcbiAgICBjb25zdCBrZXkgPSBmaWx0ZXJrZXk7XHJcbiAgICBjb25zdCB4ID0gbGlzdC5maWx0ZXIoKGVsOiBhbnkpID0+IHNlbGVjdGVkLmluY2x1ZGVzKGVsW2tleV0pKTtcclxuICAgIHJldHVybiB4O1xyXG4gIH1cclxuICAvLy9Db2RlIGJldHdlZW4gNTAzIHRvIDYwOCBjYW4gYmUgb3B0aW1pemVkIHRvIHJlbW92ZSBkdXBsaWNhdGlvblxyXG4gIHNlbGVjdEZpbGUodHlwZTogc3RyaW5nLCBmaWxlczogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMF0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1sxXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzJdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKGZpbGU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdHJhY2tJbmRleCA9IDA7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xyXG4gICAgY29uc3QgZGVzdGluYXRpb25TdHJpbmcgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCkudG9TdHJpbmcoKTtcclxuICAgIHRoaXMubG9nU2VydmljZS51cGxvYWRGaWxlcyhmb3JtRGF0YSwgZGVzdGluYXRpb25TdHJpbmcgKyAnLycpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5pbmRleE9mKGZpbGU/Lm5hbWUpO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uaW5kZXhPZihmaWxlLm5hbWUpO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsZShmaWxlOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IGZpbGVJbmRleCA9IC0xO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgIGZpbGVJbmRleCA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgIGZpbGVJbmRleCA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8uZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoY3VycmVudEZpbGVzOiBhbnkpID0+IGN1cnJlbnRGaWxlcy5vcmdfZmlsZSA9PT0gZmlsZS5vcmdfZmlsZVxyXG4gICAgICAgICAgKSA/PyAtMTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZElzc3VlKCkge1xyXG4gICAgY29uc3QgZm9ybSA9IGNsb25lRGVlcCh0aGlzLmxvZ0lzc3VlRm9ybSk7XHJcbiAgICBpZiAoZm9ybS5pc0Fzc2lnblRvTXlzZWxmKSB7XHJcbiAgICAgIGZvcm0uZW50cnVzdFRvID0gdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKGVtcGxpc3Q6IGFueSkgPT4gZW1wbGlzdC5teV9tZW1iZXJfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpZWxkc1dpdGhFcnJvciA9IFtdO1xyXG4gICAgdGhpcy5maWVsZHNXaXRoRXJyb3IgPSB0aGlzLmxvZ1NlcnZpY2UudmFsaWRhdGUoXHJcbiAgICAgIGZvcm0sXHJcbiAgICAgIHRoaXMub3BlbmVkRnJvbSxcclxuICAgICAgdGhpcy5pc1JDTWFuZGF0b3J5XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuZmllbGRzV2l0aEVycm9yLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgUEFZTE9BRCA9IHRoaXMubG9nU2VydmljZS5wYXlsb2FkQnVpbGRlcihcclxuICAgICAgZm9ybSxcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nICYmXHJcbiAgICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZFxyXG4gICAgICApIHtcclxuICAgICAgICBQQVlMT0FELnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkLnB1c2godGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICAgIHRoaXMub3BlbmVkRnJvbVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlICYmXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2subGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBbJ1JJU0snLCAnUkVTUE9OU0lCSUxJVFknXS5pbmNsdWRlcyh0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdC5zb3VyY2VfaWQgPVxyXG4gICAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAodGhpcy5pc3N1ZURldGFpbHMuYXVkaXRQbGFuSWQpIHtcclxuICAgICAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3Quc291cmNlX2lkID0gdGhpcy5pc3N1ZURldGFpbHMuYXVkaXRQbGFuSWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIXRoaXMudmFsaWRhdGVEYXRlKFxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lLFxyXG4gICAgICAgICAgbW9tZW50KHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSwgJ0REIE1NTSBZWVlZJykudG9EYXRlKClcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICBQQVlMT0FELklzc3VlTGlua2FnZSA9IHRoaXMuZGF0YUZvckVkaXQ/LmxpbmthZ2Vfb2JqZWN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubG9nU2VydmljZS51cGRhdGVJc3N1ZShQQVlMT0FELCB0aGlzLmlzc3VlSWQpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vIHRoaXMuc21pbGV5TWVzc2FnZSA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gdXBkYXRlZC5gO1xyXG4gICAgICAgICAgdGhpcy5pc3N1ZURhdGEgPSByZXM7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXHJcbiAgICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxyXG4gICAgICAgICAgICAnYWxlcnQnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSAnQ1JFQVRFJyB8fCB0aGlzLm1vZGUgPT09ICcnIHx8ICF0aGlzLm1vZGUpIHtcclxuICAgICAgdGhpcy5sb2dTZXJ2aWNlLmNyZWF0ZUlzc3VlKFBBWUxPQUQpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNzdWVEYXRhID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxyXG4gICAgICAgICAgICAnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/JyxcclxuICAgICAgICAgICAgJ2FsZXJ0J1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNsb3NlU21pbGV5KGV2dD86IGFueSkge1xyXG4gICAgdGhpcy5yZXNldElzc3VlRm9ybSgpO1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya0Zsb3codGhpcy5pc3N1ZURhdGEsIGZhbHNlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHdvcmtmbG93IGVuZ2luZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gY29uZmlybVxyXG4gICAqL1xyXG4gIGNsb3NlV29ya0Zsb3coZXZ0OiBhbnksIGNvbmZpcm06IGFueSkge1xyXG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoeyBldnQsIGNvbmZpcm0gfSk7XHJcbiAgfVxyXG4gIGFjdGlvbihldnQ6IGFueSkge1xyXG4gICAgaWYgKGV2dCA9PT0gJ2FkZE1vcmUnKSB7XHJcbiAgICAgIHRoaXMucmVzZXRJc3N1ZUZvcm0oKTtcclxuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgICAgLy8gdGhpcy5jbG9zZVdvcmtGbG93KHRoaXMuaXNzdWVEYXRhLCBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2dCA9PT0gJ3ZpZXdJc3N1ZScpIHtcclxuICAgICAgdGhpcy52aWV3SXNzdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZpZXdJc3N1ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgIHVybCArPSAnL2lzc3VlL2lzc3VlLXdvcmtyb29tLycgKyB0aGlzLmlzc3VlRGF0YT8uX2lkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsICs9ICcvYXVkaXQvaXNzdWUvaXNzdWUtd29ya3Jvb20vJyArIHRoaXMuaXNzdWVEYXRhPy5faWQ7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvcHVsYXRlIHRoZSB0aWNrbWFyayBvZiBvcHRpb25hbCBmaWVsZHNcclxuICAgKi9cclxuICBwb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCkge1xyXG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzKSkge1xyXG4gICAgICBpZiAodGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2tleV0gPT09IHRydWUpIHtcclxuICAgICAgICBhY3RpdmF0ZWRPcHRpb25zLnB1c2goa2V5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5wb3B1bGF0ZU9wdGlvbi5lbWl0KGFjdGl2YXRlZE9wdGlvbnMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGZXRjaHMgaXNzdWUgZGV0YWlscyB3aGVuIGluIGVkaXQgbW9kZSBiYXNlZCBvbiB0aGUgaW5wdXQgaWQgcGFzc2VkXHJcbiAgICovXHJcbiAgZmV0Y2hJc3N1ZURldGFpbHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVEZXRhaWxzKHRoaXMuaXNzdWVJZCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZvcm0oZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUG9wdWxhdGVzIHRoZSBpc3N1ZSBmb3JtIHdoZW4gaW4gZWRpdCBtb2RlXHJcbiAgICogQHBhcmFtIGlzc3VlRGF0YSBpc3N1ZSBkYXRhIGZldGNoZWQgZnJvbSBBUElcclxuICAgKi9cclxuICBhc3luYyBwb3B1bGF0ZUZvcm0oaXNzdWVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZGF0YUZvckVkaXQgPSBpc3N1ZURhdGE7XHJcbiAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IGlzc3VlRHVlRGF0ZSA9IGlzc3VlRGF0YT8uZnJlcXVlbmN5X2RldGFpbHM/LmZyZXF1ZW5jeV9kYXRlXHJcbiAgICAgIC5zcGxpdCgnLScpXHJcbiAgICAgIC5tYXAoTnVtYmVyKTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtID0ge1xyXG4gICAgICBpc3N1ZU5hbWU6IGlzc3VlRGF0YS50aXRsZSA/PyAnJyxcclxuICAgICAgZXZpZGVuY2VSZXF1aXJlZDogaXNzdWVEYXRhPy5ldmlkZW5jZT8uZXZpZGVuY2VfZmxhZyA/PyAwLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uOiBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uZGVzY3JpcHRpb25bMF0/LnRleHRcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uZGVzY3JpcHRpb25bMF0/LmF0dGFjaG1lbnRzXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgaXNzdWVDYXRlZ29yeTogaXNzdWVEYXRhPy5jYXRlZ29yeV9pZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZTogYW55KSA9PiBlLmNhdGVnb3J5X2lkID09PSBpc3N1ZURhdGE/LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgaXNzdWVDdXN0b21UYWc6IGlzc3VlRGF0YT8uY3VzdG9tX3RhZ3MgPz8gW10sXHJcbiAgICAgIGlzc3VlUkM6IGlzc3VlRGF0YT8ucmNfaWRzPy5sZW5ndGhcclxuICAgICAgPyB0aGlzLmxpc3REYXRhLnJjTGlzdC5maWx0ZXIoKGU6IGFueSkgPT5cclxuICAgICAgICAgIGlzc3VlRGF0YT8ucmNfaWRzPy5pbmNsdWRlcyhlPy5yY19pZClcclxuICAgICAgICApXHJcbiAgICAgICAgOltdLFxyXG4gICAgICByZXNwb25zaWJpbGl0eUxpbmtlZDogaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHM/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICByZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50czogaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvbj8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uWzBdPy5hdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgaXNBc3NpZ25Ub015c2VsZjpcclxuICAgICAgICBpc3N1ZURhdGE/LmFzc2lnbmVlX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBlbnRydXN0VG86XHJcbiAgICAgICAgaXNzdWVEYXRhPy5hc3NpZ25lZV9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICAgICAgPyBbXVxyXG4gICAgICAgICAgOiB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgICAoZTogYW55KSA9PiBlLm15X21lbWJlcl9pZCA9PT0gaXNzdWVEYXRhPy5hc3NpZ25lZV9pZFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICBpc3N1ZUR1ZURhdGU6IGlzc3VlRGF0YT8uZnJlcXVlbmN5X2RldGFpbHM/LmZyZXF1ZW5jeV9kYXRlXHJcbiAgICAgICAgPyBtb21lbnQoYCR7aXNzdWVEdWVEYXRlWzBdfS0ke2lzc3VlRHVlRGF0ZVsxXX0tJHtpc3N1ZUR1ZURhdGVbMl19YClcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZUR1ZVRpbWU6IHRoaXMubG9nU2VydmljZS5jb252ZXJ0RnJvbTI0VG8xMkZvcm1hdChcclxuICAgICAgICBpc3N1ZURhdGEuZnJlcXVlbmN5X2RldGFpbHMuZnJlcXVlbmN5X3RpbWVcclxuICAgICAgKSxcclxuICAgICAgZXhjZXB0aW9uVHlwZTogaXNzdWVEYXRhLmV4Y2VwdGlvbl90eXBlID8/IDEsXHJcbiAgICAgIGlzc3VlUmlza1JhdGluZzogaXNzdWVEYXRhLnJpc2tfY2xhc3MgPz8gMSxcclxuICAgICAgaXNzdWVQcmlvcml0eTogaXNzdWVEYXRhLnByaW9yaXR5ID8/IDEsXHJcbiAgICAgIGlzc3VlUmVjb21tZW5kYXRpb246IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvblswXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQXNzb2NpYXRlZFJpc2s6IGlzc3VlRGF0YT8uYXNzb2NpYXRlZF9yaXNrPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uYXNzb2NpYXRlZF9yaXNrWzBdPy50ZXh0XHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVDQ1VzZXJzOiBpc3N1ZURhdGEub3ZlcnNlZXI/LmNjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyPy5jY19lbWFpbFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGZhaWx1cmVDQ1VzZXJzOiBpc3N1ZURhdGEub3ZlcnNlZXI/LmZhaWx1cmVfY2NfZW1haWwubGVuZ3RoXHJcbiAgICAgICAgPyBhd2FpdCB0aGlzLmdlbmVyYXRlT3ZlcnNlZXJMaXN0KFxyXG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LFxyXG4gICAgICAgICAgICBpc3N1ZURhdGEub3ZlcnNlZXI/LmZhaWx1cmVfY2NfZW1haWxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBsaW5rZWRDb250cm9sUmlzazogW10sXHJcbiAgICAgIGxpbmthZ2VUeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICBpc3N1ZVR5cGU6IGlzc3VlRGF0YS5pc3N1ZVR5cGUgPyBpc3N1ZURhdGEuaXNzdWVUeXBlIDogJ2lzc3VlJyxcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQz8ubGVuZ3RoID4gMFxyXG4gICAgICAgID8gKHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gdHJ1ZSlcclxuICAgICAgICA6ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgICAgaXNzdWVEYXRhLmxpbmthZ2Vfb2JqZWN0Py5zb3VyY2UgPT09ICdHTE9CQUwnICYmIGlzc3VlRGF0YT8ucmNfaWRcclxuICAgICAgICA/ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlKVxyXG4gICAgICAgIDogKHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE9wdGlvbmFsRmllbGQoaXNzdWVEYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZpc2liaWxpdHkgb2Ygb3B0aW9uYWwgZmllbGRzXHJcbiAgICogQHBhcmFtIGlzc3VlRGF0YSAgaXNzdWUgZGF0YSBmZXRjaGVkIGZyb20gQVBJXHJcbiAgICovXHJcbiAgc2V0T3B0aW9uYWxGaWVsZChpc3N1ZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0ge1xyXG4gICAgICBFWENFUFRJT05fVFlQRTogaXNzdWVEYXRhLmV4Y2VwdGlvbl90eXBlID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBFVklERU5DRTogaXNzdWVEYXRhLmV2aWRlbmNlLmV2aWRlbmNlX2ZsYWcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIFBSSU9SSVRZOiBpc3N1ZURhdGEucHJpb3JpdHkgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIElTU1VFX1RZUEU6IGZhbHNlLFxyXG4gICAgICBBU1NPQ0lBVEVEX1JJU0tTOiBpc3N1ZURhdGEuYXNzb2NpYXRlZF9yaXNrLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlza1swXS50ZXh0Lmxlbmd0aFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlXHJcbiAgICAgICAgOiBmYWxzZSxcclxuICAgICAgT1ZFUlNJR0hUOlxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5jY19lbWFpbC5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyLmZhaWx1cmVfY2NfZW1haWwubGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgbGlzdCBvZiBzZWxlY3RlZCBvdmVyc2VlclxyXG4gICAqIEBwYXJhbSBhbGxVc2VyTGlzdCBsaXN0IG9mIGFsbCB1c2VycyBpbiB0aGUgb3JnYW56YXRpb25cclxuICAgKiBAcGFyYW0gb3ZlcnNlZXJMaXN0ICBsaXQgb2YgdGhlIG92ZXJzZWVyIHRoYXQgbmVlZHMgdG8gYmUgZmlsdGVyZWRcclxuICAgKiBAcmV0dXJucyAgbGlzdCBvZiBhcnJheSBjb250YWluaW5nIHRoZSB1c2VycyBvYmplY3RzXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVPdmVyc2Vlckxpc3QoYWxsVXNlckxpc3Q6IGFueSwgb3ZlcnNlZXJMaXN0OiBhbnkpIHtcclxuICAgIHJldHVybiBvdmVyc2Vlckxpc3QubWFwKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgZm91bmRVc2VyID0gYWxsVXNlckxpc3QuZmluZChcclxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Lm15X21lbWJlcl9pZCA9PT0gdXNlci5tZW1iZXJfaWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKGZvdW5kVXNlcikge1xyXG4gICAgICAgIHJldHVybiBmb3VuZFVzZXI7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXNldHMgaXNzdWUgZm9ybVxyXG4gICAqL1xyXG4gIHJlc2V0SXNzdWVGb3JtKCkge1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICAgIGV2aWRlbmNlUmVxdWlyZWQ6IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246ICcnLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogW10sXHJcbiAgICAgIGlzc3VlUkM6IFtdLFxyXG4gICAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6IGZhbHNlLFxyXG4gICAgICBlbnRydXN0VG86IFtdLFxyXG4gICAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgICBpc3N1ZUR1ZVRpbWU6IERFRkFVTFRfVElNRSxcclxuICAgICAgZXhjZXB0aW9uVHlwZTogMSxcclxuICAgICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgICBpc3N1ZVByaW9yaXR5OiAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiAnJyxcclxuICAgICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogW10sXHJcbiAgICAgIGZhaWx1cmVDQ1VzZXJzOiBbXSxcclxuICAgICAgcmVzcG9uc2liaWxpdHlMaW5rZWQ6IFtdLFxyXG4gICAgfTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cykpIHtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2tleV0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuc21pbGV5TWVzc2FnZSA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQuYDtcclxuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmVtaXQodGhpcy5tb2RlKTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFJDKCk7XHJcbiAgfVxyXG4gIGNoZWNrRGVzY3JpcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMudmFsaWRhdGVEYXRlKGV2ZW50LnNlbGVjdGVkVmFsdWUsIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUgPSBldmVudC5zZWxlY3RlZFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVEYXRlKHRpbWU6IHN0cmluZywgZGF0ZVN0cmluZzogYW55KSB7XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlKSB7XHJcbiAgICAgIGNvbnN0IGlzTW9tZW50ID0gbW9tZW50LmlzTW9tZW50KGRhdGVTdHJpbmcuZ2V0VGltZSgpKTtcclxuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShcclxuICAgICAgICBpc01vbWVudCA/IGRhdGVTdHJpbmc/LmRhdGU/Ll9kIDogZGF0ZVN0cmluZy5nZXRUaW1lKClcclxuICAgICAgKTtcclxuICAgICAgY29uc3QgaXNzdWVEdWVEYXRlID0gY3VycmVudERhdGUudG9EYXRlU3RyaW5nKCkuc3BsaXQoJyAnKTtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbW9tZW50KFxyXG4gICAgICAgIGAke2lzc3VlRHVlRGF0ZVsxXX0tJHtpc3N1ZUR1ZURhdGVbMl19LSR7aXNzdWVEdWVEYXRlWzNdfSAke3RpbWV9YCxcclxuICAgICAgICAnTU1NLURELVlZWVkgSEg6bW0gYSdcclxuICAgICAgKS51bml4KCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZERhdGUgKiAxMDAwIDwgRGF0ZS5ub3coKSkge1xyXG4gICAgICAgIHRoaXMuaXNGdXR1cmVEYXRlID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRnV0dXJlRGF0ZSA9IHRydWU7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCBnZXREYXRlVmFsaWRhdGlvbk1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gJ1BsZWFzZSBzZXQgYSBmdXR1cmUgZGF0ZS4nO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxwPmxvZy1hbi1pc3N1ZSB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwibG9nLWFuLWlzc3VlXCIgKm5nSWY9XCIhc2hvd1NtaWxleVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJmYWxzZVwiPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPkxpbmtlZCB0b1xyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLCAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBMaW5rIE1vcmUgUmVzcG9uc2liaWxpdGllc1xyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgcmVzcG9uc2liaWxpdHlcIlxyXG4gICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICpuZ0lmPVwiIVsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pICYmICFsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGggXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLCAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJylcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSB8fCBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ0lmPVwiWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiYgcmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgZnVsbC13aWR0aFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IHJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScsIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRbMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiYgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZFswXT8uUmVwb3J0TmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRbMF0/LlJlcG9ydE5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cIihbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSAmJiBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGggKSB8fCBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGggPjFcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJsaW5rUmVzcC5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAre3sgIVsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pID8gbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoIC0xIDogbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknICYmIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJywgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1wb3BvdmVyICNsaW5rUmVzcCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlc3Agb2YgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZCB8IHNsaWNlOiAhWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgPyAxIDogMFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLCByZXNwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgcmVzcD8uUmVwb3J0TmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiXHJcbiAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICBvcGVuZWRGcm9tXHJcbiAgICAgICkgfHwgaXNSaXNrQ29udHJvbFZpc2libGVcclxuICAgIFwiXHJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DT05UUk9MX1JJU0snXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlNlbGVjdCBhIGNvbnRyb2wgb3IgcmlzazwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2sgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ09OVFJPTF9SSVNLJywgJ0lTU1VFX0NPTlRST0xfUklTSycpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjb250cm9sIG9yIHJpc2suXCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgICAgICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ09OVFJPTF9SSVNLJyxsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUNvbnRyb2xOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycsICdJU1NVRV9DT05UUk9MX1JJU0snKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyB8IGtleXZhbHVlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0ge3tsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWd8anNvbn19IC0tPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57e1xyXG4gICAgICAgICAgdGFnPy52YWx1ZT8uY3VzdG9tX3RhZ19uYW1lXHJcbiAgICAgICAgfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRhZz8udmFsdWU/LmN1c3RvbV90YWdfbmFtZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy52YWx1ZS5jdXN0b21fdGFnX3ZhbHVlXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIElzc3VlIFRpdGxlIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGhcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aGF0LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwibmFtZVwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICFsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5Jc3N1ZSBUaXRsZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgYSBuYW1lIGZvciB0aGlzIGlzc3VlXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZVwiXHJcbiAgICAgICAgICAoZm9jdXNpbik9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9USVRMRScsICdJU1NVRV9USVRMRScpXCJcclxuICAgICAgICAgIChrZXl1cCk9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZT8udHJpbSgpPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgPyByZW1vdmVFcnJvcignaXNzdWVOYW1lJylcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoZm9jdXNvdXQpPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignJywgJycpXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUgPT0gJycgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUubGVuZ3RoICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfVElUTEUnLCAnSVNTVUVfVElUTEUnKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZU5hbWUnKVwiPlxyXG4gICAgICAgICAgRW50ZXIgYSBuYW1lIGZvciB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzBdPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzBdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyB1cGxvYWRpbmdGaWxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdJU1NVRV9ERVNDUklQVElPTicpXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIntcclxuICAgICAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgZmlsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdEZXNjcmlwdGlvbidcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnSVNTVUVfREVTQ1JJUFRJT04nLCAkZXZlbnQpXCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBpc3N1ZSB0eXBlIHN0YXJ0LS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdCBjaGVja2VkXCI+XHJcbiAgICAgIDwhLS0gPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9USVRMRSdcIj4gLS0+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj4gSXNzdWUgVHlwZSA8L2xhYmVsPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBuYW1lPVwiaXNzdWUtdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlVHlwZSA9PT0gJ2lzc3VlJ1wiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldElzc3VlVHlwZSgnaXNzdWUnKVwiXHJcbiAgICAgICAgICA+SXNzdWVcclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgbmFtZT1cImlzc3VlLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgPT09ICdpbmNpZGVudCdcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRJc3N1ZVR5cGUoJ2luY2lkZW50JylcIlxyXG4gICAgICAgICAgPkluY2lkZW50XHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gSXNzdWUgQ2F0ZWdvcnkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0FURUdPUlknXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWScgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQVRFR09SWSdcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPklzc3VlIENhdGVnb3J5PC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5IHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCAnSVNTVUVfQ0FURUdPUlknKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjYXRlZ29yeSBmb3IgdGhpcyBpc3N1ZVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICBkZWxldGVJdGVtKCdJU1NVRV9DQVRFR09SWScsIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXSlcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQVRFR09SWScsbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCAnSVNTVUVfQ0FURUdPUlknKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZUNhdGVnb3J5JylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNlbGVjdCBhbiBpc3N1ZSBjYXRlZ29yeS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8IS0tIHt7bG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnfGpzb259fSAtLT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3sgdGFnPy5uYW1lIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwidGFnPy5uYW1lXCIgWyhuZ01vZGVsKV09XCJ0YWcudmFsdWVcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFJlc3BvbnNpYmlsaXR5IENlbnRlciAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGhcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5SZXNwb25zaWJpbGl0eSBDZW50ZXJcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiAqbmdJZj1cImlzUkNNYW5kYXRvcnlcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXT8uaXRlbV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdPy5pdGVtX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJSQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICt7eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/LnNsaWNlKDEpPy5sZW5ndGggfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjUkMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICBsZXQgcmMgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgcmM/Lml0ZW1fbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFdobyAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hvLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGYpICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPldobz8gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbyB8fCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfV0hPJywgJ0lTU1VFX1dITycpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gaXMgcmVzcG9uc2libGUgZm9yIGNvbXBsZXRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5P1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9XSE8nLCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfV0hPJyxsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsICdJU1NVRV9XSE8nKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2VudHJ1c3RUbycpXCI+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIHBlcnNvbiByZXNwb25zaWJsZSBmb3IgcmVzb2x2aW5nIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic3dpdGNoLXJvdyBhbGlnbi1yaWdodFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YXBwLWNzLXN3aXRjaFxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICAgICAgWyhuZ1ZhbHVlKV09XCJsb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cImFzc2lnbk15c2VsZigkZXZlbnQpXCJcclxuICAgICAgICAgICAgPk9SIEFTU0lHTiBUTyBNWVNFTEY8L2FwcC1jcy1zd2l0Y2hcclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBNYXhpbXVuIFRpbWUgdG8gUmVzb2x2ZSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9EQVRFX1RJTUUnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVEYXRlXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hlbi5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZSB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0RBVEVfVElNRSdcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVEYXRlICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfREFURV9USU1FJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+TWF4aW11bSBUaW1lIHRvIFJlc29sdmUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS10aW1lLXBpY2tlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlci1ncm91cFwiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBhIGRlYWRsaW5lLlwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgICNkYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIlxyXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgcmVtb3ZlRXJyb3IoJ2lzc3VlRHVlRGF0ZScpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInBpY2tlci1ncm91cFwiXHJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInRpbWVQaWNrZXIucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAobW91c2VvdmVyKT1cInNldEN1cnJlbnRUaW1lKClcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRHVlVGltZVwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCJcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW21pbl09XCJjdXJyZW50VGltZVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTU1OzwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGFwcC1wb3BvdmVyICN0aW1lUGlja2VyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPGFwcC10aW1lLXBpY2tlclxyXG4gICAgICAgICAgICAgIFt0aW1lXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIChvblRpbWVTZWxlY3Rpb24pPVwiXHJcbiAgICAgICAgICAgICAgICBvblRpbWVDaGFuZ2VkKCRldmVudCk7IHRpbWVQaWNrZXIuY2xvc2VQb3BvdmVyKCd0b3AnKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L2FwcC10aW1lLXBpY2tlcj5cclxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHBcclxuICAgICAgICAgIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbiAgICAgICAgICAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVEdWVEYXRlJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNlbGVjdCB0aGUgZGF0ZSBieSB3aGljaCB0aGlzIGlzc3VlIG5lZWRzIHRvIGJlIHJlc29sdmVkLlxyXG4gICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCIhaXNGdXR1cmVEYXRlXCI+XHJcbiAgICAgICAgICB7eyBnZXREYXRlVmFsaWRhdGlvbk1lc3NhZ2UgfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUmVjb21tZW5kZWQgQWN0aW9ucyAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb25cIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZWNvbW1lbmRlZC1hY3Rpb24uc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGhcIlxyXG4gICAgICAvPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGggPiAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5SZWNvbW1lbmRlZCBBY3Rpb25zIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1sxXT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1sxXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgdXBsb2FkaW5nRmlsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBmaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUZpbGUoZmlsZSwgJ1JFQ09NTUVOREVEX0FDVElPTlMnKVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvblwiXHJcbiAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIntcclxuICAgICAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgICAgICBmaWxlOiB0cnVlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1JlY29tbWVuZGVkIGFjdGlvbnMnXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlUmVjb21tZW5kYXRpb24/LnRyaW0oKT8ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gcmVtb3ZlRXJyb3IoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVxyXG4gICAgICAgICAgICAgIDogbnVsbFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdSRUNPTU1FTkRFRF9BQ1RJT05TJywgJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgICAgPHBcclxuICAgICAgICAgIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbiAgICAgICAgICAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVSZWNvbW1lbmRhdGlvbicpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTcGVjaWZ5IHRoZSByZWNvbW1lbmRlZCBhY3Rpb25zIHRvIHJlc29sdmUgdGhpcyBpc3N1ZS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gKm5nSWY9XCIhaGlkZGVuTGlzdC5pbmNsdWRlcygnUklTS19DTEFTU0lGSUNBVElPTicpXCIgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCIgLS0+XHJcbiAgPCEtLSByZW1vdmVkIHRoZSBhYm92ZSBjb25kaXRpb24gc2luY2UgUmlzayBDbGFzc2lmaWNhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHQgaW4gbG9nIGFuIGlzc3VlIGZvcm0gLS0+XHJcblxyXG4gIDwhLS0gUmlzayBDbGFzc2lmaWNhdGlvbiAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBpZD1cInJpc2tfY2xhc3NpZmljYXRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlUmlza1JhdGluZ1wiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SaXNrIENsYXNzaWZpY2F0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xhc3NpZmljYXRpb25cIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBjbGFzcz1cImxvd1wiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjbGFzcyBvZiByaXNrQ2xhc3NpZmljYXRpb25cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJbY2xhc3MuY2xhc3NdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NpZmljYXRpb25cIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJjbGFzcy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmcgPT09IGNsYXNzLnZhbHVlXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJpc2tSYXRpbmdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjbGFzcy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBFeGNlcHRpb24gVHlwZSAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVYQ0VQVElPTl9UWVBFXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID4gLTFcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9leGNlcHRpb24tdHlwZS5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA9PT0gbnVsbFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID4gLTFcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5FeGNlcHRpb24gVHlwZTwvbGFiZWw+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCIxXCJcclxuICAgICAgICAgIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IDFcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oMSlcIlxyXG4gICAgICAgICAgPkRlc2lnbiBFeGNlcHRpb25cclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIjJcIlxyXG4gICAgICAgICAgbmFtZT1cImV4Y2VwdGlvbi10eXBlXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA9PT0gMlwiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV4Y2VwdGlvbigyKVwiXHJcbiAgICAgICAgICA+RWZmZWN0aXZlbmVzcyBFeGNlcHRpb25cclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBQcmlvcml0eSAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLlBSSU9SSVRZXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5XCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcHJpb3JpdHkuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5XCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHkgPiAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UHJpb3JpdHk8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbGFzc2lmaWNhdGlvblwiPlxyXG4gICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcmlvcml0eSBvZiByaXNrUHJvcml0eVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltwcmlvcml0eS5jbGFzc11cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJjbGFzc2lmaWNhdGlvbi1wcmlvcml0eVwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInByaW9yaXR5LnZhbHVlXCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHkgPT09IHByaW9yaXR5LnZhbHVlXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVByaW9yaXR5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4+e3sgcHJpb3JpdHkubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQXNzb2NpYXRlZCBSaXNrcyAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkFTU09DSUFURURfUklTS1NcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlza1wiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUFzc29jaWF0ZWRSaXNrLnRyaW0oKS5sZW5ndGhcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVBc3NvY2lhdGVkUmlzay50cmltKCkubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+QXNzb2NpYXRlZCBSaXNrcyA8L2xhYmVsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJBdHRhY2htZW50VHJhY2tbMl0/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXBsb2FkaW5nRmlsZSBvZiBBdHRhY2htZW50VHJhY2tbMl1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdBU1NPQ0lBVEVEX1JJU0tTJylcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlQXNzb2NpYXRlZFJpc2tcIlxyXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgZmlsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQXNzb2NpYXRlZCBSaXNrcydcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIlxyXG4gICAgICAgICAgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ0FTU09DSUFURURfUklTS1MnLCAkZXZlbnQpXCJcclxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBPdmVyc2VlciAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXHJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuT1ZFUlNJR0hUXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgIVsnSVNTVUVfQ0MnLCAnSVNTVUVfRkNDJ10uaW5jbHVkZXMoYWN0aXZlRmllbGQpICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibGVmdFwiXHJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cIlxyXG4gICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMFxyXG4gICAgICBcIlxyXG4gICAgPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID09PSAwICYmXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMCkgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0MnIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0ZDQydcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0MnKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9GQ0MnXHJcbiAgICAgICAgXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+T3ZlcnNpZ2h0PC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnMgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0MnLCAnSVNTVUVfQ0MnKVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIHNob3VsZCBoYXZlIG92ZXJzaWdodCBvZiB0aGlzIGlzc3VlP1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLCBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIkNDLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgK3t7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGggfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyIChjbGljayk9XCJDQy5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2xvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NDJywgJ0lTU1VFX0NDJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0ZDQycsICdJU1NVRV9GQ0MnKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gc2hvdWxkIGJlIG5vdGlmaWVkIGlmIHRoZSBpc3N1ZSBpcyBub3QgcmVzb2x2ZWQ/XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiRkNDLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAre3sgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfRkNDJyxsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAxXCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIkZDQy5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0ZDQydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0ZDQycsICdJU1NVRV9GQ0MnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjQ0MgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICBsZXQgY2Mgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnMgfCBzbGljZSA6IDE7XHJcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJywgY2MpXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBjYz8uZW1wbG95ZWVfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgPGFwcC1wb3BvdmVyICNGQ0MgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICBsZXQgZmNjIG9mIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnMgfCBzbGljZSA6IDE7XHJcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsIGZjYylcIlxyXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGZjYz8uZW1wbG95ZWVfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEV2aWRlbmNlIC0tPlxyXG4gIDxkaXZcclxuICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVZJREVOQ0VcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJ0cnVlXCI+XHJcbiAgICAgIDwhLS0gPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vZm9ybWF0LWV2aWRlbmNlLnN2Z1wiIGFsdD1cImltXCI+IC0tPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5FdmlkZW5jZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiXHJcbiAgICAgICAgICAgID5EbyB5b3Ugd2FudCBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIHRoZSBpc3N1ZSB0byBiZVxyXG4gICAgICAgICAgICB1cGxvYWRlZD88L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwiJ2ZpbGUtZXZpZGVuY2UnXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5ldmlkZW5jZVJlcXVpcmVkID09PSAxXCJcclxuICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV2aWRlbmNlKDEpXCJcclxuICAgICAgICAgICAgICA+WWVzXHJcbiAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwiJ2ZpbGUtZXZpZGVuY2UnXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiMFwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5ldmlkZW5jZVJlcXVpcmVkID09PSAwXCJcclxuICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV2aWRlbmNlKDApXCJcclxuICAgICAgICAgICAgICA+Tm9cclxuICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX0NBVEdPUllcIlxyXG4gIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/LmNhdGVnb3J5TGlzdFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnlcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidjYXRlZ29yeV9pZCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidjYXRlZ29yeV9uYW1lJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0NBVEVHT1JZJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DQVRFR09SWScpXCJcclxuPlxyXG48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1yZXNwb25zaWJpbGl0eS1jZW50ZXJzLWxpc3RcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfUkMnXCJcclxuICBbcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdF09XCJsaXN0RGF0YT8ucmNMaXN0XCJcclxuICBbcmFkaW9TZWxlY3Rpb25dPVwiZmFsc2VcIlxyXG4gIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVyc109XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNcIlxyXG4gIFtyY0lkS2V5XT1cIidpdGVtX2lkJ1wiXHJcbiAgKHNhdmVTZWxlY3RlZExpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfUkMnKVwiXHJcbiAgKGNsb3NlUmNMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfUkMnKVwiXHJcbj5cclxuPC9hcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0PlxyXG5cclxuPGFwcC1yYWRpby1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfV0hPXCJcclxuICBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy51c2VyTGlzdFwiXHJcbiAgW3R3b0NvbHVtbl09XCJ0cnVlXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uZW50cnVzdFRvXCJcclxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfaWQnXCJcclxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9XSE8nXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfV0hPJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9XSE8nKVwiXHJcbj48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1yYWRpby1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfVFlQRVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8uaXNzdWVUeXBlTGlzdFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlVHlwZVwiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2lzc3VlX2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2lzc3VlX3R5cGVfbmFtZSdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9UWVBFJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1RZUEUnKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1RZUEUnKVwiXHJcbj48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfQ0NcIlxyXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJcclxuICAgIGxpc3REYXRhLnVzZXJMaXN0XHJcbiAgICAgIHwgdXNlckZpbHRlclxyXG4gICAgICAgIDogJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgIDogbG9nSXNzdWVGb3JtLmVudHJ1c3RUb1xyXG4gICAgICAgIDogeyBlbXBsb3llZV9lbWFpbDogY3VycmVudFVzZXI/LmVtYWlsIH1cclxuICBcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnNcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXHJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0NDJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0NDJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DQycpXCJcclxuPjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcblxyXG48YXBwLWNoZWNrYm94LWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9GQ0NcIlxyXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJcclxuICAgIGxpc3REYXRhLnVzZXJMaXN0XHJcbiAgICAgIHwgdXNlckZpbHRlclxyXG4gICAgICAgIDogJ2VtcGxveWVlX2VtYWlsJ1xyXG4gICAgICAgIDogbG9nSXNzdWVGb3JtLmVudHJ1c3RUb1xyXG4gICAgICAgIDogeyBlbXBsb3llZV9lbWFpbDogY3VycmVudFVzZXI/LmVtYWlsIH1cclxuICBcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vyc1wiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcclxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfRkNDJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0ZDQycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfRkNDJylcIlxyXG4+PC9hcHAtY2hlY2tib3gtbGlzdD5cclxuXHJcbjxhcHAtcmVzcG9uc2liaWxpdHktcmlzay1zZWxlY3RvclxyXG4gIFtsb2FkaW5nXT1cImlzUmlza0NvbnRyb2xMb2FkaW5nXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycpXCJcclxuICAoZmV0Y2hMaXN0KT1cImdldExpbmthZ2UoaXNzdWVEZXRhaWxzPy5hdWRpdE9iaklkLCAkZXZlbnQpXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfQ09OVFJPTF9SSVNLJylcIlxyXG4gIFthY3RpdmVFbnRpdHldPVwibG9nSXNzdWVGb3JtPy5saW5rYWdlVHlwZVwiXHJcbiAgW2xpc3RJdGVtc109XCJsaXN0RGF0YT8ubGlua2FnZUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tcIlxyXG4+PC9hcHAtcmVzcG9uc2liaWxpdHktcmlzay1zZWxlY3Rvcj5cclxuXHJcbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmVcclxuICAqbmdJZj1cInNob3dTbWlsZXlcIlxyXG4gIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxyXG4gIChhY3Rpb24pPVwiYWN0aW9uKCRldmVudClcIlxyXG4gIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCJcclxuPlxyXG48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cclxuXHJcbjxhcHAtbGluay1yZXNwb25zaWJpbGl0eS1saXN0XHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWSdcIlxyXG4gIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzXT1cImxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRcIlxyXG4gIChjbG9zZUJ1dHRvbik9XCJmaWVsZERlc2VsZWN0b3IoJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScpXCJcclxuICBbcmVzcElkS2V5XT1cIidSZXBvcnRJZCdcIlxyXG4gIFtyYWRpb1NlbGVjdGlvbl09XCJmYWxzZVwiXHJcbiAgKHNlbGVjdGVkUmVzcG9uc2liaWxpdHkpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJylcIlxyXG4+PC9hcHAtbGluay1yZXNwb25zaWJpbGl0eS1saXN0PlxyXG5cclxuIl19
|