@posiwise/resource-module 0.0.151 → 0.0.153
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/index.mjs +4 -1
- package/esm2022/lib/public/components/reslease-note-card/release-note-card.component.mjs +5 -6
- package/esm2022/lib/public/components/resource-blogs/resource-blog.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-case-studies/resource-case-studies.component.mjs +3 -3
- package/esm2022/lib/public/components/resource-contact-us/resource-contact-us.component.mjs +4 -2
- package/esm2022/lib/public/components/resource-header/resource-header-wrapper.module.mjs +61 -0
- package/esm2022/lib/public/components/resource-header/resource-header.component.mjs +240 -0
- package/esm2022/lib/public/components/resource-header/resource-header.module.mjs +19 -0
- package/esm2022/lib/public/components/resource-integration/resource-integration.component.mjs +5 -4
- package/esm2022/lib/public/components/resource-post/resource-post.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-release-notes/resource-release-notes.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-videos/resource-videos.component.mjs +1 -1
- package/esm2022/lib/public/components/resource-webinars/resource-webinars.component.mjs +3 -3
- package/esm2022/lib/public/components/resources/resources.component.mjs +8 -7
- package/esm2022/lib/public/components/resources-hub/resources-hub.component.mjs +4 -3
- package/esm2022/lib/public/components/white-papers/white-papers.component.mjs +1 -1
- package/esm2022/lib/public/modules/root/resource-root-shared.module.mjs +14 -7
- package/esm2022/lib/public/shared/resource-shared.module.mjs +14 -7
- package/fesm2022/{posiwise-resource-module-base-top-banner.component-DFT3ZpJE.mjs → posiwise-resource-module-base-top-banner.component-B0CjDMZk.mjs} +2 -2
- package/fesm2022/{posiwise-resource-module-base-top-banner.component-DFT3ZpJE.mjs.map → posiwise-resource-module-base-top-banner.component-B0CjDMZk.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-posiwise-resource-module-D953ymF3.mjs → posiwise-resource-module-posiwise-resource-module-DgYZyzRe.mjs} +317 -22
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-DgYZyzRe.mjs.map +1 -0
- package/fesm2022/{posiwise-resource-module-resource-blogs.module-Dpg-VGXf.mjs → posiwise-resource-module-resource-blogs.module-CLAQxsFU.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-blogs.module-Dpg-VGXf.mjs.map → posiwise-resource-module-resource-blogs.module-CLAQxsFU.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-case-studies.module-Bxfa0c61.mjs → posiwise-resource-module-resource-case-studies.module-vYWWrG4q.mjs} +4 -4
- package/fesm2022/{posiwise-resource-module-resource-case-studies.module-Bxfa0c61.mjs.map → posiwise-resource-module-resource-case-studies.module-vYWWrG4q.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-events.module-CNKoXu2J.mjs → posiwise-resource-module-resource-events.module-6_Zl1MJg.mjs} +3 -3
- package/fesm2022/{posiwise-resource-module-resource-events.module-CNKoXu2J.mjs.map → posiwise-resource-module-resource-events.module-6_Zl1MJg.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-hub.module-ggk9jRt9.mjs → posiwise-resource-module-resource-hub.module-C4jSDvnR.mjs} +4 -4
- package/fesm2022/{posiwise-resource-module-resource-hub.module-ggk9jRt9.mjs.map → posiwise-resource-module-resource-hub.module-C4jSDvnR.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-integrations.module-vGdvpS64.mjs → posiwise-resource-module-resource-integrations.module-CsMRU2OT.mjs} +4 -4
- package/fesm2022/{posiwise-resource-module-resource-integrations.module-vGdvpS64.mjs.map → posiwise-resource-module-resource-integrations.module-CsMRU2OT.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-post.module-RkJpZSPU.mjs → posiwise-resource-module-resource-post.module-gUIT0ORd.mjs} +6 -6
- package/fesm2022/{posiwise-resource-module-resource-post.module-RkJpZSPU.mjs.map → posiwise-resource-module-resource-post.module-gUIT0ORd.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-release-notes.module-DKu39Lgo.mjs → posiwise-resource-module-resource-release-notes.module-DnUiCcG6.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-release-notes.module-DKu39Lgo.mjs.map → posiwise-resource-module-resource-release-notes.module-DnUiCcG6.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-root.module-CItOAAUj.mjs → posiwise-resource-module-resource-root.module-7LNgCzIL.mjs} +18 -12
- package/fesm2022/{posiwise-resource-module-resource-root.module-CItOAAUj.mjs.map → posiwise-resource-module-resource-root.module-7LNgCzIL.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-videos.module-CuXWTy8y.mjs → posiwise-resource-module-resource-videos.module-cHpJKuM2.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-videos.module-CuXWTy8y.mjs.map → posiwise-resource-module-resource-videos.module-cHpJKuM2.mjs.map} +1 -1
- package/fesm2022/{posiwise-resource-module-resource-white-papers.module-BJe9cvpS.mjs → posiwise-resource-module-resource-white-papers.module-D2yrD_1D.mjs} +5 -5
- package/fesm2022/{posiwise-resource-module-resource-white-papers.module-BJe9cvpS.mjs.map → posiwise-resource-module-resource-white-papers.module-D2yrD_1D.mjs.map} +1 -1
- package/fesm2022/posiwise-resource-module.mjs +1 -1
- package/index.d.ts +3 -0
- package/lib/public/components/resource-header/resource-header-wrapper.module.d.ts +17 -0
- package/lib/public/components/resource-header/resource-header.component.d.ts +53 -0
- package/lib/public/components/resource-header/resource-header.module.d.ts +8 -0
- package/lib/public/modules/root/resource-root-shared.module.d.ts +2 -1
- package/lib/public/shared/resource-shared.module.d.ts +2 -1
- package/package.json +1 -1
- package/fesm2022/posiwise-resource-module-posiwise-resource-module-D953ymF3.mjs.map +0 -1
|
@@ -342,7 +342,9 @@ export class Trial4ContactUsComponent extends AppBaseComponent {
|
|
|
342
342
|
return this.hubspot.find(item => item.position === 'footer') ?? null;
|
|
343
343
|
}
|
|
344
344
|
navigateToBookMeeting() {
|
|
345
|
-
|
|
345
|
+
const bookDemoUrl = this.appConfig?.signup_config?.trial?.book_demo_url ??
|
|
346
|
+
'https://calendly.com/cloudolive';
|
|
347
|
+
window.open(bookDemoUrl, '_blank', 'noreferrer noopener');
|
|
346
348
|
}
|
|
347
349
|
validateEmail() {
|
|
348
350
|
const email = this.form.get('email').value;
|
|
@@ -507,4 +509,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
507
509
|
}], userLoggedIn: [{
|
|
508
510
|
type: Input
|
|
509
511
|
}] } });
|
|
510
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLWNvbnRhY3QtdXMvcmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLWNvbnRhY3QtdXMvcmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBS0wsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0s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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJUZXN0U2VydmljZSwgQXV0aFNlcnZpY2UsIFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21VcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9zaGFyZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDcm1TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL3NtYXJ0LWNybS1zaGFyZWQnO1xuXG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmltcG9ydCB7IFJlc291cmNlTW9kYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3Jlc291cmNlLW1vZGFsLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctdHJpYWwtNC1jb250YWN0LXVzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRyaWFsNENvbnRhY3RVc0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ2Zvb3RlclNlY3Rpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb290ZXJTZWN0aW9uITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdib29rTWVldGluZycsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPFJlc291cmNlTW9kYWxDb250ZXh0PjtcbiAgICBAVmlld0NoaWxkKCdlZGl0Rm9vdGVyTGlua3NNb2RhbCcpIGVkaXRGb290ZXJMaW5rc01vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnbG9nb01vZGFsJykgbG9nb01vZGFsOiBUZW1wbGF0ZVJlZjxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnbG9nb1VwbG9hZGVyJykgbG9nb1VwbG9hZGVyOiBDdXN0b21VcGxvYWRlckNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdodWJzcG90RWRpdE1vZGFsJykgaHVic3BvdEVkaXRNb2RhbDogVGVtcGxhdGVSZWY8UmVzb3VyY2VNb2RhbENvbnRleHQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3NvY2lhbEVkaXRNb2RhbCcpIHNvY2lhbEVkaXRNb2RhbDogVGVtcGxhdGVSZWY8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3F1ZXN0aW9uc0VkaXRNb2RhbCcpIHF1ZXN0aW9uc0VkaXRNb2RhbDogVGVtcGxhdGVSZWY8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuXG4gICAgZWRpdGluZ1F1ZXN0aW9ucyA9IFtdO1xuICAgIGlzSHVic3BvdFJlYWR5OiBib29sZWFuO1xuXG4gICAgaXNGb290ZXJWaXNpYmxlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBvYnNlcnZlcj86IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gICAgb3BlblF1ZXN0aW9uc0VkaXRNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmVkaXRpbmdRdWVzdGlvbnMgPz8gW10pKTtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnF1ZXN0aW9uc0VkaXRNb2RhbCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcbiAgICB9XG5cbiAgICBlZGl0aW5nWW91dHViZVVybDogc3RyaW5nO1xuICAgIGVkaXRpbmdMaW5rZWRJblVybDogc3RyaW5nO1xuICAgIGVkaXRpbmdDb21wYW55TmFtZTogc3RyaW5nO1xuXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHJlY2FwdGNoYSA9IG51bGw7XG5cbiAgICBwcmV2aWV3RGF0YTtcblxuICAgIEBJbnB1dCgpIHN1YnNjcmlwdGlvbklkID0gdGhpcy5hcHBDb25maWcuY3JtLnN1YnNjcmlwdGlvbl9pZDtcbiAgICBASW5wdXQoKSBzb3VyY2VJZCA9IHRoaXMuYXBwQ29uZmlnLmNybS5zb3VyY2VfaWQ7XG4gICAgQElucHV0KCkgbWFzdGVyU3Vic2NyaXB0aW9uSWQgPSB0aGlzLmFwcENvbmZpZy5tYXN0ZXJfc3Vic2NyaXB0aW9uLnN1YnNjcmlwdGlvbl9pZDtcbiAgICBASW5wdXQoKSBleHBlcmltZW50TmFtZTtcbiAgICBASW5wdXQoKSBtaWNyb3NlcnZpY2VOYW1lO1xuICAgIEBJbnB1dCgpIHNoYXJkTmFtZTtcbiAgICBASW5wdXQoKSB1c2VyOiBVc2VyO1xuXG4gICAgY2FuRWRpdFJlc291cmNlc1ZhbHVlID0gZmFsc2U7XG4gICAgQElucHV0KCkgdXNlckxvZ2dlZEluOiBib29sZWFuO1xuXG4gICAgaWQ7XG5cbiAgICBsb2dvID0gdGhpcy5hcHBDb25maWc/LmNvbXBhbnk/LmxvZ29zPy5tYWluX2NvbnRyYXN0Py51cmw7XG4gICAgdHJpYWxCZ0ltYWdlMiA9IHRoaXMuYXBwQ29uZmlnPy5zaWdudXBfY29uZmlnLnRyaWFsPy5pbWFnZV9iZzI/LnVybDtcbiAgICB0b3NJZCA9IHRoaXMuYXBwQ29uZmlnPy5tYWluX3Rvc19pZDtcbiAgICBkZXNjcmlwdGlvbiA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkuZGVzY3JpcHRpb247XG4gICAgZW1haWwgPSB0aGlzLmFwcENvbmZpZy5jb21wYW55LmVtYWlsO1xuICAgIGNvbXBhbnlOYW1lID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5uYW1lO1xuICAgIHN0cmVldCA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkuc3RyZWV0O1xuICAgIHF1ZXN0aW9ucyA9IHRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/LmNvbnRhY3RfdXM/LnF1ZXN0aW9ucztcbiAgICBodWJzcG90ID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uY29udGFjdF91cz8uaHVic3BvdDtcbiAgICBmb290ZXJMaW5rcyA9IHRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/LmZvb3Rlcl9saW5rcz8uaXRlbXM7XG5cbiAgICBmb290ZXJMaW5rc0RhdGEgPSB0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5mb290ZXJfbGlua3M7XG5cbiAgICB5b3V0dWJlVXJsID0gdGhpcy5hcHBDb25maWcuc29jaWFsPy55b3V0dWJlX3VybDtcbiAgICBsaW5rZWRJblVybCA9IHRoaXMuYXBwQ29uZmlnLnNvY2lhbD8ubGlua2VkaW5fdXJsO1xuICAgIGRvbWFpbklkID0gdGhpcy5hcHBDb25maWcuZG9tYWluX2lkO1xuXG4gICAgZWRpdGluZ0VtYWlsID0gdGhpcy5lbWFpbDtcbiAgICBpc0VkaXRpbmdFbWFpbCA9IGZhbHNlO1xuXG4gICAgZWRpdGluZ0h1YnNwb3RIdG1sOiBzdHJpbmc7XG4gICAgZWRpdGluZ0h1YnNwb3RJZDogc3RyaW5nO1xuICAgIGNhcHRjaGFLZXlWMjogc3RyaW5nO1xuICAgIGh1YnNwb3RIdG1sO1xuXG4gICAgYWJUZXN0cztcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIGlzQ2FwdGNoYVZlcmlmaWVkID0gZmFsc2U7XG4gICAgaXNFbWFpbFZhbGlkID0gdHJ1ZTtcbiAgICBpc0VkaXRpbmdTdHJlZXQgPSBmYWxzZTtcblxuICAgIHBzYU9wdGlvbnM7XG5cbiAgICBxdWVzdGlvbjtcblxuICAgIGVkaXRpbmdGb290ZXJMaW5rcyA9IHtcbiAgICAgICAgaXRlbXM6IFtdXG4gICAgfTtcbiAgICBlZGl0aW5nU3RyZWV0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjcm1TZXJ2aWNlOiBDcm1TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWJUZXN0U2VydmljZTogQWJUZXN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5jYXB0Y2hhS2V5VjIgPSB0aGlzLmFwcENvbmZpZy5pbnRlZ3JhdGlvbnMuY2FwdGNoYV9rZXlfVjI7XG4gICAgICAgIHRoaXMuY29udGFjdFVzRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLmlzSHVic3BvdFJlYWR5ID0gdHJ1ZSksIDIwMDApO1xuICAgICAgICBpZiAodGhpcy51c2VyTG9nZ2VkSW4pIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKCdwcm9kdWN0Jykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcyA/IEpTT04ucGFyc2UocmVzKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGE/LnN1YnNjcmlwdGlvbklkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmV2aWV3RGF0YSA9IHtcbiAgICAgICAgICAgIHVybDogdGhpcy5sb2dvLFxuICAgICAgICAgICAgbmFtZTogJ2xvZ29fbWFpbl9jb250cmFzdC5wbmcnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZWRpdGluZ1N0cmVldCA9IHRoaXMuc3RyZWV0O1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFwcENvbmZpZy5wYWdlc19jb25maWc/LmFiX3Rlc3RzKSkge1xuICAgICAgICAgICAgdGhpcy5hYlRlc3RzID0gdGhpcy5hcHBDb25maWcucGFnZXNfY29uZmlnLmFiX3Rlc3RzLmZpbmQoXG4gICAgICAgICAgICAgICAgdGVzdCA9PiB0ZXN0LmRlc2NyaXB0aW9uID09PSAnY29udGFjdC11cydcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLm1pY3Jvc2VydmljZU5hbWUgPSB0aGlzLmFiVGVzdHM/Lm1pY3Jvc2VydmljZV9uYW1lO1xuICAgICAgICAgICAgdGhpcy5leHBlcmltZW50TmFtZSA9IHRoaXMuYWJUZXN0cz8uZXhwZXJpbWVudF9uYW1lO1xuICAgICAgICAgICAgdGhpcy5zaGFyZE5hbWUgPSB0aGlzLmFiVGVzdHM/LmRiX3NoYXJkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9vdGVySXRlbSA9IHRoaXMuZ2V0Rm9vdGVySHVic3BvdEZvcm0oKTtcbiAgICAgICAgaWYgKGZvb3Rlckl0ZW0/LmRpdikge1xuICAgICAgICAgICAgLy8gTk9TT05BUjogVHJ1c3RlZCBIVE1MIGNvbnRlbnQgaXMgaGFuZGxlZCBzYWZlbHkgaGVyZVxuICAgICAgICAgICAgdGhpcy5odWJzcG90SHRtbCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGZvb3Rlckl0ZW0uZGl2KTsgLy8gTk9TT05BUlxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9ucyA9IHRoaXMucXVlc3Rpb25zO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbnM/LlswXT8ucXVlc3Rpb247XG4gICAgICAgIHRoaXMucHNhT3B0aW9ucyA9IFtcbiAgICAgICAgICAgIHsgbGFiZWw6ICdTZWxlY3QgUFNBJywgdmFsdWU6ICcnIH0sXG4gICAgICAgICAgICAuLi4odGhpcy5xdWVzdGlvbnM/LlswXT8ub3B0aW9ucyA/PyBbXSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHEgPT4gcS5vcHRpb24/LnRyaW0oKSlcbiAgICAgICAgICAgICAgICAubWFwKHEgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHEub3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcS5vcHRpb25cbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgXTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1sndXNlciddIHx8IGNoYW5nZXNbJ3VzZXJMb2dnZWRJbiddKSB7XG4gICAgICAgICAgICBpZiAodGhpcy51c2VyTG9nZ2VkSW4gJiYgdGhpcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYW5FZGl0UmVzb3VyY2VzVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5Mb2dvRWRpdE1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMubG9nb01vZGFsLCB7XG4gICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHNpemU6ICdtZCdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TYXZlRmlsZShldmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBjb25zdCBkYXRhID0geyBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQgfTtcblxuICAgICAgICBpZiAoZXZlbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgIGRhdGFbZXZlbnQubmFtZV0gPSBldmVudC5maWxlO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmZpbGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGRhdGFbYHJlbW92ZV8ke2V2ZW50Lm5hbWV9YF0gPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgZGF0YVtrZXldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmRvbWFpbklkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5maWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dvID0gVVJMLmNyZWF0ZU9iamVjdFVSTChldmVudC5maWxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoZXZlbnQuZmlsZSA/ICdMb2dvIHVwZGF0ZWQnIDogJ0xvZ28gcmVtb3ZlZCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlUXVlc3Rpb25zKG1vZGFsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZURhdGEgPSB7XG4gICAgICAgICAgICBjb250YWN0X3VzOiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5hcHBDb25maWcucGFnZXNfY29uZmlnPy5jb250YWN0X3VzLFxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uczogdGhpcy5lZGl0aW5nUXVlc3Rpb25zXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuZG9tYWluSWQsIHVwZGF0ZURhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnF1ZXN0aW9ucyA9IHRoaXMuZWRpdGluZ1F1ZXN0aW9ucztcbiAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnUXVlc3Rpb25zIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgIHRoaXMucXVlc3Rpb24gPSB0aGlzLmVkaXRpbmdRdWVzdGlvbnM/LlswXT8ucXVlc3Rpb247XG4gICAgICAgICAgICBpZiAodGhpcy5lZGl0aW5nUXVlc3Rpb25zPy5bMF0/Lm9wdGlvbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBzYU9wdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdTZWxlY3QgUFNBJywgdmFsdWU6ICcnIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLih0aGlzLnF1ZXN0aW9ucz8uWzBdPy5vcHRpb25zID8/IFtdKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihxID0+IHEub3B0aW9uPy50cmltKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKHEgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcS5vcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHEub3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBzYU9wdGlvbnMgPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkTmV3UXVlc3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9ucy5wdXNoKHsgcXVlc3Rpb246ICcnLCBvcHRpb25zOiBbXSB9KTtcbiAgICB9XG5cbiAgICBhZGRRdWVzdGlvbk9wdGlvbihxSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnNbcUluZGV4XS5vcHRpb25zLnB1c2goeyBvcHRpb246ICcnIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVF1ZXN0aW9uT3B0aW9uKHFJbmRleDogbnVtYmVyLCBvcHRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uc1txSW5kZXhdLm9wdGlvbnMuc3BsaWNlKG9wdEluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBkcm9wUXVlc3Rpb25zKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmVkaXRpbmdRdWVzdGlvbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgfVxuXG4gICAgZHJvcFF1ZXN0aW9uT3B0aW9ucyhxSW5kZXg6IG51bWJlciwgZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zW3FJbmRleF0ub3B0aW9ucyxcbiAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvcGVuU29jaWFsRWRpdE1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdZb3V0dWJlVXJsID0gdGhpcy55b3V0dWJlVXJsO1xuICAgICAgICB0aGlzLmVkaXRpbmdMaW5rZWRJblVybCA9IHRoaXMubGlua2VkSW5Vcmw7XG4gICAgICAgIHRoaXMuZWRpdGluZ0NvbXBhbnlOYW1lID0gdGhpcy5jb21wYW55TmFtZTtcblxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuc29jaWFsRWRpdE1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnIH0pO1xuICAgIH1cblxuICAgIHNhdmVTb2NpYWxMaW5rcyhtb2RhbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1cGRhdGVEYXRhID0ge1xuICAgICAgICAgICAgeW91dHViZV91cmw6IHRoaXMuZWRpdGluZ1lvdXR1YmVVcmwsXG4gICAgICAgICAgICBsaW5rZWRpbl91cmw6IHRoaXMuZWRpdGluZ0xpbmtlZEluVXJsLFxuICAgICAgICAgICAgY29tcGFueV9uYW1lOiB0aGlzLmVkaXRpbmdDb21wYW55TmFtZSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmRvbWFpbklkLCB1cGRhdGVEYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy55b3V0dWJlVXJsID0gdGhpcy5lZGl0aW5nWW91dHViZVVybDtcbiAgICAgICAgICAgIHRoaXMubGlua2VkSW5VcmwgPSB0aGlzLmVkaXRpbmdMaW5rZWRJblVybDtcbiAgICAgICAgICAgIHRoaXMuY29tcGFueU5hbWUgPSB0aGlzLmVkaXRpbmdDb21wYW55TmFtZTtcbiAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnU29jaWFsIGxpbmtzIGFuZCBjb21wYW55IG5hbWUgdXBkYXRlZCcpO1xuICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFzVmFsaWRPcHRpb25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbnM/LlswXT8ub3B0aW9ucz8uc29tZShvcHQgPT4gb3B0Lm9wdGlvbj8udHJpbSgpKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMud2F0Y2hJZnJhbWVIZWlnaHRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgICAgIChbZW50cnldKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGb290ZXJWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgdGhyZXNob2xkOiAwLjEgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmZvb3RlclNlY3Rpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgb3BlbkVkaXRGb290ZXJMaW5rc01vZGFsKGNvbnRlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb290ZXJMaW5rc0RhdGEgPSB0aGlzLmZvb3RlckxpbmtzRGF0YSA/PyB7fTtcbiAgICAgICAgdGhpcy5mb290ZXJMaW5rc0RhdGEuaXRlbXMgPSB0aGlzLmZvb3RlckxpbmtzRGF0YS5pdGVtcyA/PyBbXTtcbiAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZm9vdGVyTGlua3NEYXRhKSk7XG5cbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7XG4gICAgICAgICAgICBzaXplOiAnbGcnLFxuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICB3aW5kb3dDbGFzczogJ21vZGFsLWhvbGRlcidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXRjaElmcmFtZUhlaWdodENoYW5nZSgpIHtcbiAgICAgICAgY29uc3QgaWZyYW1lID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaHVic3BvdC1jb250YWluZXInKTtcbiAgICAgICAgaWYgKCFpZnJhbWUpIHJldHVybjtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdIZWlnaHQgPSBpZnJhbWVbJ29mZnNldEhlaWdodCddO1xuICAgICAgICAgICAgaWYgKG5ld0hlaWdodCA9PT0gMjUwKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxsQWJUZXN0RmluaXNoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgfVxuXG4gICAgLy8gTmV3IG1ldGhvZCB0byBoYW5kbGUgSHVic3BvdCBjb250ZW50IGxvYWRpbmdcbiAgICBvbkh1YnNwb3RMb2FkKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSBldmVudC50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdjb250ZW50LWxvYWRlZCcpO1xuXG4gICAgICAgIC8vIE9wdGlvbmFsOiBUcmlnZ2VyIGxheW91dCByZWNhbGN1bGF0aW9uXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxsQWJUZXN0RmluaXNoKCkge1xuICAgICAgICBpZiAodGhpcy5leHBlcmltZW50TmFtZSAmJiB0aGlzLm1pY3Jvc2VydmljZU5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuYWJUZXN0U2VydmljZVxuICAgICAgICAgICAgICAgIC5maW5pc2hBQkV4cGVyaW1lbnQodGhpcy5leHBlcmltZW50TmFtZSwgdGhpcy5taWNyb3NlcnZpY2VOYW1lKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29udGVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dDbGFzczogJ21vZGFsLWhvbGRlcidcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb250YWN0VXNGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIGZpcnN0X25hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBsYXN0X25hbWU6IFsnJ10sXG4gICAgICAgICAgICBjb21wYW55OiBbJyddLFxuICAgICAgICAgICAgcHNhOiBbJyddLFxuICAgICAgICAgICAgZW5xdWlyeTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGVtYWlsOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU3VibWl0KCkge1xuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDYXB0Y2hhVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVN1Y2Nlc3ModG9rZW46IHN0cmluZykge1xuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudmFsaWRhdGVSZUNhcHRjaGEodG9rZW4pLnN1YnNjcmliZSgoaXNTdWNjZXNzOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzU3VjY2VzcyAmJiB0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHsgLi4udGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkRW5xdWlyeSA9IGAke2RhdGEuZW5xdWlyeX07IFF1ZXN0aW9uOiAke3RoaXMucXVlc3Rpb259OyBBbnN3ZXI6ICR7ZGF0YS5wc2F9YDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zdERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9uYW1lOiBgJHtkYXRhLmZpcnN0X25hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfbmFtZTogYCR7ZGF0YS5maXJzdF9uYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wYW55OiBgJHtkYXRhLmZpcnN0X25hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBgJHtkYXRhLmVtYWlsfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnF1aXJ5OiB0aGlzLnBzYU9wdGlvbnMubGVuZ3RoID8gZm9ybWF0dGVkRW5xdWlyeSA6IGAke2RhdGEuZW5xdWlyeX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHNhOiBkYXRhLnBzYSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNybV9zb3VyY2VfaWQ6IHRoaXMuc291cmNlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXN0ZXJfc3Vic2NyaXB0aW9uX2lkOiB0aGlzLm1hc3RlclN1YnNjcmlwdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5X3VzZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNfbWFudWFsOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JtU2VydmljZS5wb3N0Q3JtTGVhZCh0aGlzLnN1YnNjcmlwdGlvbklkLCBwb3N0RGF0YSkuc3Vic2NyaWJlKHJlc3AgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGV4YW1wbGUgb2Ygc25pcHBldCB0byBjbG9zZSB0aGUgZXhwZXJpbWVudCBhbmQgdHJhY2sgaW4gR0FcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwPy5zdGF0dXMgPT09IFN0YXR1c0NvZGVzLk9LKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nb29nbGVBbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldy1sZWFkLXJlZ2lzdHJhdGlvbicsIC8vIGNhdGVnb3J5LCBlZzogdmlkZW9zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdWJzY3JpYmUtc3VjY2VzcycsIC8vIGFjdGlvbiwgZWc6IFBsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbWluZy1zb29uLXRocmVlJywgLy8gbGFiZWwsIGVnOiBDaGFwcHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAvLyB2YWx1ZSwgZWc6IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5leHBlcmltZW50TmFtZSAmJiB0aGlzLm1pY3Jvc2VydmljZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hYlRlc3RTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluaXNoQUJFeHBlcmltZW50KHRoaXMuZXhwZXJpbWVudE5hbWUsIHRoaXMubWljcm9zZXJ2aWNlTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb250ZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dDbGFzczogJ21vZGFsLWhvbGRlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3YWwuZmlyZShyZXNwLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NhcHRjaGFWZXJpZmllZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNjcm9sbFRvVG9wKCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgIH1cblxuICAgIGdldEZvb3Rlckh1YnNwb3RGb3JtKCkge1xuICAgICAgICBpZiAoIXRoaXMuaHVic3BvdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh1YnNwb3QuZmluZChpdGVtID0+IGl0ZW0ucG9zaXRpb24gPT09ICdmb290ZXInKSA/PyBudWxsO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9Cb29rTWVldGluZygpIHtcbiAgICAgICAgd2luZG93Lm9wZW4oJ2h0dHBzOi8vY2FsZW5kbHkuY29tL2Nsb3Vkb2xpdmUnLCAnX2JsYW5rJywgJ25vcmVmZXJyZXIgbm9vcGVuZXInKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZUVtYWlsKCkge1xuICAgICAgICBjb25zdCBlbWFpbCA9IHRoaXMuZm9ybS5nZXQoJ2VtYWlsJykudmFsdWU7XG4gICAgICAgIGlmIChlbWFpbCkge1xuICAgICAgICAgICAgdGhpcy5pc0VtYWlsVmFsaWQgPSBWYWxpZGF0aW9uU2VydmljZS5lbWFpbChlbWFpbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzRW1haWxWYWxpZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRGb290ZXJMaW5rKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgc3VidGl0bGVzOiBbXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVGb290ZXJMaW5rKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBhZGRTdWJ0aXRsZShmb290ZXJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zW2Zvb3RlckluZGV4XS5zdWJ0aXRsZXMucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICBwYXRoOiAnJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVTdWJ0aXRsZShmb290ZXJJbmRleDogbnVtYmVyLCBzdWJ0aXRsZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXNbZm9vdGVySW5kZXhdLnN1YnRpdGxlcy5zcGxpY2Uoc3VidGl0bGVJbmRleCwgMSk7XG4gICAgfVxuXG4gICAgZHJvcEZvb3RlckxpbmtzKGV2ZW50KSB7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG5cbiAgICBkcm9wU3VidGl0bGVzKGZvb3RlckluZGV4OiBudW1iZXIsIGV2ZW50KSB7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zW2Zvb3RlckluZGV4XS5zdWJ0aXRsZXMsXG4gICAgICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2F2ZUZvb3RlckxpbmtzKG1vZGFsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRDb25maWcgPSB7XG4gICAgICAgICAgICBmb290ZXJfbGlua3M6IHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVEb21haW5Db25maWcodGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZCwgdXBkYXRlZENvbmZpZylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnRm9vdGVyIGxpbmtzIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvb3RlckxpbmtzID0gWy4uLnRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zXTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvb3RlckxpbmtzRGF0YSA9IHsgLi4udGhpcy5lZGl0aW5nRm9vdGVyTGlua3MgfTtcbiAgICAgICAgICAgICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2F2ZUVtYWlsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtYWlsID0gdGhpcy5lZGl0aW5nRW1haWw7XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVEb21haW5Db25maWcodGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZCwge1xuICAgICAgICAgICAgICAgIGNvbXBhbnlfZW1haWw6IHRoaXMuZWRpdGluZ0VtYWlsLFxuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnRW1haWwgdXBkYXRlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFZGl0aW5nRW1haWwgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVTdHJlZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIHtcbiAgICAgICAgICAgICAgICBjb21wYW55X2FkZHJlc3M6IHRoaXMuZWRpdGluZ1N0cmVldCxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ1N0cmVldCB1cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHJlZXQgPSB0aGlzLmVkaXRpbmdTdHJlZXQ7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmdTdHJlZXQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNhbmNlbFN0cmVldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nU3RyZWV0ID0gdGhpcy5zdHJlZXQ7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nU3RyZWV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb3Blbkh1YnNwb3RFZGl0TW9kYWwoZm9vdGVySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdIdWJzcG90SHRtbCA9IGZvb3Rlckl0ZW0uZGl2O1xuICAgICAgICB0aGlzLmVkaXRpbmdIdWJzcG90SWQgPSBmb290ZXJJdGVtLmlkO1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuaHVic3BvdEVkaXRNb2RhbCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcbiAgICB9XG5cbiAgICBzYXZlSHVic3BvdEh0bWwobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IHtcbiAgICAgICAgICAgIGNvbnRhY3RfdXM6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5jb250YWN0X3VzLFxuICAgICAgICAgICAgICAgIGh1YnNwb3Q6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc3NDIzNjM5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZm9vdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdjogdGhpcy5lZGl0aW5nSHVic3BvdEh0bWxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkLCB1cGRhdGVkQ29uZmlnKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gTk9TT05BUjogVHJ1c3RlZCBIVE1MIGNvbnRlbnQgaXMgaGFuZGxlZCBzYWZlbHkgaGVyZVxuICAgICAgICAgICAgICAgIHRoaXMuaHVic3BvdEh0bWwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLmVkaXRpbmdIdWJzcG90SHRtbCk7IC8vIE5PU09OQVJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ0h1YnNwb3QgRW1iZWQgdXBkYXRlZCcpO1xuICAgICAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSB1cGRhdGVDYW5FZGl0UmVzb3VyY2VzVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FuRWRpdFJlc291cmNlc1ZhbHVlID0gSGVscGVyU2VydmljZS5jYW5FZGl0UmVzb3VyY2VzKFxuICAgICAgICAgICAgdGhpcy51c2VyLFxuICAgICAgICAgICAgdGhpcy51c2VyTG9nZ2VkSW4sXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FuRWRpdFJlc291cmNlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuRWRpdFJlc291cmNlc1ZhbHVlO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgfVxufVxuIiwiPHNlY3Rpb24gICNmb290ZXJTZWN0aW9uIGNsYXNzPVwiYmctYmxhY2sgdGV4dC13aGl0ZSBweS01IGZvb3Rlci1zZWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAqbmdJZj1cImlzRm9vdGVyVmlzaWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cblxuICAgICAgPCEtLSBMRUZUIENPTFVNTiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtYi00IGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIFtuZ0NsYXNzXT1cInsgJ3NpdGUtY29sdW1uJzogZ2V0Rm9vdGVySHVic3BvdEZvcm0oKSB9XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibWItNCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTIgdGV4dC13aGl0ZVwiPlNpdGUgTWFwOjwvc3Bhbj5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCIgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIGN1cnNvci1wb2ludGVyIHRleHQtd2hpdGUgbXMtM1wiIChjbGljayk9XCJvcGVuRWRpdEZvb3RlckxpbmtzTW9kYWwoZWRpdEZvb3RlckxpbmtzTW9kYWwpXCIgKGtleWRvd24uZW50ZXIpPVwib3BlbkVkaXRGb290ZXJMaW5rc01vZGFsKGVkaXRGb290ZXJMaW5rc01vZGFsKVwiIChrZXlkb3duLnNwYWNlKT1cIm9wZW5FZGl0Rm9vdGVyTGlua3NNb2RhbChlZGl0Rm9vdGVyTGlua3NNb2RhbClcIiBuZ2JUb29sdGlwPVwiRWRpdCBGb290ZXIgTGlua3NcIj48L2k+XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICA8bGkgcm91dGVyTGluaz1cIi9cIlxuICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB1c2VyLWluZm8tbGFiZWwgbGluay1sYWJlbFwiPiBIb21lIDwvbGk+XG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGxpbmsgb2YgZm9vdGVyTGlua3NcIiBbcm91dGVyTGlua109XCJsaW5rPy5wYXRoXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB1c2VyLWluZm8tbGFiZWwgbGluay1sYWJlbCBtdC00XCI+PHNwYW4gICpuZ0lmPVwibGluaz8udGl0bGVcIj57e2xpbms/LnRpdGxlfX08L3NwYW4+IDwvbGk+XG4gICAgICAgICAgICA8bGkgcm91dGVyTGluaz1cIi9sb2dpblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdXNlci1pbmZvLWxhYmVsIG10LTQgbGluay1sYWJlbFwiPiBMb2cgaW4gPC9saT5cbiAgICAgICAgICAgIDxsaSBbcm91dGVyTGlua109XCInL3ByaXZhY3ktYW5kLXRvcy8nICsgdG9zSWRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHVzZXItaW5mby1sYWJlbCBtdC00IGxpbmstbGFiZWxcIj4gUHJpdmFjeSBzdGF0ZW1lbnQgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYWRkcmVzcy1zZWN0aW9uIGVtYWlsLXNlY3Rpb24gbWItNFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLWluZm8tbGFiZWxcIj5FbWFpbDogPC9zcGFuPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0VkaXRpbmdFbWFpbDsgZWxzZSBlZGl0RW1haWxcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLWluZm9cIj57eyBlbWFpbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIiBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gdGV4dC13aGl0ZSBjdXJzb3ItcG9pbnRlciBtcy0zXCIgKGNsaWNrKT1cImlzRWRpdGluZ0VtYWlsID0gdHJ1ZVwiIChrZXlkb3duLmVudGVyKT1cImlzRWRpdGluZ0VtYWlsID0gdHJ1ZVwiIChrZXlkb3duLnNwYWNlKT1cImlzRWRpdGluZ0VtYWlsID0gdHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRFbWFpbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZC1pbmxpbmUgdy1hdXRvXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRpbmdFbWFpbFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IG1zLTJcIiAoY2xpY2spPVwic2F2ZUVtYWlsKClcIj5TYXZlPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnkgbXMtMlwiIChjbGljayk9XCJpc0VkaXRpbmdFbWFpbCA9IGZhbHNlXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbWFpbC1zZWN0aW9uIG10LTMgYWRkcmVzcy10ZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItaW5mby1sYWJlbFwiPlxuICAgICAgICAgICAgICBBZGRyZXNzOlxuICAgICAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiBjdXJzb3ItcG9pbnRlciBtcy0yIHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICB0aXRsZT1cIkVkaXQgQWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJpc0VkaXRpbmdTdHJlZXQgPSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaXNFZGl0aW5nU3RyZWV0ID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cImlzRWRpdGluZ1N0cmVldCA9IHRydWVcIj48L2k+XG4gICAgICAgICAgICA8L3NwYW4+PGJyLz5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0VkaXRpbmdTdHJlZXQ7IGVsc2UgZWRpdFN0cmVldEJsb2NrXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRkcmVzcy10ZXh0IHVzZXItaW5mb1wiPnt7IHN0cmVldCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRTdHJlZXRCbG9jaz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtM1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdTdHJlZXRcIiAvPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IG1zLTJcIiAoY2xpY2spPVwic2F2ZVN0cmVldCgpXCI+U2F2ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnkgbXMtMlwiIChjbGljayk9XCJjYW5jZWxTdHJlZXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwibG9nb1wiXG4gICAgICAgICAgICAgICBhbHQ9XCJDb21wYW55IGxvZ29cIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgbXQtNCBsb2dvLWltYWdlIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgIHdpZHRoPVwiMTYwXCJcbiAgICAgICAgICAgICAgIGhlaWdodD1cIjM1XCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJzY3JvbGxUb1RvcCgpXCJcbiAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNjcm9sbFRvVG9wKClcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2Nyb2xsVG9Ub3AoKVwiXG4gICAgICAgICAgICAgICB0aXRsZT1cIkNsaWNrIHRvIGdvIHRvIHRvcCBvZiBwYWdlXCIgLz5cbiAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIGZhLXNtIG1zLTMgY3Vyc29yLXBvaW50ZXIgdGV4dC13aGl0ZSBhbGlnbi1zZWxmLWNlbnRlciBtdC0zXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib3BlbkxvZ29FZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgdGl0bGU9XCJFZGl0IExvZ29cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gUklHSFQgQ09MVU1OIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJpc0Zvb3RlclZpc2libGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEZvb3Rlckh1YnNwb3RGb3JtKCkgYXMgZm9vdGVySXRlbTsgZWxzZSBkZWZhdWx0Rm9ybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0h1YnNwb3RSZWFkeVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJodWJzcG90LWNvbnRhaW5lciB3LTEwMCBjb250ZW50LWxvYWRlZFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJodWJzcG90SHRtbFwiXG4gICAgICAgICAgICAgICAgKGxvYWQpPVwib25IdWJzcG90TG9hZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiB0ZXh0LXdoaXRlIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5IdWJzcG90RWRpdE1vZGFsKGZvb3Rlckl0ZW0pXCJcbiAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib3Blbkh1YnNwb3RFZGl0TW9kYWwoZm9vdGVySXRlbSlcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuSHVic3BvdEVkaXRNb2RhbChmb290ZXJJdGVtKVwiXG4gICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBIdWJzcG90IEVtYmVkXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGb3JtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LXdoaXRlIG1iLTRcIj4gPHNwYW4gY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+R2V0IGluIHRvdWNoOjwvc3Bhbj48L2gzPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gdGV4dC13aGl0ZSBjdXJzb3ItcG9pbnRlciBtcy0zIG10LTJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuUXVlc3Rpb25zRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5RdWVzdGlvbnNFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib3BlblF1ZXN0aW9uc0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIkVkaXQgUXVlc3Rpb25zXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdC1mb3JtXCI+XG4gICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1haWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1haWxcIj5FbWFpbDo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWZpZWxkLWVycm9yLWRpc3BsYXkgW2Rpc3BsYXlFcnJvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWZvcm0uZ2V0KCdlbWFpbCcpLnZhbGlkICYmIChmb3JtLmdldCgnZW1haWwnKS50b3VjaGVkIHx8IHN1Ym1pdHRlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBlcnJvck1zZz1cIkVtYWlsIGlzIHJlcXVpcmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctZmllbGQtZXJyb3ItZGlzcGxheT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpcnN0X25hbWVcIj5GaXJzdCBuYW1lOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmaXJzdF9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpcnN0X25hbWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cHctZmllbGQtZXJyb3ItZGlzcGxheSBbZGlzcGxheUVycm9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhZm9ybS5nZXQoJ2ZpcnN0X25hbWUnKS52YWxpZCAmJiAoZm9ybS5nZXQoJ2ZpcnN0X25hbWUnKS50b3VjaGVkIHx8IHN1Ym1pdHRlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBlcnJvck1zZz1cIkZpcnN0IG5hbWUgaXMgcmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1maWVsZC1lcnJvci1kaXNwbGF5PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibGFzdF9uYW1lXCI+TGFzdCBuYW1lOjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGFzdF9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxhc3RfbmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb21wYW55XCI+Q29tcGFueTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNvbXBhbnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiICpuZ0lmPVwiaGFzVmFsaWRPcHRpb25zKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicHNhXCIgY2xhc3M9XCJzZWxlY3QtbGFiZWxcIj57e3F1ZXN0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwc2FcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwicHNhT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBQU0EnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJpbnB1dC1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbnF1aXJ5XCIgY2xhc3M9XCJzZWxlY3QtbGFiZWxcIj5Ib3cgY2FuIHdlIGhlbHAgeW91PzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVucXVpcnktZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSAgaWQ9XCJlbnF1aXJ5XCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5xdWlyeVwiIGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwdy1maWVsZC1lcnJvci1kaXNwbGF5IFtkaXNwbGF5RXJyb3JdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFmb3JtLmdldCgnZW5xdWlyeScpLnZhbGlkICYmIChmb3JtLmdldCgnZW5xdWlyeScpLnRvdWNoZWQgfHwgc3VibWl0dGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnPVwiRW5xdWlyeSBpcyByZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWZpZWxkLWVycm9yLWRpc3BsYXk+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FwdGNoYS13cmFwcGVyLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImlzQ2FwdGNoYVZlcmlmaWVkXCI+XG4gICAgICAgICAgICAgICAgICA8bmd4LXJlY2FwdGNoYTIgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3NpdGVLZXldPVwiY2FwdGNoYUtleVYyXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm5vcm1hbFwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVjYXB0Y2hhXCJcbiAgICAgICAgICAgICAgICAgICAgKHN1Y2Nlc3MpPVwiaGFuZGxlU3VjY2VzcygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8L25neC1yZWNhcHRjaGEyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0NhcHRjaGFWZXJpZmllZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2lnbi1idG4gc2lnbi1oZWFkZXItYnRuIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29ucyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtldmVudFRyYWNrZXJdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICd5b3V0dWJlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2NsaWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnY2xvdWRvbGl2ZS1sYW5kaW5nLXBhZ2UtYicsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogMVxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInlvdXR1YmVVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvaWNvbnMveW91dHViZS5wbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbWctZmx1aWQgeW91dHViZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbZXZlbnRUcmFja2VyXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbGlua2VkaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnY2xpY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjbG91ZG9saXZlLWxhbmRpbmctcGFnZS1iJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAxXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGlua2VkSW5VcmxcIlxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29ucy9zb2NpYWwvbGlua2VkaW4uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIGxpbmtlZGluLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI0OFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI0OFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIHRleHQtd2hpdGUgY3Vyc29yLXBvaW50ZXIgbXMtM1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU29jaWFsRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuU29jaWFsRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuU29jaWFsRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkVkaXQgU29jaWFsIExpbmtzICYgQ29tcGFueSBOYW1lXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29weXJpZ2h0IHRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgMjAyNSB7e2NvbXBhbnlOYW1lfX0uXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuXG5cblxuPG5nLXRlbXBsYXRlICNib29rTWVldGluZ1xuICBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJidG4tY2xvc2UgZmxvYXQtZW5kXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXG4gICAgICAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxoMyBjbGFzcz1cInRleHQtY2VudGVyIG1vZGFsLWJhc2ljLXRpdGxlXCI+XG4gICAgICBUaGFua3MgZm9yIGdldHRpbmcgaW4gdG91Y2ghIE91ciB0ZWFtIHdpbGwgYmUgaW4gY29udGFjdCBzaG9ydGx5LCBvciB3ZVxuICAgICAgY2FuIGNvbXBhcmUgY2FsZW5kYXJzIG5vdyAmYW1wOyBzY2hlZHVsZSBhIHRpbWVcbiAgICA8L2gzPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZXZlbnRUcmFja2VyXT1cIntcbiAgICAgICAgY2F0ZWdvcnk6ICdyZXF1ZXN0LWRlbW8nLFxuICAgICAgICBhY3Rpb246ICdjbGljaycsXG4gICAgICAgIGxhYmVsOiAnY2xvdWRvbGl2ZS1sYW5kaW5nLXBhZ2UtYicsXG4gICAgICAgIHZhbHVlOiAxXG4gICAgICB9XCJcbiAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvQm9va01lZXRpbmcoKVwiXG4gICAgICBjbGFzcz1cInNpZ24tYnRuIHNpZ24taGVhZGVyLWJ0biBteC1hdXRvIGQtYmxvY2sgbWItM1wiPlxuICAgICAgTGV0J3MgZG8gaXRcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cbjxuZy10ZW1wbGF0ZSAjZWRpdEZvb3RlckxpbmtzTW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IEZvb3RlciBMaW5rczwvaDU+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGg0IGNsYXNzPVwibWItM1wiPkZvb3RlciBMaW5rcyBTZWN0aW9uPC9oND5cbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEZvb3RlckxpbmtzKCRldmVudClcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZvb3RlciBvZiBlZGl0aW5nRm9vdGVyTGlua3MuaXRlbXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImJvcmRlciBwLTMgbWItM1wiIGNka0RyYWc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgbWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZvb3RlclRpdGxle3tpfX1cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5UaXRsZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJmb290ZXJUaXRsZXt7aX19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZvb3Rlci50aXRsZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IG1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmb290ZXJQYXRoe3tpfX1cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5QYXRoPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImZvb3RlclBhdGh7e2l9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmb290ZXIucGF0aFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaCBpbi1wYWdlLXRyYXNoLWljb24gdGV4dC1kYW5nZXIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVtb3ZlRm9vdGVyTGluayhpKVwiIChrZXlkb3duLmVudGVyKT1cInJlbW92ZUZvb3RlckxpbmsoaSlcIiAoa2V5ZG93bi5zcGFjZSk9XCJyZW1vdmVGb290ZXJMaW5rKGkpXCI+PC9pPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzIGluLXBhZ2UtYmFycy1pY29uIGN1cnNvci1tb3ZlXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gU3VidGl0bGVzIC0tPlxuICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFN1YnRpdGxlcyhpLCAkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViIG9mIGZvb3Rlci5zdWJ0aXRsZXM7IGxldCBqID0gaW5kZXhcIiBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgY2RrRHJhZz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3VidGl0bGVUaXRsZXt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdWJ0aXRsZSBUaXRsZTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cInN1YnRpdGxlVGl0bGV7e2l9fXt7an19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInN1Yi50aXRsZVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3VidGl0bGVQYXRoe3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN1YnRpdGxlIFBhdGg8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJzdWJ0aXRsZVBhdGh7e2l9fXt7an19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInN1Yi5wYXRoXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoIGluLXBhZ2UtdHJhc2gtaWNvbiB0ZXh0LWRhbmdlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZW1vdmVTdWJ0aXRsZShpLCBqKVwiIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVN1YnRpdGxlKGksIGopXCIgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlU3VidGl0bGUoaSwgailcIj48L2k+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFycyBjdXJzb3ItbW92ZSBpbi1wYWdlLWJhcnMtaWNvblwiIGNka0RyYWdIYW5kbGU+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tc20gbXQtMlwiIChjbGljayk9XCJhZGRTdWJ0aXRsZShpKVwiPlxuICAgICAgICAgICsgQWRkIFN1YnRpdGxlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIiAoY2xpY2spPVwiYWRkRm9vdGVyTGluaygpXCI+XG4gICAgICArIEFkZCBGb290ZXIgTGlua1xuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2F2ZUZvb3RlckxpbmtzKG1vZGFsKVwiPlNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuXG5cbjxuZy10ZW1wbGF0ZSAjbG9nb01vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+VXBsb2FkIExvZ288L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8cHctY3VzdG9tLXVwbG9hZGVyXG4gICAgICBbYXNwZWN0UmF0aW9dPVwiJ2Z1bGxMb2dvJ1wiXG4gICAgICBbdGl0bGVdPVwiJ01haW4gQ29udHJhc3QgTG9nbydcIlxuICAgICAgW2NvbnRyb2xOYW1lXT1cIidsb2dvX21haW5fY29udHJhc3QnXCJcbiAgICAgIFtwcmV2aWV3RGF0YV09XCJwcmV2aWV3RGF0YVwiXG4gICAgICAoc2F2ZUV2ZW50KT1cIm9uU2F2ZUZpbGUoJGV2ZW50KVwiPlxuICAgIDwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuXG48bmctdGVtcGxhdGUgI2h1YnNwb3RFZGl0TW9kYWwgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5FZGl0IEh1YnNwb3QgRW1iZWQ8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGZvcj1cImh1YnNwb3RJZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkh1YnNwb3QgSUQ8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwiaHVic3BvdElkXCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nSHVic3BvdElkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaHVic3BvdEVtYmVkRGl2XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1iZWQgRElWPC9sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYSBpZD1cImh1YnNwb3RFbWJlZERpdlwiIFsobmdNb2RlbCldPVwiZWRpdGluZ0h1YnNwb3RIdG1sXCIgcm93cz1cIjhcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPjwvdGV4dGFyZWE+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzYXZlSHVic3BvdEh0bWwobW9kYWwpXCI+U2F2ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cbjxuZy10ZW1wbGF0ZSAjc29jaWFsRWRpdE1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBTb2NpYWwgTGlua3MgJiBDb21wYW55IE5hbWU8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGZvcj1cInlvdXR1YmVVcmxcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Zb3VUdWJlIFVSTDwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJ5b3V0dWJlVXJsXCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nWW91dHViZVVybFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGZvcj1cImxpbmtlZGluVXJsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+TGlua2VkSW4gVVJMPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImxpbmtlZGluVXJsXCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nTGlua2VkSW5VcmxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJjb21wYW55TmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNvbXBhbnkgTmFtZTwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJjb21wYW55TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdGluZ0NvbXBhbnlOYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2F2ZVNvY2lhbExpbmtzKG1vZGFsKVwiPlNhdmU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cbjxuZy10ZW1wbGF0ZSAjcXVlc3Rpb25zRWRpdE1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBRdWVzdGlvbnM8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5RdWVzdGlvbnMgU2VjdGlvbjwvaDQ+XG4gICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BRdWVzdGlvbnMoJGV2ZW50KVwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcSBvZiBlZGl0aW5nUXVlc3Rpb25zOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJib3JkZXIgcC0zIG1iLTNcIiBjZGtEcmFnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMSBtYi0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwicXVlc3Rpb25UZXh0e3tpfX1cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5RdWVzdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJxdWVzdGlvblRleHR7e2l9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJxLnF1ZXN0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBxdWVzdGlvblwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLXN0YXJ0IG10LTRcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFycyBpbi1wYWdlLWJhcnMtaWNvbiBjdXJzb3ItbW92ZVwiIGNka0RyYWdIYW5kbGU+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIE9wdGlvbnMgU2VjdGlvbiAtLT5cbiAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BRdWVzdGlvbk9wdGlvbnMoaSwgJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdCBvZiBxLm9wdGlvbnM7IGxldCBqID0gaW5kZXhcIiBjbGFzcz1cInJvdyBib3JkZXIgcC0zIG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgY2RrRHJhZz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNyBtYi0yXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJxdWVzdGlvbk9wdGlvbnt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5PcHRpb248L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJxdWVzdGlvbk9wdGlvbnt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwib3B0Lm9wdGlvblwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgb3B0aW9uXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtNFwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoIGluLXBhZ2UtdHJhc2gtaWNvbiB0ZXh0LWRhbmdlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZW1vdmVRdWVzdGlvbk9wdGlvbihpLCBqKVwiIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVF1ZXN0aW9uT3B0aW9uKGksIGopXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlUXVlc3Rpb25PcHRpb24oaSwgailcIj48L2k+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFycyBpbi1wYWdlLWJhcnMtaWNvbiBjdXJzb3ItbW92ZVwiIGNka0RyYWdIYW5kbGU+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tc20gbXQtMlwiIChjbGljayk9XCJhZGRRdWVzdGlvbk9wdGlvbihpKVwiPisgQWRkIE9wdGlvbjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIiAoY2xpY2spPVwiYWRkTmV3UXVlc3Rpb24oKVwiPisgQWRkIFF1ZXN0aW9uPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzYXZlUXVlc3Rpb25zKG1vZGFsKVwiPlNhdmU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuIl19
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLWNvbnRhY3QtdXMvcmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Jlc291cmNlLW1vZHVsZS9zcmMvbGliL3B1YmxpYy9jb21wb25lbnRzL3Jlc291cmNlLWNvbnRhY3QtdXMvcmVzb3VyY2UtY29udGFjdC11cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBS0wsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0s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QXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IEFiVGVzdFNlcnZpY2UsIEF1dGhTZXJ2aWNlLCBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2Uvc2hhcmVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3JtU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9zbWFydC1jcm0tc2hhcmVkJztcblxuaW1wb3J0IHsgU3RhdHVzQ29kZXMgfSBmcm9tICdodHRwLXN0YXR1cy1jb2Rlcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBSZXNvdXJjZU1vZGFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yZXNvdXJjZS1tb2RhbC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXRyaWFsLTQtY29udGFjdC11cycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc291cmNlLWNvbnRhY3QtdXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Jlc291cmNlLWNvbnRhY3QtdXMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUcmlhbDRDb250YWN0VXNDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgICBAVmlld0NoaWxkKCdmb290ZXJTZWN0aW9uJywgeyBzdGF0aWM6IHRydWUgfSkgZm9vdGVyU2VjdGlvbiE6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnYm9va01lZXRpbmcnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50OiBUZW1wbGF0ZVJlZjxSZXNvdXJjZU1vZGFsQ29udGV4dD47XG4gICAgQFZpZXdDaGlsZCgnZWRpdEZvb3RlckxpbmtzTW9kYWwnKSBlZGl0Rm9vdGVyTGlua3NNb2RhbDogVGVtcGxhdGVSZWY8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2xvZ29Nb2RhbCcpIGxvZ29Nb2RhbDogVGVtcGxhdGVSZWY8Q3VzdG9tVXBsb2FkZXJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2xvZ29VcGxvYWRlcicpIGxvZ29VcGxvYWRlcjogQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnaHVic3BvdEVkaXRNb2RhbCcpIGh1YnNwb3RFZGl0TW9kYWw6IFRlbXBsYXRlUmVmPFJlc291cmNlTW9kYWxDb250ZXh0PjtcbiAgICBAVmlld0NoaWxkKCdzb2NpYWxFZGl0TW9kYWwnKSBzb2NpYWxFZGl0TW9kYWw6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKCdxdWVzdGlvbnNFZGl0TW9kYWwnKSBxdWVzdGlvbnNFZGl0TW9kYWw6IFRlbXBsYXRlUmVmPEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcblxuICAgIGVkaXRpbmdRdWVzdGlvbnMgPSBbXTtcbiAgICBpc0h1YnNwb3RSZWFkeTogYm9vbGVhbjtcblxuICAgIGlzRm9vdGVyVmlzaWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgb2JzZXJ2ZXI/OiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcblxuICAgIG9wZW5RdWVzdGlvbnNFZGl0TW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5lZGl0aW5nUXVlc3Rpb25zID8/IFtdKSk7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5xdWVzdGlvbnNFZGl0TW9kYWwsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdsZycgfSk7XG4gICAgfVxuXG4gICAgZWRpdGluZ1lvdXR1YmVVcmw6IHN0cmluZztcbiAgICBlZGl0aW5nTGlua2VkSW5Vcmw6IHN0cmluZztcbiAgICBlZGl0aW5nQ29tcGFueU5hbWU6IHN0cmluZztcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICByZWNhcHRjaGEgPSBudWxsO1xuXG4gICAgcHJldmlld0RhdGE7XG5cbiAgICBASW5wdXQoKSBzdWJzY3JpcHRpb25JZCA9IHRoaXMuYXBwQ29uZmlnLmNybS5zdWJzY3JpcHRpb25faWQ7XG4gICAgQElucHV0KCkgc291cmNlSWQgPSB0aGlzLmFwcENvbmZpZy5jcm0uc291cmNlX2lkO1xuICAgIEBJbnB1dCgpIG1hc3RlclN1YnNjcmlwdGlvbklkID0gdGhpcy5hcHBDb25maWcubWFzdGVyX3N1YnNjcmlwdGlvbi5zdWJzY3JpcHRpb25faWQ7XG4gICAgQElucHV0KCkgZXhwZXJpbWVudE5hbWU7XG4gICAgQElucHV0KCkgbWljcm9zZXJ2aWNlTmFtZTtcbiAgICBASW5wdXQoKSBzaGFyZE5hbWU7XG4gICAgQElucHV0KCkgdXNlcjogVXNlcjtcblxuICAgIGNhbkVkaXRSZXNvdXJjZXNWYWx1ZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHVzZXJMb2dnZWRJbjogYm9vbGVhbjtcblxuICAgIGlkO1xuXG4gICAgbG9nbyA9IHRoaXMuYXBwQ29uZmlnPy5jb21wYW55Py5sb2dvcz8ubWFpbl9jb250cmFzdD8udXJsO1xuICAgIHRyaWFsQmdJbWFnZTIgPSB0aGlzLmFwcENvbmZpZz8uc2lnbnVwX2NvbmZpZy50cmlhbD8uaW1hZ2VfYmcyPy51cmw7XG4gICAgdG9zSWQgPSB0aGlzLmFwcENvbmZpZz8ubWFpbl90b3NfaWQ7XG4gICAgZGVzY3JpcHRpb24gPSB0aGlzLmFwcENvbmZpZy5jb21wYW55LmRlc2NyaXB0aW9uO1xuICAgIGVtYWlsID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5lbWFpbDtcbiAgICBjb21wYW55TmFtZSA9IHRoaXMuYXBwQ29uZmlnLmNvbXBhbnkubmFtZTtcbiAgICBzdHJlZXQgPSB0aGlzLmFwcENvbmZpZy5jb21wYW55LnN0cmVldDtcbiAgICBxdWVzdGlvbnMgPSB0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5jb250YWN0X3VzPy5xdWVzdGlvbnM7XG4gICAgaHVic3BvdCA9IHRoaXMuYXBwQ29uZmlnPy5wYWdlc19jb25maWc/LmNvbnRhY3RfdXM/Lmh1YnNwb3Q7XG4gICAgZm9vdGVyTGlua3MgPSB0aGlzLmFwcENvbmZpZz8ucGFnZXNfY29uZmlnPy5mb290ZXJfbGlua3M/Lml0ZW1zO1xuXG4gICAgZm9vdGVyTGlua3NEYXRhID0gdGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uZm9vdGVyX2xpbmtzO1xuXG4gICAgeW91dHViZVVybCA9IHRoaXMuYXBwQ29uZmlnLnNvY2lhbD8ueW91dHViZV91cmw7XG4gICAgbGlua2VkSW5VcmwgPSB0aGlzLmFwcENvbmZpZy5zb2NpYWw/LmxpbmtlZGluX3VybDtcbiAgICBkb21haW5JZCA9IHRoaXMuYXBwQ29uZmlnLmRvbWFpbl9pZDtcblxuICAgIGVkaXRpbmdFbWFpbCA9IHRoaXMuZW1haWw7XG4gICAgaXNFZGl0aW5nRW1haWwgPSBmYWxzZTtcblxuICAgIGVkaXRpbmdIdWJzcG90SHRtbDogc3RyaW5nO1xuICAgIGVkaXRpbmdIdWJzcG90SWQ6IHN0cmluZztcbiAgICBjYXB0Y2hhS2V5VjI6IHN0cmluZztcbiAgICBodWJzcG90SHRtbDtcblxuICAgIGFiVGVzdHM7XG5cbiAgICBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICBpc0NhcHRjaGFWZXJpZmllZCA9IGZhbHNlO1xuICAgIGlzRW1haWxWYWxpZCA9IHRydWU7XG4gICAgaXNFZGl0aW5nU3RyZWV0ID0gZmFsc2U7XG5cbiAgICBwc2FPcHRpb25zO1xuXG4gICAgcXVlc3Rpb247XG5cbiAgICBlZGl0aW5nRm9vdGVyTGlua3MgPSB7XG4gICAgICAgIGl0ZW1zOiBbXVxuICAgIH07XG4gICAgZWRpdGluZ1N0cmVldDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY3JtU2VydmljZTogQ3JtU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFiVGVzdFNlcnZpY2U6IEFiVGVzdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudFxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIHRoaXMuY2FwdGNoYUtleVYyID0gdGhpcy5hcHBDb25maWcuaW50ZWdyYXRpb25zLmNhcHRjaGFfa2V5X1YyO1xuICAgICAgICB0aGlzLmNvbnRhY3RVc0Zvcm0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5pc0h1YnNwb3RSZWFkeSA9IHRydWUpLCAyMDAwKTtcbiAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtJCgncHJvZHVjdCcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXMgPyBKU09OLnBhcnNlKHJlcykgOiBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuaWQgPSBkYXRhPy5zdWJzY3JpcHRpb25JZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJldmlld0RhdGEgPSB7XG4gICAgICAgICAgICB1cmw6IHRoaXMubG9nbyxcbiAgICAgICAgICAgIG5hbWU6ICdsb2dvX21haW5fY29udHJhc3QucG5nJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVkaXRpbmdTdHJlZXQgPSB0aGlzLnN0cmVldDtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5hcHBDb25maWcucGFnZXNfY29uZmlnPy5hYl90ZXN0cykpIHtcbiAgICAgICAgICAgIHRoaXMuYWJUZXN0cyA9IHRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZy5hYl90ZXN0cy5maW5kKFxuICAgICAgICAgICAgICAgIHRlc3QgPT4gdGVzdC5kZXNjcmlwdGlvbiA9PT0gJ2NvbnRhY3QtdXMnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5taWNyb3NlcnZpY2VOYW1lID0gdGhpcy5hYlRlc3RzPy5taWNyb3NlcnZpY2VfbmFtZTtcbiAgICAgICAgICAgIHRoaXMuZXhwZXJpbWVudE5hbWUgPSB0aGlzLmFiVGVzdHM/LmV4cGVyaW1lbnRfbmFtZTtcbiAgICAgICAgICAgIHRoaXMuc2hhcmROYW1lID0gdGhpcy5hYlRlc3RzPy5kYl9zaGFyZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvb3Rlckl0ZW0gPSB0aGlzLmdldEZvb3Rlckh1YnNwb3RGb3JtKCk7XG4gICAgICAgIGlmIChmb290ZXJJdGVtPy5kaXYpIHtcbiAgICAgICAgICAgIC8vIE5PU09OQVI6IFRydXN0ZWQgSFRNTCBjb250ZW50IGlzIGhhbmRsZWQgc2FmZWx5IGhlcmVcbiAgICAgICAgICAgIHRoaXMuaHVic3BvdEh0bWwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChmb290ZXJJdGVtLmRpdik7IC8vIE5PU09OQVJcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnMgPSB0aGlzLnF1ZXN0aW9ucztcbiAgICAgICAgdGhpcy5xdWVzdGlvbiA9IHRoaXMucXVlc3Rpb25zPy5bMF0/LnF1ZXN0aW9uO1xuICAgICAgICB0aGlzLnBzYU9wdGlvbnMgPSBbXG4gICAgICAgICAgICB7IGxhYmVsOiAnU2VsZWN0IFBTQScsIHZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgLi4uKHRoaXMucXVlc3Rpb25zPy5bMF0/Lm9wdGlvbnMgPz8gW10pXG4gICAgICAgICAgICAgICAgLmZpbHRlcihxID0+IHEub3B0aW9uPy50cmltKCkpXG4gICAgICAgICAgICAgICAgLm1hcChxID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBxLm9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHEub3B0aW9uXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgIF07XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3VzZXInXSB8fCBjaGFuZ2VzWyd1c2VyTG9nZ2VkSW4nXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckxvZ2dlZEluICYmIHRoaXMudXNlcikge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FuRWRpdFJlc291cmNlc1ZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuTG9nb0VkaXRNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmxvZ29Nb2RhbCwge1xuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICBzaXplOiAnbWQnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU2F2ZUZpbGUoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHsgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkIH07XG5cbiAgICAgICAgaWYgKGV2ZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgICAgICBkYXRhW2V2ZW50Lm5hbWVdID0gZXZlbnQuZmlsZTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5maWxlID09PSBudWxsKSB7XG4gICAgICAgICAgICBkYXRhW2ByZW1vdmVfJHtldmVudC5uYW1lfWBdID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIGRhdGFba2V5XSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5kb21haW5JZCwgZm9ybURhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZmlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nbyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZXZlbnQuZmlsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKGV2ZW50LmZpbGUgPyAnTG9nbyB1cGRhdGVkJyA6ICdMb2dvIHJlbW92ZWQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2F2ZVF1ZXN0aW9ucyhtb2RhbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1cGRhdGVEYXRhID0ge1xuICAgICAgICAgICAgY29udGFjdF91czoge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuYXBwQ29uZmlnLnBhZ2VzX2NvbmZpZz8uY29udGFjdF91cyxcbiAgICAgICAgICAgICAgICBxdWVzdGlvbnM6IHRoaXMuZWRpdGluZ1F1ZXN0aW9uc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmRvbWFpbklkLCB1cGRhdGVEYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5xdWVzdGlvbnMgPSB0aGlzLmVkaXRpbmdRdWVzdGlvbnM7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ1F1ZXN0aW9ucyB1cGRhdGVkJyk7XG4gICAgICAgICAgICB0aGlzLnF1ZXN0aW9uID0gdGhpcy5lZGl0aW5nUXVlc3Rpb25zPy5bMF0/LnF1ZXN0aW9uO1xuICAgICAgICAgICAgaWYgKHRoaXMuZWRpdGluZ1F1ZXN0aW9ucz8uWzBdPy5vcHRpb25zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wc2FPcHRpb25zID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnU2VsZWN0IFBTQScsIHZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5xdWVzdGlvbnM/LlswXT8ub3B0aW9ucyA/PyBbXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIocSA9PiBxLm9wdGlvbj8udHJpbSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChxID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHEub3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBxLm9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wc2FPcHRpb25zID0gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZE5ld1F1ZXN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnMucHVzaCh7IHF1ZXN0aW9uOiAnJywgb3B0aW9uczogW10gfSk7XG4gICAgfVxuXG4gICAgYWRkUXVlc3Rpb25PcHRpb24ocUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nUXVlc3Rpb25zW3FJbmRleF0ub3B0aW9ucy5wdXNoKHsgb3B0aW9uOiAnJyB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVRdWVzdGlvbk9wdGlvbihxSW5kZXg6IG51bWJlciwgb3B0SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbnNbcUluZGV4XS5vcHRpb25zLnNwbGljZShvcHRJbmRleCwgMSk7XG4gICAgfVxuXG4gICAgZHJvcFF1ZXN0aW9ucyhldmVudCk6IHZvaWQge1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5lZGl0aW5nUXVlc3Rpb25zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH1cblxuICAgIGRyb3BRdWVzdGlvbk9wdGlvbnMocUluZGV4OiBudW1iZXIsIGV2ZW50KTogdm9pZCB7XG4gICAgICAgIG1vdmVJdGVtSW5BcnJheShcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uc1txSW5kZXhdLm9wdGlvbnMsXG4gICAgICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb3BlblNvY2lhbEVkaXRNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nWW91dHViZVVybCA9IHRoaXMueW91dHViZVVybDtcbiAgICAgICAgdGhpcy5lZGl0aW5nTGlua2VkSW5VcmwgPSB0aGlzLmxpbmtlZEluVXJsO1xuICAgICAgICB0aGlzLmVkaXRpbmdDb21wYW55TmFtZSA9IHRoaXMuY29tcGFueU5hbWU7XG5cbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnNvY2lhbEVkaXRNb2RhbCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJyB9KTtcbiAgICB9XG5cbiAgICBzYXZlU29jaWFsTGlua3MobW9kYWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlRGF0YSA9IHtcbiAgICAgICAgICAgIHlvdXR1YmVfdXJsOiB0aGlzLmVkaXRpbmdZb3V0dWJlVXJsLFxuICAgICAgICAgICAgbGlua2VkaW5fdXJsOiB0aGlzLmVkaXRpbmdMaW5rZWRJblVybCxcbiAgICAgICAgICAgIGNvbXBhbnlfbmFtZTogdGhpcy5lZGl0aW5nQ29tcGFueU5hbWUsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5kb21haW5JZCwgdXBkYXRlRGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMueW91dHViZVVybCA9IHRoaXMuZWRpdGluZ1lvdXR1YmVVcmw7XG4gICAgICAgICAgICB0aGlzLmxpbmtlZEluVXJsID0gdGhpcy5lZGl0aW5nTGlua2VkSW5Vcmw7XG4gICAgICAgICAgICB0aGlzLmNvbXBhbnlOYW1lID0gdGhpcy5lZGl0aW5nQ29tcGFueU5hbWU7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ1NvY2lhbCBsaW5rcyBhbmQgY29tcGFueSBuYW1lIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb25zPy5bMF0/Lm9wdGlvbnM/LnNvbWUob3B0ID0+IG9wdC5vcHRpb24/LnRyaW0oKSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLndhdGNoSWZyYW1lSGVpZ2h0Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgICAgICAoW2VudHJ5XSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRm9vdGVyVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IHRocmVzaG9sZDogMC4xIH1cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5mb290ZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9wZW5FZGl0Rm9vdGVyTGlua3NNb2RhbChjb250ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9vdGVyTGlua3NEYXRhID0gdGhpcy5mb290ZXJMaW5rc0RhdGEgPz8ge307XG4gICAgICAgIHRoaXMuZm9vdGVyTGlua3NEYXRhLml0ZW1zID0gdGhpcy5mb290ZXJMaW5rc0RhdGEuaXRlbXMgPz8gW107XG4gICAgICAgIHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZvb3RlckxpbmtzRGF0YSkpO1xuXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oY29udGVudCwge1xuICAgICAgICAgICAgc2l6ZTogJ2xnJyxcbiAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgd2luZG93Q2xhc3M6ICdtb2RhbC1ob2xkZXInXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgd2F0Y2hJZnJhbWVIZWlnaHRDaGFuZ2UoKSB7XG4gICAgICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmh1YnNwb3QtY29udGFpbmVyJyk7XG4gICAgICAgIGlmICghaWZyYW1lKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gaWZyYW1lWydvZmZzZXRIZWlnaHQnXTtcbiAgICAgICAgICAgIGlmIChuZXdIZWlnaHQgPT09IDI1MCkge1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsbEFiVGVzdEZpbmlzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgIH1cblxuICAgIC8vIE5ldyBtZXRob2QgdG8gaGFuZGxlIEh1YnNwb3QgY29udGVudCBsb2FkaW5nXG4gICAgb25IdWJzcG90TG9hZChldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnY29udGVudC1sb2FkZWQnKTtcblxuICAgICAgICAvLyBPcHRpb25hbDogVHJpZ2dlciBsYXlvdXQgcmVjYWxjdWxhdGlvblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpO1xuICAgICAgICB9LCAxMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsbEFiVGVzdEZpbmlzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZXhwZXJpbWVudE5hbWUgJiYgdGhpcy5taWNyb3NlcnZpY2VOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmFiVGVzdFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZmluaXNoQUJFeHBlcmltZW50KHRoaXMuZXhwZXJpbWVudE5hbWUsIHRoaXMubWljcm9zZXJ2aWNlTmFtZSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbnRlbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Q2xhc3M6ICdtb2RhbC1ob2xkZXInXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29udGFjdFVzRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBmaXJzdF9uYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgbGFzdF9uYW1lOiBbJyddLFxuICAgICAgICAgICAgY29tcGFueTogWycnXSxcbiAgICAgICAgICAgIHBzYTogWycnXSxcbiAgICAgICAgICAgIGVucXVpcnk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBlbWFpbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblN1Ym1pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ2FwdGNoYVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVTdWNjZXNzKHRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnZhbGlkYXRlUmVDYXB0Y2hhKHRva2VuKS5zdWJzY3JpYmUoKGlzU3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc1N1Y2Nlc3MgJiYgdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7IC4uLnRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZEVucXVpcnkgPSBgJHtkYXRhLmVucXVpcnl9OyBRdWVzdGlvbjogJHt0aGlzLnF1ZXN0aW9ufTsgQW5zd2VyOiAke2RhdGEucHNhfWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc3REYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfbmFtZTogYCR7ZGF0YS5maXJzdF9uYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0X25hbWU6IGAke2RhdGEuZmlyc3RfbmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFueTogYCR7ZGF0YS5maXJzdF9uYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogYCR7ZGF0YS5lbWFpbH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5xdWlyeTogdGhpcy5wc2FPcHRpb25zLmxlbmd0aCA/IGZvcm1hdHRlZEVucXVpcnkgOiBgJHtkYXRhLmVucXVpcnl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBzYTogZGF0YS5wc2EsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjcm1fc291cmNlX2lkOiB0aGlzLnNvdXJjZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFzdGVyX3N1YnNjcmlwdGlvbl9pZDogdGhpcy5tYXN0ZXJTdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeV91c2VyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzX21hbnVhbDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNybVNlcnZpY2UucG9zdENybUxlYWQodGhpcy5zdWJzY3JpcHRpb25JZCwgcG9zdERhdGEpLnN1YnNjcmliZShyZXNwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICBleGFtcGxlIG9mIHNuaXBwZXQgdG8gY2xvc2UgdGhlIGV4cGVyaW1lbnQgYW5kIHRyYWNrIGluIEdBXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcD8uc3RhdHVzID09PSBTdGF0dXNDb2Rlcy5PSykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ29vZ2xlQW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXctbGVhZC1yZWdpc3RyYXRpb24nLCAvLyBjYXRlZ29yeSwgZWc6IHZpZGVvc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Vic2NyaWJlLXN1Y2Nlc3MnLCAvLyBhY3Rpb24sIGVnOiBQbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21pbmctc29vbi10aHJlZScsIC8vIGxhYmVsLCBlZzogQ2hhcHB5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgLy8gdmFsdWUsIGVnOiAxMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZXhwZXJpbWVudE5hbWUgJiYgdGhpcy5taWNyb3NlcnZpY2VOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWJUZXN0U2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmlzaEFCRXhwZXJpbWVudCh0aGlzLmV4cGVyaW1lbnROYW1lLCB0aGlzLm1pY3Jvc2VydmljZU5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29udGVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Q2xhc3M6ICdtb2RhbC1ob2xkZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2FsLmZpcmUocmVzcC5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDYXB0Y2hhVmVyaWZpZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzY3JvbGxUb1RvcCgpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgICB9XG5cbiAgICBnZXRGb290ZXJIdWJzcG90Rm9ybSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmh1YnNwb3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odWJzcG90LmZpbmQoaXRlbSA9PiBpdGVtLnBvc2l0aW9uID09PSAnZm9vdGVyJykgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvQm9va01lZXRpbmcoKSB7XG4gICAgICAgIGNvbnN0IGJvb2tEZW1vVXJsID1cbiAgICAgICAgICAgIHRoaXMuYXBwQ29uZmlnPy5zaWdudXBfY29uZmlnPy50cmlhbD8uYm9va19kZW1vX3VybCA/P1xuICAgICAgICAgICAgJ2h0dHBzOi8vY2FsZW5kbHkuY29tL2Nsb3Vkb2xpdmUnO1xuICAgICAgICB3aW5kb3cub3Blbihib29rRGVtb1VybCwgJ19ibGFuaycsICdub3JlZmVycmVyIG5vb3BlbmVyJyk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGVFbWFpbCgpIHtcbiAgICAgICAgY29uc3QgZW1haWwgPSB0aGlzLmZvcm0uZ2V0KCdlbWFpbCcpLnZhbHVlO1xuICAgICAgICBpZiAoZW1haWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFbWFpbFZhbGlkID0gVmFsaWRhdGlvblNlcnZpY2UuZW1haWwoZW1haWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc0VtYWlsVmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkRm9vdGVyTGluaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXMucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgIHN1YnRpdGxlczogW11cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRm9vdGVyTGluayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgYWRkU3VidGl0bGUoZm9vdGVySW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtc1tmb290ZXJJbmRleF0uc3VidGl0bGVzLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgcGF0aDogJydcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU3VidGl0bGUoZm9vdGVySW5kZXg6IG51bWJlciwgc3VidGl0bGVJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zW2Zvb3RlckluZGV4XS5zdWJ0aXRsZXMuc3BsaWNlKHN1YnRpdGxlSW5kZXgsIDEpO1xuICAgIH1cblxuICAgIGRyb3BGb290ZXJMaW5rcyhldmVudCkge1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5lZGl0aW5nRm9vdGVyTGlua3MuaXRlbXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgfVxuXG4gICAgZHJvcFN1YnRpdGxlcyhmb290ZXJJbmRleDogbnVtYmVyLCBldmVudCkge1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtc1tmb290ZXJJbmRleF0uc3VidGl0bGVzLFxuICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNhdmVGb290ZXJMaW5rcyhtb2RhbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1cGRhdGVkQ29uZmlnID0ge1xuICAgICAgICAgICAgZm9vdGVyX2xpbmtzOiB0aGlzLmVkaXRpbmdGb290ZXJMaW5rcyxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5pZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIHVwZGF0ZWRDb25maWcpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ0Zvb3RlciBsaW5rcyB1cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb290ZXJMaW5rcyA9IFsuLi50aGlzLmVkaXRpbmdGb290ZXJMaW5rcy5pdGVtc107XG4gICAgICAgICAgICAgICAgdGhpcy5mb290ZXJMaW5rc0RhdGEgPSB7IC4uLnRoaXMuZWRpdGluZ0Zvb3RlckxpbmtzIH07XG4gICAgICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVFbWFpbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbWFpbCA9IHRoaXMuZWRpdGluZ0VtYWlsO1xuXG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuYXBwQ29uZmlnPy5kb21haW5faWQsIHtcbiAgICAgICAgICAgICAgICBjb21wYW55X2VtYWlsOiB0aGlzLmVkaXRpbmdFbWFpbCxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuaWRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ0VtYWlsIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdGluZ0VtYWlsID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlU3RyZWV0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmFwcENvbmZpZz8uZG9tYWluX2lkLCB7XG4gICAgICAgICAgICAgICAgY29tcGFueV9hZGRyZXNzOiB0aGlzLmVkaXRpbmdTdHJlZXQsXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdTdHJlZXQgdXBkYXRlZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RyZWV0ID0gdGhpcy5lZGl0aW5nU3RyZWV0O1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFZGl0aW5nU3RyZWV0ID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjYW5jZWxTdHJlZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdGluZ1N0cmVldCA9IHRoaXMuc3RyZWV0O1xuICAgICAgICB0aGlzLmlzRWRpdGluZ1N0cmVldCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9wZW5IdWJzcG90RWRpdE1vZGFsKGZvb3Rlckl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nSHVic3BvdEh0bWwgPSBmb290ZXJJdGVtLmRpdjtcbiAgICAgICAgdGhpcy5lZGl0aW5nSHVic3BvdElkID0gZm9vdGVySXRlbS5pZDtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmh1YnNwb3RFZGl0TW9kYWwsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdsZycgfSk7XG4gICAgfVxuXG4gICAgc2F2ZUh1YnNwb3RIdG1sKG1vZGFsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRDb25maWcgPSB7XG4gICAgICAgICAgICBjb250YWN0X3VzOiB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5hcHBDb25maWc/LnBhZ2VzX2NvbmZpZz8uY29udGFjdF91cyxcbiAgICAgICAgICAgICAgICBodWJzcG90OiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnNzQyMzYzOScsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Zvb3RlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXY6IHRoaXMuZWRpdGluZ0h1YnNwb3RIdG1sXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLmlkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVEb21haW5Db25maWcodGhpcy5hcHBDb25maWc/LmRvbWFpbl9pZCwgdXBkYXRlZENvbmZpZylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIE5PU09OQVI6IFRydXN0ZWQgSFRNTCBjb250ZW50IGlzIGhhbmRsZWQgc2FmZWx5IGhlcmVcbiAgICAgICAgICAgICAgICB0aGlzLmh1YnNwb3RIdG1sID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5lZGl0aW5nSHVic3BvdEh0bWwpOyAvLyBOT1NPTkFSXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKCdIdWJzcG90IEVtYmVkIHVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICBtb2RhbC5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgdXBkYXRlQ2FuRWRpdFJlc291cmNlc1ZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbkVkaXRSZXNvdXJjZXNWYWx1ZSA9IEhlbHBlclNlcnZpY2UuY2FuRWRpdFJlc291cmNlcyhcbiAgICAgICAgICAgIHRoaXMudXNlcixcbiAgICAgICAgICAgIHRoaXMudXNlckxvZ2dlZEluLFxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNhbkVkaXRSZXNvdXJjZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkVkaXRSZXNvdXJjZXNWYWx1ZTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uICAjZm9vdGVyU2VjdGlvbiBjbGFzcz1cImJnLWJsYWNrIHRleHQtd2hpdGUgcHktNSBmb290ZXItc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgKm5nSWY9XCJpc0Zvb3RlclZpc2libGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG5cbiAgICAgIDwhLS0gTEVGVCBDT0xVTU4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbWItNCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBbbmdDbGFzc109XCJ7ICdzaXRlLWNvbHVtbic6IGdldEZvb3Rlckh1YnNwb3RGb3JtKCkgfVwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMyBjbGFzcz1cIm1iLTQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yIHRleHQtd2hpdGVcIj5TaXRlIE1hcDo8L3NwYW4+XG4gICAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiBjdXJzb3ItcG9pbnRlciB0ZXh0LXdoaXRlIG1zLTNcIiAoY2xpY2spPVwib3BlbkVkaXRGb290ZXJMaW5rc01vZGFsKGVkaXRGb290ZXJMaW5rc01vZGFsKVwiIChrZXlkb3duLmVudGVyKT1cIm9wZW5FZGl0Rm9vdGVyTGlua3NNb2RhbChlZGl0Rm9vdGVyTGlua3NNb2RhbClcIiAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuRWRpdEZvb3RlckxpbmtzTW9kYWwoZWRpdEZvb3RlckxpbmtzTW9kYWwpXCIgbmdiVG9vbHRpcD1cIkVkaXQgRm9vdGVyIExpbmtzXCI+PC9pPlxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibXQtNFwiPlxuICAgICAgICAgICAgPGxpIHJvdXRlckxpbms9XCIvXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdXNlci1pbmZvLWxhYmVsIGxpbmstbGFiZWxcIj4gSG9tZSA8L2xpPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBsaW5rIG9mIGZvb3RlckxpbmtzXCIgW3JvdXRlckxpbmtdPVwibGluaz8ucGF0aFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdXNlci1pbmZvLWxhYmVsIGxpbmstbGFiZWwgbXQtNFwiPjxzcGFuICAqbmdJZj1cImxpbms/LnRpdGxlXCI+e3tsaW5rPy50aXRsZX19PC9zcGFuPiA8L2xpPlxuICAgICAgICAgICAgPGxpIHJvdXRlckxpbms9XCIvbG9naW5cIlxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHVzZXItaW5mby1sYWJlbCBtdC00IGxpbmstbGFiZWxcIj4gTG9nIGluIDwvbGk+XG4gICAgICAgICAgICA8bGkgW3JvdXRlckxpbmtdPVwiJy9wcml2YWN5LWFuZC10b3MvJyArIHRvc0lkXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB1c2VyLWluZm8tbGFiZWwgbXQtNCBsaW5rLWxhYmVsXCI+IFByaXZhY3kgc3RhdGVtZW50IDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8cCBjbGFzcz1cImFkZHJlc3Mtc2VjdGlvbiBlbWFpbC1zZWN0aW9uIG1iLTRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1pbmZvLWxhYmVsXCI+RW1haWw6IDwvc3Bhbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFZGl0aW5nRW1haWw7IGVsc2UgZWRpdEVtYWlsXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1pbmZvXCI+e3sgZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FuRWRpdFJlc291cmNlc1ZhbHVlXCIgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIHRleHQtd2hpdGUgY3Vyc29yLXBvaW50ZXIgbXMtM1wiIChjbGljayk9XCJpc0VkaXRpbmdFbWFpbCA9IHRydWVcIiAoa2V5ZG93bi5lbnRlcik9XCJpc0VkaXRpbmdFbWFpbCA9IHRydWVcIiAoa2V5ZG93bi5zcGFjZSk9XCJpc0VkaXRpbmdFbWFpbCA9IHRydWVcIj48L2k+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0RW1haWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGQtaW5saW5lIHctYXV0b1wiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0aW5nRW1haWxcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cInNhdmVFbWFpbCgpXCI+U2F2ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tc2Vjb25kYXJ5IG1zLTJcIiAoY2xpY2spPVwiaXNFZGl0aW5nRW1haWwgPSBmYWxzZVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW1haWwtc2VjdGlvbiBtdC0zIGFkZHJlc3MtdGV4dFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLWluZm8tbGFiZWxcIj5cbiAgICAgICAgICAgICAgQWRkcmVzczpcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gY3Vyc29yLXBvaW50ZXIgbXMtMiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgdGl0bGU9XCJFZGl0IEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXNFZGl0aW5nU3RyZWV0ID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImlzRWRpdGluZ1N0cmVldCA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJpc0VkaXRpbmdTdHJlZXQgPSB0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9zcGFuPjxici8+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFZGl0aW5nU3RyZWV0OyBlbHNlIGVkaXRTdHJlZXRCbG9ja1wiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZHJlc3MtdGV4dCB1c2VyLWluZm9cIj57eyBzdHJlZXQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0U3RyZWV0QmxvY2s+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCIgWyhuZ01vZGVsKV09XCJlZGl0aW5nU3RyZWV0XCIgLz5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cInNhdmVTdHJlZXQoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tc2Vjb25kYXJ5IG1zLTJcIiAoY2xpY2spPVwiY2FuY2VsU3RyZWV0KClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29cIlxuICAgICAgICAgICAgICAgYWx0PVwiQ29tcGFueSBsb2dvXCJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIG10LTQgbG9nby1pbWFnZSBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICB3aWR0aD1cIjE2MFwiXG4gICAgICAgICAgICAgICBoZWlnaHQ9XCIzNVwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9Ub3AoKVwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzY3JvbGxUb1RvcCgpXCJcbiAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInNjcm9sbFRvVG9wKClcIlxuICAgICAgICAgICAgICAgdGl0bGU9XCJDbGljayB0byBnbyB0byB0b3Agb2YgcGFnZVwiIC8+XG4gICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiBmYS1zbSBtcy0zIGN1cnNvci1wb2ludGVyIHRleHQtd2hpdGUgYWxpZ24tc2VsZi1jZW50ZXIgbXQtM1wiXG4gICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Mb2dvRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5Mb2dvRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5Mb2dvRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgIHRpdGxlPVwiRWRpdCBMb2dvXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFJJR0hUIENPTFVNTiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiaXNGb290ZXJWaXNpYmxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRGb290ZXJIdWJzcG90Rm9ybSgpIGFzIGZvb3Rlckl0ZW07IGVsc2UgZGVmYXVsdEZvcm1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNIdWJzcG90UmVhZHlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaHVic3BvdC1jb250YWluZXIgdy0xMDAgY29udGVudC1sb2FkZWRcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaHVic3BvdEh0bWxcIlxuICAgICAgICAgICAgICAgIChsb2FkKT1cIm9uSHVic3BvdExvYWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJjYW5FZGl0UmVzb3VyY2VzVmFsdWVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWVkaXQgaW4tcGFnZS1lZGl0LWljb24gdGV4dC13aGl0ZSBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSHVic3BvdEVkaXRNb2RhbChmb290ZXJJdGVtKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5IdWJzcG90RWRpdE1vZGFsKGZvb3Rlckl0ZW0pXCJcbiAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib3Blbkh1YnNwb3RFZGl0TW9kYWwoZm9vdGVySXRlbSlcIlxuICAgICAgICAgICAgICB0aXRsZT1cIkVkaXQgSHVic3BvdCBFbWJlZFwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9ybT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidGV4dC13aGl0ZSBtYi00XCI+IDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZVwiPkdldCBpbiB0b3VjaDo8L3NwYW4+PC9oMz5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1lZGl0IGluLXBhZ2UtZWRpdC1pY29uIHRleHQtd2hpdGUgY3Vyc29yLXBvaW50ZXIgbXMtMyBtdC0yXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblF1ZXN0aW9uc0VkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcGVuUXVlc3Rpb25zRWRpdE1vZGFsKClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5RdWVzdGlvbnNFZGl0TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJFZGl0IFF1ZXN0aW9uc1wiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3QtZm9ybVwiPlxuICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsXCI+RW1haWw6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwdy1maWVsZC1lcnJvci1kaXNwbGF5IFtkaXNwbGF5RXJyb3JdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFmb3JtLmdldCgnZW1haWwnKS52YWxpZCAmJiAoZm9ybS5nZXQoJ2VtYWlsJykudG91Y2hlZCB8fCBzdWJtaXR0ZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2c9XCJFbWFpbCBpcyByZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8L3B3LWZpZWxkLWVycm9yLWRpc3BsYXk+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaXJzdF9uYW1lXCI+Rmlyc3QgbmFtZTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmlyc3RfbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdF9uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWZpZWxkLWVycm9yLWRpc3BsYXkgW2Rpc3BsYXlFcnJvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWZvcm0uZ2V0KCdmaXJzdF9uYW1lJykudmFsaWQgJiYgKGZvcm0uZ2V0KCdmaXJzdF9uYW1lJykudG91Y2hlZCB8fCBzdWJtaXR0ZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2c9XCJGaXJzdCBuYW1lIGlzIHJlcXVpcmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcHctZmllbGQtZXJyb3ItZGlzcGxheT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxhc3RfbmFtZVwiPkxhc3QgbmFtZTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxhc3RfbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsYXN0X25hbWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY29tcGFueVwiPkNvbXBhbnk6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21wYW55XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIiAqbmdJZj1cImhhc1ZhbGlkT3B0aW9ucygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBzYVwiIGNsYXNzPVwic2VsZWN0LWxhYmVsXCI+e3txdWVzdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHNhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInBzYU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgUFNBJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiaW5wdXQtc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5xdWlyeVwiIGNsYXNzPVwic2VsZWN0LWxhYmVsXCI+SG93IGNhbiB3ZSBoZWxwIHlvdT88L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnF1aXJ5LWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgIGlkPVwiZW5xdWlyeVwiIGZvcm1Db250cm9sTmFtZT1cImVucXVpcnlcIiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cHctZmllbGQtZXJyb3ItZGlzcGxheSBbZGlzcGxheUVycm9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAhZm9ybS5nZXQoJ2VucXVpcnknKS52YWxpZCAmJiAoZm9ybS5nZXQoJ2VucXVpcnknKS50b3VjaGVkIHx8IHN1Ym1pdHRlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBlcnJvck1zZz1cIkVucXVpcnkgaXMgcmVxdWlyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9wdy1maWVsZC1lcnJvci1kaXNwbGF5PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcHRjaGEtd3JhcHBlci1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0NhcHRjaGFWZXJpZmllZFwiPlxuICAgICAgICAgICAgICAgICAgPG5neC1yZWNhcHRjaGEyIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXRlS2V5XT1cImNhcHRjaGFLZXlWMlwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJub3JtYWxcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlY2FwdGNoYVwiXG4gICAgICAgICAgICAgICAgICAgIChzdWNjZXNzKT1cImhhbmRsZVN1Y2Nlc3MoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPC9uZ3gtcmVjYXB0Y2hhMj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNDYXB0Y2hhVmVyaWZpZWRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpZ24tYnRuIHNpZ24taGVhZGVyLWJ0biBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdCdXR0b24uU3VibWl0JyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC00XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbnMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBbZXZlbnRUcmFja2VyXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAneW91dHViZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdjbGljaycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2Nsb3Vkb2xpdmUtbGFuZGluZy1wYWdlLWInLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDFcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJ5b3V0dWJlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL2ljb25zL3lvdXR1YmUucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW1nLWZsdWlkIHlvdXR1YmUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjU0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjU0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2V2ZW50VHJhY2tlcl09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ2xpbmtlZGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ2NsaWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnY2xvdWRvbGl2ZS1sYW5kaW5nLXBhZ2UtYicsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogMVxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmtlZEluVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvaWNvbnMvc29jaWFsL2xpbmtlZGluLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1mbHVpZCBsaW5rZWRpbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNDhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNDhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImNhbkVkaXRSZXNvdXJjZXNWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZWRpdCBpbi1wYWdlLWVkaXQtaWNvbiB0ZXh0LXdoaXRlIGN1cnNvci1wb2ludGVyIG1zLTNcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNvY2lhbEVkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib3BlblNvY2lhbEVkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib3BlblNvY2lhbEVkaXRNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJFZGl0IFNvY2lhbCBMaW5rcyAmIENvbXBhbnkgTmFtZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvcHlyaWdodCB0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDIwMjUge3tjb21wYW55TmFtZX19LlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cblxuXG5cbjxuZy10ZW1wbGF0ZSAjYm9va01lZXRpbmdcbiAgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuLWNsb3NlIGZsb2F0LWVuZFwiXG4gICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8aDMgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtb2RhbC1iYXNpYy10aXRsZVwiPlxuICAgICAgVGhhbmtzIGZvciBnZXR0aW5nIGluIHRvdWNoISBPdXIgdGVhbSB3aWxsIGJlIGluIGNvbnRhY3Qgc2hvcnRseSwgb3Igd2VcbiAgICAgIGNhbiBjb21wYXJlIGNhbGVuZGFycyBub3cgJmFtcDsgc2NoZWR1bGUgYSB0aW1lXG4gICAgPC9oMz5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2V2ZW50VHJhY2tlcl09XCJ7XG4gICAgICAgIGNhdGVnb3J5OiAncmVxdWVzdC1kZW1vJyxcbiAgICAgICAgYWN0aW9uOiAnY2xpY2snLFxuICAgICAgICBsYWJlbDogJ2Nsb3Vkb2xpdmUtbGFuZGluZy1wYWdlLWInLFxuICAgICAgICB2YWx1ZTogMVxuICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0Jvb2tNZWV0aW5nKClcIlxuICAgICAgY2xhc3M9XCJzaWduLWJ0biBzaWduLWhlYWRlci1idG4gbXgtYXV0byBkLWJsb2NrIG1iLTNcIj5cbiAgICAgIExldCdzIGRvIGl0XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48bmctdGVtcGxhdGUgI2VkaXRGb290ZXJMaW5rc01vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBGb290ZXIgTGlua3M8L2g1PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxoNCBjbGFzcz1cIm1iLTNcIj5Gb290ZXIgTGlua3MgU2VjdGlvbjwvaDQ+XG4gICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BGb290ZXJMaW5rcygkZXZlbnQpXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmb290ZXIgb2YgZWRpdGluZ0Zvb3RlckxpbmtzLml0ZW1zOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJib3JkZXIgcC0zIG1iLTNcIiBjZGtEcmFnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IG1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmb290ZXJUaXRsZXt7aX19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+VGl0bGU8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiZm9vdGVyVGl0bGV7e2l9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmb290ZXIudGl0bGVcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSBtYi0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZm9vdGVyUGF0aHt7aX19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGF0aDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJmb290ZXJQYXRoe3tpfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZm9vdGVyLnBhdGhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggaW4tcGFnZS10cmFzaC1pY29uIHRleHQtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlbW92ZUZvb3RlckxpbmsoaSlcIiAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVGb290ZXJMaW5rKGkpXCIgKGtleWRvd24uc3BhY2UpPVwicmVtb3ZlRm9vdGVyTGluayhpKVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYmFycyBpbi1wYWdlLWJhcnMtaWNvbiBjdXJzb3ItbW92ZVwiIGNka0RyYWdIYW5kbGU+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFN1YnRpdGxlcyAtLT5cbiAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BTdWJ0aXRsZXMoaSwgJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN1YiBvZiBmb290ZXIuc3VidGl0bGVzOyBsZXQgaiA9IGluZGV4XCIgY2xhc3M9XCJyb3cgYm9yZGVyIHAtMyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiIGNka0RyYWc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN1YnRpdGxlVGl0bGV7e2l9fXt7an19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3VidGl0bGUgVGl0bGU8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJzdWJ0aXRsZVRpdGxle3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJzdWIudGl0bGVcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN1YnRpdGxlUGF0aHt7aX19e3tqfX1cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdWJ0aXRsZSBQYXRoPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwic3VidGl0bGVQYXRoe3tpfX17e2p9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJzdWIucGF0aFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaCBpbi1wYWdlLXRyYXNoLWljb24gdGV4dC1kYW5nZXIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVtb3ZlU3VidGl0bGUoaSwgailcIiAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVTdWJ0aXRsZShpLCBqKVwiIChrZXlkb3duLnNwYWNlKT1cInJlbW92ZVN1YnRpdGxlKGksIGopXCI+PC9pPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhcnMgY3Vyc29yLW1vdmUgaW4tcGFnZS1iYXJzLWljb25cIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLXNtIG10LTJcIiAoY2xpY2spPVwiYWRkU3VidGl0bGUoaSlcIj5cbiAgICAgICAgICArIEFkZCBTdWJ0aXRsZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCIgKGNsaWNrKT1cImFkZEZvb3RlckxpbmsoKVwiPlxuICAgICAgKyBBZGQgRm9vdGVyIExpbmtcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVGb290ZXJMaW5rcyhtb2RhbClcIj5TYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cblxuXG48bmctdGVtcGxhdGUgI2xvZ29Nb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlVwbG9hZCBMb2dvPC9oNT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPHB3LWN1c3RvbS11cGxvYWRlclxuICAgICAgW2FzcGVjdFJhdGlvXT1cIidmdWxsTG9nbydcIlxuICAgICAgW3RpdGxlXT1cIidNYWluIENvbnRyYXN0IExvZ28nXCJcbiAgICAgIFtjb250cm9sTmFtZV09XCInbG9nb19tYWluX2NvbnRyYXN0J1wiXG4gICAgICBbcHJldmlld0RhdGFdPVwicHJldmlld0RhdGFcIlxuICAgICAgKHNhdmVFdmVudCk9XCJvblNhdmVGaWxlKCRldmVudClcIj5cbiAgICA8L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuPG5nLXRlbXBsYXRlICNodWJzcG90RWRpdE1vZGFsIGxldC1tb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+RWRpdCBIdWJzcG90IEVtYmVkPC9oNT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJodWJzcG90SWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5IdWJzcG90IElEPC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImh1YnNwb3RJZFwiIFsobmdNb2RlbCldPVwiZWRpdGluZ0h1YnNwb3RJZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgPGxhYmVsIGZvcj1cImh1YnNwb3RFbWJlZERpdlwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkVtYmVkIERJVjwvbGFiZWw+XG4gICAgICA8dGV4dGFyZWEgaWQ9XCJodWJzcG90RW1iZWREaXZcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdIdWJzcG90SHRtbFwiIHJvd3M9XCI4XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj48L3RleHRhcmVhPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2F2ZUh1YnNwb3RIdG1sKG1vZGFsKVwiPlNhdmU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48bmctdGVtcGxhdGUgI3NvY2lhbEVkaXRNb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkVkaXQgU29jaWFsIExpbmtzICYgQ29tcGFueSBOYW1lPC9oNT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJ5b3V0dWJlVXJsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+WW91VHViZSBVUkw8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwieW91dHViZVVybFwiIFsobmdNb2RlbCldPVwiZWRpdGluZ1lvdXR1YmVVcmxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJsaW5rZWRpblVybFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkxpbmtlZEluIFVSTDwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJsaW5rZWRpblVybFwiIFsobmdNb2RlbCldPVwiZWRpdGluZ0xpbmtlZEluVXJsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiY29tcGFueU5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db21wYW55IE5hbWU8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwiY29tcGFueU5hbWVcIiBbKG5nTW9kZWwpXT1cImVkaXRpbmdDb21wYW55TmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVTb2NpYWxMaW5rcyhtb2RhbClcIj5TYXZlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuXG48bmctdGVtcGxhdGUgI3F1ZXN0aW9uc0VkaXRNb2RhbCBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkVkaXQgUXVlc3Rpb25zPC9oNT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8aDQgY2xhc3M9XCJtYi0zXCI+UXVlc3Rpb25zIFNlY3Rpb248L2g0PlxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wUXVlc3Rpb25zKCRldmVudClcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHEgb2YgZWRpdGluZ1F1ZXN0aW9uczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiYm9yZGVyIHAtMyBtYi0zXCIgY2RrRHJhZz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTEgbWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInF1ZXN0aW9uVGV4dHt7aX19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UXVlc3Rpb248L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicXVlc3Rpb25UZXh0e3tpfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwicS5xdWVzdGlvblwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgcXVlc3Rpb25cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1zdGFydCBtdC00XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhcnMgaW4tcGFnZS1iYXJzLWljb24gY3Vyc29yLW1vdmVcIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBPcHRpb25zIFNlY3Rpb24gLS0+XG4gICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wUXVlc3Rpb25PcHRpb25zKGksICRldmVudClcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHQgb2YgcS5vcHRpb25zOyBsZXQgaiA9IGluZGV4XCIgY2xhc3M9XCJyb3cgYm9yZGVyIHAtMyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiIGNka0RyYWc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTcgbWItMlwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicXVlc3Rpb25PcHRpb257e2l9fXt7an19XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+T3B0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwicXVlc3Rpb25PcHRpb257e2l9fXt7an19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cIm9wdC5vcHRpb25cIiBwbGFjZWhvbGRlcj1cIkVudGVyIG9wdGlvblwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTRcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaCBpbi1wYWdlLXRyYXNoLWljb24gdGV4dC1kYW5nZXIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVtb3ZlUXVlc3Rpb25PcHRpb24oaSwgailcIiAoa2V5ZG93bi5lbnRlcik9XCJyZW1vdmVRdWVzdGlvbk9wdGlvbihpLCBqKVwiIChrZXlkb3duLmVudGVyKT1cInJlbW92ZVF1ZXN0aW9uT3B0aW9uKGksIGopXCI+PC9pPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhcnMgaW4tcGFnZS1iYXJzLWljb24gY3Vyc29yLW1vdmVcIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLXNtIG10LTJcIiAoY2xpY2spPVwiYWRkUXVlc3Rpb25PcHRpb24oaSlcIj4rIEFkZCBPcHRpb248L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCIgKGNsaWNrKT1cImFkZE5ld1F1ZXN0aW9uKClcIj4rIEFkZCBRdWVzdGlvbjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2F2ZVF1ZXN0aW9ucyhtb2RhbClcIj5TYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { FormsModule } from '@angular/forms';
|
|
5
|
+
import { RouterModule } from '@angular/router';
|
|
6
|
+
import { AdminModuleUtilsModule } from '@posiwise/admin-module-utils';
|
|
7
|
+
import { CoreTranslocoModule } from '@posiwise/core-transloco';
|
|
8
|
+
import { DirectivesModule } from '@posiwise/directives';
|
|
9
|
+
import { PipesModule } from '@posiwise/pipes';
|
|
10
|
+
import { NgbModalModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
11
|
+
import { ProfileImageCropperModule } from '@posiwise/shared-components';
|
|
12
|
+
import { ResourceHeaderComponent } from './resource-header.component';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
// Wrapper module: declares ONLY ResourceHeaderComponent
|
|
15
|
+
// DragDropModule is needed for edit functionality (drag & drop in edit modal)
|
|
16
|
+
export class ResourceHeaderWrapperModule {
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
18
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, declarations: [ResourceHeaderComponent], imports: [CommonModule,
|
|
19
|
+
FormsModule,
|
|
20
|
+
RouterModule,
|
|
21
|
+
DragDropModule, // Needed for cdkDropList, cdkDrag, cdkDragHandle in edit modal
|
|
22
|
+
NgbModalModule,
|
|
23
|
+
NgbTooltipModule,
|
|
24
|
+
CoreTranslocoModule,
|
|
25
|
+
DirectivesModule,
|
|
26
|
+
PipesModule,
|
|
27
|
+
AdminModuleUtilsModule,
|
|
28
|
+
ProfileImageCropperModule], exports: [ResourceHeaderComponent] }); }
|
|
29
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, imports: [CommonModule,
|
|
30
|
+
FormsModule,
|
|
31
|
+
RouterModule,
|
|
32
|
+
DragDropModule, // Needed for cdkDropList, cdkDrag, cdkDragHandle in edit modal
|
|
33
|
+
NgbModalModule,
|
|
34
|
+
NgbTooltipModule,
|
|
35
|
+
CoreTranslocoModule,
|
|
36
|
+
DirectivesModule,
|
|
37
|
+
PipesModule,
|
|
38
|
+
AdminModuleUtilsModule,
|
|
39
|
+
ProfileImageCropperModule] }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ResourceHeaderWrapperModule, decorators: [{
|
|
42
|
+
type: NgModule,
|
|
43
|
+
args: [{
|
|
44
|
+
declarations: [ResourceHeaderComponent],
|
|
45
|
+
imports: [
|
|
46
|
+
CommonModule,
|
|
47
|
+
FormsModule,
|
|
48
|
+
RouterModule,
|
|
49
|
+
DragDropModule, // Needed for cdkDropList, cdkDrag, cdkDragHandle in edit modal
|
|
50
|
+
NgbModalModule,
|
|
51
|
+
NgbTooltipModule,
|
|
52
|
+
CoreTranslocoModule,
|
|
53
|
+
DirectivesModule,
|
|
54
|
+
PipesModule,
|
|
55
|
+
AdminModuleUtilsModule,
|
|
56
|
+
ProfileImageCropperModule
|
|
57
|
+
],
|
|
58
|
+
exports: [ResourceHeaderComponent]
|
|
59
|
+
}]
|
|
60
|
+
}] });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaGVhZGVyLXdyYXBwZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZXNvdXJjZS1tb2R1bGUvc3JjL2xpYi9wdWJsaWMvY29tcG9uZW50cy9yZXNvdXJjZS1oZWFkZXIvcmVzb3VyY2UtaGVhZGVyLXdyYXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXRFLHdEQUF3RDtBQUN4RCw4RUFBOEU7QUFrQjlFLE1BQU0sT0FBTywyQkFBMkI7K0dBQTNCLDJCQUEyQjtnSEFBM0IsMkJBQTJCLGlCQWhCckIsdUJBQXVCLGFBRWxDLFlBQVk7WUFDWixXQUFXO1lBQ1gsWUFBWTtZQUNaLGNBQWMsRUFBRSwrREFBK0Q7WUFDL0UsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxzQkFBc0I7WUFDdEIseUJBQXlCLGFBRW5CLHVCQUF1QjtnSEFFeEIsMkJBQTJCLFlBZGhDLFlBQVk7WUFDWixXQUFXO1lBQ1gsWUFBWTtZQUNaLGNBQWMsRUFBRSwrREFBK0Q7WUFDL0UsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxzQkFBc0I7WUFDdEIseUJBQXlCOzs0RkFJcEIsMkJBQTJCO2tCQWpCdkMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGNBQWMsRUFBRSwrREFBK0Q7d0JBQy9FLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLHlCQUF5QjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBBZG1pbk1vZHVsZVV0aWxzTW9kdWxlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBDb3JlVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnQHBvc2l3aXNlL2NvcmUtdHJhbnNsb2NvJztcbmltcG9ydCB7IERpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tICdAcG9zaXdpc2UvZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJ0Bwb3Npd2lzZS9waXBlcyc7XG5cbmltcG9ydCB7IE5nYk1vZGFsTW9kdWxlLCBOZ2JUb29sdGlwTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBQcm9maWxlSW1hZ2VDcm9wcGVyTW9kdWxlIH0gZnJvbSAnQHBvc2l3aXNlL3NoYXJlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgUmVzb3VyY2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3Jlc291cmNlLWhlYWRlci5jb21wb25lbnQnO1xuXG4vLyBXcmFwcGVyIG1vZHVsZTogZGVjbGFyZXMgT05MWSBSZXNvdXJjZUhlYWRlckNvbXBvbmVudFxuLy8gRHJhZ0Ryb3BNb2R1bGUgaXMgbmVlZGVkIGZvciBlZGl0IGZ1bmN0aW9uYWxpdHkgKGRyYWcgJiBkcm9wIGluIGVkaXQgbW9kYWwpXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1Jlc291cmNlSGVhZGVyQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGUsIC8vIE5lZWRlZCBmb3IgY2RrRHJvcExpc3QsIGNka0RyYWcsIGNka0RyYWdIYW5kbGUgaW4gZWRpdCBtb2RhbFxuICAgICAgICBOZ2JNb2RhbE1vZHVsZSxcbiAgICAgICAgTmdiVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgQ29yZVRyYW5zbG9jb01vZHVsZSxcbiAgICAgICAgRGlyZWN0aXZlc01vZHVsZSxcbiAgICAgICAgUGlwZXNNb2R1bGUsXG4gICAgICAgIEFkbWluTW9kdWxlVXRpbHNNb2R1bGUsXG4gICAgICAgIFByb2ZpbGVJbWFnZUNyb3BwZXJNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtSZXNvdXJjZUhlYWRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VIZWFkZXJXcmFwcGVyTW9kdWxlIHt9XG5cbiJdfQ==
|