vcomply-workflow-engine 3.1.48 → 3.1.50
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/more-option/more-option.component.mjs +2 -1
- package/esm2020/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +13 -9
- package/esm2020/lib/workflow-engine-container/workflow-engine-container.component.mjs +2 -1
- package/fesm2015/vcomply-workflow-engine.mjs +15 -9
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +14 -8
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -460,6 +460,7 @@ export class WorkflowEngineContainerComponent {
|
|
|
460
460
|
}
|
|
461
461
|
}
|
|
462
462
|
hideElementsFromMoreOptions(event) {
|
|
463
|
+
console.log('===========================> container', event);
|
|
463
464
|
this.moreOption?.hideElements(event);
|
|
464
465
|
}
|
|
465
466
|
showConfirmationPopup(config) {
|
|
@@ -708,4 +709,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
708
709
|
type: HostListener,
|
|
709
710
|
args: ['window:resize', ['$event']]
|
|
710
711
|
}] } });
|
|
711
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCdkIsTUFBTSxPQUFPLGdDQUFnQztJQVczQyxZQUNTLFlBQTBCLEVBQ3pCLFFBQXlCLEVBQzFCLElBQWlCO1FBRmpCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFiMUIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQWEzQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ2hCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixlQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQWUsRUFBRSxDQUFDLENBQUMseUNBQXlDO1FB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LEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBME5uRCxVQUFVO3NCQURULFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFkZE11bHRpcGxlUmlza0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1tdWx0aXBsZS1yaXNrL2FkZC1tdWx0aXBsZS1yaXNrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbkFsZXJ0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maXJtYXRpb24tYWxlcnQnO1xyXG5pbXBvcnQgeyBJc3N1ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lzc3VlLWRhdGEnO1xyXG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctYXNzZXNzbWVudC93b3JrZmxvdy1hc3Nlc3NtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctY29tcGxpYW5jZS93b3JrZmxvdy1jb21wbGlhbmNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtmbG93UG9saWN5Q29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctcG9saWN5L3dvcmtmbG93LXBvbGljeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd1Jpc2tDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1yaXNrL3dvcmtmbG93LXJpc2suY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ0FuSXNzdWVDb21wb25lbnQgfSBmcm9tICcuLy4uL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9yZU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vLi4vbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctcHJvZ3JhbS93b3JrZmxvdy1wcm9ncmFtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93L2dyYy1vYmplY3QvZ3JjLW9iamVjdC1jb250YWluZXIvZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXZjb21wbHktd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50Lmxlc3MnLCAnLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dFbmdpbmVDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIGlzSG9zdFJlZnJlc2hBY3RpdmUgPSB0cnVlO1xyXG4gIGlzUkNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGZlYXR1cmVGbGFnX2dyb3VwczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnLCBbJyRldmVudCddKVxyXG4gIHVubG9hZE5vdGlmaWNhdGlvbigkZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgdG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgIGlmICh0aGlzLmlzSG9zdFJlZnJlc2hBY3RpdmUgJiYgdG9rZW4pIHtcclxuICAgICAgJGV2ZW50LnJldHVyblZhbHVlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYXV0aDogQXV0aFNlcnZpY2VcclxuICApIHt9XHJcbiAgQElucHV0KCkgd29ya2Zsb3dUeXBlID0gJyc7XHJcbiAgQElucHV0KCkgbW9kZSA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGlkID0gJyc7XHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICdHTE9CQUwnO1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGFsbG93ZWRXb3JrZmxvd3M6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGZyYW1ld29ya0RldGFpbHM6IEFycmF5PGFueT4gPSBbXTsgLy8gb25seSBmb3IgY29tcGxpYW5jZSBwYXJ0IGZvciBmcmFtZXdvcmtcclxuICBASW5wdXQoKSBzZWxlY3RlZFJDID0gJyc7XHJcbiAgQElucHV0KCkgc2Vjb25kYXJ5T3BlblBvcnRhbCA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRSaXNrVHlwZSA9ICdOT1JNQUwnO1xyXG4gIEBJbnB1dCgpIG1vdmVUb1JlZ2lzdGVyTW9kZSA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlcG9uc2liaWxpdHlEYXRhID0ge1xyXG4gICAgLy8gb25seSB1c2VkIGJ5IGxvZyBhbiBpc3N1ZVxyXG4gICAgcmVzcG9uc2liaWxpdHlJZDogbnVsbCxcclxuICAgIHJlc3BvbnNpYmlsaXR5TmFtZTogJycsXHJcbiAgICByY0lkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgcGlkID0gJyc7XHJcbiAgQElucHV0KCkgcHJvZ3JhbVR5cGU6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgaXNzdWVEYXRhID0ge1xyXG4gICAgYXVkaXRQbGFuSWQ6IG51bGwsXHJcbiAgICBhdWRpdFBsYW5OYW1lOiAnJyxcclxuICAgIHJjSWQ6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoKSBlbnRydXN0QnV0dG9uTmFtZSA9ICdFbnRydXN0JztcclxuICBASW5wdXQoKSBjb25maWchOiBJc3N1ZUNvbmZpZ3VyYXRpb247XHJcbiAgQElucHV0KCkgY29udmVydEZpbGVEYXRhID0ge307XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yeSA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3RlZFByb2dyYW06IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgY2FuRnJhbWV3b3JrQ2hhbmdlOiBib29sZWFuID0gdHJ1ZTsgLy8gaWYgZnJhbWV3b3JrIGNhbiBFZGl0ZWQgb3Igbm90OyBGb3IgQ3JlYXRlIGEgcHJvZ3JhbVxyXG4gIEBJbnB1dCgpIC8qICAqL1xyXG4gIC8qICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYWRkVG9Qcm9ncmFtRGV0YWlsczoge1xyXG4gICAgX2lkOiBzdHJpbmc7XHJcbiAgICBmcmFtZXdvcmtfbmFtZTogc3RyaW5nO1xyXG4gICAgaWQ/OiBudW1iZXI7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIH0gPSB7XHJcbiAgICBfaWQ6ICcnLFxyXG4gICAgZnJhbWV3b3JrX25hbWU6ICcnLFxyXG4gICAgaWQ6IDAsXHJcbiAgICB0eXBlOiAnJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICB9O1xyXG4gIEBJbnB1dCgpIGdyY1R5cGU6IDAgfCAxIHwgMiB8IDMgPSAwO1xyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIHdvcmtmbG93TGlzdCA9IGZhbHNlO1xyXG4gIHNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcclxuICBpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UhOiBib29sZWFuO1xyXG4gIGNoZWNrcG9pbnRDb3VudDogbnVtYmVyID0gMDtcclxuICBjdXJyZW50QnVzaW5lc3NDeWNsZTogYW55ID0gJyc7XHJcbiAgQFZpZXdDaGlsZCgncmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KSByaXNrQ29tcG9uZW50ITogV29ya2Zsb3dSaXNrQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHJpc2tCdWxrVXBsb2FkITogQWRkTXVsdGlwbGVSaXNrQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBjb21wbGlhbmNlITogV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ21vcmVPcHRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgbW9yZU9wdGlvbiE6IE1vcmVPcHRpb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93biE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25Sb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25Sb3chOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3BvbGljeScpIHBvbGljeSE6IFdvcmtmbG93UG9saWN5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2xvZ0FuSXNzdWUnKSBsb2dJc3N1ZUNvbXBvbmVudCE6IExvZ0FuSXNzdWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYXNzZXNzbWVudCcpXHJcbiAgd29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50ITogV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2ltcG9ydEFzc2Vzc21lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbXBvcnRBbkFzc2Vzc21lbnQhOiBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncHJvZ3JhbScsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm9ncmFtITogV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2dyY09iamVjdCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGdyY09iamVjdCE6IEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudDtcclxuXHJcbiAgZHJvcGRvd25MZWZ0ITogYW55O1xyXG4gIGRyb3Bkb3duVG9wITogYW55O1xyXG4gIGRyb3Bkb3duV2lkdGghOiBhbnk7XHJcbiAgY2xvc2VPbkVzYzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIGZlYXR1cmUgZmxhZ1xyXG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcclxuICBvcmdhbml6YXRpb25EZXRhaWxzOiBhbnk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihcclxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50XHJcbiAgKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcclxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQ/LnNob3dTbWlsZXksXHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSxcclxuICAgICAgXS5pbmNsdWRlcyh0cnVlKSB8fFxyXG4gICAgICB0aGlzLnByb2dyYW0/LmFjdGl2ZUxpc3QgfHxcclxuICAgICAgdGhpcy5jb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciB8fFxyXG4gICAgICB0aGlzLmdyY09iamVjdD8ub3BlbmVkUG9wdXBcclxuICAgICkge1xyXG4gICAgICAvL0RvIE5vdGhpbmdcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VXb3JrZmxvd0VuZ2luZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VycmVudFdvcmtmbG93ITogYW55O1xyXG4gIHdvcmtmbG93VHlwZUxpc3Q6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgUmVzcG9uc2liaWxpdHknLFxyXG4gICAgICBjb2RlOiAnQ0FSJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSRVNQT05TSUJJTElUWScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgTXVsdGlwbGUgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgIGNvZGU6ICdDTVInLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JFU1BPTlNJQklMSVRZJyxcclxuICAgIH0sXHJcbiAgICB7IHdvcmtmbG93TmFtZTogJ0FkZCBhIFJpc2snLCBjb2RlOiAnQUFSJywgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSSVNLJyB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdBZGQgTXVsdGlwbGUgUmlza3MnLFxyXG4gICAgICBjb2RlOiAnQU1SJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdNVUxUSVBMRV9SSVNLJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFBvbGljeScsXHJcbiAgICAgIGNvZGU6ICdDQVAnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1BPTElDWScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBTdXJ2ZXknLFxyXG4gICAgICBjb2RlOiAnQ0FTJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdTVVJWRVknLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgRm9ybScsXHJcbiAgICAgIGNvZGU6ICdDQUYnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0ZPUk0nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnTG9nIGFuIElzc3VlJyxcclxuICAgICAgY29kZTogJ0xBSScsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSVNTVUUnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGFuIEFzc2Vzc21lbnQnLFxyXG4gICAgICBjb2RlOiAnQUFBJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdBU1NFU1NNRU5UJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0ltcG9ydCBhbiBBc3Nlc3NtZW50JyxcclxuICAgICAgY29kZTogJ0lBQScsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSU1QT1JUX0FTU0VTU01FTlQnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUHJvZ3JhbScsXHJcbiAgICAgIGNvZGU6ICdDQVBSJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdQUk9HUkFNJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0FkZCBhIEdSQyBPYmplY3QnLFxyXG4gICAgICBjb2RlOiAnR1JDJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdHUkNfT0JKRUNUUycsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgYWRkaXRpb25hbEluZm9ybWF0aW9uTGlzdCA9IFtcclxuICAgICdPYmplY3RpdmUnLFxyXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAnUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnknLFxyXG4gIF07XHJcbiAgY29uZmlybWF0aW9uQWxlcnRDb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0ID0geyBpc1Zpc2libGU6IGZhbHNlIH07XHJcbiAgY2xvc2VXb3JrZmxvd0VuZ2luZShldnQ/OiBhbnkpIHtcclxuICAgIGlmIChldnQ/LmNvbmZpcm0gPT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KGV2dCA/IGV2dC5ldnQgOiBldnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbG9zZUNvbmZpcm0oZXZ0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlQ29uZmlybShldnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOiAnSWYgeW91IG5hdmlnYXRlIGF3YXksIGFueSB1bnNhdmVkIGNoYW5nZXMgd2lsbCBiZSBsb3N0LicsXHJcbiAgICAgIGFjdGlvbjogJ1dPUktGTE9XX0NMT1NFJyxcclxuICAgICAgZGF0YTogZXZ0LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZXhlY3V0ZUNsb3NlKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0LmFjdGlvbiA9PT0gJ1lFUycpIHtcclxuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE5ldHdvcmtMaXN0bmVyKCk7XHJcbiAgICB0aGlzLnNldFdvcmtmbG93KHRoaXMud29ya2Zsb3dUeXBlLCB0aGlzLndvcmtmbG93VHlwZUxpc3QpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCA1MDApO1xyXG4gICAgdGhpcy5zZXRXb3JrZmxvdyh0aGlzLndvcmtmbG93VHlwZSwgdGhpcy53b3JrZmxvd1R5cGVMaXN0KTtcclxuICAgIHRoaXMuZGVjaWRlVmlld01vcmVPcHRpb24oKTtcclxuICAgIHRoaXMuZmV0Y2hPcmdhbml6YXRpb25EZXRhaWxzKCk7XHJcbiAgICB0aGlzLmdldFVzZXJEZXRhaWxzKCk7XHJcbiAgICB0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWcgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcclxuICAgICAgJ2ZmX3Byb2dyYW1fc2ltcGxpZnknXHJcbiAgICApO1xyXG4gICAgdGhpcy5mZWF0dXJlRmxhZ19ncm91cHMgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcclxuICAgICAgJ2ZmX3Jlc3BvbnNpYmlsaXR5X2dyb3VwcydcclxuICAgICk7XHJcbiAgICB0aGlzLmlzUmVzcG9uc2liaWxpdHlTaW1wbGlmeSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TmV0d29ya0xpc3RuZXIoKSB7XHJcbiAgICBhZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKGUpID0+IHtcclxuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxyXG4gICAgICAgICdDb25uZWN0aW9uIGxvc3QhPGJyPkNoZWNrIHlvdXIgbmV0d29yayBjb25uZWN0aXZpdHkuJyxcclxuICAgICAgICAnYWxlcnQnXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIChlKSA9PiB7XHJcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcIllvdSdyZSBiYWNrIG9ubGluZSFcIiwgJ3N1Y2Nlc3MnKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLndvcmtmbG93VHlwZUxpc3QgPSB0aGlzLndvcmtmbG93VHlwZUxpc3QuZmlsdGVyKCh3b3JrZmxvdzogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRXb3JrZmxvd3MuaW5jbHVkZXMod29ya2Zsb3cucGVybWlzc2lvbklkZW50aWZpZXIpKSB7XHJcbiAgICAgICAgcmV0dXJuIHdvcmtmbG93O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLm9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcpIHtcclxuICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNhYmxlV29ya2Zsb3dDaGFuZ2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVjaWRlVmlld01vcmVPcHRpb24odHlwZT86IGJvb2xlYW4pIHtcclxuICAgIGlmICh0eXBlKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VPbkVzYyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKFsnQ01SJywgJ0FNUicsICdBQUEnLCAnSUFBJ10uaW5jbHVkZXModGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpKSB7XHJcbiAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHR5cGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodHlwZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XHJcbiAgICAgIGNhc2UgJ0FBUic6XHJcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50LnN1Ym1pdFJpc2soKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnTEFJJzpcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlQ29tcG9uZW50LmFkZElzc3VlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUic6XHJcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlLnN1Ym1pdFJlc3BvbnNpYmlsaXR5KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUCc6XHJcbiAgICAgICAgdGhpcy5wb2xpY3kuc3VibWl0UG9saWN5KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0FBQSc6XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0Fzc2Vzc21lbnRDb21wb25lbnQuc3VibWl0QXNzZXNzbWVudCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDQVBSJzoge1xyXG4gICAgICAgIHRoaXMucHJvZ3JhbS5zYXZlUHJvZ3JhbSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0dSQyc6IHtcclxuICAgICAgICB0aGlzLmdyY09iamVjdC5zYXZlR1JDT2JqZWN0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2FzZSAnSUFBJzpcclxuICAgICAgLy8gICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudC5zdWJtaXRBc3Nlc3NtZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlZGl0V29ya2Zsb3coKSB7XHJcbiAgICB0aGlzLndvcmtmbG93TGlzdCA9ICF0aGlzLndvcmtmbG93TGlzdDtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5kcm9wZG93bi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5kcm9wZG93bkxlZnQgPSBkcm9wZG93bi5sZWZ0O1xyXG4gICAgdGhpcy5kcm9wZG93blRvcCA9IGRyb3Bkb3duLnRvcCArIGRyb3Bkb3duLmhlaWdodDtcclxuICAgIHRoaXMuZHJvcGRvd25XaWR0aCA9IGRyb3Bkb3duLndpZHRoO1xyXG4gIH1cclxuICBjbG9zZVdvcmtmbG93TGlzdCgpIHtcclxuICAgIHRoaXMud29ya2Zsb3dMaXN0ID0gZmFsc2U7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIHNpemVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSBmYWxzZTtcclxuICB9XHJcbiAgY2hhbmdlV29ya2Zsb3coZXZ0OiBhbnksIHNlbGVjdGVkV29ya2Zsb3c6IGFueSkge1xyXG4gICAgaWYgKHNlbGVjdGVkV29ya2Zsb3c/LmNvZGUgPT09IHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogJ0lmIHlvdSBjaGFuZ2UgdGhlIHdvcmtmbG93LCBhbnkgdW5zYXZlZCBjaGFuZ2VzIHdvdWxkIGJlIGxvc3QuJyxcclxuICAgICAgYWN0aW9uOiAnV09SS0ZMT1dfQ0hBTkdFJyxcclxuICAgICAgZGF0YTogc2VsZWN0ZWRXb3JrZmxvdyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25maXJtV29ya2Zsb3dDaGFuZ2UoZXZ0OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCA9PT09PT4nLCBldnQpO1xyXG4gICAgaWYgKGV2dC5hY3Rpb24gPT09ICdZRVMnKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VPbkVzYyA9IHRydWU7XHJcbiAgICAgIHN3aXRjaCAoZXZ0LnBheWxvYWQuYWN0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnV09SS0ZMT1dfQ0hBTkdFJzpcclxuICAgICAgICAgIHRoaXMuY3VycmVudFdvcmtmbG93ID0gZXZ0Py5wYXlsb2FkPy5kYXRhID8/IG51bGw7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubW9yZU9wdGlvbikge1xyXG4gICAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5yZXNldEFsbCh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kZWNpZGVWaWV3TW9yZU9wdGlvbigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0VESVRfUklTSyc6XHJcbiAgICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQuY3JlYXRlUmlzayh0aGlzLnJpc2tDb21wb25lbnQucmlza0Zvcm0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnUE9MSUNZX1BPUlRBTCc6XHJcbiAgICAgICAgICB0aGlzLnBvbGljeS5jb25maXJtUG9saWN5UG9ydGFsKGV2dC5hY3Rpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnV09SS0ZMT1dfQ0xPU0UnOlxyXG4gICAgICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoZXZ0Py5wYXlsb2FkPy5kYXRhKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NoZWNrcG9pbnQnOlxyXG4gICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIG9wdGlvbj8uY29kZSA9PT0gJ0FTU0VTU01FTlQnIHx8XHJcbiAgICAgICAgICAgICAgb3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJ1xyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVtb3ZlQ2hlY2twb2ludCgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ1JPTEUnOlxyXG4gICAgICAgICAgdGhpcy5wcm9ncmFtLnJlbW92ZShldnQucGF5bG9hZC5kYXRhLCAnUk9MRScpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ25ldy1jaGVja3BvaW50cyc6XHJcbiAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQVNTRVNTTUVOVCcgJiYgIWV2dC5wYXlsb2FkLmlzRGF0YVJlbW92ZWQpIHtcclxuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnICYmICFldnQucGF5bG9hZC5pc0RhdGFSZW1vdmVkKSB7XHJcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBldnQucGF5bG9hZC5pc0NoZWNrcG9pbnRDaGVja2VkICYmXHJcbiAgICAgICAgICAgICAgb3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJ1xyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBvcHRpb24uY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5tb3JlT3B0aW9ucy5DSEVDS1BPSU5UU19ORVcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlbW92ZSgnbmV3LWNoZWNrcG9pbnRzJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhc3NpZ25lZVR5cGVDaGFuZ2UnOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMud2hvQ2FuQ29tcGxldGUgPSAnQUxMJztcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLmxpc3QgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2Uuc2V0TGlzdChcclxuICAgICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UuYXNzaWduZWVzTGlzdCxcclxuICAgICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2Uub3JpZ2luYWxBc3NpZ25lZSxcclxuICAgICAgICAgICAgICAnZW1wbG95ZWVfaWQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJ3RoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0gPT0+JyxcclxuICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmVGbGFnX2dyb3Vwcykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydhc3NpZ25lZUdyb3VwcyddWydsaXN0J10gPVxyXG4gICAgICAgICAgICAgIFtdO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXHJcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXHJcbiAgICAgICAgICBdID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2FueVJldmlld2VyJzpcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xyXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xyXG4gICAgICAgICAgXSA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN3aXRjaCAoZXZ0LnBheWxvYWQuYWN0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnUE9MSUNZX1BPUlRBTCc6XHJcbiAgICAgICAgICB0aGlzLnBvbGljeS5jb25maXJtUG9saWN5UG9ydGFsKGV2dC5hY3Rpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYXNzaWduZWVUeXBlQ2hhbmdlJzpcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLndob0NhbkNvbXBsZXRlID1cclxuICAgICAgICAgICAgJ0FOWV9PTkUnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXHJcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXHJcbiAgICAgICAgICBdID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhbnlSZXZpZXdlcic6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcclxuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcclxuICAgICAgICAgIF0gPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIG1lc3NhZ2U6ICcnLFxyXG4gICAgICBhY3Rpb246ICcnLFxyXG4gICAgICBkYXRhOiBudWxsLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBldnQ7XHJcbiAgfVxyXG5cclxuICBzZXRXb3JrZmxvdyh3b3JrRmxvd0NvZGU6IGFueSwgd29ya0Zsb3dMaXN0OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkV29ya2Zsb3cgPSB3b3JrRmxvd0xpc3QuZmluZChcclxuICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudD8uY29kZSA9PT0gd29ya0Zsb3dDb2RlXHJcbiAgICApO1xyXG4gICAgc2VsZWN0ZWRXb3JrZmxvd1xyXG4gICAgICA/ICh0aGlzLmN1cnJlbnRXb3JrZmxvdyA9IHNlbGVjdGVkV29ya2Zsb3cpXHJcbiAgICAgIDogKHRoaXMuY3VycmVudFdvcmtmbG93ID0gbnVsbCk7XHJcbiAgICByZXR1cm4gc2VsZWN0ZWRXb3JrZmxvdztcclxuICB9XHJcblxyXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT4xJywgZXZlbnQpO1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xyXG4gICAgICBjYXNlICdBQVInOlxyXG4gICAgICAgIHRoaXMucmlza0NvbXBvbmVudD8uYWRkTW9yZUluZm8oZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMQUknOlxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVDb21wb25lbnQ/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0NBUic6XHJcbiAgICAgICAgaWYgKGV2ZW50Py5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICB0aGlzLm9uUmVtb3ZpbmdDaGVja3BvaW50KCdjaGVja3BvaW50Jyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50Py5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5jb2RlID09PSAnQVNTRVNTTUVOVCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uaXNEaXNhYmxlZCA9IGV2ZW50LmNoZWNrZWRcclxuICAgICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICAgIDogZmFsc2U7XHJcbiAgICAgICAgICBpZiAoZXZlbnQuY2hlY2twb2ludF9uZXcgJiYgdGhpcy5jaGVja3BvaW50Q291bnQpIHtcclxuICAgICAgICAgICAgdGhpcy5vblJlbW92aW5nQ2hlY2twb2ludCgnbmV3LWNoZWNrcG9pbnRzJywgdHJ1ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBDSEVDS1BPSU5UX0lOREVYID1cclxuICAgICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVydcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UubW9yZU9wdGlvbnMuQ0hFQ0tQT0lOVFNfTkVXID0gZXZlbnQuY2hlY2tlZDtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmNoZWNrcG9pbnRfbmV3KSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkID0gZXZlbnQuY2hlY2tlZCA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgICAgICAgICBldmVudC5jaGVja2VkID0gaXNDaGVja2VkO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltDSEVDS1BPSU5UX0lOREVYXSA9IGV2ZW50O1xyXG4gICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uaXNEaXNhYmxlZCA9XHJcbiAgICAgICAgICAgICAgZXZlbnQuY2hlY2tlZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50Py5jb2RlID09PSAnQVNTRVNTTUVOVCcpIHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVydcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uaXNEaXNhYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29tcGxpYW5jZT8uYWRkTW9yZUluZm8oZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDQVAnOlxyXG4gICAgICAgIHRoaXMucG9saWN5Py5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUFInOlxyXG4gICAgICAgIHRoaXMucHJvZ3JhbT8uYWRkTW9yZUluZm8oZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdHUkMnOlxyXG4gICAgICAgIHRoaXMuZ3JjT2JqZWN0Py5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZU1vcmVPcHRpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PicsIGV2ZW50KTtcclxuICAgIGlmICh0aGlzLm1vcmVPcHRpb24pIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uLnBvcHVsYXRlKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMubW9yZU9wdGlvbj8uaGlkZUVsZW1lbnRzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHNob3dDb25maXJtYXRpb25Qb3B1cChjb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0KSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgYnVsa1VwbG9hZEJyb3dzZShldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XHJcbiAgICAgIGNhc2UgJ0FNUic6XHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDTVInOlxyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLnRyaWdnZXJCcm93c2VGaWxlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0lBQSc6XHJcbiAgICAgICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQudHJpZ2dlckJyb3dzZUZpbGUoKTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5lbnRydXN0QnV0dG9uTmFtZSA9ICdFbnRydXN0JztcclxuICB9XHJcblxyXG4gIG9uUmVzZXRHUkNGb3JtKCkge1xyXG4gICAgdGhpcy5tb2RlID0gJ0NSRUFURSc7XHJcbiAgfVxyXG4gIHNoaWZ0VG9FZGl0TW9kZSgpIHtcclxuICAgIHRoaXMubW9kZSA9ICdFRElUJztcclxuICB9XHJcbiAgc2Nyb2xsRm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8udG9wIDwgMzgpIHtcclxuICAgICAgdGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5hZGQoJ2hpZGUnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Sb3c/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdD8ucmVtb3ZlKCdoaWRlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldmVudCB3aGljaCBtb3JlIG9wdGlvbnMgd2UgYXJlIHJlbW92aW5nLlxyXG4gICAqIEBwYXJhbSBpc0NoZWNrcG9pbnRDaGVja2VkICBpcyB0cnVlIGlmIHZhbHVlIGNoZWNrcG9pbnRzIGlzIHJlbW92ZWQgYnkgY2xpY2tpbmcgb24gbW9yZSBvcHRpb25zXHJcbiAgICovXHJcbiAgb25SZW1vdmluZ0NoZWNrcG9pbnQoXHJcbiAgICBldmVudDogc3RyaW5nLFxyXG4gICAgaXNDaGVja3BvaW50Q2hlY2tlZD86IGJvb2xlYW4sXHJcbiAgICBpc0RhdGFSZW1vdmVkPzogYm9vbGVhblxyXG4gICk6IHZvaWQge1xyXG4gICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgaWYgKGV2ZW50ID09PSAnbmV3LWNoZWNrcG9pbnRzJykge1xyXG4gICAgICBtc2cgPVxyXG4gICAgICAgICdJZiB5b3UgY2hvb3NlIHRvIHJlbW92ZSB0aGVzZSBDaGVja3BvaW50cywgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIGNhbm5vdCBiZSByZXN0b3JlZC4gSG93ZXZlciwgeW91IHdpbGwgc3RpbGwgYmUgYWJsZSB0byBjcmVhdGUgbmV3IENoZWNrcG9pbnRzIG9yIGxpbmsgYW4gQXNzZXNzbWVudC4nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbXNnID1cclxuICAgICAgICAnSWYgeW91IGNob29zZSB0byByZW1vdmUgdGhlc2UgY2hlY2twb2ludHMsIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCBjYW5ub3QgYmUgcmVzdG9yZWQuJztcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogbXNnLFxyXG4gICAgICBhY3Rpb246IGV2ZW50LFxyXG4gICAgICBkYXRhOiB7IHR5cGU6ICdyZXNwb25zaWJpbGl0eUNoZWNrcG9pbnQnIH0sXHJcbiAgICAgIGlzQ2hlY2twb2ludENoZWNrZWQ6IGlzQ2hlY2twb2ludENoZWNrZWQgPz8gZmFsc2UsXHJcbiAgICAgIGlzRGF0YVJlbW92ZWQ6IGlzRGF0YVJlbW92ZWQgPz8gZmFsc2UsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25SZW1vdmluZ1JvbGUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIG1zZyA9ICdJZiB5b3UgY2hhbmdlIHRoZSByb2xlcywgYW55IHVuc2F2ZWQgY2hhbmdlcyB3b3VsZCBiZSBsb3N0Lic7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xyXG4gICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgIG1lc3NhZ2U6IG1zZyxcclxuICAgICAgYWN0aW9uOiAnUk9MRScsXHJcbiAgICAgIGRhdGE6IGV2ZW50LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGlzQXNzZXNzbWVudERpc2FibGVkKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyB8fCBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVNb3JlT3B0aW9ucyh3b3JrZmxvd0NvZGU6IGFueSwgZGlzYWJsZWRFbGVtZW50c0NvZGU6IGFueSkge1xyXG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QpLmluY2x1ZGVzKHdvcmtmbG93Q29kZSkpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd0NvZGVdLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRpc2FibGVkRWxlbWVudHNDb2RlLmluY2x1ZGVzKG9wdGlvbj8uY29kZSkpIHtcclxuICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGVja3BvaW50U2VsZWN0aW9uKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY2hlY2twb2ludENvdW50ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvblJjU2VsZWN0ZWQoaXNSY1NlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzUkNTZWxlY3RlZCA9IGlzUmNTZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIGZldGNoT3JnYW5pemF0aW9uRGV0YWlscygpIHtcclxuICAgIHRoaXMuYXV0aC5nZXRPcmdhbml6YXRpb25EZXRhaWxzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcmdEZXRhaWxzID0gcmVzO1xyXG4gICAgICAgIGlmIChyZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnIgJiYgcmVzPy5idXNpbmVzc19jeWNsZXNfYXJyPy5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gcmVzPy5idXNpbmVzc19jeWNsZXNfYXJyLmZpbHRlcihcclxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LnNlbGVjdGVkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3Qgc3BsaXR0ZWQgPSBzZWxlY3RlZFswXS5idXNpbmVzc19jeWNsZT8uc3BsaXQoJy0nKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGUgPSBgJHtzcGxpdHRlZFswXT8uc2xpY2UoXHJcbiAgICAgICAgICAgIDJcclxuICAgICAgICAgICl9IC0gJHtzcGxpdHRlZFsxXT8uc2xpY2UoNCl9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0VXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmF1dGguZ2V0VXNlckluZm8oKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLmF1dGgudXNlckRldGFpbHMgPSByZXM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXNzaWduZWVUeXBlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOlxyXG4gICAgICAgICdUaGlzIGFjdGlvbiB3aWxsIHJlc2V0IHRoZSBjaGFuZ2VzIGFuZCBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGFzc2lnbmVlLicsXHJcbiAgICAgIGFjdGlvbjogJ2Fzc2lnbmVlVHlwZUNoYW5nZScsXHJcbiAgICAgIGRhdGE6IHt9LFxyXG4gICAgICBpc1JlZEFsZXJ0OiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIGV2ZW50ID0+ICdzZXF1ZW50aWFsJyB8fCAnYW55UmV2aWV3ZXInXHJcbiAgb25SZXZpZXdlckNoYW5nZShldmVudDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb21tb25UZXh0OiBzdHJpbmcgPVxyXG4gICAgICAnT25jZSBjb25maXJtZWQsIHRoZSBuZXcgcmV2aWV3IHdvcmtmbG93IHdpbGwgYmUgYXBwbGljYWJsZSBmb3IgYWxsIGN1cnJlbnQgYW5kIGZ1dHVyZSByZXZpZXcgZHVlIGRhdGVzLic7XHJcbiAgICBjb25zdCBtc2cgPVxyXG4gICAgICBjb21tb25UZXh0ICtcclxuICAgICAgKGV2ZW50ID09PSAnYW55UmV2aWV3ZXInXHJcbiAgICAgICAgPyBgSWYgYW55IHJldmlld2VyIGhhZCBjb21wbGV0ZWQgdGhlIHJldmlldywgdGhlIGN1cnJlbnQgcmV2aWV3IGR1ZSBkYXRlIHdpbGwgYmUgY2xvc2VkIGFuZCB0aGUgcmV2aWV3IHN0YXR1cyB3aWxsIGJlIHVwZGF0ZWQgdG8gJ0NvbXBsZXRlZCcuYFxyXG4gICAgICAgIDogJycpO1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOiBtc2csXHJcbiAgICAgIGFjdGlvbjogZXZlbnQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCkge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yZXNwb25zaWJpbGl0eV9zaW1wbGlmaWNhdGlvbicpKSB7XHJcbiAgICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdFswXS53b3JrZmxvd05hbWUgPSAnQWRkIGEgUmVzcG9uc2liaWxpdHknO1xyXG4gICAgICB0aGlzLndvcmtmbG93VHlwZUxpc3RbMV0ud29ya2Zsb3dOYW1lID0gJ0FkZCBNdWx0aXBsZSBSZXNwb25zaWJpbGl0aWVzJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxyXG48ZGl2IGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW92ZXJsYXlcIj48L2Rpdj5cclxuPGRpdlxyXG4gIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lXCJcclxuICBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIlxyXG4gIFtjbGFzcy5iZ109XCJcclxuICAgICghaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCByaXNrQnVsa1VwbG9hZD8uc2hvd0NhdGVnb3J5TGlzdCkgJiZcclxuICAgICFwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcclxuICBcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyXCJcclxuICAgIFtuZ1N3aXRjaF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgW2NsYXNzLndpdGgtcHJldmlldy1hc3Nlc3NtZW50XT1cIihhdXRoPy5wcmV2aWV3UGFuZWwgfCBhc3luYykgPT09IHRydWVcIlxyXG4gID5cclxuICAgIDxidXR0b25cclxuICAgICAgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoKVwiXHJcbiAgICAgIGlkPVwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiXHJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxyXG4gICAgICBbYXBwVG9vbHRpcF09XCInW0VzY10gdG8gY2xvc2UnXCJcclxuICAgICAgcGxhY2VtZW50PVwibGVmdFwiXHJcbiAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZSB8fCAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFxyXG4gICAgICBcIlxyXG4gICAgICBbY2xhc3Muc21pbGV5LW9wZW5lZF09XCJcclxuICAgICAgICByaXNrQ29tcG9uZW50Py5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgbG9nSXNzdWVDb21wb25lbnQ/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBjb21wbGlhbmNlPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzIHx8XHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcclxuICAgICAgICByaXNrQnVsa1VwbG9hZD8uc2hvd1NtaWxleSB8fFxyXG4gICAgICAgIHJpc2tCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcclxuICAgICAgICBwcm9ncmFtPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgaW1wb3J0QW5Bc3Nlc3NtZW50Py5zaG93U21pbGV5XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTNmOzwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIiF1aUtpdFNlcnZpY2UuaXNTbWlsZXlPblwiXHJcbiAgICAgIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW1vcmVcIlxyXG4gICAgICBbaGlkZGVuXT1cInNob3dNb3JlT3B0aW9uID09PSBmYWxzZSB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZVwiXHJcbiAgICAgIFtjbGFzcy5yZWFkLW9ubHldPVwidWlLaXRTZXJ2aWNlPy5pc0xvYWRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxhcHAtbW9yZS1vcHRpb25cclxuICAgICAgICAjbW9yZU9wdGlvblxyXG4gICAgICAgIFtjdXJyZW50V29ya2Zsb3ddPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCJcclxuICAgICAgICBbaXNFZGl0TW9kZV09XCJtb2RlID09PSAnRURJVCdcIlxyXG4gICAgICAgIFtpc1JDU2VsZWN0ZWRdPVwiaXNSQ1NlbGVjdGVkXCJcclxuICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAoc2VsZWN0ZWRPcHRpb24pPVwiYWRkTW9yZUluZm8oJGV2ZW50KVwiXHJcbiAgICAgICAgW2lzUHJvZ3JhbVNlbGVjdGVkXT1cInNlbGVjdGVkUHJvZ3JhbVwiXHJcbiAgICAgICAgW2FsbG93ZWRGZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgIFtvcmdEZXRhaWxzRGF0YV09XCJvcmdEZXRhaWxzXCJcclxuICAgICAgICBbaXNBdHRyaWJ1dGVzQXZhaWxhYmxlXT1cIlxyXG4gICAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09PSAnR1JDJyAmJlxyXG4gICAgICAgICAgZ3JjT2JqZWN0Py5zZWxlY3RlZEF0dHJpYnV0ZXM/LmF0dHJpYnV0ZXM/Lmxlbmd0aCA+IDBcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvYXBwLW1vcmUtb3B0aW9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLWZvcm1cIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZVwiXHJcbiAgICAgIFtjbGFzcy5uby1zaGFkb3ddPVwiXHJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdBTVInIHx8XHJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdDTVInIHx8XHJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdBQUEnIHx8XHJcbiAgICAgICAgdWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHxcclxuICAgICAgICBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIChzY3JvbGwpPVwic2Nyb2xsRm9ybSgpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIVsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICBvcGVuZWRGcm9tXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cIiEodWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgICAgICAgICAjZHJvcGRvd25Sb3dcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICAgICAgICAgIG1vZGUgPT09ICdFRElUJyB8fFxyXG4gICAgICAgICAgICAgICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8XHJcbiAgICAgICAgICAgICAgZGlzYWJsZVdvcmtmbG93Q2hhbmdlIHx8XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRQcm9ncmFtXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiY3VycmVudFdvcmtmbG93XCI+XHJcbiAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICBjeD1cIjI2XCJcclxuICAgICAgICAgICAgICAgICAgY3k9XCIyNlwiXHJcbiAgICAgICAgICAgICAgICAgIHI9XCIyNVwiXHJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiICNkcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgICAgICAgICA+U2VsZWN0IGEgV29ya2Zsb3c8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhY3VycmVudFdvcmtmbG93XCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRXb3JrZmxvdygpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBXb3JrZmxvd1wiIHJlYWRvbmx5IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZCBmaXJzdC1maWVsZFwiICpuZ0lmPVwiY3VycmVudFdvcmtmbG93XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0ge3tjdXJyZW50V29ya2Zsb3cgfCBqc29ufX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgbm8td2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+e3sgY3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIj57e2N1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXdvcmtmbG93TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdDQVBSJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCdXNpbmVzc0N5Y2xlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgIXByb2dyYW1TaW1wbGlmeUZsYWdcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmFtLWJ1c2luZXNzLWN5Y2xlIHZ4LWZzLTExIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMSB2eC1wbC0yIHZ4LXByLTFcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LW1yLTFcIj4mI3hlOTYzOzwvaT4gVGhpcyBwcm9ncmFtIGlzXHJcbiAgICAgICAgICAgICAgICAgIGJlaW5nIHNldC11cCBmb3IgdGhlIGJ1c2luZXNzIGN5Y2xlOlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZ3LTYwMCB2eC1tbC0xXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnVzaW5lc3NDeWNsZVxyXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS0gPGFwcC1jcmVhdGUtZG9jdW1lbnRzPjwvYXBwLWNyZWF0ZS1kb2N1bWVudHM+IC0tPlxyXG4gICAgICAgIDwhLS0gPGFwcC1idWxrLXZpZXc+PC9hcHAtYnVsay12aWV3PiAtLT5cclxuICAgICAgICA8IS0tIDxhcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PjwvYXBwLWJ1bGstcmVzcG9uc2liaWxpdHktdmlldz4gLS0+XHJcbiAgICAgICAgPGFwcC13b3JrZmxvdy1jb21wbGlhbmNlXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcclxuICAgICAgICAgIFtpc0VudHJ1c3RdPVwiZW50cnVzdEJ1dHRvbk5hbWUudG9Mb3dlckNhc2UoKSA9PSAnZW50cnVzdCdcIlxyXG4gICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5SWRdPVwiaWRcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbZnJhbWV3b3JrRGV0YWlsc109XCJmcmFtZXdvcmtEZXRhaWxzXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUidcIlxyXG4gICAgICAgICAgI3Jlc3BvbnNpYmlsaXR5XHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcclxuICAgICAgICAgIFtzZWxlY3RlZFJDXT1cInNlbGVjdGVkUkNcIlxyXG4gICAgICAgICAgW2Nsb3NlT25Fc2NdPVwiY2xvc2VPbkVzY1wiXHJcbiAgICAgICAgICAoYXNzaWduZWVUeXBlQ2hhbmdlKT1cImFzc2lnbmVlVHlwZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChvblJldmlld2VyVHlwZUNoYW5nZSk9XCJvblJldmlld2VyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgIChyY1NlbGVjdGVkKT1cIm9uUmNTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChyZXNldEZvcm0pPVwib25SZXNldEZvcm0oKVwiXHJcbiAgICAgICAgICAob25SZW1vdmluZ0NoZWNrcG9pbnQpPVwib25SZW1vdmluZ0NoZWNrcG9pbnQoJGV2ZW50LCBmYWxzZSwgdHJ1ZSlcIlxyXG4gICAgICAgICAgKGlzQXNzZXNzbWVudERpc2FibGVkKT1cImlzQXNzZXNzbWVudERpc2FibGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGNoZWNrcG9pbnRDb3VudFVwZGF0ZWQpPVwiY2hlY2twb2ludENvdW50ID0gJGV2ZW50XCJcclxuICAgICAgICAgIFtzZWxlY3RlZFByb2dyYW1dPVwic2VsZWN0ZWRQcm9ncmFtXCJcclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctY29tcGxpYW5jZT5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LXJpc2tcclxuICAgICAgICAgIFtzZWNvbmRhcnlPcGVuUG9ydGFsXT1cInNlY29uZGFyeU9wZW5Qb3J0YWxcIlxyXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBUidcIlxyXG4gICAgICAgICAgI3Jpc2tcclxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxyXG4gICAgICAgICAgKGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbcmlza0lkXT1cImlkXCJcclxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1yaXNrPlxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcG9saWN5XHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUCdcIlxyXG4gICAgICAgICAgI3BvbGljeVxyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoc2hpZnRUb0VkaXRNb2RlKT1cInNoaWZ0VG9FZGl0TW9kZSgpXCJcclxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgICAgW3BvbGljeUlkXT1cImlkXCJcclxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgW2NvbnZlcnRGaWxlRGF0YV09XCJjb252ZXJ0RmlsZURhdGFcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXBvbGljeT5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LXN1cnZleS1mb3JtXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUydcIlxyXG4gICAgICAgICAgI3N1cnZleUZvcm1cclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctc3VydmV5LWZvcm0+XHJcbiAgICAgICAgPGFwcC1hZGQtbXVsdGlwbGUtcmlza1xyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCJcclxuICAgICAgICAgICNtdWx0aXBsZVJpc2tcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtYWRkLW11bHRpcGxlLXJpc2s+XHJcbiAgICAgICAgPCEtLSA8YXBwLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eSAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIiAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIiAjbXVsdGlwbGVSZXNwb25zaWJpbGl0eT5cclxuICAgICAgICAgICAgICAgIDwvYXBwLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eT4gLS0+XHJcblxyXG4gICAgICAgIDxsaWItYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lclxyXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCJcclxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgICAgI211bHRpcGxlUmVzcG9uc2liaWxpdHlcclxuICAgICAgICA+PC9saWItYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lcj5cclxuICAgICAgICA8IS0tIE5ldyBMb2cgYW4gSXNzdWUgLS0+XHJcbiAgICAgICAgPGFwcC1sb2ctYW4taXNzdWVcclxuICAgICAgICAgIFtpc3N1ZURldGFpbHNdPVwiaXNzdWVEYXRhXCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiXHJcbiAgICAgICAgICBbcmVwb25zaWJpbGl0eURhdGFdPVwicmVwb25zaWJpbGl0eURhdGFcIlxyXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICBbaXNzdWVJZF09XCJpZFwiXHJcbiAgICAgICAgICAjbG9nQW5Jc3N1ZVxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIFsobW9kZSldPVwibW9kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLWxvZy1hbi1pc3N1ZT5cclxuICAgICAgICA8IS0tIE9sZCBMb2cgYW4gaXNzdWUgLS0+XHJcbiAgICAgICAgPCEtLSA8YXBwLWxvZy1hbi1pc3N1ZSAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIiBbcmVzcG9uc2liaWxpdGllc0RhdGFdPVwicmVwb25zaWJpbHR5RGF0YVwiIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxyXG4gICAgICAgICAgICAgICAgI2xvZ0FuSXNzdWUgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9hcHAtbG9nLWFuLWlzc3VlPiAtLT5cclxuXHJcbiAgICAgICAgPGFwcC13b3JrZmxvdy1hc3Nlc3NtZW50XHJcbiAgICAgICAgICBbYXNzZXNzbWVudElkXT1cImlkXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIlxyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAjYXNzZXNzbWVudFxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1hc3Nlc3NtZW50PlxyXG4gICAgICAgIDxhcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnRcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidJQUEnXCJcclxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcclxuICAgICAgICAgICNpbXBvcnRBc3Nlc3NtZW50XHJcbiAgICAgICAgPjwvYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50PlxyXG4gICAgICAgIDwhLS0gPGFwcC13b3JrZmxvdy1wcm9ncmFtICNwcm9ncmFtICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIj48L2FwcC13b3JrZmxvdy1wcm9ncmFtPiAtLT5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LXByb2dyYW1cclxuICAgICAgICAgICNwcm9ncmFtXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCJcclxuICAgICAgICAgIFtvcmdEZXRhaWxzXT1cIm9yZ0RldGFpbHNcIlxyXG4gICAgICAgICAgW2FsbG93ZWRGZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgICAgKGRpc2FibGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJkaXNhYmxlTW9yZU9wdGlvbnMoJ0NBUFInLCAkZXZlbnQpXCJcclxuICAgICAgICAgIFtwcm9ncmFtVHlwZV09XCJwcm9ncmFtVHlwZVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcclxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgW3Byb2dyYW1JZF09XCJpZFwiXHJcbiAgICAgICAgICAob25SZW1vdmluZ1JvbGUpPVwib25SZW1vdmluZ1JvbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbY2FuRnJhbWV3b3JrQ2hhbmdlXT1cImNhbkZyYW1ld29ya0NoYW5nZVwiXHJcbiAgICAgICAgICBbYWRkVG9Qcm9ncmFtRGV0YWlsc109XCJhZGRUb1Byb2dyYW1EZXRhaWxzXCJcclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcHJvZ3JhbT5cclxuXHJcbiAgICAgICAgPCEtLSBHUkMgT2JqZWN0IC0tPlxyXG4gICAgICAgIDxsaWItZ3JjLW9iamVjdC1jb250YWluZXJcclxuICAgICAgICAgICNncmNPYmplY3RcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInR1JDJ1wiXHJcbiAgICAgICAgICBbZ3JjVHlwZV09XCJncmNUeXBlXCJcclxuICAgICAgICAgIFtNT0RFXT1cIm1vZGVcIlxyXG4gICAgICAgICAgW0lEXT1cImlkXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVzZXRGb3JtKT1cIm9uUmVzZXRHUkNGb3JtKClcIlxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvbGliLWdyYy1vYmplY3QtY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFSJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7XHJcbiAgICAgICAgICBtb2RlID09PSBcIkVESVRcIiAmJiBvcGVuZWRGcm9tICE9PSBcIk1PVkVfVE9fUkVHSVNURVJcIlxyXG4gICAgICAgICAgICA/IFwiVXBkYXRlXCJcclxuICAgICAgICAgICAgOiBcIkFkZFwiXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICAgICAgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHxcclxuICAgICAgICAgICFyaXNrQnVsa1VwbG9hZD8uY2F0ZWdvcnk/LnNlbGVjdGVkQ2F0ZWdvcnlcclxuICAgICAgICBcIlxyXG4gICAgICAgIChjbGljayk9XCJidWxrVXBsb2FkQnJvd3NlKCdBTVInKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCJcclxuICAgICAgPlxyXG4gICAgICAgIEJyb3dzZVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJidWxrVXBsb2FkQnJvd3NlKCdDTVInKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCJcclxuICAgICAgPlxyXG4gICAgICAgIEJyb3dzZVxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDwhLS0gVGhpcyBoYXMgdGVybmFyeSBvcGVyYXRpb24gdG8gaGFuZGxlIHRoZSBib3RoIHNjZW5hcmlvcyBvZiBob3cgaXQgd29ya3Mgd2l0aCBjb21wbGlhbmNlIGFuZCBwcm9ncmFtIG1vZHVsZSwgcGxlYXNlIGRvbid0IGNoYW5nZSB0aGlzLiAtLT5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7XHJcbiAgICAgICAgICBlbnRydXN0QnV0dG9uTmFtZSAhPT0gXCJcIiAmJiBtb2RlICE9PSBcIkVESVRcIlxyXG4gICAgICAgICAgICA/IGVudHJ1c3RCdXR0b25OYW1lXHJcbiAgICAgICAgICAgIDogbW9kZSA9PT0gXCJFRElUXCJcclxuICAgICAgICAgICAgPyBcIlVQREFURVwiXHJcbiAgICAgICAgICAgIDogXCJFbnRydXN0XCJcclxuICAgICAgICB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7XHJcbiAgICAgICAgICBjb252ZXJ0RmlsZURhdGEuZmlsZU5hbWVcclxuICAgICAgICAgICAgPyBcIk5FWFRcIlxyXG4gICAgICAgICAgICA6IG1vZGUgPT0gXCJFRElUXCJcclxuICAgICAgICAgICAgPyBcIlVwZGF0ZVwiXHJcbiAgICAgICAgICAgIDogXCJDb250aW51ZSB0byBkcmFmdFwiXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUydcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQ29udGludWUgdG8gZHJhZnRcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkFkZFwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQUEnXCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgbW9kZSA9PT0gXCJFRElUXCIgPyBcIlVwZGF0ZVwiIDogXCJDb250aW51ZSB0byBkcmFmdFwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0lBQScpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0lBQSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQnJvd3NlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCAhcHJvZ3JhbT8udmFsaWRcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoJ0NBUFInKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXByb2dyYW0/LnZhbGlkXCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0KCdDQVBSJylcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgbW9kZSA9PT0gXCJFRElUXCIgPyBcIlVwZGF0ZVwiIDogXCJTYXZlXCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiAoY2xpY2spPVwic3VibWl0KClcIiAqbmdTd2l0Y2hDYXNlPVwiJ0dSQydcIj5cclxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICpuZ0lmPVwid29ya2Zsb3dMaXN0XCJcclxuICAgICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiXHJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJkcm9wZG93blRvcFwiXHJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCJcclxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZHJvcGRvd25XaWR0aFwiXHJcbiAgICAgID5cclxuICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1saXN0XCI+XHJcbiAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHdvcmtmbG93IG9mIHdvcmtmbG93VHlwZUxpc3RcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlV29ya2Zsb3coJGV2ZW50LCB3b3JrZmxvdylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIndvcmtmbG93Py5jb2RlXCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09IHdvcmtmbG93Py5jb2RlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IHdvcmtmbG93Py53b3JrZmxvd05hbWUgfX08L2FwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1vdmVybGF5XCJcclxuICAgICAgICAqbmdJZj1cIndvcmtmbG93TGlzdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIlxyXG4gICAgICA+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtY29uZmlybWF0aW9uLWFsZXJ0XHJcbiAgICAgIGlkPVwiY29uZmlybWF0aW9uLWRpYWxvZ3VlXCJcclxuICAgICAgKGFjdGlvbik9XCJjb25maXJtV29ya2Zsb3dDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICpuZ0lmPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZVwiXHJcbiAgICAgIFttZXNzYWdlXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5tZXNzYWdlXCJcclxuICAgICAgW2NvbmZpZ109XCJjb25maXJtYXRpb25BbGVydENvbmZpZ1wiXHJcbiAgICA+PC9hcHAtY29uZmlybWF0aW9uLWFsZXJ0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
712
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCdkIsTUFBTSxPQUFPLGdDQUFnQztJQVczQyxZQUNTLFlBQTBCLEVBQ3pCLFFBQXlCLEVBQzFCLElBQWlCO1FBRmpCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFiMUIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQWEzQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ2hCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixlQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQWUsRUFBRSxDQUFDLENBQUMseUNBQXlDO1FB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QUFPO3NCQUFmLEtBQUs7Z0JBRytDLGdCQUFnQjtzQkFBcEUsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEwTm5ELFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWRkTXVsdGlwbGVSaXNrQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLW11bHRpcGxlLXJpc2svYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQWxlcnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpcm1hdGlvbi1hbGVydCc7XHJcbmltcG9ydCB7IElzc3VlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXNzdWUtZGF0YSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd0Fzc2Vzc21lbnRDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1hc3Nlc3NtZW50L3dvcmtmbG93LWFzc2Vzc21lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1wb3J0QW5Bc3Nlc3NtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd0NvbXBsaWFuY2VDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1jb21wbGlhbmNlL3dvcmtmbG93LWNvbXBsaWFuY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya2Zsb3dQb2xpY3lDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1wb2xpY3kvd29ya2Zsb3ctcG9saWN5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtmbG93Umlza0NvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXJpc2svd29ya2Zsb3ctcmlzay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFVpS2l0U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3VpLWtpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9nQW5Jc3N1ZUNvbXBvbmVudCB9IGZyb20gJy4vLi4vbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb3JlT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9tb3JlLW9wdGlvbi9tb3JlLW9wdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd1Byb2dyYW1Db21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1wcm9ncmFtL3dvcmtmbG93LXByb2dyYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JjT2JqZWN0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdmNvbXBseS13b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0VuZ2luZUNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgaXNIb3N0UmVmcmVzaEFjdGl2ZSA9IHRydWU7XHJcbiAgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgZmVhdHVyZUZsYWdfZ3JvdXBzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFsnJGV2ZW50J10pXHJcbiAgdW5sb2FkTm90aWZpY2F0aW9uKCRldmVudDogYW55KSB7XHJcbiAgICBjb25zdCB0b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgaWYgKHRoaXMuaXNIb3N0UmVmcmVzaEFjdGl2ZSAmJiB0b2tlbikge1xyXG4gICAgICAkZXZlbnQucmV0dXJuVmFsdWUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICAgIHB1YmxpYyBhdXRoOiBBdXRoU2VydmljZVxyXG4gICkge31cclxuICBASW5wdXQoKSB3b3JrZmxvd1R5cGUgPSAnJztcclxuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCkgaWQgPSAnJztcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJ0dMT0JBTCc7XHJcbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgYWxsb3dlZFdvcmtmbG93czogYW55ID0gW107XHJcbiAgQElucHV0KCkgZnJhbWV3b3JrRGV0YWlsczogQXJyYXk8YW55PiA9IFtdOyAvLyBvbmx5IGZvciBjb21wbGlhbmNlIHBhcnQgZm9yIGZyYW1ld29ya1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkUkMgPSAnJztcclxuICBASW5wdXQoKSBzZWNvbmRhcnlPcGVuUG9ydGFsID0gJyc7XHJcbiAgQElucHV0KCkgZGVmYXVsdFJpc2tUeXBlID0gJ05PUk1BTCc7XHJcbiAgQElucHV0KCkgbW92ZVRvUmVnaXN0ZXJNb2RlID0gJyc7XHJcbiAgQElucHV0KCkgcmVwb25zaWJpbGl0eURhdGEgPSB7XHJcbiAgICAvLyBvbmx5IHVzZWQgYnkgbG9nIGFuIGlzc3VlXHJcbiAgICByZXNwb25zaWJpbGl0eUlkOiBudWxsLFxyXG4gICAgcmVzcG9uc2liaWxpdHlOYW1lOiAnJyxcclxuICAgIHJjSWQ6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoKSBwaWQgPSAnJztcclxuICBASW5wdXQoKSBwcm9ncmFtVHlwZTogbnVtYmVyID0gMTtcclxuICBASW5wdXQoKSBpc3N1ZURhdGEgPSB7XHJcbiAgICBhdWRpdFBsYW5JZDogbnVsbCxcclxuICAgIGF1ZGl0UGxhbk5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dCgpIGVudHJ1c3RCdXR0b25OYW1lID0gJ0VudHJ1c3QnO1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IElzc3VlQ29uZmlndXJhdGlvbjtcclxuICBASW5wdXQoKSBjb252ZXJ0RmlsZURhdGEgPSB7fTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3J5ID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGVkUHJvZ3JhbTogYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBjYW5GcmFtZXdvcmtDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlOyAvLyBpZiBmcmFtZXdvcmsgY2FuIEVkaXRlZCBvciBub3Q7IEZvciBDcmVhdGUgYSBwcm9ncmFtXHJcbiAgQElucHV0KCkgLyogICovXHJcbiAgLyogICovXHJcbiAgQElucHV0KClcclxuICBhZGRUb1Byb2dyYW1EZXRhaWxzOiB7XHJcbiAgICBfaWQ6IHN0cmluZztcclxuICAgIGZyYW1ld29ya19uYW1lOiBzdHJpbmc7XHJcbiAgICBpZD86IG51bWJlcjtcclxuICAgIHR5cGU6IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgfSA9IHtcclxuICAgIF9pZDogJycsXHJcbiAgICBmcmFtZXdvcmtfbmFtZTogJycsXHJcbiAgICBpZDogMCxcclxuICAgIHR5cGU6ICcnLFxyXG4gICAgZGVzY3JpcHRpb246ICcnLFxyXG4gIH07XHJcbiAgQElucHV0KCkgZ3JjVHlwZTogMCB8IDEgfCAyIHwgMyA9IDA7XHJcbiAgb3JnRGV0YWlsczogYW55O1xyXG4gIHByb2dyYW1TaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGFuaW1hdGlvbiA9IHRydWU7XHJcbiAgd29ya2Zsb3dMaXN0ID0gZmFsc2U7XHJcbiAgc2hvd01vcmVPcHRpb24gPSB0cnVlO1xyXG4gIGlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gIGRpc2FibGVXb3JrZmxvd0NoYW5nZSE6IGJvb2xlYW47XHJcbiAgY2hlY2twb2ludENvdW50OiBudW1iZXIgPSAwO1xyXG4gIGN1cnJlbnRCdXNpbmVzc0N5Y2xlOiBhbnkgPSAnJztcclxuICBAVmlld0NoaWxkKCdyaXNrJywgeyBzdGF0aWM6IGZhbHNlIH0pIHJpc2tDb21wb25lbnQhOiBXb3JrZmxvd1Jpc2tDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnbXVsdGlwbGVSaXNrJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcmlza0J1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnbXVsdGlwbGVSZXNwb25zaWJpbGl0eScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZCE6IEFkZE11bHRpcGxlUmlza0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdyZXNwb25zaWJpbGl0eScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGNvbXBsaWFuY2UhOiBXb3JrZmxvd0NvbXBsaWFuY2VDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnbW9yZU9wdGlvbicsIHsgc3RhdGljOiBmYWxzZSB9KSBtb3JlT3B0aW9uITogTW9yZU9wdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkcm9wZG93blJvdycsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93blJvdyE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgncG9saWN5JykgcG9saWN5ITogV29ya2Zsb3dQb2xpY3lDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnbG9nQW5Jc3N1ZScpIGxvZ0lzc3VlQ29tcG9uZW50ITogTG9nQW5Jc3N1ZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhc3Nlc3NtZW50JylcclxuICB3b3JrZmxvd0Fzc2Vzc21lbnRDb21wb25lbnQhOiBXb3JrZmxvd0Fzc2Vzc21lbnRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnaW1wb3J0QXNzZXNzbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGltcG9ydEFuQXNzZXNzbWVudCE6IEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdwcm9ncmFtJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByb2dyYW0hOiBXb3JrZmxvd1Byb2dyYW1Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JjT2JqZWN0JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgZ3JjT2JqZWN0ITogR3JjT2JqZWN0Q29udGFpbmVyQ29tcG9uZW50O1xyXG5cclxuICBkcm9wZG93bkxlZnQhOiBhbnk7XHJcbiAgZHJvcGRvd25Ub3AhOiBhbnk7XHJcbiAgZHJvcGRvd25XaWR0aCE6IGFueTtcclxuICBjbG9zZU9uRXNjOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLy8gZmVhdHVyZSBmbGFnXHJcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xyXG4gIG9yZ2FuaXphdGlvbkRldGFpbHM6IGFueTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKSBvbktleWRvd25IYW5kbGVyKFxyXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnRcclxuICApIHtcclxuICAgIGlmIChcclxuICAgICAgW1xyXG4gICAgICAgIHRoaXMucmlza0NvbXBvbmVudD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkPy5zaG93U21pbGV5LFxyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93U21pbGV5LFxyXG4gICAgICAgIHRoaXMuY29tcGxpYW5jZT8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudD8uc2hvd1NtaWxleSxcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlQ29tcG9uZW50Py5zaG93U21pbGV5LFxyXG4gICAgICBdLmluY2x1ZGVzKHRydWUpIHx8XHJcbiAgICAgIHRoaXMucHJvZ3JhbT8uYWN0aXZlTGlzdCB8fFxyXG4gICAgICB0aGlzLmNvbXBsaWFuY2U/LmFjdGl2ZVNlbGVjdG9yIHx8XHJcbiAgICAgIHRoaXMuZ3JjT2JqZWN0Py5vcGVuZWRQb3B1cFxyXG4gICAgKSB7XHJcbiAgICAgIC8vRG8gTm90aGluZ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93RW5naW5lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjdXJyZW50V29ya2Zsb3chOiBhbnk7XHJcbiAgd29ya2Zsb3dUeXBlTGlzdDogYW55ID0gW1xyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBSZXNwb25zaWJpbGl0eScsXHJcbiAgICAgIGNvZGU6ICdDQVInLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JFU1BPTlNJQklMSVRZJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBNdWx0aXBsZSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgY29kZTogJ0NNUicsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnTVVMVElQTEVfUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgfSxcclxuICAgIHsgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUmlzaycsIGNvZGU6ICdBQVInLCBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JJU0snIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0FkZCBNdWx0aXBsZSBSaXNrcycsXHJcbiAgICAgIGNvZGU6ICdBTVInLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JJU0snLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgUG9saWN5JyxcclxuICAgICAgY29kZTogJ0NBUCcsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUE9MSUNZJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFN1cnZleScsXHJcbiAgICAgIGNvZGU6ICdDQVMnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1NVUlZFWScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBGb3JtJyxcclxuICAgICAgY29kZTogJ0NBRicsXHJcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnRk9STScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdMb2cgYW4gSXNzdWUnLFxyXG4gICAgICBjb2RlOiAnTEFJJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdJU1NVRScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYW4gQXNzZXNzbWVudCcsXHJcbiAgICAgIGNvZGU6ICdBQUEnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0FTU0VTU01FTlQnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnSW1wb3J0IGFuIEFzc2Vzc21lbnQnLFxyXG4gICAgICBjb2RlOiAnSUFBJyxcclxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdJTVBPUlRfQVNTRVNTTUVOVCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB3b3JrZmxvd05hbWU6ICdBZGQgYSBQcm9ncmFtJyxcclxuICAgICAgY29kZTogJ0NBUFInLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1BST0dSQU0nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgR1JDIE9iamVjdCcsXHJcbiAgICAgIGNvZGU6ICdHUkMnLFxyXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0dSQ19PQkpFQ1RTJyxcclxuICAgIH0sXHJcbiAgXTtcclxuICBhZGRpdGlvbmFsSW5mb3JtYXRpb25MaXN0ID0gW1xyXG4gICAgJ09iamVjdGl2ZScsXHJcbiAgICAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICdSZXNwb25zaWJpbGl0eSBDYXRlZ29yeScsXHJcbiAgXTtcclxuICBjb25maXJtYXRpb25BbGVydENvbmZpZzogQ29uZmlybWF0aW9uQWxlcnQgPSB7IGlzVmlzaWJsZTogZmFsc2UgfTtcclxuICBjbG9zZVdvcmtmbG93RW5naW5lKGV2dD86IGFueSkge1xyXG4gICAgaWYgKGV2dD8uY29uZmlybSA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoZXZ0ID8gZXZ0LmV2dCA6IGV2dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsb3NlQ29uZmlybShldnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VDb25maXJtKGV2dDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xyXG4gICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgIG1lc3NhZ2U6ICdJZiB5b3UgbmF2aWdhdGUgYXdheSwgYW55IHVuc2F2ZWQgY2hhbmdlcyB3aWxsIGJlIGxvc3QuJyxcclxuICAgICAgYWN0aW9uOiAnV09SS0ZMT1dfQ0xPU0UnLFxyXG4gICAgICBkYXRhOiBldnQsXHJcbiAgICB9O1xyXG4gIH1cclxuICBleGVjdXRlQ2xvc2UoZXZ0OiBhbnkpIHtcclxuICAgIGlmIChldnQuYWN0aW9uID09PSAnWUVTJykge1xyXG4gICAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TmV0d29ya0xpc3RuZXIoKTtcclxuICAgIHRoaXMuc2V0V29ya2Zsb3codGhpcy53b3JrZmxvd1R5cGUsIHRoaXMud29ya2Zsb3dUeXBlTGlzdCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDUwMCk7XHJcbiAgICB0aGlzLnNldFdvcmtmbG93KHRoaXMud29ya2Zsb3dUeXBlLCB0aGlzLndvcmtmbG93VHlwZUxpc3QpO1xyXG4gICAgdGhpcy5kZWNpZGVWaWV3TW9yZU9wdGlvbigpO1xyXG4gICAgdGhpcy5mZXRjaE9yZ2FuaXphdGlvbkRldGFpbHMoKTtcclxuICAgIHRoaXMuZ2V0VXNlckRldGFpbHMoKTtcclxuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxyXG4gICAgICAnZmZfcHJvZ3JhbV9zaW1wbGlmeSdcclxuICAgICk7XHJcbiAgICB0aGlzLmZlYXR1cmVGbGFnX2dyb3VwcyA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxyXG4gICAgICAnZmZfcmVzcG9uc2liaWxpdHlfZ3JvdXBzJ1xyXG4gICAgKTtcclxuICAgIHRoaXMuaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCk7XHJcbiAgfVxyXG5cclxuICBzZXROZXR3b3JrTGlzdG5lcigpIHtcclxuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ29mZmxpbmUnLCAoZSkgPT4ge1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coXHJcbiAgICAgICAgJ0Nvbm5lY3Rpb24gbG9zdCE8YnI+Q2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpdml0eS4nLFxyXG4gICAgICAgICdhbGVydCdcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgKGUpID0+IHtcclxuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFwiWW91J3JlIGJhY2sgb25saW5lIVwiLCAnc3VjY2VzcycpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdCA9IHRoaXMud29ya2Zsb3dUeXBlTGlzdC5maWx0ZXIoKHdvcmtmbG93OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHRoaXMuYWxsb3dlZFdvcmtmbG93cy5pbmNsdWRlcyh3b3JrZmxvdy5wZXJtaXNzaW9uSWRlbnRpZmllcikpIHtcclxuICAgICAgICByZXR1cm4gd29ya2Zsb3c7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMub3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJykge1xyXG4gICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpc2FibGVXb3JrZmxvd0NoYW5nZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWNpZGVWaWV3TW9yZU9wdGlvbih0eXBlPzogYm9vbGVhbikge1xyXG4gICAgaWYgKHR5cGUpIHtcclxuICAgICAgdGhpcy5jbG9zZU9uRXNjID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoWydDTVInLCAnQU1SJywgJ0FBQScsICdJQUEnXS5pbmNsdWRlcyh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkpIHtcclxuICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IGZhbHNlO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0eXBlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlID09PSBmYWxzZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcclxuICAgICAgY2FzZSAnQUFSJzpcclxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQuc3VibWl0UmlzaygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMQUknOlxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVDb21wb25lbnQuYWRkSXNzdWUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQ0FSJzpcclxuICAgICAgICB0aGlzLmNvbXBsaWFuY2Uuc3VibWl0UmVzcG9uc2liaWxpdHkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQ0FQJzpcclxuICAgICAgICB0aGlzLnBvbGljeS5zdWJtaXRQb2xpY3koKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQUFBJzpcclxuICAgICAgICB0aGlzLndvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudC5zdWJtaXRBc3Nlc3NtZW50KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUFInOiB7XHJcbiAgICAgICAgdGhpcy5wcm9ncmFtLnNhdmVQcm9ncmFtKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnR1JDJzoge1xyXG4gICAgICAgIHRoaXMuZ3JjT2JqZWN0LnNhdmVHUkNPYmplY3QoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvLyBjYXNlICdJQUEnOlxyXG4gICAgICAvLyAgIHRoaXMuaW1wb3J0QW5Bc3Nlc3NtZW50LnN1Ym1pdEFzc2Vzc21lbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVkaXRXb3JrZmxvdygpIHtcclxuICAgIHRoaXMud29ya2Zsb3dMaXN0ID0gIXRoaXMud29ya2Zsb3dMaXN0O1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLmRyb3Bkb3duTGVmdCA9IGRyb3Bkb3duLmxlZnQ7XHJcbiAgICB0aGlzLmRyb3Bkb3duVG9wID0gZHJvcGRvd24udG9wICsgZHJvcGRvd24uaGVpZ2h0O1xyXG4gICAgdGhpcy5kcm9wZG93bldpZHRoID0gZHJvcGRvd24ud2lkdGg7XHJcbiAgfVxyXG4gIGNsb3NlV29ya2Zsb3dMaXN0KCkge1xyXG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSBmYWxzZTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgc2l6ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLndvcmtmbG93TGlzdCA9IGZhbHNlO1xyXG4gIH1cclxuICBjaGFuZ2VXb3JrZmxvdyhldnQ6IGFueSwgc2VsZWN0ZWRXb3JrZmxvdzogYW55KSB7XHJcbiAgICBpZiAoc2VsZWN0ZWRXb3JrZmxvdz8uY29kZSA9PT0gdGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOiAnSWYgeW91IGNoYW5nZSB0aGUgd29ya2Zsb3csIGFueSB1bnNhdmVkIGNoYW5nZXMgd291bGQgYmUgbG9zdC4nLFxyXG4gICAgICBhY3Rpb246ICdXT1JLRkxPV19DSEFOR0UnLFxyXG4gICAgICBkYXRhOiBzZWxlY3RlZFdvcmtmbG93LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1Xb3JrZmxvd0NoYW5nZShldnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50ID09PT09PicsIGV2dCk7XHJcbiAgICBpZiAoZXZ0LmFjdGlvbiA9PT0gJ1lFUycpIHtcclxuICAgICAgdGhpcy5jbG9zZU9uRXNjID0gdHJ1ZTtcclxuICAgICAgc3dpdGNoIChldnQucGF5bG9hZC5hY3Rpb24pIHtcclxuICAgICAgICBjYXNlICdXT1JLRkxPV19DSEFOR0UnOlxyXG4gICAgICAgICAgdGhpcy5jdXJyZW50V29ya2Zsb3cgPSBldnQ/LnBheWxvYWQ/LmRhdGEgPz8gbnVsbDtcclxuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb3JlT3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLnJlc2V0QWxsKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRlY2lkZVZpZXdNb3JlT3B0aW9uKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnRURJVF9SSVNLJzpcclxuICAgICAgICAgIHRoaXMucmlza0NvbXBvbmVudC5jcmVhdGVSaXNrKHRoaXMucmlza0NvbXBvbmVudC5yaXNrRm9ybSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdQT0xJQ1lfUE9SVEFMJzpcclxuICAgICAgICAgIHRoaXMucG9saWN5LmNvbmZpcm1Qb2xpY3lQb3J0YWwoZXZ0LmFjdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdXT1JLRkxPV19DTE9TRSc6XHJcbiAgICAgICAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdChldnQ/LnBheWxvYWQ/LmRhdGEpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY2hlY2twb2ludCc6XHJcbiAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgb3B0aW9uPy5jb2RlID09PSAnQVNTRVNTTUVOVCcgfHxcclxuICAgICAgICAgICAgICBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcclxuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZW1vdmVDaGVja3BvaW50KCk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnUk9MRSc6XHJcbiAgICAgICAgICB0aGlzLnByb2dyYW0ucmVtb3ZlKGV2dC5wYXlsb2FkLmRhdGEsICdST0xFJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnbmV3LWNoZWNrcG9pbnRzJzpcclxuICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyAmJiAhZXZ0LnBheWxvYWQuaXNEYXRhUmVtb3ZlZCkge1xyXG4gICAgICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UUycgJiYgIWV2dC5wYXlsb2FkLmlzRGF0YVJlbW92ZWQpIHtcclxuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIGV2dC5wYXlsb2FkLmlzQ2hlY2twb2ludENoZWNrZWQgJiZcclxuICAgICAgICAgICAgICBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIG9wdGlvbi5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLm1vcmVPcHRpb25zLkNIRUNLUE9JTlRTX05FVyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVtb3ZlKCduZXctY2hlY2twb2ludHMnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2Fzc2lnbmVlVHlwZUNoYW5nZSc6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVzcG9uc2liaWxpdHlGb3JtLmFzc2lnbmVlcy53aG9DYW5Db21wbGV0ZSA9ICdBTEwnO1xyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMubGlzdCA9XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5zZXRMaXN0KFxyXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5hc3NpZ25lZXNMaXN0LFxyXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5vcmlnaW5hbEFzc2lnbmVlLFxyXG4gICAgICAgICAgICAgICdlbXBsb3llZV9pZCdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAndGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybSA9PT4nLFxyXG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVzcG9uc2liaWxpdHlGb3JtXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZmVhdHVyZUZsYWdfZ3JvdXBzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ2Fzc2lnbmVlR3JvdXBzJ11bJ2xpc3QnXSA9XHJcbiAgICAgICAgICAgICAgW107XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc2VxdWVudGlhbCc6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcclxuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcclxuICAgICAgICAgIF0gPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYW55UmV2aWV3ZXInOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXHJcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXHJcbiAgICAgICAgICBdID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3dpdGNoIChldnQucGF5bG9hZC5hY3Rpb24pIHtcclxuICAgICAgICBjYXNlICdQT0xJQ1lfUE9SVEFMJzpcclxuICAgICAgICAgIHRoaXMucG9saWN5LmNvbmZpcm1Qb2xpY3lQb3J0YWwoZXZ0LmFjdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhc3NpZ25lZVR5cGVDaGFuZ2UnOlxyXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMud2hvQ2FuQ29tcGxldGUgPVxyXG4gICAgICAgICAgICAnQU5ZX09ORSc7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnc2VxdWVudGlhbCc6XHJcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcclxuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcclxuICAgICAgICAgIF0gPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2FueVJldmlld2VyJzpcclxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xyXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xyXG4gICAgICAgICAgXSA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgbWVzc2FnZTogJycsXHJcbiAgICAgIGFjdGlvbjogJycsXHJcbiAgICAgIGRhdGE6IG51bGwsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGV2dDtcclxuICB9XHJcblxyXG4gIHNldFdvcmtmbG93KHdvcmtGbG93Q29kZTogYW55LCB3b3JrRmxvd0xpc3Q6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRXb3JrZmxvdyA9IHdvcmtGbG93TGlzdC5maW5kKFxyXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Py5jb2RlID09PSB3b3JrRmxvd0NvZGVcclxuICAgICk7XHJcbiAgICBzZWxlY3RlZFdvcmtmbG93XHJcbiAgICAgID8gKHRoaXMuY3VycmVudFdvcmtmbG93ID0gc2VsZWN0ZWRXb3JrZmxvdylcclxuICAgICAgOiAodGhpcy5jdXJyZW50V29ya2Zsb3cgPSBudWxsKTtcclxuICAgIHJldHVybiBzZWxlY3RlZFdvcmtmbG93O1xyXG4gIH1cclxuXHJcbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PjEnLCBldmVudCk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XHJcbiAgICAgIGNhc2UgJ0FBUic6XHJcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50Py5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0xBSSc6XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uYWRkTW9yZUluZm8oZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnQ0FSJzpcclxuICAgICAgICBpZiAoZXZlbnQ/LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcclxuICAgICAgICAgIHRoaXMub25SZW1vdmluZ0NoZWNrcG9pbnQoJ2NoZWNrcG9pbnQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZlbnQ/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LmNvZGUgPT09ICdBU1NFU1NNRU5UJ1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5pc0Rpc2FibGVkID0gZXZlbnQuY2hlY2tlZFxyXG4gICAgICAgICAgICA/IHRydWVcclxuICAgICAgICAgICAgOiBmYWxzZTtcclxuICAgICAgICAgIGlmIChldmVudC5jaGVja3BvaW50X25ldyAmJiB0aGlzLmNoZWNrcG9pbnRDb3VudCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uUmVtb3ZpbmdDaGVja3BvaW50KCduZXctY2hlY2twb2ludHMnLCB0cnVlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IENIRUNLUE9JTlRfSU5ERVggPVxyXG4gICAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5tb3JlT3B0aW9ucy5DSEVDS1BPSU5UU19ORVcgPSBldmVudC5jaGVja2VkO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQuY2hlY2twb2ludF9uZXcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBpc0NoZWNrZWQgPSBldmVudC5jaGVja2VkID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgICAgICAgIGV2ZW50LmNoZWNrZWQgPSBpc0NoZWNrZWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW0NIRUNLUE9JTlRfSU5ERVhdID0gZXZlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5pc0Rpc2FibGVkID1cclxuICAgICAgICAgICAgICBldmVudC5jaGVja2VkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZlbnQ/LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJ1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5pc0Rpc2FibGVkID0gZXZlbnQuY2hlY2tlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NBUCc6XHJcbiAgICAgICAgdGhpcy5wb2xpY3k/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQ0FQUic6XHJcbiAgICAgICAgdGhpcy5wcm9ncmFtPy5hZGRNb3JlSW5mbyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0dSQyc6XHJcbiAgICAgICAgdGhpcy5ncmNPYmplY3Q/LmFkZE1vcmVJbmZvKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvcHVsYXRlTW9yZU9wdGlvbihldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnPT09PT09PT09PT09PT0+JywgZXZlbnQpO1xyXG4gICAgaWYgKHRoaXMubW9yZU9wdGlvbikge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb24ucG9wdWxhdGUoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT09PT09PT4gY29udGFpbmVyJywgZXZlbnQpO1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uPy5oaWRlRWxlbWVudHMoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NvbmZpcm1hdGlvblBvcHVwKGNvbmZpZzogQ29uZmlybWF0aW9uQWxlcnQpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSBjb25maWc7XHJcbiAgfVxyXG5cclxuICBidWxrVXBsb2FkQnJvd3NlKGV2ZW50OiBhbnkpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQpIHtcclxuICAgICAgY2FzZSAnQU1SJzpcclxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnRyaWdnZXJCcm93c2VGaWxlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0NNUic6XHJcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQudHJpZ2dlckJyb3dzZUZpbGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnSUFBJzpcclxuICAgICAgICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVzZXRGb3JtKCkge1xyXG4gICAgdGhpcy5tb2RlID0gJ0NSRUFURSc7XHJcbiAgICB0aGlzLmVudHJ1c3RCdXR0b25OYW1lID0gJ0VudHJ1c3QnO1xyXG4gIH1cclxuXHJcbiAgb25SZXNldEdSQ0Zvcm0oKSB7XHJcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcclxuICB9XHJcbiAgc2hpZnRUb0VkaXRNb2RlKCkge1xyXG4gICAgdGhpcy5tb2RlID0gJ0VESVQnO1xyXG4gIH1cclxuICBzY3JvbGxGb3JtKCkge1xyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25Sb3c/Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpPy50b3AgPCAzOCkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LmFkZCgnaGlkZScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5yZW1vdmUoJ2hpZGUnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2ZW50IHdoaWNoIG1vcmUgb3B0aW9ucyB3ZSBhcmUgcmVtb3ZpbmcuXHJcbiAgICogQHBhcmFtIGlzQ2hlY2twb2ludENoZWNrZWQgIGlzIHRydWUgaWYgdmFsdWUgY2hlY2twb2ludHMgaXMgcmVtb3ZlZCBieSBjbGlja2luZyBvbiBtb3JlIG9wdGlvbnNcclxuICAgKi9cclxuICBvblJlbW92aW5nQ2hlY2twb2ludChcclxuICAgIGV2ZW50OiBzdHJpbmcsXHJcbiAgICBpc0NoZWNrcG9pbnRDaGVja2VkPzogYm9vbGVhbixcclxuICAgIGlzRGF0YVJlbW92ZWQ/OiBib29sZWFuXHJcbiAgKTogdm9pZCB7XHJcbiAgICBsZXQgbXNnID0gJyc7XHJcbiAgICBpZiAoZXZlbnQgPT09ICduZXctY2hlY2twb2ludHMnKSB7XHJcbiAgICAgIG1zZyA9XHJcbiAgICAgICAgJ0lmIHlvdSBjaG9vc2UgdG8gcmVtb3ZlIHRoZXNlIENoZWNrcG9pbnRzLCB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgY2Fubm90IGJlIHJlc3RvcmVkLiBIb3dldmVyLCB5b3Ugd2lsbCBzdGlsbCBiZSBhYmxlIHRvIGNyZWF0ZSBuZXcgQ2hlY2twb2ludHMgb3IgbGluayBhbiBBc3Nlc3NtZW50Lic7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtc2cgPVxyXG4gICAgICAgICdJZiB5b3UgY2hvb3NlIHRvIHJlbW92ZSB0aGVzZSBjaGVja3BvaW50cywgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIGNhbm5vdCBiZSByZXN0b3JlZC4nO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcclxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBtZXNzYWdlOiBtc2csXHJcbiAgICAgIGFjdGlvbjogZXZlbnQsXHJcbiAgICAgIGRhdGE6IHsgdHlwZTogJ3Jlc3BvbnNpYmlsaXR5Q2hlY2twb2ludCcgfSxcclxuICAgICAgaXNDaGVja3BvaW50Q2hlY2tlZDogaXNDaGVja3BvaW50Q2hlY2tlZCA/PyBmYWxzZSxcclxuICAgICAgaXNEYXRhUmVtb3ZlZDogaXNEYXRhUmVtb3ZlZCA/PyBmYWxzZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvblJlbW92aW5nUm9sZShldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgbXNnID0gJyc7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgbXNnID0gJ0lmIHlvdSBjaGFuZ2UgdGhlIHJvbGVzLCBhbnkgdW5zYXZlZCBjaGFuZ2VzIHdvdWxkIGJlIGxvc3QuJztcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogbXNnLFxyXG4gICAgICBhY3Rpb246ICdST0xFJyxcclxuICAgICAgZGF0YTogZXZlbnQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaXNBc3Nlc3NtZW50RGlzYWJsZWQoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcclxuICAgICAgaWYgKG9wdGlvbj8uY29kZSA9PT0gJ0FTU0VTU01FTlQnIHx8IG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcclxuICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZU1vcmVPcHRpb25zKHdvcmtmbG93Q29kZTogYW55LCBkaXNhYmxlZEVsZW1lbnRzQ29kZTogYW55KSB7XHJcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdCkuaW5jbHVkZXMod29ya2Zsb3dDb2RlKSkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93Q29kZV0uZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGlzYWJsZWRFbGVtZW50c0NvZGUuaW5jbHVkZXMob3B0aW9uPy5jb2RlKSkge1xyXG4gICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoZWNrcG9pbnRTZWxlY3Rpb24oZXZlbnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5jaGVja3BvaW50Q291bnQgPSBldmVudDtcclxuICB9XHJcblxyXG4gIG9uUmNTZWxlY3RlZChpc1JjU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNSQ1NlbGVjdGVkID0gaXNSY1NlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hPcmdhbml6YXRpb25EZXRhaWxzKCkge1xyXG4gICAgdGhpcy5hdXRoLmdldE9yZ2FuaXphdGlvbkRldGFpbHMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLm9yZ0RldGFpbHMgPSByZXM7XHJcbiAgICAgICAgaWYgKHJlcz8uYnVzaW5lc3NfY3ljbGVzX2FyciAmJiByZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnI/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnIuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uc2VsZWN0ZWRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25zdCBzcGxpdHRlZCA9IHNlbGVjdGVkWzBdLmJ1c2luZXNzX2N5Y2xlPy5zcGxpdCgnLScpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZSA9IGAke3NwbGl0dGVkWzBdPy5zbGljZShcclxuICAgICAgICAgICAgMlxyXG4gICAgICAgICAgKX0gLSAke3NwbGl0dGVkWzFdPy5zbGljZSg0KX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRVc2VyRGV0YWlscygpIHtcclxuICAgIHRoaXMuYXV0aC5nZXRVc2VySW5mbygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuYXV0aC51c2VyRGV0YWlscyA9IHJlcztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3NpZ25lZVR5cGVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xyXG4gICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgIG1lc3NhZ2U6XHJcbiAgICAgICAgJ1RoaXMgYWN0aW9uIHdpbGwgcmVzZXQgdGhlIGNoYW5nZXMgYW5kIGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgYmFjayB0byB0aGUgb3JpZ2luYWwgYXNzaWduZWUuJyxcclxuICAgICAgYWN0aW9uOiAnYXNzaWduZWVUeXBlQ2hhbmdlJyxcclxuICAgICAgZGF0YToge30sXHJcbiAgICAgIGlzUmVkQWxlcnQ6IHRydWUsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gZXZlbnQgPT4gJ3NlcXVlbnRpYWwnIHx8ICdhbnlSZXZpZXdlcidcclxuICBvblJldmlld2VyQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNvbW1vblRleHQ6IHN0cmluZyA9XHJcbiAgICAgICdPbmNlIGNvbmZpcm1lZCwgdGhlIG5ldyByZXZpZXcgd29ya2Zsb3cgd2lsbCBiZSBhcHBsaWNhYmxlIGZvciBhbGwgY3VycmVudCBhbmQgZnV0dXJlIHJldmlldyBkdWUgZGF0ZXMuJztcclxuICAgIGNvbnN0IG1zZyA9XHJcbiAgICAgIGNvbW1vblRleHQgK1xyXG4gICAgICAoZXZlbnQgPT09ICdhbnlSZXZpZXdlcidcclxuICAgICAgICA/IGBJZiBhbnkgcmV2aWV3ZXIgaGFkIGNvbXBsZXRlZCB0aGUgcmV2aWV3LCB0aGUgY3VycmVudCByZXZpZXcgZHVlIGRhdGUgd2lsbCBiZSBjbG9zZWQgYW5kIHRoZSByZXZpZXcgc3RhdHVzIHdpbGwgYmUgdXBkYXRlZCB0byAnQ29tcGxldGVkJy5gXHJcbiAgICAgICAgOiAnJyk7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xyXG4gICAgICBpc1Zpc2libGU6IHRydWUsXHJcbiAgICAgIG1lc3NhZ2U6IG1zZyxcclxuICAgICAgYWN0aW9uOiBldmVudCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBpc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZnkoKSB7XHJcbiAgICBpZiAodGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Jlc3BvbnNpYmlsaXR5X3NpbXBsaWZpY2F0aW9uJykpIHtcclxuICAgICAgdGhpcy53b3JrZmxvd1R5cGVMaXN0WzBdLndvcmtmbG93TmFtZSA9ICdBZGQgYSBSZXNwb25zaWJpbGl0eSc7XHJcbiAgICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdFsxXS53b3JrZmxvd05hbWUgPSAnQWRkIE11bHRpcGxlIFJlc3BvbnNpYmlsaXRpZXMnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YXBwLXNuYWNrLWJhcj48L2FwcC1zbmFjay1iYXI+XHJcbjxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtb3ZlcmxheVwiPjwvZGl2PlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmVcIlxyXG4gIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiXHJcbiAgW2NsYXNzLmJnXT1cIlxyXG4gICAgKCFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8IHJpc2tCdWxrVXBsb2FkPy5zaG93Q2F0ZWdvcnlMaXN0KSAmJlxyXG4gICAgIXBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50c1xyXG4gIFwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1jb250YWluZXJcIlxyXG4gICAgW25nU3dpdGNoXT1cImN1cnJlbnRXb3JrZmxvdz8uY29kZVwiXHJcbiAgICBbY2xhc3Mud2l0aC1wcmV2aWV3LWFzc2Vzc21lbnRdPVwiKGF1dGg/LnByZXZpZXdQYW5lbCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgpXCJcclxuICAgICAgaWQ9XCJjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuXCJcclxuICAgICAgY2xhc3M9XCJjbG9zZVwiXHJcbiAgICAgIFthcHBUb29sdGlwXT1cIidbRXNjXSB0byBjbG9zZSdcIlxyXG4gICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcclxuICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgICBjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlIHx8ICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXHJcbiAgICAgIFwiXHJcbiAgICAgIFtjbGFzcy5zbWlsZXktb3BlbmVkXT1cIlxyXG4gICAgICAgIHJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBsb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxyXG4gICAgICAgIGNvbXBsaWFuY2U/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHMgfHxcclxuICAgICAgICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fFxyXG4gICAgICAgIHJpc2tCdWxrVXBsb2FkPy5zaG93U21pbGV5IHx8XHJcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fFxyXG4gICAgICAgIHByb2dyYW0/LnNob3dTbWlsZXkgfHxcclxuICAgICAgICBpbXBvcnRBbkFzc2Vzc21lbnQ/LnNob3dTbWlsZXlcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5M2Y7PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiIXVpS2l0U2VydmljZS5pc1NtaWxleU9uXCJcclxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtbW9yZVwiXHJcbiAgICAgIFtoaWRkZW5dPVwic2hvd01vcmVPcHRpb24gPT09IGZhbHNlIHx8IHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50c1wiXHJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcclxuICAgICAgW2NsYXNzLnJlYWQtb25seV09XCJ1aUtpdFNlcnZpY2U/LmlzTG9hZGVyXCJcclxuICAgID5cclxuICAgICAgPGFwcC1tb3JlLW9wdGlvblxyXG4gICAgICAgICNtb3JlT3B0aW9uXHJcbiAgICAgICAgW2N1cnJlbnRXb3JrZmxvd109XCJjdXJyZW50V29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgICAgIFtpc0VkaXRNb2RlXT1cIm1vZGUgPT09ICdFRElUJ1wiXHJcbiAgICAgICAgW2lzUkNTZWxlY3RlZF09XCJpc1JDU2VsZWN0ZWRcIlxyXG4gICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxyXG4gICAgICAgIChzZWxlY3RlZE9wdGlvbik9XCJhZGRNb3JlSW5mbygkZXZlbnQpXCJcclxuICAgICAgICBbaXNQcm9ncmFtU2VsZWN0ZWRdPVwic2VsZWN0ZWRQcm9ncmFtXCJcclxuICAgICAgICBbYWxsb3dlZEZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgW29yZ0RldGFpbHNEYXRhXT1cIm9yZ0RldGFpbHNcIlxyXG4gICAgICAgIFtpc0F0dHJpYnV0ZXNBdmFpbGFibGVdPVwiXHJcbiAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdHUkMnICYmXHJcbiAgICAgICAgICBncmNPYmplY3Q/LnNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoID4gMFxyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtbW9yZS1vcHRpb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtZm9ybVwiXHJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcclxuICAgICAgW2NsYXNzLm5vLXNoYWRvd109XCJcclxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FNUicgfHxcclxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0NNUicgfHxcclxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FBQScgfHxcclxuICAgICAgICB1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fFxyXG4gICAgICAgIHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50c1xyXG4gICAgICBcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgKHNjcm9sbCk9XCJzY3JvbGxGb3JtKClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgIG9wZW5lZEZyb21cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiISh1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHMpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAgICAgICAgICNkcm9wZG93blJvd1xyXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgbW9kZSA9PT0gJ0VESVQnIHx8XHJcbiAgICAgICAgICAgICAgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHxcclxuICAgICAgICAgICAgICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UgfHxcclxuICAgICAgICAgICAgICBzZWxlY3RlZFByb2dyYW1cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3dcIj5cclxuICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGVcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgICBjeT1cIjI2XCJcclxuICAgICAgICAgICAgICAgICAgcj1cIjI1XCJcclxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCIgI2Ryb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICAgICAgICAgID5TZWxlY3QgYSBXb3JrZmxvdzxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjdXJyZW50V29ya2Zsb3dcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIFdvcmtmbG93XCIgcmVhZG9ubHkgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkIGZpcnN0LWZpZWxkXCIgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3dcIj5cclxuICAgICAgICAgICAgICAgICAgPCEtLSB7e2N1cnJlbnRXb3JrZmxvdyB8IGpzb259fSAtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMiB2eC1tci0yXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBuby13aWR0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjdXJyZW50V29ya2Zsb3c/LndvcmtmbG93TmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgID57eyBjdXJyZW50V29ya2Zsb3c/LndvcmtmbG93TmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPnt7Y3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0V29ya2Zsb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhd29ya2Zsb3dMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0NBUFInICYmXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEJ1c2luZXNzQ3ljbGUgJiZcclxuICAgICAgICAgICAgICAgICAgICAhcHJvZ3JhbVNpbXBsaWZ5RmxhZ1xyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyYW0tYnVzaW5lc3MtY3ljbGUgdngtZnMtMTEgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0xIHZ4LXBsLTIgdngtcHItMVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTIgdngtbXItMVwiPiYjeGU5NjM7PC9pPiBUaGlzIHByb2dyYW0gaXNcclxuICAgICAgICAgICAgICAgICAgYmVpbmcgc2V0LXVwIGZvciB0aGUgYnVzaW5lc3MgY3ljbGU6XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNjAwIHZ4LW1sLTFcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCdXNpbmVzc0N5Y2xlXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8YXBwLWNyZWF0ZS1kb2N1bWVudHM+PC9hcHAtY3JlYXRlLWRvY3VtZW50cz4gLS0+XHJcbiAgICAgICAgPCEtLSA8YXBwLWJ1bGstdmlldz48L2FwcC1idWxrLXZpZXc+IC0tPlxyXG4gICAgICAgIDwhLS0gPGFwcC1idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXc+PC9hcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PiAtLT5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LWNvbXBsaWFuY2VcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgIFtvcmdEZXRhaWxzXT1cIm9yZ0RldGFpbHNcIlxyXG4gICAgICAgICAgW2lzRW50cnVzdF09XCJlbnRydXN0QnV0dG9uTmFtZS50b0xvd2VyQ2FzZSgpID09ICdlbnRydXN0J1wiXHJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlJZF09XCJpZFwiXHJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgIFtmcmFtZXdvcmtEZXRhaWxzXT1cImZyYW1ld29ya0RldGFpbHNcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FSJ1wiXHJcbiAgICAgICAgICAjcmVzcG9uc2liaWxpdHlcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkUkNdPVwic2VsZWN0ZWRSQ1wiXHJcbiAgICAgICAgICBbY2xvc2VPbkVzY109XCJjbG9zZU9uRXNjXCJcclxuICAgICAgICAgIChhc3NpZ25lZVR5cGVDaGFuZ2UpPVwiYXNzaWduZWVUeXBlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKG9uUmV2aWV3ZXJUeXBlQ2hhbmdlKT1cIm9uUmV2aWV3ZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcclxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxyXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlc2V0Rm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcclxuICAgICAgICAgIChvblJlbW92aW5nQ2hlY2twb2ludCk9XCJvblJlbW92aW5nQ2hlY2twb2ludCgkZXZlbnQsIGZhbHNlLCB0cnVlKVwiXHJcbiAgICAgICAgICAoaXNBc3Nlc3NtZW50RGlzYWJsZWQpPVwiaXNBc3Nlc3NtZW50RGlzYWJsZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2hlY2twb2ludENvdW50VXBkYXRlZCk9XCJjaGVja3BvaW50Q291bnQgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkUHJvZ3JhbV09XCJzZWxlY3RlZFByb2dyYW1cIlxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1jb21wbGlhbmNlPlxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcmlza1xyXG4gICAgICAgICAgW3NlY29uZGFyeU9wZW5Qb3J0YWxdPVwic2Vjb25kYXJ5T3BlblBvcnRhbFwiXHJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFSJ1wiXHJcbiAgICAgICAgICAjcmlza1xyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXHJcbiAgICAgICAgICAocmNTZWxlY3RlZCk9XCJvblJjU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgIFtyaXNrSWRdPVwiaWRcIlxyXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXJpc2s+XHJcbiAgICAgICAgPGFwcC13b3JrZmxvdy1wb2xpY3lcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQJ1wiXHJcbiAgICAgICAgICAjcG9saWN5XHJcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgIChzaGlmdFRvRWRpdE1vZGUpPVwic2hpZnRUb0VkaXRNb2RlKClcIlxyXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgICBbcG9saWN5SWRdPVwiaWRcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbY29udmVydEZpbGVEYXRhXT1cImNvbnZlcnRGaWxlRGF0YVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRDYXRlZ29yeV09XCJzZWxlY3RlZENhdGVnb3J5XCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcG9saWN5PlxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctc3VydmV5LWZvcm1cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiXHJcbiAgICAgICAgICAjc3VydmV5Rm9ybVxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1zdXJ2ZXktZm9ybT5cclxuICAgICAgICA8YXBwLWFkZC1tdWx0aXBsZS1yaXNrXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FNUidcIlxyXG4gICAgICAgICAgI211bHRpcGxlUmlza1xyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgID48L2FwcC1hZGQtbXVsdGlwbGUtcmlzaz5cclxuICAgICAgICA8IS0tIDxhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5ICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiICNtdWx0aXBsZVJlc3BvbnNpYmlsaXR5PlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5PiAtLT5cclxuXHJcbiAgICAgICAgPGxpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyXHJcbiAgICAgICAgICBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIlxyXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgICAjbXVsdGlwbGVSZXNwb25zaWJpbGl0eVxyXG4gICAgICAgID48L2xpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS0gTmV3IExvZyBhbiBJc3N1ZSAtLT5cclxuICAgICAgICA8YXBwLWxvZy1hbi1pc3N1ZVxyXG4gICAgICAgICAgW2lzc3VlRGV0YWlsc109XCJpc3N1ZURhdGFcIlxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCJcclxuICAgICAgICAgIFtyZXBvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXHJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgIFtpc3N1ZUlkXT1cImlkXCJcclxuICAgICAgICAgICNsb2dBbklzc3VlXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgWyhtb2RlKV09XCJtb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtbG9nLWFuLWlzc3VlPlxyXG4gICAgICAgIDwhLS0gT2xkIExvZyBhbiBpc3N1ZSAtLT5cclxuICAgICAgICA8IS0tIDxhcHAtbG9nLWFuLWlzc3VlICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiIFtyZXNwb25zaWJpbGl0aWVzRGF0YV09XCJyZXBvbnNpYmlsdHlEYXRhXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAjbG9nQW5Jc3N1ZSAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+IC0tPlxyXG5cclxuICAgICAgICA8YXBwLXdvcmtmbG93LWFzc2Vzc21lbnRcclxuICAgICAgICAgIFthc3Nlc3NtZW50SWRdPVwiaWRcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcclxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiXHJcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXHJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICNhc3Nlc3NtZW50XHJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LWFzc2Vzc21lbnQ+XHJcbiAgICAgICAgPGFwcC1pbXBvcnQtYW4tYXNzZXNzbWVudFxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0lBQSdcIlxyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgI2ltcG9ydEFzc2Vzc21lbnRcclxuICAgICAgICA+PC9hcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQ+XHJcbiAgICAgICAgPCEtLSA8YXBwLXdvcmtmbG93LXByb2dyYW0gI3Byb2dyYW0gKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiPjwvYXBwLXdvcmtmbG93LXByb2dyYW0+IC0tPlxyXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcHJvZ3JhbVxyXG4gICAgICAgICAgI3Byb2dyYW1cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxyXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXHJcbiAgICAgICAgICBbYWxsb3dlZEZlYXR1cmVdPVwiZmVhdHVyZVwiXHJcbiAgICAgICAgICAoZGlzYWJsZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImRpc2FibGVNb3JlT3B0aW9ucygnQ0FQUicsICRldmVudClcIlxyXG4gICAgICAgICAgW3Byb2dyYW1UeXBlXT1cInByb2dyYW1UeXBlXCJcclxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxyXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbcHJvZ3JhbUlkXT1cImlkXCJcclxuICAgICAgICAgIChvblJlbW92aW5nUm9sZSk9XCJvblJlbW92aW5nUm9sZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtjYW5GcmFtZXdvcmtDaGFuZ2VdPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcclxuICAgICAgICAgIFthZGRUb1Byb2dyYW1EZXRhaWxzXT1cImFkZFRvUHJvZ3JhbURldGFpbHNcIlxyXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1wcm9ncmFtPlxyXG5cclxuICAgICAgICA8IS0tIEdSQyBPYmplY3QgLS0+XHJcbiAgICAgICAgPGxpYi1ncmMtb2JqZWN0LWNvbnRhaW5lclxyXG4gICAgICAgICAgI2dyY09iamVjdFxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCJcclxuICAgICAgICAgIFtncmNUeXBlXT1cImdyY1R5cGVcIlxyXG4gICAgICAgICAgW01PREVdPVwibW9kZVwiXHJcbiAgICAgICAgICBbSURdPVwiaWRcIlxyXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChyZXNldEZvcm0pPVwib25SZXNldEdSQ0Zvcm0oKVwiXHJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcclxuICAgICAgICA+PC9saWItZ3JjLW9iamVjdC1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgIG1vZGUgPT09IFwiRURJVFwiICYmIG9wZW5lZEZyb20gIT09IFwiTU9WRV9UT19SRUdJU1RFUlwiXHJcbiAgICAgICAgICAgID8gXCJVcGRhdGVcIlxyXG4gICAgICAgICAgICA6IFwiQWRkXCJcclxuICAgICAgICB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fFxyXG4gICAgICAgICAgIXJpc2tCdWxrVXBsb2FkPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0FNUicpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FNUidcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQnJvd3NlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0NNUicpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQnJvd3NlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPCEtLSBUaGlzIGhhcyB0ZXJuYXJ5IG9wZXJhdGlvbiB0byBoYW5kbGUgdGhlIGJvdGggc2NlbmFyaW9zIG9mIGhvdyBpdCB3b3JrcyB3aXRoIGNvbXBsaWFuY2UgYW5kIHByb2dyYW0gbW9kdWxlLCBwbGVhc2UgZG9uJ3QgY2hhbmdlIHRoaXMuIC0tPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUidcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgIGVudHJ1c3RCdXR0b25OYW1lICE9PSBcIlwiICYmIG1vZGUgIT09IFwiRURJVFwiXHJcbiAgICAgICAgICAgID8gZW50cnVzdEJ1dHRvbk5hbWVcclxuICAgICAgICAgICAgOiBtb2RlID09PSBcIkVESVRcIlxyXG4gICAgICAgICAgICA/IFwiVVBEQVRFXCJcclxuICAgICAgICAgICAgOiBcIkVudHJ1c3RcIlxyXG4gICAgICAgIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUCdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgIGNvbnZlcnRGaWxlRGF0YS5maWxlTmFtZVxyXG4gICAgICAgICAgICA/IFwiTkVYVFwiXHJcbiAgICAgICAgICAgIDogbW9kZSA9PSBcIkVESVRcIlxyXG4gICAgICAgICAgICA/IFwiVXBkYXRlXCJcclxuICAgICAgICAgICAgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCJcclxuICAgICAgICB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiXHJcbiAgICAgID5cclxuICAgICAgICBDb250aW51ZSB0byBkcmFmdFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiQWRkXCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcclxuICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnSUFBJylcIlxyXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiXHJcbiAgICAgID5cclxuICAgICAgICBCcm93c2VcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8ICFwcm9ncmFtPy52YWxpZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCAhcHJvZ3JhbT8udmFsaWRcIlxyXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoJ0NBUFInKVwiXHJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIChjbGljayk9XCJzdWJtaXQoKVwiICpuZ1N3aXRjaENhc2U9XCInR1JDJ1wiPlxyXG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIlxyXG4gICAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93TGlzdCgpXCJcclxuICAgICAgICBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJkcm9wZG93bkxlZnRcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJkcm9wZG93bldpZHRoXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLWxpc3RcIj5cclxuICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgd29ya2Zsb3cgb2Ygd29ya2Zsb3dUeXBlTGlzdFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VXb3JrZmxvdygkZXZlbnQsIHdvcmtmbG93KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgICAgICBbdmFsdWVdPVwid29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gd29ya2Zsb3c/LmNvZGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgd29ya2Zsb3c/LndvcmtmbG93TmFtZSB9fTwvYXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW92ZXJsYXlcIlxyXG4gICAgICAgICpuZ0lmPVwid29ya2Zsb3dMaXN0XCJcclxuICAgICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFwcC1jb25maXJtYXRpb24tYWxlcnRcclxuICAgICAgaWQ9XCJjb25maXJtYXRpb24tZGlhbG9ndWVcIlxyXG4gICAgICAoYWN0aW9uKT1cImNvbmZpcm1Xb3JrZmxvd0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcclxuICAgICAgW21lc3NhZ2VdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/Lm1lc3NhZ2VcIlxyXG4gICAgICBbY29uZmlnXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnXCJcclxuICAgID48L2FwcC1jb25maXJtYXRpb24tYWxlcnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -5459,15 +5459,6 @@ class GrcObjectContainerComponent {
|
|
|
5459
5459
|
this.resetForm = new EventEmitter();
|
|
5460
5460
|
this.hideElementsFromMoreOptions = new EventEmitter();
|
|
5461
5461
|
this.hideMoreOption = [];
|
|
5462
|
-
this.authService.getUserInfo().subscribe((res) => {
|
|
5463
|
-
var _a;
|
|
5464
|
-
const riskPermission = res === null || res === void 0 ? void 0 : res.roleActions[(_a = res === null || res === void 0 ? void 0 : res.roleActions) === null || _a === void 0 ? void 0 : _a.findIndex((ele) => (ele === null || ele === void 0 ? void 0 : ele.moduleName) == 'risk')];
|
|
5465
|
-
if (!(riskPermission === null || riskPermission === void 0 ? void 0 : riskPermission.isActive)) {
|
|
5466
|
-
this.hideMoreOption.push('LINK_RISK_CATEGORIES_RISKS');
|
|
5467
|
-
}
|
|
5468
|
-
this.hideElementsFromMoreOptions.emit(this.hideMoreOption);
|
|
5469
|
-
console.log('===========================>', this.hideMoreOption, riskPermission);
|
|
5470
|
-
});
|
|
5471
5462
|
}
|
|
5472
5463
|
ngOnDestroy() {
|
|
5473
5464
|
this.resetGRCForm();
|
|
@@ -5476,8 +5467,21 @@ class GrcObjectContainerComponent {
|
|
|
5476
5467
|
this.grcPayload = JSON.parse(JSON.stringify(this.grcService.GRC_PAYLOAD));
|
|
5477
5468
|
this.grcPayload.type = this.grcType;
|
|
5478
5469
|
this.listObject = this.grcService.LIST_OBJECT;
|
|
5470
|
+
this.getMoreOptionsPermission();
|
|
5479
5471
|
this._initiateAPI();
|
|
5480
5472
|
}
|
|
5473
|
+
getMoreOptionsPermission() {
|
|
5474
|
+
this.authService.getUserInfo().subscribe((res) => {
|
|
5475
|
+
var _a;
|
|
5476
|
+
const riskPermission = res === null || res === void 0 ? void 0 : res.roleActions[(_a = res === null || res === void 0 ? void 0 : res.roleActions) === null || _a === void 0 ? void 0 : _a.findIndex((ele) => (ele === null || ele === void 0 ? void 0 : ele.moduleName) == 'risk')];
|
|
5477
|
+
if (!(riskPermission === null || riskPermission === void 0 ? void 0 : riskPermission.isActive)) {
|
|
5478
|
+
this.hideMoreOption.push('LINK_RISK_CATEGORIES_RISKS');
|
|
5479
|
+
console.log('===========================> 1', this.hideMoreOption, riskPermission);
|
|
5480
|
+
}
|
|
5481
|
+
this.hideElementsFromMoreOptions.emit(this.hideMoreOption);
|
|
5482
|
+
console.log('===========================>', this.hideMoreOption, riskPermission);
|
|
5483
|
+
});
|
|
5484
|
+
}
|
|
5481
5485
|
//TODO: implement this
|
|
5482
5486
|
populateOptionalFields() {
|
|
5483
5487
|
const activatedOptions = [];
|
|
@@ -30556,6 +30560,7 @@ class MoreOptionComponent {
|
|
|
30556
30560
|
}
|
|
30557
30561
|
}
|
|
30558
30562
|
hideElements(hiddenList) {
|
|
30563
|
+
console.log('===========================> more option', this.currentWorkflow, hiddenList);
|
|
30559
30564
|
if (this.currentWorkflow) {
|
|
30560
30565
|
this.moreOptionsList[this.currentWorkflow].forEach((element) => {
|
|
30561
30566
|
if (hiddenList.includes(element.code)) {
|
|
@@ -39691,6 +39696,7 @@ class WorkflowEngineContainerComponent {
|
|
|
39691
39696
|
}
|
|
39692
39697
|
hideElementsFromMoreOptions(event) {
|
|
39693
39698
|
var _a;
|
|
39699
|
+
console.log('===========================> container', event);
|
|
39694
39700
|
(_a = this.moreOption) === null || _a === void 0 ? void 0 : _a.hideElements(event);
|
|
39695
39701
|
}
|
|
39696
39702
|
showConfirmationPopup(config) {
|