vcomply-workflow-engine 6.1.8 → 6.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
- package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +18 -13
- package/esm2022/lib/sharedComponents/frequency/frequency.constant.mjs +12 -0
- package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +22 -15
- package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +2 -2
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +24 -34
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +2 -2
- package/esm2022/lib/workflow-services/responsibility.service.mjs +2 -9
- package/fesm2022/vcomply-workflow-engine.mjs +76 -70
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/interfaces/responsibilty.interface.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency.constant.d.ts +4 -0
- package/lib/sharedComponents/frequency/frequency.service.d.ts +17 -0
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +15 -0
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -1
- package/lib/workflow-services/responsibility.service.d.ts +2 -50
- package/package.json +1 -1
|
@@ -56,7 +56,7 @@ export class WorkflowEngineContainerComponent {
|
|
|
56
56
|
this.moveToRegisterMode = '';
|
|
57
57
|
this.reponsibilityData = {
|
|
58
58
|
// only used by log an issue
|
|
59
|
-
|
|
59
|
+
rid: null,
|
|
60
60
|
responsibilityName: '',
|
|
61
61
|
rcId: null,
|
|
62
62
|
dueDateId: '',
|
|
@@ -818,4 +818,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
818
818
|
type: HostListener,
|
|
819
819
|
args: ['window:resize', ['$event']]
|
|
820
820
|
}] } });
|
|
821
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQWlCdkIsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU03RCxNQUFNLE9BQU8sZ0NBQWdDO0lBUTNDLFlBQ1MsWUFBMEIsRUFDekIsUUFBeUIsRUFDMUIsSUFBaUIsRUFDaEIsZ0JBQTJDLEVBQzNDLGtCQUFzQyxFQUN0QywyQkFBd0QsRUFDeEQsYUFBNEI7UUFON0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWR0Qyx3QkFBbUIsR0FBRyxJQUFJLENBQUM7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U0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRUYsVUFBVTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNuQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ3dCLFdBQVc7c0JBQXZELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDdEIsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNNLGlCQUFpQjtzQkFBekMsU0FBUzt1QkFBQyxZQUFZO2dCQUV2QiwyQkFBMkI7c0JBRDFCLFNBQVM7dUJBQUMsWUFBWTtnQkFHdkIsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFUCxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRXZDLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBT2QsT0FBTztzQkFBZixLQUFLO2dCQUcrQyxnQkFBZ0I7c0JBQXBFLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNFRuRCxVQUFVO3NCQURULFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgZWZmZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkZE11bHRpcGxlUmlza0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1tdWx0aXBsZS1yaXNrL2FkZC1tdWx0aXBsZS1yaXNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25BbGVydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlybWF0aW9uLWFsZXJ0JztcbmltcG9ydCB7IElzc3VlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXNzdWUtZGF0YSc7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWFzc2Vzc21lbnQvd29ya2Zsb3ctYXNzZXNzbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1wb3J0QW5Bc3Nlc3NtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctY29tcGxpYW5jZS93b3JrZmxvdy1jb21wbGlhbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXb3JrZmxvd1BvbGljeUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXBvbGljeS93b3JrZmxvdy1wb2xpY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFdvcmtmbG93Umlza0NvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXJpc2svd29ya2Zsb3ctcmlzay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nQW5Jc3N1ZUNvbXBvbmVudCB9IGZyb20gJy4vLi4vbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9yZU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vLi4vbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFdvcmtmbG93UHJvZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXByb2dyYW0vd29ya2Zsb3ctcHJvZ3JhbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JjT2JqZWN0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2NvbW1vbi13b3JrZmxvdy1zZXJ2aWNlcy9vcmdhbml6YXRpb24tY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXBvcnRBQ2FzZVNlcnZpY2UgfSBmcm9tICcuLi9yZXBvcnQtYS1jYXNlL3NlcnZpY2VzL3JlcG9ydC1hLWNhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0Nhc2VDb21wb25lbnQgfSBmcm9tICcuLi9yZXBvcnQtYS1jYXNlL3dvcmtmbG93LWNhc2Uvd29ya2Zsb3ctY2FzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVwb3J0LWNhc2UtcGVybWlzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElmcmFtZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pZnJhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBQb3N0TWVzc2FnZUV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZnJhbWUtdHlwZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdmNvbXBseS13b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dFbmdpbmVDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBpc0hvc3RSZWZyZXNoQWN0aXZlID0gdHJ1ZTtcbiAgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XG4gIGZlYXR1cmVGbGFnX2dyb3VwczogYm9vbGVhbiA9IGZhbHNlO1xuICBhZGRUb0Nhc2VNb2RlID0gJyc7XG5cbiAgcGVybWlzc2lvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgcHVibGljIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3JnQ29tbW9uU2VydmljZTogT3JnYW5pemF0aW9uQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlcG9ydEFDYXNlU2VydmljZTogUmVwb3J0QUNhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlOiBSZXBvcnRDYXNlUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpZnJhbWVTZXJ2aWNlOiBJZnJhbWVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY2hlY2tDdXJyZW50V29ya2Zsb3coKTtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5jYXNlVHlwZUxvYWRlci5uZXh0KHRydWUpO1xuICAgIHRoaXMuY2hlY2tQZXJtaXNzaW9uKCk7XG4gIH1cbiAgQElucHV0KCkgd29ya2Zsb3dUeXBlID0gJyc7XG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcbiAgQElucHV0KCkgaWQgPSAnJztcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICdHTE9CQUwnO1xuICBASW5wdXQoKSBzb3VyY2U6ICdTQVAnIHwgJ1dPUktST09NJyB8ICcnID0gJyc7XG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBhbGxvd2VkV29ya2Zsb3dzOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgZnJhbWV3b3JrRGV0YWlsczogQXJyYXk8YW55PiA9IFtdOyAvLyBvbmx5IGZvciBjb21wbGlhbmNlIHBhcnQgZm9yIGZyYW1ld29ya1xuICBASW5wdXQoKSBzZWxlY3RlZFJDID0gJyc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeU9wZW5Qb3J0YWwgPSAnJztcbiAgQElucHV0KCkgZGVmYXVsdFJpc2tUeXBlID0gJ05PUk1BTCc7XG4gIEBJbnB1dCgpIG1vdmVUb1JlZ2lzdGVyTW9kZSA9ICcnO1xuICBASW5wdXQoKSB3b3JrZmxvd0RldGFpbHM6IGFueTtcbiAgQElucHV0KCkgcmVwb25zaWJpbGl0eURhdGEgPSB7XG4gICAgLy8gb25seSB1c2VkIGJ5IGxvZyBhbiBpc3N1ZVxuICAgIHJlc3BvbnNpYmlsaXR5SWQ6IG51bGwsXG4gICAgcmVzcG9uc2liaWxpdHlOYW1lOiAnJyxcbiAgICByY0lkOiBudWxsLFxuICAgIGR1ZURhdGVJZDogJycsXG4gIH07XG4gIEBJbnB1dCgpIGFzc2Vzc21lbnRRdWVzdGlvbjogYW55ID0ge1xuICAgIHF1ZXN0aW9uTmFtZTogJycsXG4gICAgcXVlc3Rpb25OdW1iZXI6ICcnLFxuICAgIHF1ZXN0aW9uSWQ6ICcnLFxuICAgIGFzc2Vzc21lbnRJZDogJycsXG4gICAgYXVkaXRlZUlkOiBudWxsLFxuICB9O1xuICBASW5wdXQoKSBwaWQgPSAnJztcbiAgQElucHV0KCkgcHJvZ3JhbVR5cGU6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIGlzc3VlRGF0YSA9IHtcbiAgICBhdWRpdFBsYW5JZDogbnVsbCxcbiAgICBhdWRpdFBsYW5OYW1lOiAnJyxcbiAgICByY0lkOiBudWxsLFxuICB9O1xuICBASW5wdXQoKSBlbnRydXN0QnV0dG9uTmFtZSA9ICdFbnRydXN0JztcbiAgQElucHV0KCkgY29uZmlnITogSXNzdWVDb25maWd1cmF0aW9uO1xuICBASW5wdXQoKSBjb252ZXJ0RmlsZURhdGEgPSB7fTtcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yeSA9ICcnO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkUHJvZ3JhbTogYW55ID0gbnVsbDtcbiAgQElucHV0KCkgY2FuRnJhbWV3b3JrQ2hhbmdlOiBib29sZWFuID0gdHJ1ZTsgLy8gaWYgZnJhbWV3b3JrIGNhbiBFZGl0ZWQgb3Igbm90OyBGb3IgQ3JlYXRlIGEgcHJvZ3JhbVxuICBASW5wdXQoKSAvKiAgKi9cbiAgLyogICovXG4gIEBJbnB1dCgpXG4gIGFkZFRvUHJvZ3JhbURldGFpbHM6IHtcbiAgICBfaWQ6IHN0cmluZztcbiAgICBmcmFtZXdvcmtfbmFtZTogc3RyaW5nO1xuICAgIGlkPzogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB9ID0ge1xuICAgIF9pZDogJycsXG4gICAgZnJhbWV3b3JrX25hbWU6ICcnLFxuICAgIGlkOiAwLFxuICAgIHR5cGU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgfTtcbiAgQElucHV0KCkgZ3JjVHlwZTogMCB8IDEgfCAyIHwgMyA9IDA7XG4gIEBJbnB1dCgpIGlzU2VuZEZvckF0dGVzdGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFzc2Vzc21lbnREZXRhaWxzOiBhbnk7XG4gIEBJbnB1dCgpIHRlbXBsYXRlSWQ6IHN0cmluZyA9ICcnO1xuXG4gIG9yZ0RldGFpbHM6IGFueTtcbiAgcHJvZ3JhbVNpbXBsaWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIGNhc2VGZWF0dXJlRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGFuaW1hdGlvbiA9IHRydWU7XG4gIHdvcmtmbG93TGlzdCA9IGZhbHNlO1xuICBzaG93TW9yZU9wdGlvbiA9IHRydWU7XG4gIGlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UhOiBib29sZWFuO1xuICBjaGVja3BvaW50Q291bnQ6IG51bWJlciA9IDA7XG4gIHJlcG9ydEJ5OiBzdHJpbmcgPSAnJztcbiAgY3VycmVudEJ1c2luZXNzQ3ljbGU6IGFueSA9ICcnO1xuICBjYXNlVHlwZVBlcm1pc3Npb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgncmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KSByaXNrQ29tcG9uZW50ITogV29ya2Zsb3dSaXNrQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdtdWx0aXBsZVJpc2snLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcmlza0J1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkITogQWRkTXVsdGlwbGVSaXNrQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdyZXNwb25zaWJpbGl0eScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBjb21wbGlhbmNlITogV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdtb3JlT3B0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIG1vcmVPcHRpb24hOiBNb3JlT3B0aW9uQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25Sb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25Sb3chOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwb2xpY3knKSBwb2xpY3khOiBXb3JrZmxvd1BvbGljeUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnbG9nQW5Jc3N1ZScpIGxvZ0lzc3VlQ29tcG9uZW50ITogTG9nQW5Jc3N1ZUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnYXNzZXNzbWVudCcpXG4gIHdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudCE6IFdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnaW1wb3J0QXNzZXNzbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBpbXBvcnRBbkFzc2Vzc21lbnQhOiBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3Byb2dyYW0nLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJvZ3JhbSE6IFdvcmtmbG93UHJvZ3JhbUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JjT2JqZWN0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGdyY09iamVjdCE6IEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncmVwb3J0Q2FzZScpIHJlcG9ydENhc2UhOiBXb3JrZmxvd0Nhc2VDb21wb25lbnQ7XG5cbiAgZHJvcGRvd25MZWZ0ITogYW55O1xuICBkcm9wZG93blRvcCE6IGFueTtcbiAgZHJvcGRvd25XaWR0aCE6IGFueTtcbiAgY2xvc2VPbkVzYzogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyBmZWF0dXJlIGZsYWdcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBvcmdhbml6YXRpb25EZXRhaWxzOiBhbnk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKSBvbktleWRvd25IYW5kbGVyKFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50XG4gICkge1xuICAgIGlmIChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50Py5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkPy5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudD8uc2hvd1NtaWxleSxcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSxcbiAgICAgIF0uaW5jbHVkZXModHJ1ZSkgfHxcbiAgICAgIHRoaXMucHJvZ3JhbT8uYWN0aXZlTGlzdCB8fFxuICAgICAgdGhpcy5jb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciB8fFxuICAgICAgdGhpcy5ncmNPYmplY3Q/Lm9wZW5lZFBvcHVwXG4gICAgKSB7XG4gICAgICAvL0RvIE5vdGhpbmdcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93RW5naW5lKCk7XG4gICAgfVxuICB9XG5cbiAgdXNlckxpc3Q6IGFueSA9IFtdO1xuICBjdXJyZW50V29ya2Zsb3chOiBhbnk7XG4gIHdvcmtmbG93VHlwZUxpc3Q6IGFueSA9IFtcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBSZXNwb25zaWJpbGl0eScsXG4gICAgICBjb2RlOiAnQ0FSJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUkVTUE9OU0lCSUxJVFknLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIE11bHRpcGxlIFJlc3BvbnNpYmlsaXRpZXMnLFxuICAgICAgY29kZTogJ0NNUicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JFU1BPTlNJQklMSVRZJyxcbiAgICB9LFxuICAgIHsgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUmlzaycsIGNvZGU6ICdBQVInLCBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JJU0snIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIE11bHRpcGxlIFJpc2tzJyxcbiAgICAgIGNvZGU6ICdBTVInLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdNVUxUSVBMRV9SSVNLJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFBvbGljeScsXG4gICAgICBjb2RlOiAnQ0FQJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUE9MSUNZJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFN1cnZleScsXG4gICAgICBjb2RlOiAnQ0FTJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnU1VSVkVZJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIEZvcm0nLFxuICAgICAgY29kZTogJ0NBRicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0ZPUk0nLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnTG9nIGFuIElzc3VlJyxcbiAgICAgIGNvZGU6ICdMQUknLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdJU1NVRScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYW4gQXNzZXNzbWVudCcsXG4gICAgICBjb2RlOiAnQUFBJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnQVNTRVNTTUVOVCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdJbXBvcnQgYW4gQXNzZXNzbWVudCcsXG4gICAgICBjb2RlOiAnSUFBJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSU1QT1JUX0FTU0VTU01FTlQnLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUHJvZ3JhbScsXG4gICAgICBjb2RlOiAnQ0FQUicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1BST0dSQU0nLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgR1JDIE9iamVjdCcsXG4gICAgICBjb2RlOiAnR1JDJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnR1JDX09CSkVDVFMnLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnUmVwb3J0IGEgQ2FzZScsXG4gICAgICBjb2RlOiAnUkFDJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUkVQT1JUX0FfQ0FTRScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdBc3NpZ24gY2FzZSB0byB3b3JrZmxvdycsXG4gICAgICBjb2RlOiAnQUNUVycsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JFUE9SVF9BX0NBU0UnLFxuICAgIH0sXG4gIF07XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbkxpc3QgPSBbXG4gICAgJ09iamVjdGl2ZScsXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENhdGVnb3J5JyxcbiAgXTtcbiAgY29uZmlybWF0aW9uQWxlcnRDb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0ID0geyBpc1Zpc2libGU6IGZhbHNlIH07XG5cbiAgY2hlY2tDdXJyZW50V29ya2Zsb3coKSB7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2Uud29ya2Zsb3dDb2RlLnN1YnNjcmliZSgoY29kZSkgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09ICdBQ1cnIHx8IGNvZGUgPT09ICdBQ1RXJykge1xuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZGRUb0Nhc2VNb2RlID0gY29kZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZGRUb0Nhc2VNb2RlID0gJyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgY2xvc2VXb3JrZmxvd0VuZ2luZShldnQ/OiBhbnkpIHtcbiAgICBpZiAoZXZ0Py5jb25maXJtID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoZXZ0ID8gZXZ0LmV2dCA6IGV2dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2VDb25maXJtKGV2dCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VDb25maXJtKGV2dDogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6ICdJZiB5b3UgbmF2aWdhdGUgYXdheSwgYW55IHVuc2F2ZWQgY2hhbmdlcyB3aWxsIGJlIGxvc3QuJyxcbiAgICAgIGFjdGlvbjogJ1dPUktGTE9XX0NMT1NFJyxcbiAgICAgIGRhdGE6IGV2dCxcbiAgICB9O1xuICB9XG4gIGV4ZWN1dGVDbG9zZShldnQ6IGFueSkge1xuICAgIGlmIChldnQuYWN0aW9uID09PSAnWUVTJykge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoKTtcbiAgICB9XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXROZXR3b3JrTGlzdG5lcigpO1xuICAgIHRoaXMuc2V0V29ya2Zsb3codGhpcy53b3JrZmxvd1R5cGUsIHRoaXMud29ya2Zsb3dUeXBlTGlzdCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gICAgdGhpcy5zZXRXb3JrZmxvdyh0aGlzLndvcmtmbG93VHlwZSwgdGhpcy53b3JrZmxvd1R5cGVMaXN0KTtcbiAgICB0aGlzLmRlY2lkZVZpZXdNb3JlT3B0aW9uKCk7XG4gICAgdGhpcy5mZXRjaE9yZ2FuaXphdGlvbkRldGFpbHMoKTtcbiAgICB0aGlzLmdldFVzZXJEZXRhaWxzKCk7XG4gICAgdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcHJvZ3JhbV9zaW1wbGlmeSdcbiAgICApO1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfZ3JvdXBzID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcmVzcG9uc2liaWxpdHlfZ3JvdXBzJ1xuICAgICk7XG4gICAgdGhpcy5jYXNlRmVhdHVyZUZsYWcgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfY2FzZXNfZW5hYmxlZCcpO1xuICAgIHRoaXMuaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNoZWNrUGVybWlzc2lvbigpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25TdWJzY3JpcHRpb24gPVxuICAgICAgdGhpcy5yZXBvcnRDYXNlUGVybWlzc2lvblNlcnZpY2UuaGFzUGVybWlzc2lvbi5zdWJzY3JpYmUoXG4gICAgICAgIChoYXNQZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZVBlcm1pc3Npb24gPSBoYXNQZXJtaXNzaW9uO1xuICAgICAgICAgIGlmIChoYXNQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUmVwb3J0Q2FzZVBlcm1pc3Npb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuY2FzZVR5cGVMb2FkZXIubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBzZXROZXR3b3JrTGlzdG5lcigpIHtcbiAgICBhZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKGUpID0+IHtcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgJ0Nvbm5lY3Rpb24gbG9zdCE8YnI+Q2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpdml0eS4nLFxuICAgICAgICAnYWxlcnQnXG4gICAgICApO1xuICAgIH0pO1xuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIChlKSA9PiB7XG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coXCJZb3UncmUgYmFjayBvbmxpbmUhXCIsICdzdWNjZXNzJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdCA9IHRoaXMud29ya2Zsb3dUeXBlTGlzdC5maWx0ZXIoKHdvcmtmbG93OiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRXb3JrZmxvd3MuaW5jbHVkZXMod29ya2Zsb3cucGVybWlzc2lvbklkZW50aWZpZXIpKSB7XG4gICAgICAgIHJldHVybiB3b3JrZmxvdztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5vcGVuZWRGcm9tID09PSAnUklTS19UUkVBVE1FTlQnKSB7XG4gICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5kaXNhYmxlV29ya2Zsb3dDaGFuZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrUmVwb3J0Q2FzZVBlcm1pc3Npb24oKSB7XG4gICAgY29uc3QgaGFzUGVybWlzc2lvbiA9XG4gICAgICB0aGlzLnJlcG9ydENhc2VQZXJtaXNzaW9uU2VydmljZS5jaGVja1JlcG9ydEFDYXNlUGVybWlzc2lvbigpO1xuICAgIGlmIChoYXNQZXJtaXNzaW9uICYmIHRoaXMuY2FzZUZlYXR1cmVGbGFnKSB7XG4gICAgICB0aGlzLmFsbG93ZWRXb3JrZmxvd3MucHVzaCgnUkVQT1JUX0FfQ0FTRScpO1xuICAgICAgdGhpcy5hbGxvd2VkV29ya2Zsb3dzID0gdGhpcy5hbGxvd2VkV29ya2Zsb3dzLmZpbHRlcihcbiAgICAgICAgKHdvcmtmbG93OiBhbnkpID0+IHdvcmtmbG93ICE9PSAnSVNTVUUnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFsbG93ZWRXb3JrZmxvd3MgPSB0aGlzLmFsbG93ZWRXb3JrZmxvd3MuZmlsdGVyKFxuICAgICAgICAod29ya2Zsb3c6IGFueSkgPT4gd29ya2Zsb3cgIT09ICdSRVBPUlRfQV9DQVNFJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1c2VyTGlzdEVtaXR0ZXIoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudXNlckxpc3QgPSBldmVudDtcbiAgfVxuXG4gIGRlY2lkZVZpZXdNb3JlT3B0aW9uKHR5cGU/OiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIHRoaXMuY2xvc2VPbkVzYyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoWydDTVInLCAnQU1SJywgJ0FBQScsICdJQUEnXS5pbmNsdWRlcyh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkpIHtcbiAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgIGlmICh0eXBlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYWRkVG9DYXNlTW9kZSA9PT0gJ0FDVycpIHtcbiAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5zZXRXb3JrZmxvd1NlbGVjdG9yKHR5cGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdSQUMnKSB7XG4gICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnNldFdvcmtmbG93U2VsZWN0b3IodHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgc2V0V29ya2Zsb3dTZWxlY3Rvcih0eXBlPzogYm9vbGVhbil7XG4gICAgaWYgKHR5cGUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGNhc2VSZXBvcnRlZEJ5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJlcG9ydEJ5ID0gZXZlbnQ7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYodGhpcy5hZGRUb0Nhc2VNb2RlID09PSAnQUNXJyB8fCB0aGlzLmFkZFRvQ2FzZU1vZGUgPT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5yZXBvcnRDYXNlLmFkZFRvQ2FzZSgpO1xuICAgICAgdGhpcy5zdWJtaXRXb3JrZmxvdygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XG4gICAgICBjYXNlICdBQVInOlxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQuc3VibWl0UmlzaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0xBSSc6XG4gICAgICAgIHRoaXMubG9nSXNzdWVDb21wb25lbnQuYWRkSXNzdWUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVInOlxuICAgICAgICB0aGlzLmNvbXBsaWFuY2Uuc3VibWl0UmVzcG9uc2liaWxpdHkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVAnOlxuICAgICAgICB0aGlzLnBvbGljeS5zdWJtaXRQb2xpY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBQUEnOlxuICAgICAgICB0aGlzLndvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudC5zdWJtaXRBc3Nlc3NtZW50KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FQUic6IHtcbiAgICAgICAgdGhpcy5wcm9ncmFtLnNhdmVQcm9ncmFtKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnR1JDJzoge1xuICAgICAgICB0aGlzLmdyY09iamVjdC5zYXZlR1JDT2JqZWN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnUkFDJzoge1xuICAgICAgICB0aGlzLnJlcG9ydENhc2UucmVwb3J0Q2FzZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIGNhc2UgJ0lBQSc6XG4gICAgICAvLyAgIHRoaXMuaW1wb3J0QW5Bc3Nlc3NtZW50LnN1Ym1pdEFzc2Vzc21lbnQoKTtcbiAgICB9XG4gICAgdGhpcy5zdWJtaXRXb3JrZmxvdygpO1xuICB9XG5cbiAgc3VibWl0V29ya2Zsb3coKSB7IFxuICAgIGNvbnN0IG1lc3NhZ2UgPSB7dHlwZTonc3VibWl0J31cbiAgICBjb25zdCB0YXJnZXRPcmlnaW4gPSB0aGlzLmdldE9yaWdpbigpO1xuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UobWVzc2FnZSwgdGFyZ2V0T3JpZ2luKTtcbiAgfSBcbiAgXG4gIHByaXZhdGUgZ2V0T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gIH1cblxuICBlZGl0V29ya2Zsb3coKSB7XG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSAhdGhpcy53b3JrZmxvd0xpc3Q7XG4gICAgY29uc3QgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5kcm9wZG93bkxlZnQgPSBkcm9wZG93bi5sZWZ0O1xuICAgIHRoaXMuZHJvcGRvd25Ub3AgPSBkcm9wZG93bi50b3AgKyBkcm9wZG93bi5oZWlnaHQ7XG4gICAgdGhpcy5kcm9wZG93bldpZHRoID0gZHJvcGRvd24ud2lkdGg7XG4gIH1cbiAgY2xvc2VXb3JrZmxvd0xpc3QoKSB7XG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSBmYWxzZTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgc2l6ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSBmYWxzZTtcbiAgfVxuICBjaGFuZ2VXb3JrZmxvdyhldnQ6IGFueSwgc2VsZWN0ZWRXb3JrZmxvdzogYW55KSB7XG4gICAgaWYgKHNlbGVjdGVkV29ya2Zsb3c/LmNvZGUgPT09IHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOiAnSWYgeW91IGNoYW5nZSB0aGUgd29ya2Zsb3csIGFueSB1bnNhdmVkIGNoYW5nZXMgd291bGQgYmUgbG9zdC4nLFxuICAgICAgYWN0aW9uOiAnV09SS0ZMT1dfQ0hBTkdFJyxcbiAgICAgIGRhdGE6IHNlbGVjdGVkV29ya2Zsb3csXG4gICAgfTtcbiAgfVxuXG4gIGNvbmZpcm1Xb3JrZmxvd0NoYW5nZShldnQ6IGFueSkge1xuICAgIGlmIChldnQuYWN0aW9uID09PSAnWUVTJykge1xuICAgICAgdGhpcy5jbG9zZU9uRXNjID0gdHJ1ZTtcbiAgICAgIHN3aXRjaCAoZXZ0LnBheWxvYWQuYWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ1dPUktGTE9XX0NIQU5HRSc6XG4gICAgICAgICAgdGhpcy5jdXJyZW50V29ya2Zsb3cgPSBldnQ/LnBheWxvYWQ/LmRhdGEgPz8gbnVsbDtcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vcmVPcHRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLnJlc2V0QWxsKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGVjaWRlVmlld01vcmVPcHRpb24oKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRURJVF9SSVNLJzpcbiAgICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQuY3JlYXRlUmlzayh0aGlzLnJpc2tDb21wb25lbnQucmlza0Zvcm0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQT0xJQ1lfUE9SVEFMJzpcbiAgICAgICAgICB0aGlzLnBvbGljeS5jb25maXJtUG9saWN5UG9ydGFsKGV2dC5hY3Rpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdXT1JLRkxPV19DTE9TRSc6XG4gICAgICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoZXZ0Py5wYXlsb2FkPy5kYXRhKTtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5pZnJhbWVTZXJ2aWNlLmdldENsb3NlV2Vidmlld01lc3NhZ2UoUG9zdE1lc3NhZ2VFdmVudC5DTE9TRV9XRUJWSUVXLCAnJyk7XG4gICAgICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdjaGVja3BvaW50JzpcbiAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyB8fFxuICAgICAgICAgICAgICBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTJykge1xuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVtb3ZlQ2hlY2twb2ludCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ1JPTEUnOlxuICAgICAgICAgIHRoaXMucHJvZ3JhbS5yZW1vdmUoZXZ0LnBheWxvYWQuZGF0YSwgJ1JPTEUnKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICduZXctY2hlY2twb2ludHMnOlxuICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQVNTRVNTTUVOVCcgJiYgIWV2dC5wYXlsb2FkLmlzRGF0YVJlbW92ZWQpIHtcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTJyAmJiAhZXZ0LnBheWxvYWQuaXNEYXRhUmVtb3ZlZCkge1xuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGV2dC5wYXlsb2FkLmlzQ2hlY2twb2ludENoZWNrZWQgJiZcbiAgICAgICAgICAgICAgb3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIG9wdGlvbi5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5tb3JlT3B0aW9ucy5DSEVDS1BPSU5UU19ORVcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZW1vdmUoJ25ldy1jaGVja3BvaW50cycpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhc3NpZ25lZVR5cGVDaGFuZ2UnOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLndob0NhbkNvbXBsZXRlID0gJ0FMTCc7XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMubGlzdCA9XG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2Uuc2V0TGlzdChcbiAgICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLmFzc2lnbmVlc0xpc3QsXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5vcmlnaW5hbEFzc2lnbmVlLFxuICAgICAgICAgICAgICAnZW1wbG95ZWVfaWQnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmVGbGFnX2dyb3Vwcykge1xuICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsnYXNzaWduZWVHcm91cHMnXVsnbGlzdCddID1cbiAgICAgICAgICAgICAgW107XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcbiAgICAgICAgICBdID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYW55UmV2aWV3ZXInOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcbiAgICAgICAgICBdID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAoZXZ0LnBheWxvYWQuYWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ1BPTElDWV9QT1JUQUwnOlxuICAgICAgICAgIHRoaXMucG9saWN5LmNvbmZpcm1Qb2xpY3lQb3J0YWwoZXZ0LmFjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Fzc2lnbmVlVHlwZUNoYW5nZSc6XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMud2hvQ2FuQ29tcGxldGUgPVxuICAgICAgICAgICAgJ0FOWV9PTkUnO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcbiAgICAgICAgICBdID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2FueVJldmlld2VyJzpcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXG4gICAgICAgICAgXSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgICBhY3Rpb246ICcnLFxuICAgICAgZGF0YTogbnVsbCxcbiAgICB9O1xuICAgIHJldHVybiBldnQ7XG4gIH1cblxuICBzZXRXb3JrZmxvdyh3b3JrRmxvd0NvZGU6IGFueSwgd29ya0Zsb3dMaXN0OiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3RlZFdvcmtmbG93ID0gd29ya0Zsb3dMaXN0LmZpbmQoXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Py5jb2RlID09PSB3b3JrRmxvd0NvZGVcbiAgICApO1xuICAgIHNlbGVjdGVkV29ya2Zsb3dcbiAgICAgID8gKHRoaXMuY3VycmVudFdvcmtmbG93ID0gc2VsZWN0ZWRXb3JrZmxvdylcbiAgICAgIDogKHRoaXMuY3VycmVudFdvcmtmbG93ID0gbnVsbCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkV29ya2Zsb3c7XG4gIH1cblxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xuICAgICAgY2FzZSAnQUFSJzpcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50Py5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTEFJJzpcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1JBQyc6XG4gICAgICBjYXNlICdBQ1RXJzpcbiAgICAgICAgdGhpcy5yZXBvcnRDYXNlLmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVInOlxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFzc2Vzc21lbnREZXRhaWxzPy5hc3Nlc3NtZW50X3R5cGU/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgJ2NvbXBsaWFuY2VfYXVkaXQnXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb3JlT3B0aW9uPy5tb3JlT3B0aW9uc0xpc3Q/LkNBUj8uZmluZEluZGV4KFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LmNvZGUgPT09ICdBU1NFU1NNRU5UJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5jaGVja2VkID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5hZGRNb3JlSW5mbyhcbiAgICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29tcGxpYW5jZT8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NBUCc6XG4gICAgICAgIHRoaXMucG9saWN5Py5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FQUic6XG4gICAgICAgIHRoaXMucHJvZ3JhbT8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dSQyc6XG4gICAgICAgIHRoaXMuZ3JjT2JqZWN0Py5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHBvcHVsYXRlTW9yZU9wdGlvbihldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMubW9yZU9wdGlvbikge1xuICAgICAgdGhpcy5tb3JlT3B0aW9uLnBvcHVsYXRlKGV2ZW50KTtcbiAgICB9XG4gIH1cbiAgaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm1vcmVPcHRpb24/LmhpZGVFbGVtZW50cyhldmVudCk7XG4gIH1cblxuICBzaG93Q29uZmlybWF0aW9uUG9wdXAoY29uZmlnOiBDb25maXJtYXRpb25BbGVydCkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSBjb25maWc7XG4gIH1cblxuICBidWxrVXBsb2FkQnJvd3NlKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlICdBTVInOlxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnRyaWdnZXJCcm93c2VGaWxlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ01SJzpcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQudHJpZ2dlckJyb3dzZUZpbGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdJQUEnOlxuICAgICAgICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25SZXNldEZvcm0oKSB7XG4gICAgdGhpcy5tb2RlID0gJ0NSRUFURSc7XG4gICAgdGhpcy5lbnRydXN0QnV0dG9uTmFtZSA9ICdFbnRydXN0JztcbiAgfVxuXG4gIG9uUmVzZXRHUkNGb3JtKCkge1xuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xuICB9XG4gIHNoaWZ0VG9FZGl0TW9kZSgpIHtcbiAgICB0aGlzLm1vZGUgPSAnRURJVCc7XG4gIH1cbiAgc2Nyb2xsRm9ybSgpIHtcbiAgICBpZiAodGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LnRvcCA8IDM4KSB7XG4gICAgICB0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LmFkZCgnaGlkZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LnJlbW92ZSgnaGlkZScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgd2hpY2ggbW9yZSBvcHRpb25zIHdlIGFyZSByZW1vdmluZy5cbiAgICogQHBhcmFtIGlzQ2hlY2twb2ludENoZWNrZWQgIGlzIHRydWUgaWYgdmFsdWUgY2hlY2twb2ludHMgaXMgcmVtb3ZlZCBieSBjbGlja2luZyBvbiBtb3JlIG9wdGlvbnNcbiAgICovXG4gIG9uUmVtb3ZpbmdDaGVja3BvaW50KFxuICAgIGV2ZW50OiBzdHJpbmcsXG4gICAgaXNDaGVja3BvaW50Q2hlY2tlZD86IGJvb2xlYW4sXG4gICAgaXNEYXRhUmVtb3ZlZD86IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgbGV0IG1zZyA9ICcnO1xuICAgIGlmIChldmVudCA9PT0gJ25ldy1jaGVja3BvaW50cycpIHtcbiAgICAgIG1zZyA9XG4gICAgICAgICdJZiB5b3UgY2hvb3NlIHRvIHJlbW92ZSB0aGVzZSBDaGVja3BvaW50cywgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIGNhbm5vdCBiZSByZXN0b3JlZC4gSG93ZXZlciwgeW91IHdpbGwgc3RpbGwgYmUgYWJsZSB0byBjcmVhdGUgbmV3IENoZWNrcG9pbnRzIG9yIGxpbmsgYW4gQXNzZXNzbWVudC4nO1xuICAgIH0gZWxzZSB7XG4gICAgICBtc2cgPVxuICAgICAgICAnSWYgeW91IGNob29zZSB0byByZW1vdmUgdGhlc2UgY2hlY2twb2ludHMsIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCBjYW5ub3QgYmUgcmVzdG9yZWQuJztcbiAgICB9XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6IG1zZyxcbiAgICAgIGFjdGlvbjogZXZlbnQsXG4gICAgICBkYXRhOiB7IHR5cGU6ICdyZXNwb25zaWJpbGl0eUNoZWNrcG9pbnQnIH0sXG4gICAgICBpc0NoZWNrcG9pbnRDaGVja2VkOiBpc0NoZWNrcG9pbnRDaGVja2VkID8/IGZhbHNlLFxuICAgICAgaXNEYXRhUmVtb3ZlZDogaXNEYXRhUmVtb3ZlZCA/PyBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgb25SZW1vdmluZ1JvbGUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBtc2cgPSAnJztcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIG1zZyA9ICdJZiB5b3UgY2hhbmdlIHRoZSByb2xlcywgYW55IHVuc2F2ZWQgY2hhbmdlcyB3b3VsZCBiZSBsb3N0Lic7XG4gICAgfVxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOiBtc2csXG4gICAgICBhY3Rpb246ICdST0xFJyxcbiAgICAgIGRhdGE6IGV2ZW50LFxuICAgIH07XG4gIH1cblxuICBpc0Fzc2Vzc21lbnREaXNhYmxlZChpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyB8fCBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XG4gICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRpc2FibGVNb3JlT3B0aW9ucyh3b3JrZmxvd0NvZGU6IGFueSwgZGlzYWJsZWRFbGVtZW50c0NvZGU6IGFueSkge1xuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0KS5pbmNsdWRlcyh3b3JrZmxvd0NvZGUpKSB7XG4gICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93Q29kZV0uZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkRWxlbWVudHNDb2RlLmluY2x1ZGVzKG9wdGlvbj8uY29kZSkpIHtcbiAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hlY2twb2ludFNlbGVjdGlvbihldmVudDogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGVja3BvaW50Q291bnQgPSBldmVudDtcbiAgfVxuXG4gIG9uUmNTZWxlY3RlZChpc1JjU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzUkNTZWxlY3RlZCA9IGlzUmNTZWxlY3RlZDtcbiAgfVxuXG4gIGZldGNoT3JnYW5pemF0aW9uRGV0YWlscygpIHtcbiAgICB0aGlzLm9yZ0NvbW1vblNlcnZpY2U/LmdldE9yZ0RldGFpbHNJbmZvKCk/LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vcmdEZXRhaWxzID0gcmVzO1xuICAgICAgICBpZiAocmVzPy5idXNpbmVzc19jeWNsZXNfYXJyICYmIHJlcz8uYnVzaW5lc3NfY3ljbGVzX2Fycj8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnIuZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LnNlbGVjdGVkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBzcGxpdHRlZCA9IHNlbGVjdGVkWzBdLmJ1c2luZXNzX2N5Y2xlPy5zcGxpdCgnLScpO1xuICAgICAgICAgIHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGUgPSBgJHtzcGxpdHRlZFswXT8uc2xpY2UoXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKX0gLSAke3NwbGl0dGVkWzFdPy5zbGljZSg0KX1gO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFVzZXJEZXRhaWxzKCkge1xuICAgIHRoaXMub3JnQ29tbW9uU2VydmljZT8uZ2V0T3JnVXNlckluZm8oKT8uc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmF1dGgudXNlckRldGFpbHMgPSByZXM7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIG9yZ2FuaXphdGlvbiB1c2VycycsIGVycik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXNzaWduZWVUeXBlQ2hhbmdlKCkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnVGhpcyBhY3Rpb24gd2lsbCByZXNldCB0aGUgY2hhbmdlcyBhbmQgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBhc3NpZ25lZS4nLFxuICAgICAgYWN0aW9uOiAnYXNzaWduZWVUeXBlQ2hhbmdlJyxcbiAgICAgIGRhdGE6IHt9LFxuICAgICAgaXNSZWRBbGVydDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgLy8gZXZlbnQgPT4gJ3NlcXVlbnRpYWwnIHx8ICdhbnlSZXZpZXdlcidcbiAgb25SZXZpZXdlckNoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29tbW9uVGV4dDogc3RyaW5nID1cbiAgICAgICdPbmNlIGNvbmZpcm1lZCwgdGhlIG5ldyByZXZpZXcgd29ya2Zsb3cgd2lsbCBiZSBhcHBsaWNhYmxlIGZvciBhbGwgY3VycmVudCBhbmQgZnV0dXJlIHJldmlldyBkdWUgZGF0ZXMuJztcbiAgICBjb25zdCBtc2cgPVxuICAgICAgY29tbW9uVGV4dCArXG4gICAgICAoZXZlbnQgPT09ICdhbnlSZXZpZXdlcidcbiAgICAgICAgPyBgSWYgYW55IHJldmlld2VyIGhhZCBjb21wbGV0ZWQgdGhlIHJldmlldywgdGhlIGN1cnJlbnQgcmV2aWV3IGR1ZSBkYXRlIHdpbGwgYmUgY2xvc2VkIGFuZCB0aGUgcmV2aWV3IHN0YXR1cyB3aWxsIGJlIHVwZGF0ZWQgdG8gJ0NvbXBsZXRlZCcuYFxuICAgICAgICA6ICcnKTtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgYWN0aW9uOiBldmVudCxcbiAgICB9O1xuICB9XG5cbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCkge1xuICAgIGlmICh0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcmVzcG9uc2liaWxpdHlfc2ltcGxpZmljYXRpb24nKSkge1xuICAgICAgdGhpcy53b3JrZmxvd1R5cGVMaXN0WzBdLndvcmtmbG93TmFtZSA9ICdBZGQgYSBSZXNwb25zaWJpbGl0eSc7XG4gICAgICB0aGlzLndvcmtmbG93VHlwZUxpc3RbMV0ud29ya2Zsb3dOYW1lID0gJ0FkZCBNdWx0aXBsZSBSZXNwb25zaWJpbGl0aWVzJztcbiAgICB9XG4gIH1cbn1cbiIsIjxhcHAtc25hY2stYmFyPjwvYXBwLXNuYWNrLWJhcj5cbjxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtb3ZlcmxheVwiPjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cIndvcmtmbG93LWVuZ2luZVwiXG4gIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiXG4gIFtjbGFzcy5iZ109XCJcbiAgICAoIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dDYXRlZ29yeUxpc3QpICYmXG4gICAgIXBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50c1xuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyXCJcbiAgICBbbmdTd2l0Y2hdPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCJcbiAgICBbY2xhc3Mud2l0aC1wcmV2aWV3LWFzc2Vzc21lbnRdPVwiKGF1dGg/LnByZXZpZXdQYW5lbCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgW2NsYXNzLndpdGgtZnJlcXVlbmN5XT1cIlxuICAgICAgY29tcGxpYW5jZT8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XG4gICAgICBjb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5JyB8fFxuICAgICAgcmlza0NvbXBvbmVudD8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XG4gICAgICBwb2xpY3k/LmFjdGl2ZVNlbGVjdG9yID09PSAnZnJlcXVlbmN5JyB8fFxuICAgICAgcG9saWN5Py5hY3RpdmVTZWxlY3RvciA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5J1xuICAgIFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgpXCJcbiAgICAgIGlkPVwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiXG4gICAgICBjbGFzcz1cImNsb3NlXCJcbiAgICAgIFthcHBUb29sdGlwXT1cIidbRXNjXSB0byBjbG9zZSdcIlxuICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICBkZWxheT1cIjBcIlxuICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgICBjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlIHx8ICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXG4gICAgICBcIlxuICAgICAgW2NsYXNzLnNtaWxleS1vcGVuZWRdPVwiXG4gICAgICAgIHJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgbG9nSXNzdWVDb21wb25lbnQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgY29tcGxpYW5jZT8uc2hvd1NtaWxleSB8fFxuICAgICAgICBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHMgfHxcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93U21pbGV5IHx8XG4gICAgICAgIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uc2hvd0V4Y2VsIHx8XG4gICAgICAgIHJpc2tCdWxrVXBsb2FkPy5zaG93U21pbGV5IHx8XG4gICAgICAgIHJpc2tCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcbiAgICAgICAgcHJvZ3JhbT8uc2hvd1NtaWxleSB8fFxuICAgICAgICBpbXBvcnRBbkFzc2Vzc21lbnQ/LnNob3dTbWlsZXlcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5M2Y7PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIXVpS2l0U2VydmljZS5pc1NtaWxleU9uXCJcbiAgICAgIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW1vcmVcIlxuICAgICAgW2hpZGRlbl09XCJzaG93TW9yZU9wdGlvbiA9PT0gZmFsc2UgfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcbiAgICAgIFtjbGFzcy5yZWFkLW9ubHldPVwidWlLaXRTZXJ2aWNlPy5pc0xvYWRlclwiXG4gICAgPlxuICAgICAgPGFwcC1tb3JlLW9wdGlvblxuICAgICAgICAjbW9yZU9wdGlvblxuICAgICAgICBbY3VycmVudFdvcmtmbG93XT1cImN1cnJlbnRXb3JrZmxvdz8uY29kZVwiXG4gICAgICAgIFtpc0VkaXRNb2RlXT1cIm1vZGUgPT09ICdFRElUJ1wiXG4gICAgICAgIFtpc1JDU2VsZWN0ZWRdPVwiXG4gICAgICAgICAgaXNSQ1NlbGVjdGVkIHx8XG4gICAgICAgICAgKGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0dSQycgJiZcbiAgICAgICAgICAgIGdyY09iamVjdD8ubGlzdE9iamVjdC5SQy5zZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDApXG4gICAgICAgIFwiXG4gICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAoc2VsZWN0ZWRPcHRpb24pPVwiYWRkTW9yZUluZm8oJGV2ZW50KVwiXG4gICAgICAgIFtpc1Byb2dyYW1TZWxlY3RlZF09XCJzZWxlY3RlZFByb2dyYW1cIlxuICAgICAgICBbYWxsb3dlZEZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgIFtvcmdEZXRhaWxzRGF0YV09XCJvcmdEZXRhaWxzXCJcbiAgICAgICAgW2lzQXR0cmlidXRlc0F2YWlsYWJsZV09XCJcbiAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdHUkMnICYmXG4gICAgICAgICAgZ3JjT2JqZWN0Py5zZWxlY3RlZEF0dHJpYnV0ZXM/LmF0dHJpYnV0ZXM/Lmxlbmd0aCA+IDBcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvYXBwLW1vcmUtb3B0aW9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLWZvcm1cIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxuICAgICAgW2NsYXNzLm5vLXNoYWRvd109XCJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdBTVInIHx8XG4gICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQ01SJyB8fFxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FBQScgfHxcbiAgICAgICAgdWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHxcbiAgICAgICAgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAoc2Nyb2xsKT1cInNjcm9sbEZvcm0oKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICFbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIG9wZW5lZEZyb21cbiAgICAgICAgICAgIClcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhKHVpS2l0U2VydmljZS5pc1NtaWxleU9uIHx8IHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50cylcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXG4gICAgICAgICAgICAjZHJvcGRvd25Sb3dcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgKG1vZGUgPT09ICdFRElUJyB8fFxuICAgICAgICAgICAgICAgICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdvcmtmbG93Q2hhbmdlIHx8XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRQcm9ncmFtKSAmJlxuICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgIT09ICdBQ1RXJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImN1cnJlbnRXb3JrZmxvd1wiPlxuICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXG4gICAgICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgICAgIGN5PVwiMjZcIlxuICAgICAgICAgICAgICAgICAgcj1cIjI1XCJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIiAjZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgICAgICAgICAgICA+U2VsZWN0IGEgV29ya2Zsb3c8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdBQ1RXJ1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICAgICAgICAgICAgPkFzc2lnbiBhIENhc2UgdG8gV29ya2Zsb3c8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgPio8L3NwYW5cbiAgICAgICAgICAgICAgICAgID48L2xhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWN1cnJlbnRXb3JrZmxvdyAmJiBjdXJyZW50V29ya2Zsb3c/LmNvZGUgIT09ICdBQ1RXJ1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgV29ya2Zsb3dcIiByZWFkb25seSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZCBmaXJzdC1maWVsZFwiICpuZ0lmPVwiY3VycmVudFdvcmtmbG93XCI+XG4gICAgICAgICAgICAgICAgICA8IS0tIHt7Y3VycmVudFdvcmtmbG93IHwganNvbn19IC0tPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgbm8td2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImN1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Zsb3dUeXBlID09PSAnQUNUVydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnPHN0cm9uZz5DYXNlIFJlcG9ydGVkIEJ5OiA8L3N0cm9uZz4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwb3J0QnkgfCB1c2VyUGlwZSA6IHVzZXJMaXN0KT8ubWVtYmVyX25hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50V29ya2Zsb3c/LndvcmtmbG93TmFtZVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCI+e3tjdXJyZW50V29ya2Zsb3c/LndvcmtmbG93TmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICF3b3JrZmxvd0xpc3QgJiZcbiAgICAgICAgICAgICAgICAgICAgICBvcGVuZWRGcm9tICE9ICdBU1NFU1NNRU5UJyAmJlxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09PSAnQ0FQUicgJiZcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEJ1c2luZXNzQ3ljbGUgJiZcbiAgICAgICAgICAgICAgICAgICAgIXByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyYW0tYnVzaW5lc3MtY3ljbGUgdngtZnMtMTEgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0xIHZ4LXBsLTIgdngtcHItMVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMiB2eC1tci0xXCI+JiN4ZTk2Mzs8L2k+IFRoaXMgcHJvZ3JhbSBpc1xuICAgICAgICAgICAgICAgICAgYmVpbmcgc2V0LXVwIGZvciB0aGUgYnVzaW5lc3MgY3ljbGU6XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZ3LTYwMCB2eC1tbC0xXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEJ1c2luZXNzQ3ljbGVcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSA8YXBwLWNyZWF0ZS1kb2N1bWVudHM+PC9hcHAtY3JlYXRlLWRvY3VtZW50cz4gLS0+XG4gICAgICAgIDwhLS0gPGFwcC1idWxrLXZpZXc+PC9hcHAtYnVsay12aWV3PiAtLT5cbiAgICAgICAgPCEtLSA8YXBwLWJ1bGstcmVzcG9uc2liaWxpdHktdmlldz48L2FwcC1idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXc+IC0tPlxuICAgICAgICA8YXBwLXdvcmtmbG93LWNvbXBsaWFuY2VcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXG4gICAgICAgICAgW2lzRW50cnVzdF09XCJlbnRydXN0QnV0dG9uTmFtZS50b0xvd2VyQ2FzZSgpID09ICdlbnRydXN0J1wiXG4gICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5SWRdPVwiaWRcIlxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgIFtmcmFtZXdvcmtEZXRhaWxzXT1cImZyYW1ld29ya0RldGFpbHNcIlxuICAgICAgICAgIFthc3Nlc3NtZW50RGV0YWlsc109XCJhc3Nlc3NtZW50RGV0YWlsc1wiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUidcIlxuICAgICAgICAgICNyZXNwb25zaWJpbGl0eVxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgICAgW3NlbGVjdGVkUkNdPVwic2VsZWN0ZWRSQ1wiXG4gICAgICAgICAgW2Nsb3NlT25Fc2NdPVwiY2xvc2VPbkVzY1wiXG4gICAgICAgICAgKGFzc2lnbmVlVHlwZUNoYW5nZSk9XCJhc3NpZ25lZVR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKG9uUmV2aWV3ZXJUeXBlQ2hhbmdlKT1cIm9uUmV2aWV3ZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIChyZXNldEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgKG9uUmVtb3ZpbmdDaGVja3BvaW50KT1cIm9uUmVtb3ZpbmdDaGVja3BvaW50KCRldmVudCwgZmFsc2UsIHRydWUpXCJcbiAgICAgICAgICAoaXNBc3Nlc3NtZW50RGlzYWJsZWQpPVwiaXNBc3Nlc3NtZW50RGlzYWJsZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGNoZWNrcG9pbnRDb3VudFVwZGF0ZWQpPVwiY2hlY2twb2ludENvdW50ID0gJGV2ZW50XCJcbiAgICAgICAgICBbc2VsZWN0ZWRQcm9ncmFtXT1cInNlbGVjdGVkUHJvZ3JhbVwiXG4gICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5RGV0YWlsc109XCJ3b3JrZmxvd0RldGFpbHNcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctY29tcGxpYW5jZT5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1yaXNrXG4gICAgICAgICAgW3NlY29uZGFyeU9wZW5Qb3J0YWxdPVwic2Vjb25kYXJ5T3BlblBvcnRhbFwiXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFSJ1wiXG4gICAgICAgICAgI3Jpc2tcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxuICAgICAgICAgIChyY1NlbGVjdGVkKT1cIm9uUmNTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbcmlza0lkXT1cImlkXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXJpc2s+XG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcG9saWN5XG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQJ1wiXG4gICAgICAgICAgI3BvbGljeVxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxuICAgICAgICAgIChzaGlmdFRvRWRpdE1vZGUpPVwic2hpZnRUb0VkaXRNb2RlKClcIlxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICAgIFtwb2xpY3lJZF09XCJpZFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3RlbXBsYXRlSWRdPVwidGVtcGxhdGVJZFwiXG4gICAgICAgICAgW2NvbnZlcnRGaWxlRGF0YV09XCJjb252ZXJ0RmlsZURhdGFcIlxuICAgICAgICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cInNlbGVjdGVkQ2F0ZWdvcnlcIlxuICAgICAgICAgIFtpc1NlbmRGb3JBdHRlc3RhdGlvbl09XCJpc1NlbmRGb3JBdHRlc3RhdGlvblwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXBvbGljeT5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1zdXJ2ZXktZm9ybVxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiXG4gICAgICAgICAgI3N1cnZleUZvcm1cbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXN1cnZleS1mb3JtPlxuICAgICAgICA8YXBwLWFkZC1tdWx0aXBsZS1yaXNrXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQU1SJ1wiXG4gICAgICAgICAgI211bHRpcGxlUmlza1xuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgID48L2FwcC1hZGQtbXVsdGlwbGUtcmlzaz5cbiAgICAgICAgPCEtLSA8YXBwLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eSAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIiAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIiAjbXVsdGlwbGVSZXNwb25zaWJpbGl0eT5cbiAgICAgICAgICAgICAgICA8L2FwcC1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHk+IC0tPlxuXG4gICAgICAgIDxsaWItYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lclxuICAgICAgICAgIFtvcmdEZXRhaWxzXT1cIm9yZ0RldGFpbHNcIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgICAgI211bHRpcGxlUmVzcG9uc2liaWxpdHlcbiAgICAgICAgPjwvbGliLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXI+XG4gICAgICAgIDwhLS0gTmV3IExvZyBhbiBJc3N1ZSAtLT5cbiAgICAgICAgPGFwcC1sb2ctYW4taXNzdWVcbiAgICAgICAgICBbaXNzdWVEZXRhaWxzXT1cImlzc3VlRGF0YVwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCJcbiAgICAgICAgICBbcmVwb25zaWJpbGl0eURhdGFdPVwicmVwb25zaWJpbGl0eURhdGFcIlxuICAgICAgICAgIFthc3Nlc3NtZW50UXVlc3Rpb25dPVwiYXNzZXNzbWVudFF1ZXN0aW9uXCJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICBbc291cmNlXT1cInNvdXJjZVwiXG4gICAgICAgICAgW2lzc3VlSWRdPVwiaWRcIlxuICAgICAgICAgICNsb2dBbklzc3VlXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICBbKG1vZGUpXT1cIm1vZGVcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWxvZy1hbi1pc3N1ZT5cbiAgICAgICAgPCEtLSBPbGQgTG9nIGFuIGlzc3VlIC0tPlxuICAgICAgICA8IS0tIDxhcHAtbG9nLWFuLWlzc3VlICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiIFtyZXNwb25zaWJpbGl0aWVzRGF0YV09XCJyZXBvbnNpYmlsdHlEYXRhXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgICAgICAgICAgI2xvZ0FuSXNzdWUgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+IC0tPlxuXG4gICAgICAgIDxhcHAtd29ya2Zsb3ctYXNzZXNzbWVudFxuICAgICAgICAgIFthc3Nlc3NtZW50SWRdPVwiaWRcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIlxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgI2Fzc2Vzc21lbnRcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LWFzc2Vzc21lbnQ+XG4gICAgICAgIDxhcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnRcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidJQUEnXCJcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxuICAgICAgICAgICNpbXBvcnRBc3Nlc3NtZW50XG4gICAgICAgID48L2FwcC1pbXBvcnQtYW4tYXNzZXNzbWVudD5cbiAgICAgICAgPCEtLSA8YXBwLXdvcmtmbG93LXByb2dyYW0gI3Byb2dyYW0gKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiPjwvYXBwLXdvcmtmbG93LXByb2dyYW0+IC0tPlxuICAgICAgICA8YXBwLXdvcmtmbG93LXByb2dyYW1cbiAgICAgICAgICAjcHJvZ3JhbVxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxuICAgICAgICAgIFtvcmdEZXRhaWxzXT1cIm9yZ0RldGFpbHNcIlxuICAgICAgICAgIFthbGxvd2VkRmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgICAoZGlzYWJsZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImRpc2FibGVNb3JlT3B0aW9ucygnQ0FQUicsICRldmVudClcIlxuICAgICAgICAgIFtwcm9ncmFtVHlwZV09XCJwcm9ncmFtVHlwZVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3Byb2dyYW1JZF09XCJpZFwiXG4gICAgICAgICAgW3Byb2dyYW1EZXRhaWxzXT1cIndvcmtmbG93RGV0YWlsc1wiXG4gICAgICAgICAgKG9uUmVtb3ZpbmdSb2xlKT1cIm9uUmVtb3ZpbmdSb2xlKCRldmVudClcIlxuICAgICAgICAgIFtjYW5GcmFtZXdvcmtDaGFuZ2VdPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcbiAgICAgICAgICBbYWRkVG9Qcm9ncmFtRGV0YWlsc109XCJhZGRUb1Byb2dyYW1EZXRhaWxzXCJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LXByb2dyYW0+XG5cbiAgICAgICAgPCEtLSBHUkMgT2JqZWN0IC0tPlxuICAgICAgICA8bGliLWdyYy1vYmplY3QtY29udGFpbmVyXG4gICAgICAgICAgI2dyY09iamVjdFxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInR1JDJ1wiXG4gICAgICAgICAgW2dyY1R5cGVdPVwiZ3JjVHlwZVwiXG4gICAgICAgICAgW01PREVdPVwibW9kZVwiXG4gICAgICAgICAgW0lEXT1cImlkXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHJlc2V0Rm9ybSk9XCJvblJlc2V0R1JDRm9ybSgpXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgID48L2xpYi1ncmMtb2JqZWN0LWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFJlcG9ydCBhIENhc2UgLS0+XG4gICAgICAgIDxhcHAtd29ya2Zsb3ctY2FzZVxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInUkFDJ1wiXG4gICAgICAgICAgI3JlcG9ydENhc2VcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICBbc291cmNlXT1cInNvdXJjZVwiXG4gICAgICAgICAgW2Nhc2VJZF09XCJpZFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXG4gICAgICAgICAgW2Fzc2Vzc21lbnRRdWVzdGlvbl09XCJhc3Nlc3NtZW50UXVlc3Rpb25cIlxuICAgICAgICAgIFtjYXNlVHlwZVBlcm1pc3Npb25dPVwiY2FzZVR5cGVQZXJtaXNzaW9uXCJcbiAgICAgICAgICBbd29ya2Zsb3dUeXBlXT1cIidSQUMnXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctY2FzZT5cbiAgICAgICAgPCEtLSBBc3NpZ24gY2FzZSB0byB3b3JrZmxvdyAtLT5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1jYXNlXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQ1RXJ1wiXG4gICAgICAgICAgI3JlcG9ydENhc2VcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICBbc291cmNlXT1cInNvdXJjZVwiXG4gICAgICAgICAgW2Nhc2VJZF09XCJpZFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3dvcmtmbG93VHlwZV09XCInQUNUVydcIlxuICAgICAgICAgIFtyZXNwb25zaWJpbGl0eURhdGFdPVwicmVwb25zaWJpbGl0eURhdGFcIlxuICAgICAgICAgIFthc3Nlc3NtZW50UXVlc3Rpb25dPVwiYXNzZXNzbWVudFF1ZXN0aW9uXCJcbiAgICAgICAgICBbY2FzZVR5cGVQZXJtaXNzaW9uXT1cImNhc2VUeXBlUGVybWlzc2lvblwiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGNhc2VSZXBvcnRlZEJ5KT1cImNhc2VSZXBvcnRlZEJ5KCRldmVudClcIlxuICAgICAgICAgICh1c2VyTGlzdEVtaXR0ZXIpPVwidXNlckxpc3RFbWl0dGVyKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1jYXNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiWydSQUMnLCAnQUNUVyddLmluY2x1ZGVzKGN1cnJlbnRXb3JrZmxvdz8uY29kZSlcIlxuICAgICAgICBjbGFzcz1cInZ4LWQtZmxleFwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImNhbmNlbFwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIENBTkNFTFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgbW9kZSA9PT0gXCJFRElUXCIgJiYgY3VycmVudFdvcmtmbG93Py5jb2RlID09PSBcIlJBQ1wiXG4gICAgICAgICAgICAgID8gXCJVcGRhdGVcIlxuICAgICAgICAgICAgICA6IFwiUmVwb3J0XCJcbiAgICAgICAgICB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFSJ1wiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7XG4gICAgICAgICAgbW9kZSA9PT0gXCJFRElUXCIgJiYgb3BlbmVkRnJvbSAhPT0gXCJNT1ZFX1RPX1JFR0lTVEVSXCJcbiAgICAgICAgICAgID8gXCJVcGRhdGVcIlxuICAgICAgICAgICAgOiBcIkFkZFwiXG4gICAgICAgIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXG4gICAgICAgICAgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHxcbiAgICAgICAgICAhcmlza0J1bGtVcGxvYWQ/LmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5XG4gICAgICAgIFwiXG4gICAgICAgIChjbGljayk9XCJidWxrVXBsb2FkQnJvd3NlKCdBTVInKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQU1SJ1wiXG4gICAgICA+XG4gICAgICAgIEJyb3dzZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0NNUicpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCJcbiAgICAgID5cbiAgICAgICAgQnJvd3NlXG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPCEtLSBUaGlzIGhhcyB0ZXJuYXJ5IG9wZXJhdGlvbiB0byBoYW5kbGUgdGhlIGJvdGggc2NlbmFyaW9zIG9mIGhvdyBpdCB3b3JrcyB3aXRoIGNvbXBsaWFuY2UgYW5kIHByb2dyYW0gbW9kdWxlLCBwbGVhc2UgZG9uJ3QgY2hhbmdlIHRoaXMuIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FSJ1wiXG4gICAgICA+XG4gICAgICAgIHt7XG4gICAgICAgICAgZW50cnVzdEJ1dHRvbk5hbWUgIT09IFwiXCIgJiYgbW9kZSAhPT0gXCJFRElUXCJcbiAgICAgICAgICAgID8gZW50cnVzdEJ1dHRvbk5hbWVcbiAgICAgICAgICAgIDogbW9kZSA9PT0gXCJFRElUXCJcbiAgICAgICAgICAgID8gXCJVUERBVEVcIlxuICAgICAgICAgICAgOiBcIkVudHJ1c3RcIlxuICAgICAgICB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICBtb2RlID09IFwiRURJVFwiXG4gICAgICAgICAgICA/IGlzU2VuZEZvckF0dGVzdGF0aW9uXG4gICAgICAgICAgICAgID8gXCJTZW5kIGZvciBhdHRlc3RhdGlvblwiXG4gICAgICAgICAgICAgIDogXCJVcGRhdGVcIlxuICAgICAgICAgICAgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCJcbiAgICAgICAgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiXG4gICAgICA+XG4gICAgICAgIENvbnRpbnVlIHRvIGRyYWZ0XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkFkZFwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIlxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJidWxrVXBsb2FkQnJvd3NlKCdJQUEnKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiXG4gICAgICA+XG4gICAgICAgIEJyb3dzZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8ICFwcm9ncmFtPy52YWxpZFwiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoJ0NBUFInKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8ICFwcm9ncmFtPy52YWxpZFwiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoJ0NBUFInKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCI+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93blwiXG4gICAgICAgICpuZ0lmPVwid29ya2Zsb3dMaXN0XCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIlxuICAgICAgICBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImRyb3Bkb3duV2lkdGhcIlxuICAgICAgPlxuICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1saXN0XCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgd29ya2Zsb3cgb2Ygd29ya2Zsb3dUeXBlTGlzdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlV29ya2Zsb3coJGV2ZW50LCB3b3JrZmxvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgICAgKm5nSWY9XCJ3b3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIndvcmtmbG93Py5jb2RlXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY3VycmVudFdvcmtmbG93Py5jb2RlID09PSB3b3JrZmxvdz8uY29kZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHdvcmtmbG93Py53b3JrZmxvd05hbWUgfX08L2FwcC1jcy1yYWRpb1xuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1vdmVybGF5XCJcbiAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1jb25maXJtYXRpb24tYWxlcnRcbiAgICAgIGlkPVwiY29uZmlybWF0aW9uLWRpYWxvZ3VlXCJcbiAgICAgIChhY3Rpb24pPVwiY29uZmlybVdvcmtmbG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcbiAgICAgIFttZXNzYWdlXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5tZXNzYWdlXCJcbiAgICAgIFtjb25maWddPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWdcIlxuICAgID48L2FwcC1jb25maXJtYXRpb24tYWxlcnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
821
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQWlCdkIsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU03RCxNQUFNLE9BQU8sZ0NBQWdDO0lBUTNDLFlBQ1MsWUFBMEIsRUFDekIsUUFBeUIsRUFDMUIsSUFBaUIsRUFDaEIsZ0JBQTJDLEVBQzNDLGtCQUFzQyxFQUN0QywyQkFBd0QsRUFDeEQsYUFBNEI7UUFON0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWR0Qyx3QkFBbUIsR0FBRyxJQUFJLENBQUM7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Uzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRUYsVUFBVTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNuQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ3dCLFdBQVc7c0JBQXZELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDdEIsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNNLGlCQUFpQjtzQkFBekMsU0FBUzt1QkFBQyxZQUFZO2dCQUV2QiwyQkFBMkI7c0JBRDFCLFNBQVM7dUJBQUMsWUFBWTtnQkFHdkIsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFUCxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRXZDLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBT2QsT0FBTztzQkFBZixLQUFLO2dCQUcrQyxnQkFBZ0I7c0JBQXBFLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNFRuRCxVQUFVO3NCQURULFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgZWZmZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkZE11bHRpcGxlUmlza0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1tdWx0aXBsZS1yaXNrL2FkZC1tdWx0aXBsZS1yaXNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25BbGVydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlybWF0aW9uLWFsZXJ0JztcbmltcG9ydCB7IElzc3VlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXNzdWUtZGF0YSc7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWFzc2Vzc21lbnQvd29ya2Zsb3ctYXNzZXNzbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1wb3J0QW5Bc3Nlc3NtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctY29tcGxpYW5jZS93b3JrZmxvdy1jb21wbGlhbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXb3JrZmxvd1BvbGljeUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXBvbGljeS93b3JrZmxvdy1wb2xpY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFdvcmtmbG93Umlza0NvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXJpc2svd29ya2Zsb3ctcmlzay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nQW5Jc3N1ZUNvbXBvbmVudCB9IGZyb20gJy4vLi4vbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9yZU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vLi4vbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFdvcmtmbG93UHJvZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LXByb2dyYW0vd29ya2Zsb3ctcHJvZ3JhbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JjT2JqZWN0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2NvbW1vbi13b3JrZmxvdy1zZXJ2aWNlcy9vcmdhbml6YXRpb24tY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXBvcnRBQ2FzZVNlcnZpY2UgfSBmcm9tICcuLi9yZXBvcnQtYS1jYXNlL3NlcnZpY2VzL3JlcG9ydC1hLWNhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0Nhc2VDb21wb25lbnQgfSBmcm9tICcuLi9yZXBvcnQtYS1jYXNlL3dvcmtmbG93LWNhc2Uvd29ya2Zsb3ctY2FzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVwb3J0LWNhc2UtcGVybWlzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElmcmFtZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pZnJhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBQb3N0TWVzc2FnZUV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZnJhbWUtdHlwZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdmNvbXBseS13b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dFbmdpbmVDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBpc0hvc3RSZWZyZXNoQWN0aXZlID0gdHJ1ZTtcbiAgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XG4gIGZlYXR1cmVGbGFnX2dyb3VwczogYm9vbGVhbiA9IGZhbHNlO1xuICBhZGRUb0Nhc2VNb2RlID0gJyc7XG5cbiAgcGVybWlzc2lvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgcHVibGljIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3JnQ29tbW9uU2VydmljZTogT3JnYW5pemF0aW9uQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlcG9ydEFDYXNlU2VydmljZTogUmVwb3J0QUNhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlOiBSZXBvcnRDYXNlUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpZnJhbWVTZXJ2aWNlOiBJZnJhbWVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY2hlY2tDdXJyZW50V29ya2Zsb3coKTtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5jYXNlVHlwZUxvYWRlci5uZXh0KHRydWUpO1xuICAgIHRoaXMuY2hlY2tQZXJtaXNzaW9uKCk7XG4gIH1cbiAgQElucHV0KCkgd29ya2Zsb3dUeXBlID0gJyc7XG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcbiAgQElucHV0KCkgaWQgPSAnJztcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICdHTE9CQUwnO1xuICBASW5wdXQoKSBzb3VyY2U6ICdTQVAnIHwgJ1dPUktST09NJyB8ICcnID0gJyc7XG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBhbGxvd2VkV29ya2Zsb3dzOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgZnJhbWV3b3JrRGV0YWlsczogQXJyYXk8YW55PiA9IFtdOyAvLyBvbmx5IGZvciBjb21wbGlhbmNlIHBhcnQgZm9yIGZyYW1ld29ya1xuICBASW5wdXQoKSBzZWxlY3RlZFJDID0gJyc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeU9wZW5Qb3J0YWwgPSAnJztcbiAgQElucHV0KCkgZGVmYXVsdFJpc2tUeXBlID0gJ05PUk1BTCc7XG4gIEBJbnB1dCgpIG1vdmVUb1JlZ2lzdGVyTW9kZSA9ICcnO1xuICBASW5wdXQoKSB3b3JrZmxvd0RldGFpbHM6IGFueTtcbiAgQElucHV0KCkgcmVwb25zaWJpbGl0eURhdGEgPSB7XG4gICAgLy8gb25seSB1c2VkIGJ5IGxvZyBhbiBpc3N1ZVxuICAgIHJpZDogbnVsbCxcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxuICAgIHJjSWQ6IG51bGwsXG4gICAgZHVlRGF0ZUlkOiAnJyxcbiAgfTtcbiAgQElucHV0KCkgYXNzZXNzbWVudFF1ZXN0aW9uOiBhbnkgPSB7XG4gICAgcXVlc3Rpb25OYW1lOiAnJyxcbiAgICBxdWVzdGlvbk51bWJlcjogJycsXG4gICAgcXVlc3Rpb25JZDogJycsXG4gICAgYXNzZXNzbWVudElkOiAnJyxcbiAgICBhdWRpdGVlSWQ6IG51bGwsXG4gIH07XG4gIEBJbnB1dCgpIHBpZCA9ICcnO1xuICBASW5wdXQoKSBwcm9ncmFtVHlwZTogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgaXNzdWVEYXRhID0ge1xuICAgIGF1ZGl0UGxhbklkOiBudWxsLFxuICAgIGF1ZGl0UGxhbk5hbWU6ICcnLFxuICAgIHJjSWQ6IG51bGwsXG4gIH07XG4gIEBJbnB1dCgpIGVudHJ1c3RCdXR0b25OYW1lID0gJ0VudHJ1c3QnO1xuICBASW5wdXQoKSBjb25maWchOiBJc3N1ZUNvbmZpZ3VyYXRpb247XG4gIEBJbnB1dCgpIGNvbnZlcnRGaWxlRGF0YSA9IHt9O1xuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3J5ID0gJyc7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWRQcm9ncmFtOiBhbnkgPSBudWxsO1xuICBASW5wdXQoKSBjYW5GcmFtZXdvcmtDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlOyAvLyBpZiBmcmFtZXdvcmsgY2FuIEVkaXRlZCBvciBub3Q7IEZvciBDcmVhdGUgYSBwcm9ncmFtXG4gIEBJbnB1dCgpIC8qICAqL1xuICAvKiAgKi9cbiAgQElucHV0KClcbiAgYWRkVG9Qcm9ncmFtRGV0YWlsczoge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIGZyYW1ld29ya19uYW1lOiBzdHJpbmc7XG4gICAgaWQ/OiBudW1iZXI7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIH0gPSB7XG4gICAgX2lkOiAnJyxcbiAgICBmcmFtZXdvcmtfbmFtZTogJycsXG4gICAgaWQ6IDAsXG4gICAgdHlwZTogJycsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICB9O1xuICBASW5wdXQoKSBncmNUeXBlOiAwIHwgMSB8IDIgfCAzID0gMDtcbiAgQElucHV0KCkgaXNTZW5kRm9yQXR0ZXN0YXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYXNzZXNzbWVudERldGFpbHM6IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGVJZDogc3RyaW5nID0gJyc7XG5cbiAgb3JnRGV0YWlsczogYW55O1xuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVzcG9uc2liaWxpdHlTaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2FzZUZlYXR1cmVGbGFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgYW5pbWF0aW9uID0gdHJ1ZTtcbiAgd29ya2Zsb3dMaXN0ID0gZmFsc2U7XG4gIHNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gIGRpc2FibGVXb3JrZmxvd0NoYW5nZSE6IGJvb2xlYW47XG4gIGNoZWNrcG9pbnRDb3VudDogbnVtYmVyID0gMDtcbiAgcmVwb3J0Qnk6IHN0cmluZyA9ICcnO1xuICBjdXJyZW50QnVzaW5lc3NDeWNsZTogYW55ID0gJyc7XG4gIGNhc2VUeXBlUGVybWlzc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdyaXNrJywgeyBzdGF0aWM6IGZhbHNlIH0pIHJpc2tDb21wb25lbnQhOiBXb3JrZmxvd1Jpc2tDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByaXNrQnVsa1VwbG9hZCE6IEFkZE11bHRpcGxlUmlza0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnbXVsdGlwbGVSZXNwb25zaWJpbGl0eScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3Jlc3BvbnNpYmlsaXR5JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGNvbXBsaWFuY2UhOiBXb3JrZmxvd0NvbXBsaWFuY2VDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ21vcmVPcHRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgbW9yZU9wdGlvbiE6IE1vcmVPcHRpb25Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJykgZHJvcGRvd24hOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93blJvdycsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93blJvdyE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3BvbGljeScpIHBvbGljeSE6IFdvcmtmbG93UG9saWN5Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdsb2dBbklzc3VlJykgbG9nSXNzdWVDb21wb25lbnQhOiBMb2dBbklzc3VlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdhc3Nlc3NtZW50JylcbiAgd29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50ITogV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdpbXBvcnRBc3Nlc3NtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGltcG9ydEFuQXNzZXNzbWVudCE6IEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncHJvZ3JhbScsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm9ncmFtITogV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdncmNPYmplY3QnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZ3JjT2JqZWN0ITogR3JjT2JqZWN0Q29udGFpbmVyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdyZXBvcnRDYXNlJykgcmVwb3J0Q2FzZSE6IFdvcmtmbG93Q2FzZUNvbXBvbmVudDtcblxuICBkcm9wZG93bkxlZnQhOiBhbnk7XG4gIGRyb3Bkb3duVG9wITogYW55O1xuICBkcm9wZG93bldpZHRoITogYW55O1xuICBjbG9zZU9uRXNjOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIGZlYXR1cmUgZmxhZ1xuICBASW5wdXQoKSBmZWF0dXJlOiBhbnk7XG4gIG9yZ2FuaXphdGlvbkRldGFpbHM6IGFueTtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pIG9uS2V5ZG93bkhhbmRsZXIoXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnRcbiAgKSB7XG4gICAgaWYgKFxuICAgICAgW1xuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXksXG4gICAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQ/LnNob3dTbWlsZXksXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LnNob3dTbWlsZXksXG4gICAgICAgIHRoaXMuaW1wb3J0QW5Bc3Nlc3NtZW50Py5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLmxvZ0lzc3VlQ29tcG9uZW50Py5zaG93U21pbGV5LFxuICAgICAgXS5pbmNsdWRlcyh0cnVlKSB8fFxuICAgICAgdGhpcy5wcm9ncmFtPy5hY3RpdmVMaXN0IHx8XG4gICAgICB0aGlzLmNvbXBsaWFuY2U/LmFjdGl2ZVNlbGVjdG9yIHx8XG4gICAgICB0aGlzLmdyY09iamVjdD8ub3BlbmVkUG9wdXBcbiAgICApIHtcbiAgICAgIC8vRG8gTm90aGluZ1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NlV29ya2Zsb3dFbmdpbmUoKTtcbiAgICB9XG4gIH1cblxuICB1c2VyTGlzdDogYW55ID0gW107XG4gIGN1cnJlbnRXb3JrZmxvdyE6IGFueTtcbiAgd29ya2Zsb3dUeXBlTGlzdDogYW55ID0gW1xuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFJlc3BvbnNpYmlsaXR5JyxcbiAgICAgIGNvZGU6ICdDQVInLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSRVNQT05TSUJJTElUWScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgTXVsdGlwbGUgUmVzcG9uc2liaWxpdGllcycsXG4gICAgICBjb2RlOiAnQ01SJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnTVVMVElQTEVfUkVTUE9OU0lCSUxJVFknLFxuICAgIH0sXG4gICAgeyB3b3JrZmxvd05hbWU6ICdBZGQgYSBSaXNrJywgY29kZTogJ0FBUicsIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUklTSycgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdBZGQgTXVsdGlwbGUgUmlza3MnLFxuICAgICAgY29kZTogJ0FNUicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JJU0snLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgUG9saWN5JyxcbiAgICAgIGNvZGU6ICdDQVAnLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdQT0xJQ1knLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgU3VydmV5JyxcbiAgICAgIGNvZGU6ICdDQVMnLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdTVVJWRVknLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIGEgRm9ybScsXG4gICAgICBjb2RlOiAnQ0FGJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnRk9STScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdMb2cgYW4gSXNzdWUnLFxuICAgICAgY29kZTogJ0xBSScsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0lTU1VFJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhbiBBc3Nlc3NtZW50JyxcbiAgICAgIGNvZGU6ICdBQUEnLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdBU1NFU1NNRU5UJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0ltcG9ydCBhbiBBc3Nlc3NtZW50JyxcbiAgICAgIGNvZGU6ICdJQUEnLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdJTVBPUlRfQVNTRVNTTUVOVCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdBZGQgYSBQcm9ncmFtJyxcbiAgICAgIGNvZGU6ICdDQVBSJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUFJPR1JBTScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdBZGQgYSBHUkMgT2JqZWN0JyxcbiAgICAgIGNvZGU6ICdHUkMnLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdHUkNfT0JKRUNUUycsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdSZXBvcnQgYSBDYXNlJyxcbiAgICAgIGNvZGU6ICdSQUMnLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdSRVBPUlRfQV9DQVNFJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0Fzc2lnbiBjYXNlIHRvIHdvcmtmbG93JyxcbiAgICAgIGNvZGU6ICdBQ1RXJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUkVQT1JUX0FfQ0FTRScsXG4gICAgfSxcbiAgXTtcbiAgYWRkaXRpb25hbEluZm9ybWF0aW9uTGlzdCA9IFtcbiAgICAnT2JqZWN0aXZlJyxcbiAgICAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcbiAgICAnUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnknLFxuICBdO1xuICBjb25maXJtYXRpb25BbGVydENvbmZpZzogQ29uZmlybWF0aW9uQWxlcnQgPSB7IGlzVmlzaWJsZTogZmFsc2UgfTtcblxuICBjaGVja0N1cnJlbnRXb3JrZmxvdygpIHtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS53b3JrZmxvd0NvZGUuc3Vic2NyaWJlKChjb2RlKSA9PiB7XG4gICAgICBpZiAoY29kZSA9PT0gJ0FDVycgfHwgY29kZSA9PT0gJ0FDVFcnKSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLmFkZFRvQ2FzZU1vZGUgPSBjb2RlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFkZFRvQ2FzZU1vZGUgPSAnJztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBjbG9zZVdvcmtmbG93RW5naW5lKGV2dD86IGFueSkge1xuICAgIGlmIChldnQ/LmNvbmZpcm0gPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdChldnQgPyBldnQuZXZ0IDogZXZ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZUNvbmZpcm0oZXZ0KTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUNvbmZpcm0oZXZ0OiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogJ0lmIHlvdSBuYXZpZ2F0ZSBhd2F5LCBhbnkgdW5zYXZlZCBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4nLFxuICAgICAgYWN0aW9uOiAnV09SS0ZMT1dfQ0xPU0UnLFxuICAgICAgZGF0YTogZXZ0LFxuICAgIH07XG4gIH1cbiAgZXhlY3V0ZUNsb3NlKGV2dDogYW55KSB7XG4gICAgaWYgKGV2dC5hY3Rpb24gPT09ICdZRVMnKSB7XG4gICAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCgpO1xuICAgIH1cbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldE5ldHdvcmtMaXN0bmVyKCk7XG4gICAgdGhpcy5zZXRXb3JrZmxvdyh0aGlzLndvcmtmbG93VHlwZSwgdGhpcy53b3JrZmxvd1R5cGVMaXN0KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgNTAwKTtcbiAgICB0aGlzLnNldFdvcmtmbG93KHRoaXMud29ya2Zsb3dUeXBlLCB0aGlzLndvcmtmbG93VHlwZUxpc3QpO1xuICAgIHRoaXMuZGVjaWRlVmlld01vcmVPcHRpb24oKTtcbiAgICB0aGlzLmZldGNoT3JnYW5pemF0aW9uRGV0YWlscygpO1xuICAgIHRoaXMuZ2V0VXNlckRldGFpbHMoKTtcbiAgICB0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWcgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9wcm9ncmFtX3NpbXBsaWZ5J1xuICAgICk7XG4gICAgdGhpcy5mZWF0dXJlRmxhZ19ncm91cHMgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9yZXNwb25zaWJpbGl0eV9ncm91cHMnXG4gICAgKTtcbiAgICB0aGlzLmNhc2VGZWF0dXJlRmxhZyA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9jYXNlc19lbmFibGVkJyk7XG4gICAgdGhpcy5pc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZnkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucGVybWlzc2lvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2hlY2tQZXJtaXNzaW9uKCkge1xuICAgIHRoaXMucGVybWlzc2lvblN1YnNjcmlwdGlvbiA9XG4gICAgICB0aGlzLnJlcG9ydENhc2VQZXJtaXNzaW9uU2VydmljZS5oYXNQZXJtaXNzaW9uLnN1YnNjcmliZShcbiAgICAgICAgKGhhc1Blcm1pc3Npb24pID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VUeXBlUGVybWlzc2lvbiA9IGhhc1Blcm1pc3Npb247XG4gICAgICAgICAgaWYgKGhhc1Blcm1pc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSZXBvcnRDYXNlUGVybWlzc2lvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5jYXNlVHlwZUxvYWRlci5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHNldE5ldHdvcmtMaXN0bmVyKCkge1xuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ29mZmxpbmUnLCAoZSkgPT4ge1xuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAnQ29ubmVjdGlvbiBsb3N0ITxicj5DaGVjayB5b3VyIG5ldHdvcmsgY29ubmVjdGl2aXR5LicsXG4gICAgICAgICdhbGVydCdcbiAgICAgICk7XG4gICAgfSk7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgKGUpID0+IHtcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcIllvdSdyZSBiYWNrIG9ubGluZSFcIiwgJ3N1Y2Nlc3MnKTtcbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy53b3JrZmxvd1R5cGVMaXN0ID0gdGhpcy53b3JrZmxvd1R5cGVMaXN0LmZpbHRlcigod29ya2Zsb3c6IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZFdvcmtmbG93cy5pbmNsdWRlcyh3b3JrZmxvdy5wZXJtaXNzaW9uSWRlbnRpZmllcikpIHtcbiAgICAgICAgcmV0dXJuIHdvcmtmbG93O1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0aGlzLm9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcpIHtcbiAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLmRpc2FibGVXb3JrZmxvd0NoYW5nZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tSZXBvcnRDYXNlUGVybWlzc2lvbigpIHtcbiAgICBjb25zdCBoYXNQZXJtaXNzaW9uID1cbiAgICAgIHRoaXMucmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlLmNoZWNrUmVwb3J0QUNhc2VQZXJtaXNzaW9uKCk7XG4gICAgaWYgKGhhc1Blcm1pc3Npb24gJiYgdGhpcy5jYXNlRmVhdHVyZUZsYWcpIHtcbiAgICAgIHRoaXMuYWxsb3dlZFdvcmtmbG93cy5wdXNoKCdSRVBPUlRfQV9DQVNFJyk7XG4gICAgICB0aGlzLmFsbG93ZWRXb3JrZmxvd3MgPSB0aGlzLmFsbG93ZWRXb3JrZmxvd3MuZmlsdGVyKFxuICAgICAgICAod29ya2Zsb3c6IGFueSkgPT4gd29ya2Zsb3cgIT09ICdJU1NVRSdcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWxsb3dlZFdvcmtmbG93cyA9IHRoaXMuYWxsb3dlZFdvcmtmbG93cy5maWx0ZXIoXG4gICAgICAgICh3b3JrZmxvdzogYW55KSA9PiB3b3JrZmxvdyAhPT0gJ1JFUE9SVF9BX0NBU0UnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHVzZXJMaXN0RW1pdHRlcihldmVudDogYW55KSB7XG4gICAgdGhpcy51c2VyTGlzdCA9IGV2ZW50O1xuICB9XG5cbiAgZGVjaWRlVmlld01vcmVPcHRpb24odHlwZT86IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZSkge1xuICAgICAgdGhpcy5jbG9zZU9uRXNjID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChbJ0NNUicsICdBTVInLCAnQUFBJywgJ0lBQSddLmluY2x1ZGVzKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSkge1xuICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IGZhbHNlO1xuICAgICAgaWYgKHR5cGUgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5hZGRUb0Nhc2VNb2RlID09PSAnQUNXJykge1xuICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLnNldFdvcmtmbG93U2VsZWN0b3IodHlwZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ1JBQycpIHtcbiAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0V29ya2Zsb3dTZWxlY3Rvcih0eXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGUgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBzZXRXb3JrZmxvd1NlbGVjdG9yKHR5cGU/OiBib29sZWFuKXtcbiAgICBpZiAodHlwZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgY2FzZVJlcG9ydGVkQnkoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVwb3J0QnkgPSBldmVudDtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZih0aGlzLmFkZFRvQ2FzZU1vZGUgPT09ICdBQ1cnIHx8IHRoaXMuYWRkVG9DYXNlTW9kZSA9PT0gJ0FDVFcnKSB7XG4gICAgICB0aGlzLnJlcG9ydENhc2UuYWRkVG9DYXNlKCk7XG4gICAgICB0aGlzLnN1Ym1pdFdvcmtmbG93KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcbiAgICAgIGNhc2UgJ0FBUic6XG4gICAgICAgIHRoaXMucmlza0NvbXBvbmVudC5zdWJtaXRSaXNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTEFJJzpcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudC5hZGRJc3N1ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NBUic6XG4gICAgICAgIHRoaXMuY29tcGxpYW5jZS5zdWJtaXRSZXNwb25zaWJpbGl0eSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NBUCc6XG4gICAgICAgIHRoaXMucG9saWN5LnN1Ym1pdFBvbGljeSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0FBQSc6XG4gICAgICAgIHRoaXMud29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50LnN1Ym1pdEFzc2Vzc21lbnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVBSJzoge1xuICAgICAgICB0aGlzLnByb2dyYW0uc2F2ZVByb2dyYW0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdHUkMnOiB7XG4gICAgICAgIHRoaXMuZ3JjT2JqZWN0LnNhdmVHUkNPYmplY3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSQUMnOiB7XG4gICAgICAgIHRoaXMucmVwb3J0Q2FzZS5yZXBvcnRDYXNlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gY2FzZSAnSUFBJzpcbiAgICAgIC8vICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQuc3VibWl0QXNzZXNzbWVudCgpO1xuICAgIH1cbiAgICB0aGlzLnN1Ym1pdFdvcmtmbG93KCk7XG4gIH1cblxuICBzdWJtaXRXb3JrZmxvdygpIHsgXG4gICAgY29uc3QgbWVzc2FnZSA9IHt0eXBlOidzdWJtaXQnfVxuICAgIGNvbnN0IHRhcmdldE9yaWdpbiA9IHRoaXMuZ2V0T3JpZ2luKCk7XG4gICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShtZXNzYWdlLCB0YXJnZXRPcmlnaW4pO1xuICB9IFxuICBcbiAgcHJpdmF0ZSBnZXRPcmlnaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIGVkaXRXb3JrZmxvdygpIHtcbiAgICB0aGlzLndvcmtmbG93TGlzdCA9ICF0aGlzLndvcmtmbG93TGlzdDtcbiAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLmRyb3Bkb3duTGVmdCA9IGRyb3Bkb3duLmxlZnQ7XG4gICAgdGhpcy5kcm9wZG93blRvcCA9IGRyb3Bkb3duLnRvcCArIGRyb3Bkb3duLmhlaWdodDtcbiAgICB0aGlzLmRyb3Bkb3duV2lkdGggPSBkcm9wZG93bi53aWR0aDtcbiAgfVxuICBjbG9zZVdvcmtmbG93TGlzdCgpIHtcbiAgICB0aGlzLndvcmtmbG93TGlzdCA9IGZhbHNlO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBzaXplQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLndvcmtmbG93TGlzdCA9IGZhbHNlO1xuICB9XG4gIGNoYW5nZVdvcmtmbG93KGV2dDogYW55LCBzZWxlY3RlZFdvcmtmbG93OiBhbnkpIHtcbiAgICBpZiAoc2VsZWN0ZWRXb3JrZmxvdz8uY29kZSA9PT0gdGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6ICdJZiB5b3UgY2hhbmdlIHRoZSB3b3JrZmxvdywgYW55IHVuc2F2ZWQgY2hhbmdlcyB3b3VsZCBiZSBsb3N0LicsXG4gICAgICBhY3Rpb246ICdXT1JLRkxPV19DSEFOR0UnLFxuICAgICAgZGF0YTogc2VsZWN0ZWRXb3JrZmxvdyxcbiAgICB9O1xuICB9XG5cbiAgY29uZmlybVdvcmtmbG93Q2hhbmdlKGV2dDogYW55KSB7XG4gICAgaWYgKGV2dC5hY3Rpb24gPT09ICdZRVMnKSB7XG4gICAgICB0aGlzLmNsb3NlT25Fc2MgPSB0cnVlO1xuICAgICAgc3dpdGNoIChldnQucGF5bG9hZC5hY3Rpb24pIHtcbiAgICAgICAgY2FzZSAnV09SS0ZMT1dfQ0hBTkdFJzpcbiAgICAgICAgICB0aGlzLmN1cnJlbnRXb3JrZmxvdyA9IGV2dD8ucGF5bG9hZD8uZGF0YSA/PyBudWxsO1xuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9yZU9wdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ucmVzZXRBbGwodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kZWNpZGVWaWV3TW9yZU9wdGlvbigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdFRElUX1JJU0snOlxuICAgICAgICAgIHRoaXMucmlza0NvbXBvbmVudC5jcmVhdGVSaXNrKHRoaXMucmlza0NvbXBvbmVudC5yaXNrRm9ybSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1BPTElDWV9QT1JUQUwnOlxuICAgICAgICAgIHRoaXMucG9saWN5LmNvbmZpcm1Qb2xpY3lQb3J0YWwoZXZ0LmFjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1dPUktGTE9XX0NMT1NFJzpcbiAgICAgICAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdChldnQ/LnBheWxvYWQ/LmRhdGEpO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmlmcmFtZVNlcnZpY2UuZ2V0Q2xvc2VXZWJ2aWV3TWVzc2FnZShQb3N0TWVzc2FnZUV2ZW50LkNMT1NFX1dFQlZJRVcsICcnKTtcbiAgICAgICAgICB0aGlzLmlmcmFtZVNlcnZpY2UucG9zdE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2NoZWNrcG9pbnQnOlxuICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG9wdGlvbj8uY29kZSA9PT0gJ0FTU0VTU01FTlQnIHx8XG4gICAgICAgICAgICAgIG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVydcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XG4gICAgICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZW1vdmVDaGVja3BvaW50KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnUk9MRSc6XG4gICAgICAgICAgdGhpcy5wcm9ncmFtLnJlbW92ZShldnQucGF5bG9hZC5kYXRhLCAnUk9MRScpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ25ldy1jaGVja3BvaW50cyc6XG4gICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyAmJiAhZXZ0LnBheWxvYWQuaXNEYXRhUmVtb3ZlZCkge1xuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnICYmICFldnQucGF5bG9hZC5pc0RhdGFSZW1vdmVkKSB7XG4gICAgICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgZXZ0LnBheWxvYWQuaXNDaGVja3BvaW50Q2hlY2tlZCAmJlxuICAgICAgICAgICAgICBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgb3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLm1vcmVPcHRpb25zLkNIRUNLUE9JTlRTX05FVyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlbW92ZSgnbmV3LWNoZWNrcG9pbnRzJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Fzc2lnbmVlVHlwZUNoYW5nZSc6XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMud2hvQ2FuQ29tcGxldGUgPSAnQUxMJztcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVzcG9uc2liaWxpdHlGb3JtLmFzc2lnbmVlcy5saXN0ID1cbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5zZXRMaXN0KFxuICAgICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UuYXNzaWduZWVzTGlzdCxcbiAgICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLm9yaWdpbmFsQXNzaWduZWUsXG4gICAgICAgICAgICAgICdlbXBsb3llZV9pZCdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRoaXMuZmVhdHVyZUZsYWdfZ3JvdXBzKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydhc3NpZ25lZUdyb3VwcyddWydsaXN0J10gPVxuICAgICAgICAgICAgICBbXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc2VxdWVudGlhbCc6XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xuICAgICAgICAgIF0gPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhbnlSZXZpZXdlcic6XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xuICAgICAgICAgIF0gPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChldnQucGF5bG9hZC5hY3Rpb24pIHtcbiAgICAgICAgY2FzZSAnUE9MSUNZX1BPUlRBTCc6XG4gICAgICAgICAgdGhpcy5wb2xpY3kuY29uZmlybVBvbGljeVBvcnRhbChldnQuYWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzaWduZWVUeXBlQ2hhbmdlJzpcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVzcG9uc2liaWxpdHlGb3JtLmFzc2lnbmVlcy53aG9DYW5Db21wbGV0ZSA9XG4gICAgICAgICAgICAnQU5ZX09ORSc7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc2VxdWVudGlhbCc6XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xuICAgICAgICAgIF0gPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYW55UmV2aWV3ZXInOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcbiAgICAgICAgICBdID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgICBtZXNzYWdlOiAnJyxcbiAgICAgIGFjdGlvbjogJycsXG4gICAgICBkYXRhOiBudWxsLFxuICAgIH07XG4gICAgcmV0dXJuIGV2dDtcbiAgfVxuXG4gIHNldFdvcmtmbG93KHdvcmtGbG93Q29kZTogYW55LCB3b3JrRmxvd0xpc3Q6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGVkV29ya2Zsb3cgPSB3b3JrRmxvd0xpc3QuZmluZChcbiAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQ/LmNvZGUgPT09IHdvcmtGbG93Q29kZVxuICAgICk7XG4gICAgc2VsZWN0ZWRXb3JrZmxvd1xuICAgICAgPyAodGhpcy5jdXJyZW50V29ya2Zsb3cgPSBzZWxlY3RlZFdvcmtmbG93KVxuICAgICAgOiAodGhpcy5jdXJyZW50V29ya2Zsb3cgPSBudWxsKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRXb3JrZmxvdztcbiAgfVxuXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XG4gICAgICBjYXNlICdBQVInOlxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQ/LmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMQUknOlxuICAgICAgICB0aGlzLmxvZ0lzc3VlQ29tcG9uZW50Py5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUkFDJzpcbiAgICAgIGNhc2UgJ0FDVFcnOlxuICAgICAgICB0aGlzLnJlcG9ydENhc2UuYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NBUic6XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuYXNzZXNzbWVudERldGFpbHM/LmFzc2Vzc21lbnRfdHlwZT8udG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAnY29tcGxpYW5jZV9hdWRpdCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb24/Lm1vcmVPcHRpb25zTGlzdD8uQ0FSPy5maW5kSW5kZXgoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uY29kZSA9PT0gJ0FTU0VTU01FTlQnXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmNoZWNrZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LmFkZE1vcmVJbmZvKFxuICAgICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FQJzpcbiAgICAgICAgdGhpcy5wb2xpY3k/LmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVBSJzpcbiAgICAgICAgdGhpcy5wcm9ncmFtPy5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnR1JDJzpcbiAgICAgICAgdGhpcy5ncmNPYmplY3Q/LmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcG9wdWxhdGVNb3JlT3B0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5tb3JlT3B0aW9uKSB7XG4gICAgICB0aGlzLm1vcmVPcHRpb24ucG9wdWxhdGUoZXZlbnQpO1xuICAgIH1cbiAgfVxuICBoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubW9yZU9wdGlvbj8uaGlkZUVsZW1lbnRzKGV2ZW50KTtcbiAgfVxuXG4gIHNob3dDb25maXJtYXRpb25Qb3B1cChjb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIGJ1bGtVcGxvYWRCcm93c2UoZXZlbnQ6IGFueSkge1xuICAgIHN3aXRjaCAoZXZlbnQpIHtcbiAgICAgIGNhc2UgJ0FNUic6XG4gICAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQudHJpZ2dlckJyb3dzZUZpbGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDTVInOlxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0lBQSc6XG4gICAgICAgIHRoaXMuaW1wb3J0QW5Bc3Nlc3NtZW50LnRyaWdnZXJCcm93c2VGaWxlKCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBvblJlc2V0Rm9ybSgpIHtcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcbiAgICB0aGlzLmVudHJ1c3RCdXR0b25OYW1lID0gJ0VudHJ1c3QnO1xuICB9XG5cbiAgb25SZXNldEdSQ0Zvcm0oKSB7XG4gICAgdGhpcy5tb2RlID0gJ0NSRUFURSc7XG4gIH1cbiAgc2hpZnRUb0VkaXRNb2RlKCkge1xuICAgIHRoaXMubW9kZSA9ICdFRElUJztcbiAgfVxuICBzY3JvbGxGb3JtKCkge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8udG9wIDwgMzgpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25Sb3c/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdD8uYWRkKCdoaWRlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd25Sb3c/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdD8ucmVtb3ZlKCdoaWRlJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB3aGljaCBtb3JlIG9wdGlvbnMgd2UgYXJlIHJlbW92aW5nLlxuICAgKiBAcGFyYW0gaXNDaGVja3BvaW50Q2hlY2tlZCAgaXMgdHJ1ZSBpZiB2YWx1ZSBjaGVja3BvaW50cyBpcyByZW1vdmVkIGJ5IGNsaWNraW5nIG9uIG1vcmUgb3B0aW9uc1xuICAgKi9cbiAgb25SZW1vdmluZ0NoZWNrcG9pbnQoXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBpc0NoZWNrcG9pbnRDaGVja2VkPzogYm9vbGVhbixcbiAgICBpc0RhdGFSZW1vdmVkPzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBsZXQgbXNnID0gJyc7XG4gICAgaWYgKGV2ZW50ID09PSAnbmV3LWNoZWNrcG9pbnRzJykge1xuICAgICAgbXNnID1cbiAgICAgICAgJ0lmIHlvdSBjaG9vc2UgdG8gcmVtb3ZlIHRoZXNlIENoZWNrcG9pbnRzLCB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgY2Fubm90IGJlIHJlc3RvcmVkLiBIb3dldmVyLCB5b3Ugd2lsbCBzdGlsbCBiZSBhYmxlIHRvIGNyZWF0ZSBuZXcgQ2hlY2twb2ludHMgb3IgbGluayBhbiBBc3Nlc3NtZW50Lic7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1zZyA9XG4gICAgICAgICdJZiB5b3UgY2hvb3NlIHRvIHJlbW92ZSB0aGVzZSBjaGVja3BvaW50cywgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIGNhbm5vdCBiZSByZXN0b3JlZC4nO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgYWN0aW9uOiBldmVudCxcbiAgICAgIGRhdGE6IHsgdHlwZTogJ3Jlc3BvbnNpYmlsaXR5Q2hlY2twb2ludCcgfSxcbiAgICAgIGlzQ2hlY2twb2ludENoZWNrZWQ6IGlzQ2hlY2twb2ludENoZWNrZWQgPz8gZmFsc2UsXG4gICAgICBpc0RhdGFSZW1vdmVkOiBpc0RhdGFSZW1vdmVkID8/IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBvblJlbW92aW5nUm9sZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IG1zZyA9ICcnO1xuICAgIGlmIChldmVudCkge1xuICAgICAgbXNnID0gJ0lmIHlvdSBjaGFuZ2UgdGhlIHJvbGVzLCBhbnkgdW5zYXZlZCBjaGFuZ2VzIHdvdWxkIGJlIGxvc3QuJztcbiAgICB9XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6IG1zZyxcbiAgICAgIGFjdGlvbjogJ1JPTEUnLFxuICAgICAgZGF0YTogZXZlbnQsXG4gICAgfTtcbiAgfVxuXG4gIGlzQXNzZXNzbWVudERpc2FibGVkKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgaWYgKG9wdGlvbj8uY29kZSA9PT0gJ0FTU0VTU01FTlQnIHx8IG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcbiAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGlzYWJsZU1vcmVPcHRpb25zKHdvcmtmbG93Q29kZTogYW55LCBkaXNhYmxlZEVsZW1lbnRzQ29kZTogYW55KSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QpLmluY2x1ZGVzKHdvcmtmbG93Q29kZSkpIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3Rbd29ya2Zsb3dDb2RlXS5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWRFbGVtZW50c0NvZGUuaW5jbHVkZXMob3B0aW9uPy5jb2RlKSkge1xuICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25DaGVja3BvaW50U2VsZWN0aW9uKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLmNoZWNrcG9pbnRDb3VudCA9IGV2ZW50O1xuICB9XG5cbiAgb25SY1NlbGVjdGVkKGlzUmNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNSQ1NlbGVjdGVkID0gaXNSY1NlbGVjdGVkO1xuICB9XG5cbiAgZmV0Y2hPcmdhbml6YXRpb25EZXRhaWxzKCkge1xuICAgIHRoaXMub3JnQ29tbW9uU2VydmljZT8uZ2V0T3JnRGV0YWlsc0luZm8oKT8uc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9yZ0RldGFpbHMgPSByZXM7XG4gICAgICAgIGlmIChyZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnIgJiYgcmVzPy5idXNpbmVzc19jeWNsZXNfYXJyPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHJlcz8uYnVzaW5lc3NfY3ljbGVzX2Fyci5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uc2VsZWN0ZWRcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IHNwbGl0dGVkID0gc2VsZWN0ZWRbMF0uYnVzaW5lc3NfY3ljbGU/LnNwbGl0KCctJyk7XG4gICAgICAgICAgdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZSA9IGAke3NwbGl0dGVkWzBdPy5zbGljZShcbiAgICAgICAgICAgIDJcbiAgICAgICAgICApfSAtICR7c3BsaXR0ZWRbMV0/LnNsaWNlKDQpfWA7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0VXNlckRldGFpbHMoKSB7XG4gICAgdGhpcy5vcmdDb21tb25TZXJ2aWNlPy5nZXRPcmdVc2VySW5mbygpPy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYXV0aC51c2VyRGV0YWlscyA9IHJlcztcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgb3JnYW5pemF0aW9uIHVzZXJzJywgZXJyKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3NpZ25lZVR5cGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgICdUaGlzIGFjdGlvbiB3aWxsIHJlc2V0IHRoZSBjaGFuZ2VzIGFuZCBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGFzc2lnbmVlLicsXG4gICAgICBhY3Rpb246ICdhc3NpZ25lZVR5cGVDaGFuZ2UnLFxuICAgICAgZGF0YToge30sXG4gICAgICBpc1JlZEFsZXJ0OiB0cnVlLFxuICAgIH07XG4gIH1cblxuICAvLyBldmVudCA9PiAnc2VxdWVudGlhbCcgfHwgJ2FueVJldmlld2VyJ1xuICBvblJldmlld2VyQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb21tb25UZXh0OiBzdHJpbmcgPVxuICAgICAgJ09uY2UgY29uZmlybWVkLCB0aGUgbmV3IHJldmlldyB3b3JrZmxvdyB3aWxsIGJlIGFwcGxpY2FibGUgZm9yIGFsbCBjdXJyZW50IGFuZCBmdXR1cmUgcmV2aWV3IGR1ZSBkYXRlcy4nO1xuICAgIGNvbnN0IG1zZyA9XG4gICAgICBjb21tb25UZXh0ICtcbiAgICAgIChldmVudCA9PT0gJ2FueVJldmlld2VyJ1xuICAgICAgICA/IGBJZiBhbnkgcmV2aWV3ZXIgaGFkIGNvbXBsZXRlZCB0aGUgcmV2aWV3LCB0aGUgY3VycmVudCByZXZpZXcgZHVlIGRhdGUgd2lsbCBiZSBjbG9zZWQgYW5kIHRoZSByZXZpZXcgc3RhdHVzIHdpbGwgYmUgdXBkYXRlZCB0byAnQ29tcGxldGVkJy5gXG4gICAgICAgIDogJycpO1xuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOiBtc2csXG4gICAgICBhY3Rpb246IGV2ZW50LFxuICAgIH07XG4gIH1cblxuICBpc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZnkoKSB7XG4gICAgaWYgKHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yZXNwb25zaWJpbGl0eV9zaW1wbGlmaWNhdGlvbicpKSB7XG4gICAgICB0aGlzLndvcmtmbG93VHlwZUxpc3RbMF0ud29ya2Zsb3dOYW1lID0gJ0FkZCBhIFJlc3BvbnNpYmlsaXR5JztcbiAgICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdFsxXS53b3JrZmxvd05hbWUgPSAnQWRkIE11bHRpcGxlIFJlc3BvbnNpYmlsaXRpZXMnO1xuICAgIH1cbiAgfVxufVxuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxuPGRpdiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1vdmVybGF5XCI+PC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lXCJcbiAgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCJcbiAgW2NsYXNzLmJnXT1cIlxuICAgICghaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCByaXNrQnVsa1VwbG9hZD8uc2hvd0NhdGVnb3J5TGlzdCkgJiZcbiAgICAhcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXG4gIFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1jb250YWluZXJcIlxuICAgIFtuZ1N3aXRjaF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGVcIlxuICAgIFtjbGFzcy53aXRoLXByZXZpZXctYXNzZXNzbWVudF09XCIoYXV0aD8ucHJldmlld1BhbmVsIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICBbY2xhc3Mud2l0aC1mcmVxdWVuY3ldPVwiXG4gICAgICBjb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciA9PT0gJ2ZyZXF1ZW5jeScgfHxcbiAgICAgIGNvbXBsaWFuY2U/LmFjdGl2ZVNlbGVjdG9yID09PSAncmV2aWV3ZXJGcmVxdWVuY3knIHx8XG4gICAgICByaXNrQ29tcG9uZW50Py5hY3RpdmVTZWxlY3RvciA9PT0gJ2ZyZXF1ZW5jeScgfHxcbiAgICAgIHBvbGljeT8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XG4gICAgICBwb2xpY3k/LmFjdGl2ZVNlbGVjdG9yID09PSAncmV2aWV3ZXJGcmVxdWVuY3knXG4gICAgXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIlxuICAgICAgaWQ9XCJjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuXCJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgW2FwcFRvb2x0aXBdPVwiJ1tFc2NdIHRvIGNsb3NlJ1wiXG4gICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgIGRlbGF5PVwiMFwiXG4gICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXG4gICAgICAgIGNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGUgfHwgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcbiAgICAgIFwiXG4gICAgICBbY2xhc3Muc21pbGV5LW9wZW5lZF09XCJcbiAgICAgICAgcmlza0NvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxuICAgICAgICBsb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxuICAgICAgICBjb21wbGlhbmNlPy5zaG93U21pbGV5IHx8XG4gICAgICAgIHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50cyB8fFxuICAgICAgICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fFxuICAgICAgICBwcm9ncmFtPy5zaG93U21pbGV5IHx8XG4gICAgICAgIGltcG9ydEFuQXNzZXNzbWVudD8uc2hvd1NtaWxleVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzZjs8L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhdWlLaXRTZXJ2aWNlLmlzU21pbGV5T25cIlxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtbW9yZVwiXG4gICAgICBbaGlkZGVuXT1cInNob3dNb3JlT3B0aW9uID09PSBmYWxzZSB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxuICAgICAgW2NsYXNzLnJlYWQtb25seV09XCJ1aUtpdFNlcnZpY2U/LmlzTG9hZGVyXCJcbiAgICA+XG4gICAgICA8YXBwLW1vcmUtb3B0aW9uXG4gICAgICAgICNtb3JlT3B0aW9uXG4gICAgICAgIFtjdXJyZW50V29ya2Zsb3ddPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCJcbiAgICAgICAgW2lzRWRpdE1vZGVdPVwibW9kZSA9PT0gJ0VESVQnXCJcbiAgICAgICAgW2lzUkNTZWxlY3RlZF09XCJcbiAgICAgICAgICBpc1JDU2VsZWN0ZWQgfHxcbiAgICAgICAgICAoY3VycmVudFdvcmtmbG93Py5jb2RlID09PSAnR1JDJyAmJlxuICAgICAgICAgICAgZ3JjT2JqZWN0Py5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMClcbiAgICAgICAgXCJcbiAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgIChzZWxlY3RlZE9wdGlvbik9XCJhZGRNb3JlSW5mbygkZXZlbnQpXCJcbiAgICAgICAgW2lzUHJvZ3JhbVNlbGVjdGVkXT1cInNlbGVjdGVkUHJvZ3JhbVwiXG4gICAgICAgIFthbGxvd2VkRmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgW29yZ0RldGFpbHNEYXRhXT1cIm9yZ0RldGFpbHNcIlxuICAgICAgICBbaXNBdHRyaWJ1dGVzQXZhaWxhYmxlXT1cIlxuICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0dSQycgJiZcbiAgICAgICAgICBncmNPYmplY3Q/LnNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoID4gMFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgPC9hcHAtbW9yZS1vcHRpb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtZm9ybVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZVwiXG4gICAgICBbY2xhc3Mubm8tc2hhZG93XT1cIlxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FNUicgfHxcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdDTVInIHx8XG4gICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQUFBJyB8fFxuICAgICAgICB1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fFxuICAgICAgICBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIChzY3JvbGwpPVwic2Nyb2xsRm9ybSgpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgIVsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgb3BlbmVkRnJvbVxuICAgICAgICAgICAgKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIiEodWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcbiAgICAgICAgICAgICNkcm9wZG93blJvd1xuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAobW9kZSA9PT0gJ0VESVQnIHx8XG4gICAgICAgICAgICAgICAgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHxcbiAgICAgICAgICAgICAgICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UgfHxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFByb2dyYW0pICYmXG4gICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiY3VycmVudFdvcmtmbG93XCI+XG4gICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgICAgICByPVwiMjVcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiICNkcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVudFdvcmtmbG93Py5jb2RlICE9PSAnQUNUVydcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgICAgICAgICAgID5TZWxlY3QgYSBXb3JrZmxvdzxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0FDVFcnXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgICAgICAgICAgICA+QXNzaWduIGEgQ2FzZSB0byBXb3JrZmxvdzxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICA+Kjwvc3BhblxuICAgICAgICAgICAgICAgICAgPjwvbGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhY3VycmVudFdvcmtmbG93ICYmIGN1cnJlbnRXb3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0V29ya2Zsb3coKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBXb3JrZmxvd1wiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkIGZpcnN0LWZpZWxkXCIgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3dcIj5cbiAgICAgICAgICAgICAgICAgIDwhLS0ge3tjdXJyZW50V29ya2Zsb3cgfCBqc29ufX0gLS0+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBuby13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZmxvd1R5cGUgPT09ICdBQ1RXJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICc8c3Ryb25nPkNhc2UgUmVwb3J0ZWQgQnk6IDwvc3Ryb25nPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBvcnRCeSB8IHVzZXJQaXBlIDogdXNlckxpc3QpPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIj57e2N1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0V29ya2Zsb3coKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgIXdvcmtmbG93TGlzdCAmJlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5lZEZyb20gIT0gJ0FTU0VTU01FTlQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlICE9PSAnQUNUVydcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdDQVBSJyAmJlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnVzaW5lc3NDeWNsZSAmJlxuICAgICAgICAgICAgICAgICAgICAhcHJvZ3JhbVNpbXBsaWZ5RmxhZ1xuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3JhbS1idXNpbmVzcy1jeWNsZSB2eC1mcy0xMSB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTEgdngtcGwtMiB2eC1wci0xXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LW1yLTFcIj4mI3hlOTYzOzwvaT4gVGhpcyBwcm9ncmFtIGlzXG4gICAgICAgICAgICAgICAgICBiZWluZyBzZXQtdXAgZm9yIHRoZSBidXNpbmVzcyBjeWNsZTpcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNjAwIHZ4LW1sLTFcIj57e1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnVzaW5lc3NDeWNsZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8IS0tIDxhcHAtY3JlYXRlLWRvY3VtZW50cz48L2FwcC1jcmVhdGUtZG9jdW1lbnRzPiAtLT5cbiAgICAgICAgPCEtLSA8YXBwLWJ1bGstdmlldz48L2FwcC1idWxrLXZpZXc+IC0tPlxuICAgICAgICA8IS0tIDxhcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PjwvYXBwLWJ1bGstcmVzcG9uc2liaWxpdHktdmlldz4gLS0+XG4gICAgICAgIDxhcHAtd29ya2Zsb3ctY29tcGxpYW5jZVxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcbiAgICAgICAgICBbaXNFbnRydXN0XT1cImVudHJ1c3RCdXR0b25OYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ2VudHJ1c3QnXCJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlJZF09XCJpZFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW2ZyYW1ld29ya0RldGFpbHNdPVwiZnJhbWV3b3JrRGV0YWlsc1wiXG4gICAgICAgICAgW2Fzc2Vzc21lbnREZXRhaWxzXT1cImFzc2Vzc21lbnREZXRhaWxzXCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FSJ1wiXG4gICAgICAgICAgI3Jlc3BvbnNpYmlsaXR5XG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRSQ109XCJzZWxlY3RlZFJDXCJcbiAgICAgICAgICBbY2xvc2VPbkVzY109XCJjbG9zZU9uRXNjXCJcbiAgICAgICAgICAoYXNzaWduZWVUeXBlQ2hhbmdlKT1cImFzc2lnbmVlVHlwZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAob25SZXZpZXdlclR5cGVDaGFuZ2UpPVwib25SZXZpZXdlckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICAocmNTZWxlY3RlZCk9XCJvblJjU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKHJlc2V0Rm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcbiAgICAgICAgICAob25SZW1vdmluZ0NoZWNrcG9pbnQpPVwib25SZW1vdmluZ0NoZWNrcG9pbnQoJGV2ZW50LCBmYWxzZSwgdHJ1ZSlcIlxuICAgICAgICAgIChpc0Fzc2Vzc21lbnREaXNhYmxlZCk9XCJpc0Fzc2Vzc21lbnREaXNhYmxlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2hlY2twb2ludENvdW50VXBkYXRlZCk9XCJjaGVja3BvaW50Q291bnQgPSAkZXZlbnRcIlxuICAgICAgICAgIFtzZWxlY3RlZFByb2dyYW1dPVwic2VsZWN0ZWRQcm9ncmFtXCJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlEZXRhaWxzXT1cIndvcmtmbG93RGV0YWlsc1wiXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1jb21wbGlhbmNlPlxuICAgICAgICA8YXBwLXdvcmtmbG93LXJpc2tcbiAgICAgICAgICBbc2Vjb25kYXJ5T3BlblBvcnRhbF09XCJzZWNvbmRhcnlPcGVuUG9ydGFsXCJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCJcbiAgICAgICAgICAjcmlza1xuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxuICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgIFtyaXNrSWRdPVwiaWRcIlxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcmlzaz5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1wb2xpY3lcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCJcbiAgICAgICAgICAjcG9saWN5XG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgKHNoaWZ0VG9FZGl0TW9kZSk9XCJzaGlmdFRvRWRpdE1vZGUoKVwiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgICAgW3BvbGljeUlkXT1cImlkXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbdGVtcGxhdGVJZF09XCJ0ZW1wbGF0ZUlkXCJcbiAgICAgICAgICBbY29udmVydEZpbGVEYXRhXT1cImNvbnZlcnRGaWxlRGF0YVwiXG4gICAgICAgICAgW3NlbGVjdGVkQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXG4gICAgICAgICAgW2lzU2VuZEZvckF0dGVzdGF0aW9uXT1cImlzU2VuZEZvckF0dGVzdGF0aW9uXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcG9saWN5PlxuICAgICAgICA8YXBwLXdvcmtmbG93LXN1cnZleS1mb3JtXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVMnXCJcbiAgICAgICAgICAjc3VydmV5Rm9ybVxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctc3VydmV5LWZvcm0+XG4gICAgICAgIDxhcHAtYWRkLW11bHRpcGxlLXJpc2tcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCJcbiAgICAgICAgICAjbXVsdGlwbGVSaXNrXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgPjwvYXBwLWFkZC1tdWx0aXBsZS1yaXNrPlxuICAgICAgICA8IS0tIDxhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5ICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiICNtdWx0aXBsZVJlc3BvbnNpYmlsaXR5PlxuICAgICAgICAgICAgICAgIDwvYXBwLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eT4gLS0+XG5cbiAgICAgICAgPGxpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgICAjbXVsdGlwbGVSZXNwb25zaWJpbGl0eVxuICAgICAgICA+PC9saWItYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSBOZXcgTG9nIGFuIElzc3VlIC0tPlxuICAgICAgICA8YXBwLWxvZy1hbi1pc3N1ZVxuICAgICAgICAgIFtpc3N1ZURldGFpbHNdPVwiaXNzdWVEYXRhXCJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxuICAgICAgICAgIFtyZXBvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXG4gICAgICAgICAgW2Fzc2Vzc21lbnRRdWVzdGlvbl09XCJhc3Nlc3NtZW50UXVlc3Rpb25cIlxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIFtzb3VyY2VdPVwic291cmNlXCJcbiAgICAgICAgICBbaXNzdWVJZF09XCJpZFwiXG4gICAgICAgICAgI2xvZ0FuSXNzdWVcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIFsobW9kZSldPVwibW9kZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtbG9nLWFuLWlzc3VlPlxuICAgICAgICA8IS0tIE9sZCBMb2cgYW4gaXNzdWUgLS0+XG4gICAgICAgIDwhLS0gPGFwcC1sb2ctYW4taXNzdWUgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCIgW3Jlc3BvbnNpYmlsaXRpZXNEYXRhXT1cInJlcG9uc2liaWx0eURhdGFcIiBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICAgICAgICAjbG9nQW5Jc3N1ZSAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvYXBwLWxvZy1hbi1pc3N1ZT4gLS0+XG5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1hc3Nlc3NtZW50XG4gICAgICAgICAgW2Fzc2Vzc21lbnRJZF09XCJpZFwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAjYXNzZXNzbWVudFxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctYXNzZXNzbWVudD5cbiAgICAgICAgPGFwcC1pbXBvcnQtYW4tYXNzZXNzbWVudFxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0lBQSdcIlxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgI2ltcG9ydEFzc2Vzc21lbnRcbiAgICAgICAgPjwvYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50PlxuICAgICAgICA8IS0tIDxhcHAtd29ya2Zsb3ctcHJvZ3JhbSAjcHJvZ3JhbSAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCIgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCI+PC9hcHAtd29ya2Zsb3ctcHJvZ3JhbT4gLS0+XG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcHJvZ3JhbVxuICAgICAgICAgICNwcm9ncmFtXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXG4gICAgICAgICAgW2FsbG93ZWRGZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICAgIChkaXNhYmxlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiZGlzYWJsZU1vcmVPcHRpb25zKCdDQVBSJywgJGV2ZW50KVwiXG4gICAgICAgICAgW3Byb2dyYW1UeXBlXT1cInByb2dyYW1UeXBlXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbcHJvZ3JhbUlkXT1cImlkXCJcbiAgICAgICAgICBbcHJvZ3JhbURldGFpbHNdPVwid29ya2Zsb3dEZXRhaWxzXCJcbiAgICAgICAgICAob25SZW1vdmluZ1JvbGUpPVwib25SZW1vdmluZ1JvbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW2NhbkZyYW1ld29ya0NoYW5nZV09XCJjYW5GcmFtZXdvcmtDaGFuZ2VcIlxuICAgICAgICAgIFthZGRUb1Byb2dyYW1EZXRhaWxzXT1cImFkZFRvUHJvZ3JhbURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcHJvZ3JhbT5cblxuICAgICAgICA8IS0tIEdSQyBPYmplY3QgLS0+XG4gICAgICAgIDxsaWItZ3JjLW9iamVjdC1jb250YWluZXJcbiAgICAgICAgICAjZ3JjT2JqZWN0XG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCJcbiAgICAgICAgICBbZ3JjVHlwZV09XCJncmNUeXBlXCJcbiAgICAgICAgICBbTU9ERV09XCJtb2RlXCJcbiAgICAgICAgICBbSURdPVwiaWRcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocmVzZXRGb3JtKT1cIm9uUmVzZXRHUkNGb3JtKClcIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICAgPjwvbGliLWdyYy1vYmplY3QtY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUmVwb3J0IGEgQ2FzZSAtLT5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1jYXNlXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidSQUMnXCJcbiAgICAgICAgICAjcmVwb3J0Q2FzZVxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIFtzb3VyY2VdPVwic291cmNlXCJcbiAgICAgICAgICBbY2FzZUlkXT1cImlkXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlEYXRhXT1cInJlcG9uc2liaWxpdHlEYXRhXCJcbiAgICAgICAgICBbYXNzZXNzbWVudFF1ZXN0aW9uXT1cImFzc2Vzc21lbnRRdWVzdGlvblwiXG4gICAgICAgICAgW2Nhc2VUeXBlUGVybWlzc2lvbl09XCJjYXNlVHlwZVBlcm1pc3Npb25cIlxuICAgICAgICAgIFt3b3JrZmxvd1R5cGVdPVwiJ1JBQydcIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1jYXNlPlxuICAgICAgICA8IS0tIEFzc2lnbiBjYXNlIHRvIHdvcmtmbG93IC0tPlxuICAgICAgICA8YXBwLXdvcmtmbG93LWNhc2VcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FDVFcnXCJcbiAgICAgICAgICAjcmVwb3J0Q2FzZVxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIFtzb3VyY2VdPVwic291cmNlXCJcbiAgICAgICAgICBbY2FzZUlkXT1cImlkXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbd29ya2Zsb3dUeXBlXT1cIidBQ1RXJ1wiXG4gICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXG4gICAgICAgICAgW2Fzc2Vzc21lbnRRdWVzdGlvbl09XCJhc3Nlc3NtZW50UXVlc3Rpb25cIlxuICAgICAgICAgIFtjYXNlVHlwZVBlcm1pc3Npb25dPVwiY2FzZVR5cGVQZXJtaXNzaW9uXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoY2FzZVJlcG9ydGVkQnkpPVwiY2FzZVJlcG9ydGVkQnkoJGV2ZW50KVwiXG4gICAgICAgICAgKHVzZXJMaXN0RW1pdHRlcik9XCJ1c2VyTGlzdEVtaXR0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LWNhc2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJbJ1JBQycsICdBQ1RXJ10uaW5jbHVkZXMoY3VycmVudFdvcmtmbG93Py5jb2RlKVwiXG4gICAgICAgIGNsYXNzPVwidngtZC1mbGV4XCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiY2FuY2VsXCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIlxuICAgICAgICA+XG4gICAgICAgICAgQ0FOQ0VMXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBtb2RlID09PSBcIkVESVRcIiAmJiBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09IFwiUkFDXCJcbiAgICAgICAgICAgICAgPyBcIlVwZGF0ZVwiXG4gICAgICAgICAgICAgIDogXCJSZXBvcnRcIlxuICAgICAgICAgIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICBtb2RlID09PSBcIkVESVRcIiAmJiBvcGVuZWRGcm9tICE9PSBcIk1PVkVfVE9fUkVHSVNURVJcIlxuICAgICAgICAgICAgPyBcIlVwZGF0ZVwiXG4gICAgICAgICAgICA6IFwiQWRkXCJcbiAgICAgICAgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcbiAgICAgICAgICAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fFxuICAgICAgICAgICFyaXNrQnVsa1VwbG9hZD8uY2F0ZWdvcnk/LnNlbGVjdGVkQ2F0ZWdvcnlcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0FNUicpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCJcbiAgICAgID5cbiAgICAgICAgQnJvd3NlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQ01SJylcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIlxuICAgICAgPlxuICAgICAgICBCcm93c2VcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8IS0tIFRoaXMgaGFzIHRlcm5hcnkgb3BlcmF0aW9uIHRvIGhhbmRsZSB0aGUgYm90aCBzY2VuYXJpb3Mgb2YgaG93IGl0IHdvcmtzIHdpdGggY29tcGxpYW5jZSBhbmQgcHJvZ3JhbSBtb2R1bGUsIHBsZWFzZSBkb24ndCBjaGFuZ2UgdGhpcy4gLS0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICBlbnRydXN0QnV0dG9uTmFtZSAhPT0gXCJcIiAmJiBtb2RlICE9PSBcIkVESVRcIlxuICAgICAgICAgICAgPyBlbnRydXN0QnV0dG9uTmFtZVxuICAgICAgICAgICAgOiBtb2RlID09PSBcIkVESVRcIlxuICAgICAgICAgICAgPyBcIlVQREFURVwiXG4gICAgICAgICAgICA6IFwiRW50cnVzdFwiXG4gICAgICAgIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUCdcIlxuICAgICAgPlxuICAgICAgICB7e1xuICAgICAgICAgIG1vZGUgPT0gXCJFRElUXCJcbiAgICAgICAgICAgID8gaXNTZW5kRm9yQXR0ZXN0YXRpb25cbiAgICAgICAgICAgICAgPyBcIlNlbmQgZm9yIGF0dGVzdGF0aW9uXCJcbiAgICAgICAgICAgICAgOiBcIlVwZGF0ZVwiXG4gICAgICAgICAgICA6IFwiQ29udGludWUgdG8gZHJhZnRcIlxuICAgICAgICB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVMnXCJcbiAgICAgID5cbiAgICAgICAgQ29udGludWUgdG8gZHJhZnRcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiQWRkXCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiQ29udGludWUgdG8gZHJhZnRcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0lBQScpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidJQUEnXCJcbiAgICAgID5cbiAgICAgICAgQnJvd3NlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXByb2dyYW0/LnZhbGlkXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXG4gICAgICA+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXByb2dyYW0/LnZhbGlkXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXG4gICAgICA+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiAoY2xpY2spPVwic3VibWl0KClcIiAqbmdTd2l0Y2hDYXNlPVwiJ0dSQydcIj5cbiAgICAgICAge3sgbW9kZSA9PT0gXCJFRElUXCIgPyBcIlVwZGF0ZVwiIDogXCJTYXZlXCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwiZHJvcGRvd25Ub3BcIlxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJkcm9wZG93bkxlZnRcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZHJvcGRvd25XaWR0aFwiXG4gICAgICA+XG4gICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLWxpc3RcIj5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB3b3JrZmxvdyBvZiB3b3JrZmxvd1R5cGVMaXN0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VXb3JrZmxvdygkZXZlbnQsIHdvcmtmbG93KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgICAqbmdJZj1cIndvcmtmbG93Py5jb2RlICE9PSAnQUNUVydcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwid29ya2Zsb3c/LmNvZGVcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09IHdvcmtmbG93Py5jb2RlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgd29ya2Zsb3c/LndvcmtmbG93TmFtZSB9fTwvYXBwLWNzLXJhZGlvXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW92ZXJsYXlcIlxuICAgICAgICAqbmdJZj1cIndvcmtmbG93TGlzdFwiXG4gICAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93TGlzdCgpXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWNvbmZpcm1hdGlvbi1hbGVydFxuICAgICAgaWQ9XCJjb25maXJtYXRpb24tZGlhbG9ndWVcIlxuICAgICAgKGFjdGlvbik9XCJjb25maXJtV29ya2Zsb3dDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAqbmdJZj1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxuICAgICAgW21lc3NhZ2VdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/Lm1lc3NhZ2VcIlxuICAgICAgW2NvbmZpZ109XCJjb25maXJtYXRpb25BbGVydENvbmZpZ1wiXG4gICAgPjwvYXBwLWNvbmZpcm1hdGlvbi1hbGVydD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|