tango-app-ui-analyse-trax 3.7.13-qid-halfshutter-4 → 3.7.13-qid-halfshutter-6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +3 -2
- package/esm2022/lib/components/task/task.component.mjs +3 -3
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-BGjfzsGT.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-CI0VZAGR.mjs} +2 -2
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-BGjfzsGT.mjs.map → tango-app-ui-analyse-trax-eye-test-audit.module-CI0VZAGR.mjs.map} +1 -1
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-DfFvT6X2.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-DuztPhKU.mjs} +2 -2
- package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-DfFvT6X2.mjs.map → tango-app-ui-analyse-trax-eye-test-audit.module-DuztPhKU.mjs.map} +1 -1
- package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DhKqGxWm.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-B3I0PCET.mjs} +11 -6
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-B3I0PCET.mjs.map +1 -0
- package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DOEDesLV.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DASEMlAN.mjs} +4 -3
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DASEMlAN.mjs.map +1 -0
- package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
- package/package.json +1 -1
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DOEDesLV.mjs.map +0 -1
- package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DhKqGxWm.mjs.map +0 -1
|
@@ -271,8 +271,9 @@ export class AddChecklistComponent {
|
|
|
271
271
|
this.maxSectionNumber++;
|
|
272
272
|
}
|
|
273
273
|
else {
|
|
274
|
-
this.maxSectionNumber = Math.max(...sections.value.map((ele) => ele.sectionNumber));
|
|
274
|
+
this.maxSectionNumber = Math.max(...sections.value.map((ele) => ele.sectionNumber)) + 1;
|
|
275
275
|
}
|
|
276
|
+
// console.log("this.maxSectionNumber =>", this.maxSectionNumber);
|
|
276
277
|
this.ChecklistForm.get('sections').push(this.fb.group({
|
|
277
278
|
"name": this.fb.control(`Section ${sectionLength + 1}`, [Validators.required, Validators.minLength(1), noWhitespaceValidator()]),
|
|
278
279
|
"sectionNumber": this.fb.control(this.maxSectionNumber, [Validators.required]),
|
|
@@ -1854,4 +1855,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1854
1855
|
type: ViewChild,
|
|
1855
1856
|
args: ['formRef']
|
|
1856
1857
|
}] } });
|
|
1857
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuSCxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLEtBQUssRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7O0FBUTNGLE1BQU0sT0FBTyxxQkFBcUI7SUFvQlo7SUFBaUM7SUFBd0I7SUFBeUM7SUFBd0I7SUFBNkI7SUFBMkI7SUFBc0I7SUFBK0I7SUFuQnJPLE9BQU8sQ0FBYTtJQUUxQyxhQUFhLENBQWE7SUFDMUIsSUFBSSxHQUFXLENBQUMsQ0FBQztJQUNqQixZQUFZLEdBQVcsQ0FBQyxDQUFD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ZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybSwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5LCB0cmFuc2ZlckFycmF5SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyB0aW1lcix0YWtlVW50aWwsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRyYXhwb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3RyYXhwb3B1cC90cmF4cG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJheC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yIH0gZnJvbSAnLi4vY3JlYXRlLXRhc2svdmFsaWRhdG9ycy93aGl0ZXNwYWNlLXZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHVuaXF1ZVN0cmluZ1ZhbGlkYXRvciB9IGZyb20gJy4uL2NyZWF0ZS10YXNrL3ZhbGlkYXRvcnMvdW5pcXVlLXN0cmluZy12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBUcmF4UnVuQUlQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3RyYXgtcnVuLWFpLXBvcHVwL3RyYXgtcnVuLWFpLXBvcHVwLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWRkLWNoZWNrbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hZGQtY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkQ2hlY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZm9ybVJlZicpIGZvcm1SZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIENoZWNrbGlzdEZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgc2hvdzogbnVtYmVyID0gMDtcclxuICBzZWN0aW9uSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgZ2V0b2JqZWN0OiBhbnk7XHJcbiAgZWRpdHZhbHVlOiBhbnk7XHJcbiAgaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9zZWN0aW9uOmJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93dmFsdWU6IHN0cmluZztcclxuICByZWZJbWdRSWR4OiBudW1iZXIgPSAwO1xyXG4gIGNoZWNrbGlzdExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwb3B1cENvdW50Om51bWJlciA9IDA7XHJcbiAgY2xpZW50SWQ6YW55O1xyXG4gIGRlbGV0ZWRMaXN0OmFueSA9IFtdO1xyXG4gIGVudmlyb25tZW50OmFueTtcclxuICB1c2VyVHlwZTogYW55O1xyXG4gIG1heFNlY3Rpb25OdW1iZXI6IGFueTtcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWdlSW5mbzpQYWdlSW5mb1NlcnZpY2UscHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIscHJpdmF0ZSBjaGFuZ2VkZXRlY3RvcjpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGRpYWxvZzpOZ2JNb2RhbCxwcml2YXRlIHJvdXRlOkFjdGl2YXRlZFJvdXRlLHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlLHByaXZhdGUgcm91dGVyOlJvdXRlcixwcml2YXRlIHNvcFNlcnZpY2U6VHJheFNlcnZpY2UscHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICB9XHJcbiAgXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRDaGVja2xpc3QoKTtcclxuICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuICAgIGxldCBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgfHwgJ3t9Jyk7XHJcblxyXG4gICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgIGlmKHVzZXJJbmZvLnVzZXJUeXBlKXtcclxuICAgICAgdGhpcy51c2VyVHlwZSA9IHVzZXJJbmZvLnVzZXJUeXBlOyBcclxuICAgIH0gXHJcblxyXG4gICAgaWYoIXN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgc3RvcmFnZURldGFpbHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGllbnQtZGV0YWlscycpIHx8ICd7fScpO1xyXG4gICAgICBzdG9yYWdlRGV0YWlscy5jbGllbnQgPSBzdG9yYWdlRGV0YWlscy5jbGllbnRJZDtcclxuICAgIH1cclxuICAgIGlmKHN0b3JhZ2VEZXRhaWxzPy5jbGllbnQpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudDtcclxuICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5lZGl0dmFsdWUgPSBwYXJhbXMuY2hlY2tsaXN0SWQ7XHJcbiAgICAgICAgaWYgKHBhcmFtcy5jaGVja2xpc3RJZCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93dmFsdWUgPSAnZWRpdCc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIE9wZW4gUG9wdXAgZm9yIEdldCBDaGVja2xpc3QgTmFtZSAvL1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLnNob3d2YWx1ZSA9ICdhZGQnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNob3d2YWx1ZSA9PSAnZWRpdCcgfHwgcGFyYW1zLnR5cGUpIHtcclxuICAgICAgICAgIGxldCBvYmo6IGFueSA9IHt9O1xyXG4gICAgICAgICAgaWYgKHBhcmFtcy5jaGVja2xpc3RJZCkge1xyXG4gICAgICAgICAgICBvYmouY2hlY2tMaXN0SWQgPSBwYXJhbXMuY2hlY2tsaXN0SWRcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG9iai50eXBlID0gcGFyYW1zLnR5cGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvYmouY2xpZW50SWQgPSB0aGlzLmNsaWVudElkO1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc29wU2VydmljZS5nZXRjb25maWcob2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgICAgICAgICBpZihyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRvYmplY3QgPSByZXMuZGF0YS5jaGVja0xpc3REZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZvcm1DaGVja2xpc3RRdWVzdGlvbnMoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmluaXRDaGVja2xpc3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gZW52O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXRhY2gubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGV0YWNoLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJNYW5hZ2UgQ2hlY2tsaXN0XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIkF1dG9tYXRlIG9yIGNyZWF0ZSBjaGVja2xpc3RzIHRvIGltcHJvdmUgb3BlcmF0aW9uYWwgZWZmaWNpZW5jeVwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZSB9XHJcbiAgICBdKTtcclxuICB9XHJcbiAgXHJcbiAgdXBkYXRlSW5wdXRWYWx1ZShzZWN0aW9uSW5kZXg6IG51bWJlcixzZWN0aW9uTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoc2VjdGlvbk5hbWUudHJpbSgpID09PSAnJykge1xyXG4gICAgICB0aGlzLmdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXgsJ25hbWUnKT8uc2V0VmFsdWUoYFNlY3Rpb24gJHtzZWN0aW9uSW5kZXgrMX1gKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2Nyb2xsVG9RdWVzdGlvbihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBxdWVzdGlvbklkID0gYHEtJHtzZWN0aW9uSW5kZXh9LSR7cXVlc3Rpb25JbmRleH1gO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9uRWxlbWVudCA9IHRoaXMuZm9ybVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3F1ZXN0aW9uSWR9YCk7XHJcbiAgXHJcbiAgICAgIGlmIChxdWVzdGlvbkVsZW1lbnQpIHtcclxuICAgICAgICBxdWVzdGlvbkVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2NlbnRlcicsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIGZvcm1DaGVja2xpc3RRdWVzdGlvbnMoKSB7IFxyXG4gICAgbGV0IHNlY3Rpb25zYXJyYXk6IGFueSA9IFtdO1xyXG4gICAgbGV0IHNlY3Rpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgc2VjdGlvbnNhcnJheSA9IHRoaXMuZ2V0b2JqZWN0LnNlY3Rpb25zXHJcblxyXG4gICAgdGhpcy5tYXhTZWN0aW9uTnVtYmVyID0gTWF0aC5tYXgoLi4uc2VjdGlvbnNhcnJheS5tYXAoKGVsZTphbnkpID0+IGVsZS5zZWN0aW9uTnVtYmVyICkpO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJ0aGlzLm1heFNlY3Rpb25OdW1iZXIgMT0+XCIsIHRoaXMubWF4U2VjdGlvbk51bWJlcilcclxuICAgIHNlY3Rpb25zYXJyYXkuZm9yRWFjaCgoaTogYW55LHNlY3Rpb25JbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGxldCBxdWVzdGlvbnM6IGFueVtdID0gW107XHJcbiAgICAgIGxldCBzZWN0aW9uTnVtYmVyID0gaT8uc2VjdGlvbk51bWJlciB8fCAoc2VjdGlvbkluZGV4ICsgMSlcclxuICAgICAgaS5xdWVzdGlvbnMuZm9yRWFjaCgoajogYW55LHF1ZXN0aW9uSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGxldCBhbnN3ZXI6IGFueVtdID0gW107XHJcbiAgICAgICAgbGV0IHJ1bkFJOmFueVtdID0gai5hbnN3ZXJzLmZpbHRlcigoZWxlOmFueSkgPT4gZWxlLnJ1bkFJKTs7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJydW5BSSA9PlwiLCBydW5BSSlcclxuICAgICAgICBqLmFuc3dlcnM/LmZvckVhY2goKGs6IGFueSxhbnN3ZXJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAvLyBpZih0eXBlb2Ygaz8ucmVmZXJlbmNlSW1hZ2UgPT0nc3RyaW5nJyAmJiBrPy5yZWZlcmVuY2VJbWFnZSAhPSAnJyAmJiBrLm11bHRpUmVmZXJlbmNlSW1hZ2UubGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyAgIGsubXVsdGlSZWZlcmVuY2VJbWFnZSA9IFt7aW1hZ2VVUkw6az8ucmVmZXJlbmNlSW1hZ2UscnVuQUk6ZmFsc2V9XVxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgYW5zd2VyLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICdhbnN3ZXInOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOms/LmFuc3dlcixkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKGFuc3dlckluZGV4KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGs/LnNvcEZsYWcgPyBrPy5zb3BGbGFnIDogZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgJiYgaj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nPyB7ICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy52YWxpZGF0aW9uLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiBqPy5hbnN3ZXJUeXBlICE9ICd2aWRlbyc/IHsgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTprPy52YWxpZGF0aW9uVHlwZSxkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0sIHRoaXMuYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihbXCJDYXB0dXJlIEltYWdlXCIsIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCIsIFwiQ2FwdHVyZSBWaWRlb1wiXSkpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShrPy5tdWx0aVJlZmVyZW5jZUltYWdlIHx8IFtdICkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oKFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpIHx8IGo/LmFuc3dlclR5cGUgPT0gJ3ZpZGVvJykgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTpqPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID8gdHJ1ZSA6IGZhbHNlLGRpc2FibGVkOiEhcnVuQUkubGVuZ3RofSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6KGs/LnJ1bkFJKSA/IGs/LnJ1bkFJIDogZmFsc2UsZGlzYWJsZWQ6ICh0aGlzLnVzZXJUeXBlID09PSAnY2xpZW50JyA/IHJ1bkFJLmxlbmd0aCA6IGZhbHNlKSB9KSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7ICdzaG93TGlua2VkJzogdGhpcy5mYi5jb250cm9sKChrPy5zaG93TGlua2VkKSA/IGs/LnNob3dMaW5rZWQgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubyddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAnbGlua2VkUXVlc3Rpb24nOiB0aGlzLmZiLmNvbnRyb2woKGs/LmxpbmtlZFF1ZXN0aW9uKSA/IGs/LmxpbmtlZFF1ZXN0aW9uIDogMCkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAgLi4uKCFbJ2Rlc2NyaXB0aXZlJywnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7IFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KGs/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgfHwgW10gKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLigoIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywndmlkZW8nLCdtdWx0aXBsZUltYWdlJywnZGF0ZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpKSA/IHsgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOms/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPyB0cnVlIDogZmFsc2UsZGlzYWJsZWQ6ISFydW5BSS5sZW5ndGh9KSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnZGF0ZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOihrPy5ydW5BSSkgPyBrPy5ydW5BSSA6IGZhbHNlLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woay5kZXNjcmlwdGl2ZXR5cGUpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbChrLnJhbmdlU3RhcnQpLCdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKGsucmFuZ2VFbmQpIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6az8ucmVmZXJlbmNlSW1hZ2UgPz8gJycsXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoaz8ucnVuQUlGZWF0dXJlcyB8fCBbXSksXHJcbiAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKGs/LnJ1bkFJRGVzY3JpcHRpb24gfHwgJycpLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gaWYodHlwZW9mIGoucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA9PSAnc3RyaW5nJyAmJiBqLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgIT0gJycpIHtcclxuICAgICAgICAvLyAgIGoubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlID0gW3tpbWFnZVVSTDpqLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UscnVuQUk6ZmFsc2V9XTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgcXVlc3Rpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgXCJxbm9cIjogdGhpcy5mYi5jb250cm9sKHF1ZXN0aW9uSW5kZXgrMSksXHJcbiAgICAgICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6aj8ucW5hbWUsZGlzYWJsZWQ6cnVuQUkubGVuZ3RofSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgXCJvbGRRbmFtZVwiOnRoaXMuZmIuY29udHJvbChqPy5xbmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlclR5cGUnOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOmo/LmFuc3dlclR5cGUsZGlzYWJsZWQ6cnVuQUkubGVuZ3RofSwgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10pKSxcclxuICAgICAgICAgICAgLi4uKCFbJ2Rlc2NyaXB0aXZlJywnZGF0ZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpKSA/IHsgJ2Fuc3dlcnMnOiAoWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCAndmlkZW8nLCdtdWx0aXBsZUltYWdlJywndGltZScsJ2xpbmVhcnNjYWxlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8gYW5zd2VyWzBdIDogdGhpcy5mYi5hcnJheShhbnN3ZXIsW3VuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpXSkgfSA6IHt9LFxyXG4gICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOihbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsXCJtdWx0aXBsZUltYWdlXCJdLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpKSA/IChqPy5ydW5BSSkgPyB0cnVlIDogZmFsc2UgOiBmYWxzZSxkaXNhYmxlZDogISFydW5BSS5sZW5ndGh9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAncnVuQUlEZWZhdWx0Jzp0aGlzLmZiLmNvbnRyb2woaj8ucnVuQUkgfHwgZmFsc2UpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6KFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywndmlkZW8nLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8gKGo/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkpID8gdHJ1ZSA6IGZhbHNlIDogZmFsc2UsZGlzYWJsZWQ6ISFydW5BSS5sZW5ndGh9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAvLyAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgoWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8gKGo/LnJ1bkFJRGVzY3JpcHRpb24pIDogJycpLFxyXG4gICAgICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woaj8ubGlua1R5cGUpLFxyXG4gICAgICAgICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoaj8ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlIHx8IFtdKSxcclxuICAgICAgICAgICAgLy8gXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjogW1tqPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlID8/ICcnXV0sXHJcbiAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOiB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogaj8uZGVzY3JpcHRpdmV0eXBlLGRpc2FibGVkOiEhcnVuQUkubGVuZ3RofSksXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U6aj8ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA/PyAnJyxcclxuICAgICAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShqPy5ydW5BSUZlYXR1cmVzIHx8IFtdKSxcclxuICAgICAgICAgICAgZGlzYWJsZVJ1bkFJOnJ1bkFJLmxlbmd0aCA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woaj8ucnVuQUlEZXNjcmlwdGlvbiB8fCAnJyksXHJcbiAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbChqPy51bmlxdWVxbm8gfHwgMCksXHJcbiAgICAgICAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbChqPy51bmlxdWVxaWQgfHwgJycpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgICAgc2VjdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgIFwibmFtZVwiOiB0aGlzLmZiLmNvbnRyb2woaT8ubmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICBcIm9sZE5hbWVcIjp0aGlzLmZiLmNvbnRyb2woaT8ubmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKHNlY3Rpb25OdW1iZXIpLFxyXG4gICAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5mYi5hcnJheShxdWVzdGlvbnMpLFxyXG4gICAgICAgICAgXCJtYXhRdWVzdGlvbk51bWJlclwiOiB0aGlzLmZiLmNvbnRyb2woaT8ubWF4UXVlc3Rpb25OdW1iZXIgfHwgMCksXHJcbiAgICAgIH0pKTtcclxuICAgICAgcXVlc3Rpb25zID0gW107XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLkNoZWNrbGlzdEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgJ2NoZWNrbGlzdE5hbWUnOiB0aGlzLmZiLmNvbnRyb2wodGhpcy5nZXRvYmplY3QuY2hlY2tMaXN0TmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgJ2NoZWNrbGlzdERlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKHRoaXMuZ2V0b2JqZWN0LmNoZWNrTGlzdERlc2NyaXB0aW9uKSxcclxuICAgICAgJ3NlY3Rpb25zJzogdGhpcy5mYi5hcnJheShzZWN0aW9ucylcclxuICAgIH0pOyAgIFxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuQ2hlY2tsaXN0Rm9ybSwnZm9ybScpO1xyXG4gIH1cclxuXHJcbiAgaW5pdENoZWNrbGlzdCgpIHtcclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnY2hlY2tsaXN0TmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgJ2NoZWNrbGlzdERlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgJ3NlY3Rpb25zJzogdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICBcIm5hbWVcIjogdGhpcy5mYi5jb250cm9sKCdTZWN0aW9uIDEnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgXCJzZWN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgxLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgIFwicW5vXCI6IHRoaXMuZmIuY29udHJvbCgxLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnZGVzY3JpcHRpdmUnLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKSxcclxuICAgICAgICAgICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSwgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgXSksXHJcbiAgICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICB9KVxyXG4gICAgICBdKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoYWxsb3dlZFZhbHVlczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiAoY29udHJvbDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcclxuICAgICAgaWYgKHZhbHVlICYmIGFsbG93ZWRWYWx1ZXMuaW5kZXhPZih2YWx1ZSkgPT09IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFZhbHVlOiB0cnVlIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U2VjdGlvbigpIHtcclxuICAgIGxldCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5O1xyXG4gICAgbGV0IHNlY3Rpb25MZW5ndGggPSBzZWN0aW9ucy5sZW5ndGg7XHJcbiAgICBpZih0aGlzLm1heFNlY3Rpb25OdW1iZXIpe1xyXG4gICAgICB0aGlzLm1heFNlY3Rpb25OdW1iZXIrKztcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm1heFNlY3Rpb25OdW1iZXIgPSBNYXRoLm1heCguLi5zZWN0aW9ucy52YWx1ZS5tYXAoKGVsZTphbnkpID0+IGVsZS5zZWN0aW9uTnVtYmVyICkpO1xyXG4gICAgfVxyXG4gICAgKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5wdXNoKFxyXG4gICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcIm5hbWVcIjogdGhpcy5mYi5jb250cm9sKGBTZWN0aW9uICR7c2VjdGlvbkxlbmd0aCArIDF9YCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKHRoaXMubWF4U2VjdGlvbk51bWJlciwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAvLyBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKGZpbmRTZWNOdW0gKyAxLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuZmIuYXJyYXkoW1xyXG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIFwicW5vXCI6IHRoaXMuZmIuY29udHJvbCgxLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAncW5hbWUnOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKSxcclxuICAgICAgICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgXCJ1bmlxdWVxbm9cIjogdGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdKSxcclxuICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICBpZihzZWN0aW9uTGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjY29yZGlhbihzZWN0aW9uTGVuZ3RoKTtcclxuICAgIHRoaXMuc3dhbFRvYXN0KCdOZXcgc2VjdGlvbiBhZGRlZCEnKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVNlY3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucmVtb3ZlQXQoc2VjdGlvbkluZGV4KTtcclxuICB9XHJcblxyXG4gIGRyYWdEcm9wKHNlY3Rpb25JbmRleDogYW55LCBldmVudDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIC8vIHRoaXMudXBkYXRlbGlua2VkUXVlc3Rpb25ObyhzZWN0aW9uSW5kZXgsZXZlbnQucHJldmlvdXNJbmRleCxldmVudC5jdXJyZW50SW5kZXgpXHJcbiAgICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25JbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVsaW5rZWRRdWVzdGlvbk5vKHNlY0lkeDpudW1iZXIscHJldklkeDpudW1iZXIscW5JZHg6bnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgZm9yKGxldCBpPTA7aTxxdWVzdGlvbnMubGVuZ3RoLTE7aSsrKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICBmb3IobGV0IGo9MDtqPGFuc3dlcnM/Lmxlbmd0aCAtMTtqKyspIHtcclxuICAgICAgICBsZXQgbGlua2VkID0gKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgaWYobGlua2VkKSB7XHJcbiAgICAgICAgICBsZXQgbGlua2VkTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWRObyA9PSBwcmV2SWR4ICsgMSkge1xyXG4gICAgICAgICAgICAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUocW5JZHggKyAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYobGlua2VkTm8gPD0gcW5JZHggKyAxKSB7XHJcbiAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShsaW5rZWRObyAtIDEpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYW5zd2VyVHlwZVNlbGVjdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBsZXQgc2VsZWN0dmFsdWU6IHN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIFxyXG4gICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldChcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgaWYoIVsnZGVzY3JpcHRpdmUnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoc2VsZWN0dmFsdWUpKSB7XHJcbiAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Rlc2NyaXB0aXZldHlwZScpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdkZXNjcmlwdGl2ZXR5cGUnKT8uc2V0VmFsdWUoJ3RleHQnKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVtb3ZlUXVlc3Rpb25MaW5rZWQoc2VjdGlvbkluZGV4LHF1ZXN0aW9uSW5kZXgpO1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAneWVzL25vJyB8fCBldmVudC50YXJnZXQudmFsdWUgPT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJykge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzRm9ybUFycmF5KHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCxzZWxlY3R2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnZGVzY3JpcHRpdmUnKSB7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnZGVzY3JpcHRpdmVJbWFnZScpIHtcclxuICAgICAgdGhpcy5zZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsIHNlbGVjdHZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJykge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzRm9ybUFycmF5KHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCxzZWxlY3R2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnaW1hZ2UnKSB7XHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNGb3JtR3JvdXAoc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LCAnaW1hZ2UnKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICd2aWRlbycpIHtcclxuICAgICAgdGhpcy5zZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICd2aWRlbycpO1xyXG4gICAgfWVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgdGhpcy5zZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdtdWx0aXBsZUltYWdlJyk7XHJcbiAgICB9ZWxzZSBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdkYXRlJykge31cclxuICAgIGVsc2UgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICd0aW1lJykge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzVGltZShzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICd0aW1lJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbGluZWFyc2NhbGUnKSB7XHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNUaW1lKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ2xpbmVhcnNjYWxlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc1RpbWUoc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIsdHlwZTpzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKTtcclxuXHJcbiAgICAgIGlmKHR5cGUgPT0gJ3RpbWUnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgIH0pLFxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHF1ZXN0aW9uLnNldENvbnRyb2woJ2Fuc3dlcnMnLFxyXG4gICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKDEpLFxyXG4gICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdsaW5rZWRRdWVzdGlvbic6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCdudW1iZXInKSxcclxuICAgICAgICAgICAgICdyYW5nZVN0YXJ0Jzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAncmFuZ2VFbmQnOnRoaXMuZmIuY29udHJvbCgxMDAsKSxcclxuICAgICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICB9KSxcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2cocXVlc3Rpb24pO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICByZW1vdmVRdWVzdGlvbkxpbmtlZChzZWNJZHg6YW55LHFuSWR4OmFueSkge1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgaWYoYW5zd2Vycykge1xyXG4gICAgICBmb3IobGV0IGk9MDtpPGFuc3dlcnMubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgbGV0IHFuID0gKGFuc3dlcnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgIGlmKHFuKSB7XHJcbiAgICAgICAgICAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuIC0gMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbGlkYXRpb25UeXBlKGV2ZW50OmFueSxzZWN0aW9uOm51bWJlcixxdWVzdGlvbjpudW1iZXIsYW5zd2VyOm51bWJlcikge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdEZXNjcmlwdGl2ZSBBbnN3ZXInKSB7XHJcbiAgICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbikgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc3dlcikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Rlc2NyaXB0aXZldHlwZScpPy5zZXRWYWx1ZSgndGV4dCcpO1xyXG4gICAgfVxyXG4gICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc0Zvcm1BcnJheShzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLHNlbGVjdHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgXHJcbiAgICBpZiAoc2VsZWN0dmFsdWUgPT0gJ3llcy9ubycpIHtcclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnWWVzJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbCgxKSxcclxuICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIC8vICdsaW5rUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbChmYWxzZSxbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAvLyAnYW5zd2VySW5wdXRTdHlsZSc6IHRoaXMuZmIuY29udHJvbCgncmFkaW8nLFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgICAnbGlua2VkUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCdObycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMiksXHJcbiAgICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmNvbnRyb2woJycpLCAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdLHVuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbCgxKSxcclxuICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgICAuLi4oc2VsZWN0dmFsdWUgPT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJyA/IHtcImxpbmtlZFF1ZXN0aW9uXCI6dGhpcy5mYi5jb250cm9sKDAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKX0gOiB7fSksXHJcbiAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICBcInJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICdhbnN3ZXInOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgICAgLi4uKHNlbGVjdHZhbHVlID09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgPyB7XCJsaW5rZWRRdWVzdGlvblwiOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLCdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSl9IDoge30pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIF0sdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCkpLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHNldEFuc3dlckFzRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc3dlclR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKFsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhhbnN3ZXJUeXBlKSkge1xyXG4gICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0Q29udHJvbCgnYW5zd2VycycsIFxyXG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgLi4uKGFuc3dlclR5cGUgPT0gJ211bHRpcGxlSW1hZ2UnID8geydkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgndGV4dCcpfTp7fSksXHJcbiAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICB9KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcXVlc3Rpb24gPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG5cclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGxvYWRJbWFnZUZyb21EZXZpY2Uoc2VjSWR4OiBudW1iZXIscUlkeDogbnVtYmVyLGV2ZW50OiBhbnksYW5zSWR4Om51bWJlcj0tMSxjdHJsTmFtZTpzdHJpbmcgPSAnJyxpbWdJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmZpbGVzICE9IHVuZGVmaW5lZCAmJiBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBsZXQgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2NsaWVudElkJyx0aGlzLmNsaWVudElkKVxyXG4gICAgdGhpcy5zb3BTZXJ2aWNlLmltYWdldXBsb2FkKGZvcm1EYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3QgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG5cclxuICAgICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICAgIGlmKGN0cmxOYW1lKSB7XHJcbiAgICAgICAgbGV0IHJlZkltYWdlcztcclxuICAgICAgICBpZihjdHJsTmFtZSA9PSBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSB7XHJcbiAgICAgICAgICByZWZJbWFnZXMgPSBxdWVzdGlvbi5nZXQoY3RybE5hbWUpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsZXQgYW5zd2Vyc1xyXG4gICAgICAgICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgICAgICAgIGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApOyBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBhbnN3ZXJzID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVmSW1hZ2VzID0gYW5zd2Vycz8uZ2V0KFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHJlZkltYWdlcykge1xyXG4gICAgICAgICAgaWYoaW1nSWR4ICE9IC0xKSB7XHJcbiAgICAgICAgICAgIChyZWZJbWFnZXM/LmF0KGltZ0lkeCkgYXMgRm9ybUdyb3VwKT8uc2V0VmFsdWUoe2ltYWdlVVJMOnJlcy5kYXRhLmltZ1VybCxydW5BSTpmYWxzZX0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmVmSW1hZ2VzPy5wdXNoKHRoaXMuZmIuZ3JvdXAoe2ltYWdlVVJMOnJlcy5kYXRhLmltZ1VybCxydW5BSTpmYWxzZX0pKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY0lkeCxxSWR4LFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiLGFuc0lkeCk/LnNldFZhbHVlKHJlcy5kYXRhLmltZ1VybCk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAgICAgIFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGNsZWFyUmVmZXJlbmNlSW1hZ2Uoc2VjSWR4OiBudW1iZXIscUlkeDogbnVtYmVyLGFuc0lkeDpudW1iZXI9LTEsaW1hZ2VJbmRleDpudW1iZXI9LTEsY3RybE5hbWU6c3RyaW5nPVwiXCIpIHtcclxuICAgIC8vIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY0lkeCxxSWR4LFwicmVmZXJlbmNlSW1hZ2VcIixhbnNJZHgpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICAvLyB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzZWNJZHgscUlkeCwncnVuQUknLGFuc0lkeCk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICBpZiAoIXNlY3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbnMuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZiAoIXNlY3Rpb24pIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9ucyA9IHNlY3Rpb24uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICBpZiAoIXF1ZXN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3QgcXVlc3Rpb24gPSBxdWVzdGlvbnMuYXQocUlkeCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICBpZihpbWFnZUluZGV4ICE9IC0xICYmIGN0cmxOYW1lKSB7XHJcbiAgICAgIGxldCByZWZJbWFnZXM7XHJcbiAgICAgIGlmKGN0cmxOYW1lID09IFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIHtcclxuICAgICAgICByZWZJbWFnZXMgPSBxdWVzdGlvbi5nZXQoY3RybE5hbWUpIGFzIEZvcm1BcnJheTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgYW5zd2VycztcclxuICAgICAgICBpZihhbnNJZHggIT0gLTEpIHtcclxuICAgICAgICAgIGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgYW5zd2VycyA9IHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVmSW1hZ2VzID0gYW5zd2Vycy5nZXQoY3RybE5hbWUpIGFzIEZvcm1BcnJheTtcclxuICAgICAgfVxyXG4gICAgICAgIHJlZkltYWdlcy5yZW1vdmVBdChpbWFnZUluZGV4KTtcclxuXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKHF1ZXN0aW9uLmdldChcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIikgYXMgRm9ybUFycmF5KT8uY2xlYXIoKTtcclxuICAgICAgKHF1ZXN0aW9uLmdldChcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0dmFsaWRhdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LCBhZGRtb3JlcW5JbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYWRkbW9yZXFuSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCd2YWxpZGF0aW9uJyk/LnNldFZhbHVlKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcclxuICB9XHJcblxyXG4gIGFkZE5ld1F1ZXN0aW9uKHNlY3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5zZWN0aW9uSW5kZXggPiAtMSkge1xyXG4gICAgICBpZiAoISgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSkpIHtcclxuICAgICAgICAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuc2V0Q29udHJvbCgncXVlc3Rpb25zJywgdGhpcy5mYi5hcnJheShbXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBxdWVzdGlvbnMgPSAoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuXHJcbiAgICAgIGxldCBxdWVzdGlvbnNMZW5ndGggPSBxdWVzdGlvbnMubGVuZ3RoO1xyXG4gICAgICBxdWVzdGlvbnMucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25zTGVuZ3RoICsgMSwpLFxyXG4gICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnZGVzY3JpcHRpdmUnLFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKSxcclxuICAgICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSwgICAgICAgIFxyXG4gICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICB9KSk7ICAgICAgXHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnN3YWxUb2FzdCgnTmV3IHF1ZXN0aW9uIGFkZGVkIScpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9RdWVzdGlvbihzZWN0aW9uSW5kZXgscXVlc3Rpb25zTGVuZ3RoKTtcclxuICAgICAgfSwxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlUXVlc3Rpb24oc2VjdGlvbkluZGV4OiBhbnksIHF1ZXN0aW9uSW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5kZWxldGVkTGlzdCA9IFtdO1xyXG4gICAgbGV0IHF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ3FuYW1lJyk/LnZhbHVlIHx8ICcnO1xyXG4gICAgbGV0IHFubyA9IHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdxbm8nKT8udmFsdWU7XHJcbiAgICBxdWVzdGlvbiA9IHF1ZXN0aW9uID8gcXVlc3Rpb24gOiBgUXVlc3Rpb24gJHt0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LCAncW5vJyk/LnZhbHVlIHx8ICcnfWA7XHJcbiAgICBxdWVzdGlvbiA9IHF1ZXN0aW9uLmxlbmd0aCA+IDIwID8gcXVlc3Rpb24uc2xpY2UoMCwyMCkgKyAnLi4uJyA6IHF1ZXN0aW9uO1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVFNEUyXCIvPjxwYXRoIGQ9XCJNMjggMjRWMjhNMjggMzJIMjguMDFNMzggMjhDMzggMzMuNTIyOCAzMy41MjI4IDM4IDI4IDM4QzIyLjQ3NzIgMzggMTggMzMuNTIyOCAxOCAyOEMxOCAyMi40NzcyIDIyLjQ3NzIgMTggMjggMThDMzMuNTIyOCAxOCAzOCAyMi40NzcyIDM4IDI4WlwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+PC9zcGFuPmAsXHJcbiAgICAgIHRpdGxlOiBgRGVsZXRlICcke3F1ZXN0aW9ufSc/YCxcclxuICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgPGI+JyR7cXVlc3Rpb259JzwvYj4/IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgYnV0dG9udHlwZTogJ2RlbGV0ZSdcclxuICAgIH1cclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICBsZXQgbGlua2VkUXVlc3Rpb246YW55ID0gKCgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICAgIGxldCB0eXBlOmFueSA9ICgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWU7XHJcbiAgICAgICAgaWYoIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ3ZpZGVvJywnbGluZWFyc2NhbGUnLCd0aW1lJywnZGF0ZSddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICBmb3IobGV0IGk9MDtpPGxpbmtlZFF1ZXN0aW9uPy5sZW5ndGg7aSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBsaW5rZWRRbiA9ICgobGlua2VkUXVlc3Rpb24uYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlKTtcclxuICAgICAgICAgICAgaWYobGlua2VkUW4pIHtcclxuICAgICAgICAgICAgICBsZXQgbm8gPSBsaW5rZWRRbiAtMTtcclxuICAgICAgICAgICAgICAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25JbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KG5vKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua1R5cGUnKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIGlmKGxpbmtlZFFuICYmIHBhcnNlSW50KGxpbmtlZFFuKSA+IHF1ZXN0aW9uSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3VidHJhY3RRdWVzdGlvbm5vKHNlY3Rpb25JbmRleCxsaW5rZWRRbi0xKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAodGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCAncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5yZW1vdmVBdChxdWVzdGlvbkluZGV4KTtcclxuICAgICAgICB0aGlzLnJlbW92ZWROZXN0ZWRRdWVzdGlvbihzZWN0aW9uSW5kZXgscW5vKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVF1ZXN0aW9uUW5vcyhzZWN0aW9uSW5kZXgpO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGAke3F1ZXN0aW9ufSBoYXMgYmVlbiBkZWxldGVkIWApO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBzdWJ0cmFjdFF1ZXN0aW9ubm8oc2VjdGlvbkluZGV4Om51bWJlcixxdWVzdGlvbkluZGV4OmFueSkge1xyXG4gICAgbGV0IGxpbmtlZFF1ZXN0aW9uQW5zd2VycyA9ICgoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25JbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KTtcclxuICAgIGxldCBubyA9ICgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3FubycpPy52YWx1ZTtcclxuICAgIHRoaXMuZGVsZXRlZExpc3QucHVzaChubyk7XHJcbiAgICBmb3IobGV0IGo9MDtqPGxpbmtlZFF1ZXN0aW9uQW5zd2Vycz8ubGVuZ3RoO2orKykge1xyXG4gICAgICBsZXQgbGlua2VkUW4gPSAoKGxpbmtlZFF1ZXN0aW9uQW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWUpO1xyXG4gICAgICBpZihsaW5rZWRRbiAmJiBwYXJzZUludChsaW5rZWRRbikgPiBxdWVzdGlvbkluZGV4KSB7XHJcbiAgICAgICAgKChsaW5rZWRRdWVzdGlvbkFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJykpPy5zZXRWYWx1ZShsaW5rZWRRbiAtIDEpO1xyXG4gICAgICAgIHRoaXMuc3VidHJhY3RRdWVzdGlvbm5vKHNlY3Rpb25JbmRleCxsaW5rZWRRbi0xKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmFpc2VmbGFnKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc0lkeDogbnVtYmVyLHZhbHVlOiBib29sZWFuLGxpbmtJbmRleDpudW1iZXIgPSAtMSxsaW5rQW5zSW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk/LmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGlmKHZhbHVlID09IHRydWUpIHtcclxuICAgICAgbGV0IGFuc3dlcnMgPSAocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS52YWx1ZTtcclxuICAgICAgaWYobGlua0luZGV4ID09IC0xKSB7XHJcbiAgICAgICAgaWYoYW5zd2Vycy5maWx0ZXIoKHg6YW55KT0+IHguc29wRmxhZyA9PSB0cnVlKS5sZW5ndGggPT0gKGFuc3dlcnMubGVuZ3RoIC0xKSkge1xyXG4gICAgICAgICAgKChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5hZGRDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgICAgICAgdGltZXIoNTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgKChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5yZW1vdmVDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICAgIGxldCBsaW5rUXVlc3Rpb24gPSAoKGFuc3dlcnMuZ2V0KCdsaW5rUXVlc3Rpb25BbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChsaW5rSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICAgbGV0IGxpbmtBbnN3ZXJzID0gKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLnZhbHVlXHJcbiAgICAgICAgaWYobGlua0Fuc3dlcnMuZmlsdGVyKCh4OmFueSk9PiB4LnNvcEZsYWcgPT0gdHJ1ZSkubGVuZ3RoID09IChsaW5rQW5zd2Vycy5sZW5ndGggLTEpKSB7XHJcbiAgICAgICAgICAoKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtBbnNJbmRleCkgYXMgRm9ybUdyb3VwKS5hZGRDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgICAgICAgdGltZXIoNTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAoKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtBbnNJbmRleCkgYXMgRm9ybUdyb3VwKS5yZW1vdmVDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAgaWYobGlua0luZGV4ID09IC0xKVxyXG4gICAgICAgICgoKChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk/LmdldCgnc29wRmxhZycpIGFzIEZvcm1Db250cm9sKSk/LnNldFZhbHVlKHZhbHVlKTsgXHJcbiAgICBlbHNlICAge1xyXG4gICAgICAgbGV0IGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICAgIGxldCBsaW5rUXVlc3Rpb24gPSAoKGFuc3dlcnMuZ2V0KCdsaW5rUXVlc3Rpb25BbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChsaW5rSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICgoKChsaW5rUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KT8uYXQobGlua0Fuc0luZGV4KSBhcyBGb3JtR3JvdXApPy5nZXQoJ3NvcEZsYWcnKSBhcyBGb3JtQ29udHJvbCkpPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGROZXN0ZWRRdWVzdGlvbihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhbnNJZHg6IG51bWJlcix2YWx1ZTogYm9vbGVhbixsaW5rZWRRdWVzdGlvbkluZGV4Om51bWJlcj0tMSxsaW5rZWRBbnN3ZXI6bnVtYmVyID0gLTEpIHtcclxuICAgICBsZXQgYW5zd2VyID0gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cFxyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgaWYoIWFuc3dlcj8uZ2V0KCdsaW5rUXVlc3Rpb25BbnN3ZXJzJyk/LnZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBhbnN3ZXIuc2V0Q29udHJvbCgnbGlua1F1ZXN0aW9uQW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgXCJxbm9cIjogdGhpcy5mYi5jb250cm9sKDEpLFxyXG4gICAgICAgICAgICAncW5hbWUnOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgICAgICdxdWVzdGlvblJlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgXSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBuZXN0ZWRRdWVzdGlvbiA9IGFuc3dlci5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXlcclxuICAgICAgbmVzdGVkUXVlc3Rpb24ucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10pKSxcclxuICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLCAgICAgICAgXHJcbiAgICAgICAgXCJ1bmlxdWVxbm9cIjogdGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG4gXHJcbiAgYWNjb3JkaWFuKGluZGV4OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNob3cgPT0gaW5kZXgpIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICAgIHRoaXMuc2VjdGlvbkluZGV4ID0gLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3cgPSBpbmRleDtcclxuICAgICAgdGhpcy5zZWN0aW9uSW5kZXggPSBpbmRleDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlY3Rpb24oc2VjdGlvbkluZGV4OiBhbnkpIHtcclxuICAgIGxldCBzZWN0aW9uID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgbGV0IHNlY3Rpb25MZW5ndGg6YW55ID0gXCIgXCIgKyAoc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkubGVuZ3RoO1xyXG4gICAgbGV0IHNlY3Rpb25OYW1lOnN0cmluZyA9IHNlY3Rpb24uZ2V0KCduYW1lJyk/LnZhbHVlO1xyXG4gICAgc2VjdGlvbk5hbWUgPSBzZWN0aW9uTmFtZS5sZW5ndGggPiAyMCA/IChzZWN0aW9uTmFtZS5zbGljZSgwLCAyMCkgKyBcIi4uLlwiKSA6IHNlY3Rpb25OYW1lO1xyXG4gICAgbGV0IHF1ZXN0aW9uX3RleHQgPSAnJ1xyXG4gICAgaWYgKHNlY3Rpb25MZW5ndGggPT0gMSlcclxuICAgICAgcXVlc3Rpb25fdGV4dCA9ICdRdWVzdGlvbidcclxuICAgIGVsc2VcclxuICAgICBxdWVzdGlvbl90ZXh0ID0gJ1F1ZXN0aW9ucydcclxuICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUU0RTJcIi8+PHBhdGggZD1cIk0yOCAyNFYyOE0yOCAzMkgyOC4wMU0zOCAyOEMzOCAzMy41MjI4IDMzLjUyMjggMzggMjggMzhDMjIuNDc3MiAzOCAxOCAzMy41MjI4IDE4IDI4QzE4IDIyLjQ3NzIgMjIuNDc3MiAxOCAyOCAxOEMzMy41MjI4IDE4IDM4IDIyLjQ3NzIgMzggMjhaXCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICB0aXRsZTogYERlbGV0ZSAnJHtzZWN0aW9uTmFtZX0gU2VjdGlvbic/YCxcclxuICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUnIDxiPicke3NlY3Rpb25OYW1lfSc8L2I+PyB3aXRoIDxiPiR7c2VjdGlvbkxlbmd0aH0gJHtxdWVzdGlvbl90ZXh0fTwvYj4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICBidXR0b250eXBlOiAnZGVsZXRlJ1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudFxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PSAnZGVsZXRlJykge1xyXG4gICAgICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucmVtb3ZlQXQoc2VjdGlvbkluZGV4KVxyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEFkZE1vcmVBbnMoc2VjdGlvbmluZGV4OiBhbnksIHF1ZXN0aW9uSW5kZXg6IGFueSx0eXBlOnN0cmluZykge1xyXG4gICAgbGV0IGFuc29wdGlvbiA9XHJcbiAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQoc2VjdGlvbmluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgIC5hdChxdWVzdGlvbkluZGV4KVxyXG4gICAgICAgIC5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgbGV0IGFuc29wdGlvbkxlbmd0aCA9IGFuc29wdGlvbi5sZW5ndGg7XHJcbiAgICBpZiAoYW5zb3B0aW9uTGVuZ3RoIDw9IDI5KSB7XHJcbiAgICAgIGFuc29wdGlvbi5wdXNoKFxyXG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbChgYCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woYW5zb3B0aW9uTGVuZ3RoICsgMSksXHJcbiAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgIC4uLih0eXBlID09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgPyB7XCJsaW5rZWRRdWVzdGlvblwiOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLCdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSl9IDoge30pLFxyXG4gICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAuLi4odHlwZSA9PSAnbXVsdGlwbGVJbWFnZScgPyB7J2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0Jyl9Ont9KSxcclxuICAgICAgICAgICdyZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQW5zd2VyKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFkZG1vcmVxbkluZGV4OiBudW1iZXIsYW5zSW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGlmKGFuc0luZGV4ICE9IC0xKSB7XHJcbiAgICAgIHRoaXMuZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ2Fuc3dlcnMnLGFuc0luZGV4KS5yZW1vdmVBdChhZGRtb3JlcW5JbmRleCk7ICAgIFxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ2Fuc3dlcnMnLGFuc0luZGV4KS5yZW1vdmVBdChhZGRtb3JlcW5JbmRleCk7ICAgIFxyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGNsb25lUXVlc3Rpb24oc2VjdGlvbmluZGV4OiBhbnksIHF1ZXN0aW9uaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGNsb25lUXVlc3Rpb24gPSAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1Db250cm9sKHNlY3Rpb25pbmRleCwgJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25pbmRleCkgYXMgRm9ybUdyb3VwKS52YWx1ZTtcclxuICAgIGxldCBxdWVzdGlvbkxlbmd0aCA9ICAodGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbmluZGV4LCAncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS52YWx1ZTtcclxuICAgIGxldCBxdWVzdGlvbjogYW55O1xyXG4gICAgbGV0IGFuc3dlcjogYW55O1xyXG4gICAgaWYgKGNsb25lUXVlc3Rpb24uYW5zd2Vycykge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjbG9uZVF1ZXN0aW9uLmFuc3dlcnMpICYmIGNsb25lUXVlc3Rpb24uYW5zd2Vycy5sZW5ndGgpIHtcclxuICAgICAgICBhbnN3ZXIgPSBbXTtcclxuICAgICAgICBjbG9uZVF1ZXN0aW9uLmFuc3dlcnMuZm9yRWFjaCgoazogYW55KSA9PiB7XHJcbiAgICAgICAgICBhbnN3ZXIucHVzaChcclxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgLi4uKCFbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgJiYgY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nID8geyAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKGs/LmFuc3dlciwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbChrPy5hbnN3ZXJvcHRpb25OdW1iZXIgKyAxKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woaz8uc29wRmxhZyA/IGs/LnNvcEZsYWcgOiBmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woaz8udmFsaWRhdGlvbiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKGs/LnZhbGlkYXRpb25UeXBlLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLCBcIkNhcHR1cmUgVmlkZW9cIl0pKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnZGF0ZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShrPy5tdWx0aVJlZmVyZW5jZUltYWdlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLigoIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSkgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGs/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPT0gdHJ1ZSA/IHRydWUgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGs/LnJ1bkFJID8gaz8ucnVuQUkgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyAnc2hvd0xpbmtlZCc6IGZhbHNlIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ2xpbmtlZFF1ZXN0aW9uJzogMCB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdsaW5rZWRRdWVzdGlvbic6IDAgfSA6IHt9KSxcclxuICAgICAgICAgICAgICBkZXNjcmlwdGl2ZXR5cGU6dGhpcy5mYi5jb250cm9sKGs/LmRlc2NyaXB0aXZldHlwZSksXHJcbiAgICAgICAgICAgICAgJ3JlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KGs/LnJ1bkFJRmVhdHVyZXMgfHwgW10pLFxyXG4gICAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYodHlwZW9mIGNsb25lUXVlc3Rpb24uYW5zd2VycyA9PT0gJ29iamVjdCcgJiYgY2xvbmVRdWVzdGlvbi5hbnN3ZXJzICE9PSBudWxsKSB7XHJcbiAgICAgICAgYW5zd2VyID0gdGhpcy5mYi5ncm91cCh7ICAgICAgICAgIFxyXG4gICAgICAgICAgLi4uKFsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSkgfSA6IHt9KSxcclxuICAgICAgICAgIC4uLigoWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpIHx8IGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgPT0gJ3ZpZGVvJykgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPT0gdHJ1ZSA/IHRydWUgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgIC4uLihbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzPy5ydW5BSSA/IGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LnJ1bkFJIDogZmFsc2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oWydtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7IGRlc2NyaXB0aXZldHlwZTp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlKSB9IDoge30pLFxyXG4gICAgICAgICAgLi4uKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLnJhbmdlU3RhcnQpLCdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnMucmFuZ2VFbmQpIH0gOiB7fSksXHJcbiAgICAgICAgICAncmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShjbG9uZVF1ZXN0aW9uPy5ydW5BSUZlYXR1cmVzIHx8IFtdKSxcclxuICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnJ1bkFJRGVzY3JpcHRpb24gfHwgJycpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBpZih0eXBlb2YgY2xvbmVRdWVzdGlvbj8ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA9PSAnc3RyaW5nJyAmJiBjbG9uZVF1ZXN0aW9uPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9ICcnKSB7XHJcbiAgICAvLyAgIGNsb25lUXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlID0gW3tpbWFnZVVSTDpjbG9uZVF1ZXN0aW9uPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlLHJ1bkFJOmZhbHNlfV07XHJcbiAgICAvLyB9XHJcbiAgICBxdWVzdGlvbiA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25MZW5ndGgubGVuZ3RoICsgMSksXHJcbiAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5xbmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgJ2Fuc3dlclR5cGUnOiB0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSwgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgIC4uLighWydkZXNjcmlwdGl2ZScsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ2Fuc3dlcnMnOiAoWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCAndmlkZW8nLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkpID8gYW5zd2VyIDogdGhpcy5mYi5hcnJheShhbnN3ZXIsW3VuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpXSkgfSA6IHt9KSxcclxuICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnJ1bkFJLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5ydW5BSURlc2NyaXB0aW9uIHx8ICcnKSxcclxuICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSksXHJcbiAgICAgICdsaW5rVHlwZSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5kZXNjcmlwdGl2ZXR5cGUpLFxyXG4gICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxcclxuICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KGNsb25lUXVlc3Rpb24/LnJ1bkFJRmVhdHVyZXMgfHwgW10pLCAgICAgIFxyXG4gICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICB9KTtcclxuICAgIC8vIHRoaXMudXBkYXRlQ2xvbmVkbGlua2VkUXVlc3Rpb25ObyhzZWN0aW9uaW5kZXgsIGNsb25lUXVlc3Rpb24/LnFubyk7XHJcbiAgICAodGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbmluZGV4LCAncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5pbnNlcnQoY2xvbmVRdWVzdGlvbj8ucW5vLHF1ZXN0aW9uKTtcclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXN0aW9uUW5vcyhzZWN0aW9uaW5kZXgpO1xyXG4gICAgdGhpcy5zd2FsVG9hc3QoYFF1ZXN0aW9uICR7Y2xvbmVRdWVzdGlvbj8ucW5vfSBoYXMgYmVlbiBkdXBsaWNhdGVkIWApO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDbG9uZWRsaW5rZWRRdWVzdGlvbk5vKHNlY0lkeDpudW1iZXIscWlkeDpudW1iZXIpIHtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgYW5zd2VycyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5O1xyXG4gICAgICBpZihhbnN3ZXJzKSB7XHJcbiAgICAgICAgZm9yKGxldCBqPTA7ajxhbnN3ZXJzLmxlbmd0aDtqKyspIHtcclxuICAgICAgICAgIGxldCBsaW5rZWQgPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWQpIHtcclxuICAgICAgICAgICAgbGV0IHF1ZXN0aW9uTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgICAgICBpZihxdWVzdGlvbk5vID4gcWlkeCkge1xyXG4gICAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUocXVlc3Rpb25ObyArIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzYXZlQ2hlY2tsaXN0UXVlc3Rpb25zKHR5cGU6IHN0cmluZykge1xyXG4gICAgICBsZXQgY2hlY2tsaXN0ID0gdGhpcy5DaGVja2xpc3RGb3JtLnZhbHVlO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhjaGVja2xpc3QsJ2NoZWNrbGlzdCcpXHJcbiAgICAgIGlmKCF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbGlkKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1BsZWFzZSBlbnRlciBjaGVja2xpc3QgbmFtZSEnO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gICAgICBcclxuICAgICAgXHJcbiAgICAgIGlmICghdGhpcy5DaGVja2xpc3RGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5tYXJrRm9ybUNvbnRyb2xzQXNUb3VjaGVkKHRoaXMuQ2hlY2tsaXN0Rm9ybSwwKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvRXJyb3JzKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHNlY3Rpb25zID0gY2hlY2tsaXN0LnNlY3Rpb25zO1xyXG4gICAgICBpZih0eXBlID09ICdzYXZlQXNEcmFmdCcpIHtcclxuICAgICAgICBjaGVja2xpc3Quc3VibWl0VHlwZSA9ICdzYXZlJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjaGVja2xpc3Quc3VibWl0VHlwZSA9ICdjb25maWd1cmUnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCFzZWN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBzZWN0aW9uISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYodHlwZSA9PSAnY29uZmlndXJlJyAmJiAhc2VjdGlvbnNbaV0ucXVlc3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1BsZWFzZSBhZGQgYXRsZWFzdCBvbmUgcXVlc3Rpb24gaW4gc2VjdGlvbiEnO1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zLmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIGlmKGluZGV4ICE9IGkgJiYgc2VjdGlvbnNbaV0ubmFtZS50cmltKCkgPT0gZWxlLm5hbWUudHJpbSgpKVxyXG4gICAgICAgICAgICByZXR1cm4gZWxlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYoZmluZEV4aXN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KGAke3NlY3Rpb25zW2ldLm5hbWV9IHNlY3Rpb24gbmFtZSBpcyBEdXBsaWNhdGVkYCAsJ2Vycm9yJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2VjdGlvbnNbaV0ucXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgYW5zVHlwZSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlO1xyXG4gICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lLnRyaW0oKS5yZXBsYWNlQWxsKC9cXG4vZywgJycpXHJcbiAgICAgICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9ucy5maWx0ZXIoKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKGluZGV4ICE9IGogJiYgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lLnRyaW0oKSA9PSBlbGUucW5hbWUudHJpbSgpKVxyXG4gICAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgaWYoZmluZEV4aXN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lfSBxdWVzdGlvbiBuYW1lIGlzIER1cGxpY2F0ZWRgICwnZXJyb3InKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoYW5zVHlwZSA9PSAnbGluZWFyc2NhbGUnKSB7XHJcbiAgICAgICAgICAgIGlmKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJhbmdlU3RhcnQgPiBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZUVuZCl7XHJcbiAgICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1JhbmdlIHN0YXJ0IGlzIGdyZWF0ZXIgdGhhbiByYW5nZSBFbmQuJztcclxuICAgICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZihhbnNUeXBlICE9ICdkZXNjcmlwdGl2ZScpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5kZXNjcmlwdGl2ZXR5cGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXS5pbmNsdWRlcyhhbnNUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3Nob3dMaW5rZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2xpbmtlZFF1ZXN0aW9uJ10gPSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcInllcy9ub1wiXS5pbmNsdWRlcyhhbnNUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlciddID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlciddLnRyaW0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHR5cGVvZiBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgIT09IG51bGwgJiZcclxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMpIHx8IFsnZGVzY3JpcHRpdmUnLCdkYXRlJ10uaW5jbHVkZXMoYW5zVHlwZSkpIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgXCJhbnN3ZXJcIjogJycsXHJcbiAgICAgICAgICAgICAgXCJhbnN3ZXJvcHRpb25OdW1iZXJcIjogMSxcclxuICAgICAgICAgICAgICBcInNvcEZsYWdcIjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9uXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvblR5cGVcIjogXCJcIixcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25BbnN3ZXJcIjogXCJcIixcclxuICAgICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgPyBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSA6IFtdLFxyXG4gICAgICAgICAgICAgIFwic2hvd0xpbmtlZFwiOmZhbHNlLFxyXG4gICAgICAgICAgICAgIFwibGlua2VkUXVlc3Rpb25cIjowLFxyXG4gICAgICAgICAgICAgIC4uLihhbnNUeXBlID09ICdtdWx0aXBsZUltYWdlJyA/IHsnZGVzY3JpcHRpdmV0eXBlJzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlfTp7fSksXHJcbiAgICAgICAgICAgICAgLi4uKGFuc1R5cGUgPT0gJ2xpbmVhcnNjYWxlJyA/IHsncmFuZ2VTdGFydCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlU3RhcnR9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oYW5zVHlwZSA9PSAnbGluZWFyc2NhbGUnID8geydyYW5nZUVuZCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlRW5kfTp7fSksXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6JycsXHJcbiAgICAgICAgICAgICAgcnVuQUk6c2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0/LmFuc3dlcnM/LnJ1bkFJRmVhdHVyZXMgPz8gW10sXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uIDogXCJcIixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5IDogZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKGFuc1R5cGUgPT0gJ211bHRpcGxlSW1hZ2UnKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmRlc2NyaXB0aXZldHlwZSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgPyBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlIDogJ3RleHQnO1xyXG4gICAgICAgICAgICAgIC8vIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSA/IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlIDogW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgPSBbaXRlbV07XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5ydW5BSSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJ1bkFJO1xyXG4gICAgICAgICAgICAvLyBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucnVuQUlGZWF0dXJlcyA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJ1bkFJRmVhdHVyZXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNoZWNrbGlzdC5zZWN0aW9ucyA9IHNlY3Rpb25zO1xyXG4gICAgICBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZSA9IGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5zbGljZSgxKTtcclxuICAgICAgY2hlY2tsaXN0LmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUgPSBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZS50cmltKCk7XHJcbiAgICAgIGNoZWNrbGlzdC5jaGVja2xpc3REZXNjcmlwdGlvbiA9IGNoZWNrbGlzdD8uY2hlY2tsaXN0RGVzY3JpcHRpb24gPyBjaGVja2xpc3Q/LmNoZWNrbGlzdERlc2NyaXB0aW9uPy50cmltKCkgOiAnJztcclxuICAgICAgdGhpcy5zb3BTZXJ2aWNlLmNyZWF0ZWNoZWNrbGlzdChjaGVja2xpc3QpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmKHJlcykge1xyXG4gICAgICAgICAgaWYgKHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgaWYodHlwZT09J2NvbmZpZ3VyZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2NoZWNrTGlzdElkPSR7cmVzLmRhdGEuY2hlY2tsaXN0SWR9YCk7ICAgICBcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvbWFuYWdlL3RyYXgvY2hlY2tsaXN0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCEnLCdlcnJvcicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN3YWxUb2FzdCgnVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhJywnZXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCAnVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhU2VydmVyIEVycm9yISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBzYXZlQXNEcmFmdFBvcCh0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICAgIGltYWdlc3JjOiAgYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgdGl0bGU6YFVuc2F2ZWQgY2hhbmdlc2AsXHJcbiAgICAgICAgY29udGVudDpgRG8geW91IHdhbnQgdG8gc2F2ZSBhcyBkcmFmdD9gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6J2RyYWZ0J1xyXG4gICAgICB9XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKT0+e1xyXG4gICAgICAgIGlmKCFyZXMpIHtcclxuICAgICAgICAgIHRoaXMucG9wdXBDb3VudCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHJlcykge1xyXG4gICAgICAgICAgaWYodHlwZSA9PSAnY3JlYXRlJykge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVDaGVja2xpc3RRdWVzdGlvbnMoJ3NhdmVBc0RyYWZ0Jyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoZWNrbGlzdFF1ZXN0aW9ucygnc2F2ZUFzRHJhZnQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2hlY2tsaXN0UXVlc3Rpb25zKHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IHNlY3Rpb25zYXJyYXk6IGFueSA9IFtdO1xyXG4gICAgbGV0IGNoZWNrbGlzdDogYW55O1xyXG4gICAgXHJcbiAgICBpZighdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy52YWxpZCkge1xyXG4gICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGVudGVyIGNoZWNrbGlzdCBuYW1lISc7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSAgICAgIFxyXG4gICAgXHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLkNoZWNrbGlzdEZvcm0pO1xyXG4gICAgLy8gcmV0dXJuO1xyXG4gICAgY2hlY2tsaXN0ID0gdGhpcy5DaGVja2xpc3RGb3JtLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLkNoZWNrbGlzdEZvcm0sJ2Zvcm0nKVxyXG4gICAgaWYgKCF0aGlzLkNoZWNrbGlzdEZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5tYXJrRm9ybUNvbnRyb2xzQXNUb3VjaGVkKHRoaXMuQ2hlY2tsaXN0Rm9ybSwwKTtcclxuICAgICAgdGhpcy5zY3JvbGxUb0Vycm9ycyh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHNlY3Rpb25zYXJyYXkgPSBjaGVja2xpc3Quc2VjdGlvbnM7XHJcbiAgICBpZighdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy52YWxpZCkge1xyXG4gICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGVudGVyIGNoZWNrbGlzdCBuYW1lISc7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYodHlwZSA9PSAnc2F2ZUFzRHJhZnQnKSB7XHJcbiAgICAgIGNoZWNrbGlzdC5zdWJtaXRUeXBlID0gJ3NhdmUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hlY2tsaXN0LnN1Ym1pdFR5cGUgPSAnY29uZmlndXJlJztcclxuICAgIH1cclxuICAgIGlmKCFzZWN0aW9uc2FycmF5Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBzZWN0aW9uISc7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWN0aW9uc2FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBzZWN0aW9uTmFtZSA9IHNlY3Rpb25zYXJyYXlbaV0ubmFtZTtcclxuICAgICAgbGV0IGZpbmRFeGlzdHMgPSBzZWN0aW9uc2FycmF5LmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIGlmKGluZGV4ICE9IGkgJiYgc2VjdGlvbk5hbWUudHJpbSgpID09IGVsZS5uYW1lLnRyaW0oKSlcclxuICAgICAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgfSlcclxuICAgICAgaWYoZmluZEV4aXN0cy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChgJHtzZWN0aW9uTmFtZX0gc2VjdGlvbiBuYW1lIGlzIER1cGxpY2F0ZWRgICwnZXJyb3InKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYodHlwZSA9PSAnY29uZmlndXJlJyAmJiAhc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1BsZWFzZSBhZGQgYXRsZWFzdCBvbmUgcXVlc3Rpb24gaW4gc2VjdGlvbiEnO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLnFuYW1lID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpLnJlcGxhY2VBbGwoL1xcbi9nLCAnJylcclxuICAgICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zLmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIGlmKGluZGV4ICE9IGogJiYgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpID09IGVsZS5xbmFtZS50cmltKCkpXHJcbiAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWV9IHF1ZXN0aW9uIG5hbWUgaXMgRHVwbGljYXRlZGAgLCdlcnJvcicpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdsaW5lYXJzY2FsZScpIHtcclxuICAgICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VTdGFydCA+IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VFbmQpe1xyXG4gICAgICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUmFuZ2Ugc3RhcnQgaXMgZ3JlYXRlciB0aGFuIHJhbmdlIEVuZC4nO1xyXG4gICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSAhPSAnZGVzY3JpcHRpdmUnKSB7XHJcbiAgICAgICAgICBkZWxldGUgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uZGVzY3JpcHRpdmV0eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXS5pbmNsdWRlcyhzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlKSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlcklucHV0U3R5bGUnXSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGU7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bXCJtdWx0aVJlZmVyZW5jZUltYWdlXCJdID0gXCJcIjtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSddID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3ZhbGlkYXRpb25BbnN3ZXInXSA9IFwiXCI7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3J1bkFJJ10gPSBmYWxzZTtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10gPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3Nob3dMaW5rZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydsaW5rZWRRdWVzdGlvbiddID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFtcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJ5ZXMvbm9cIl0uaW5jbHVkZXMoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10gPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzICE9PSBudWxsICYmXHJcbiAgICAgICAgICAhQXJyYXkuaXNBcnJheShzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzKSB8fCBbJ2Rlc2NyaXB0aXZlJywnZGF0ZSddLmluY2x1ZGVzKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0ge1xyXG4gICAgICAgICAgICAgIFwiYW5zd2VyXCI6ICcnLFxyXG4gICAgICAgICAgICAgIFwiYW5zd2Vyb3B0aW9uTnVtYmVyXCI6IDEsXHJcbiAgICAgICAgICAgICAgXCJzb3BGbGFnXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvblwiOiBmYWxzZSxcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25BbnN3ZXJcIjogXCJcIixcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25UeXBlXCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlIDogW10sXHJcbiAgICAgICAgICAgICAgXCJzaG93TGlua2VkXCI6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgXCJsaW5rZWRRdWVzdGlvblwiOjAsXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6JycsXHJcbiAgICAgICAgICAgICAgLi4uKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ211bHRpcGxlSW1hZ2UnID8geydkZXNjcmlwdGl2ZXR5cGUnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZX06e30pLFxyXG4gICAgICAgICAgICAgIC4uLihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdsaW5lYXJzY2FsZScgPyB7J3JhbmdlU3RhcnQnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlU3RhcnR9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnbGluZWFyc2NhbGUnID8geydyYW5nZUVuZCc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ucmFuZ2VFbmR9Ont9KSxcclxuICAgICAgICAgICAgICBydW5BSTpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUlGZWF0dXJlcyA/PyBbXSxcclxuICAgICAgICAgICAgICBydW5BSURlc2NyaXB0aW9uOiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUlEZXNjcmlwdGlvbiA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uIDogXCJcIixcclxuICAgICAgICAgICAgICAvLyBcImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAvLyBcImFuc3dlcklucHV0U3R5bGVcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYW5zd2VySW5wdXRTdHlsZSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFuc3dlcklucHV0U3R5bGUgOiBcIlwiLFxyXG4gICAgICAgICAgICAgIC8vIFwicnVuQUlcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUkgOiBmYWxzZSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5IDogZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLnJ1bkFJID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSTtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucnVuQUlGZWF0dXJlcyA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUlGZWF0dXJlcztcclxuICAgICAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5kZXNjcmlwdGl2ZXR5cGUgPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgOiAndGV4dCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9IFtpdGVtXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNoZWNrbGlzdC5zZWN0aW9ucyA9IHNlY3Rpb25zYXJyYXk7XHJcbiAgICBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZSA9IGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5zbGljZSgxKTtcclxuICAgIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lID0gY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpO1xyXG4gICAgY2hlY2tsaXN0LmNoZWNrbGlzdERlc2NyaXB0aW9uID0gY2hlY2tsaXN0Py5jaGVja2xpc3REZXNjcmlwdGlvbiA/IGNoZWNrbGlzdD8uY2hlY2tsaXN0RGVzY3JpcHRpb24/LnRyaW0oKSA6ICcnO1xyXG4gICAgY2hlY2tsaXN0LmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgIHRoaXMuc29wU2VydmljZS5nZXR1cGRhdGVjaGVja2xpc3QodGhpcy5lZGl0dmFsdWUsIGNoZWNrbGlzdCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcykge1xyXG4gICAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBpZih0eXBlPT0nY29uZmlndXJlJykge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2NoZWNrTGlzdElkPSR7cmVzLmRhdGEuY2hlY2tsaXN0SWR9JnNob3dFZGl0PXRydWVgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoJ1VuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IScsJ2Vycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gdXBkYXRlIGNoZWNrbGlzdCEnLCdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ1VuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IVNlcnZlciBFcnJvciEnO1xyXG4gICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQoY29udHJvbDogRm9ybUdyb3VwIHwgRm9ybUFycmF5LHNlY3Rpb25JbmRleD86IG51bWJlcikge1xyXG4gICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcblxyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgZm9yIChjb25zdCBjb250cm9sTmFtZSBpbiBjb250cm9sLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgdGhpcy5tYXJrRm9ybUNvbnRyb2xzQXNUb3VjaGVkKGNvbnRyb2wuZ2V0KGNvbnRyb2xOYW1lKSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgY29udHJvbC5jb250cm9scy5mb3JFYWNoKGZvcm1Db250cm9sID0+IHtcclxuICAgICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQoZm9ybUNvbnRyb2wgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0Vycm9ycyhzZWN0aW9uczogRm9ybUFycmF5KSB7XHJcbiAgICBmb3IobGV0IGk9MDtpPHNlY3Rpb25zLmxlbmd0aDtpKyspIHtcclxuICAgICAgbGV0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgIGlmIChzZWN0aW9uLmludmFsaWQpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICBmb3IobGV0IGo9MDtqPHF1ZXN0aW9ucy5sZW5ndGg7aisrKSB7XHJcbiAgICAgICAgICBsZXQgcXVlc3Rpb24gPSBxdWVzdGlvbnMuYXQoaikgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocXVlc3Rpb24sJ3F1ZXN0aW9uJyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAocXVlc3Rpb24uaW52YWxpZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvdyA9IGk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1F1ZXN0aW9uKGksIGopO1xyXG4gICAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KCdQbGVhc2UgZmlsbCBvdXQgYWxsIHRoZSBmaWVsZHMhJywnZXJyb3InKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzd2FsVG9hc3QoZXJyOiBzdHJpbmcsdHlwZT86c3RyaW5nLGljb24/OiBzdHJpbmcpIHtcclxuICAgIGlmKHR5cGUgPT0gJ2Vycm9yJykge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChlcnIpO1xyXG4gICAgfVxyXG4gICAgLy8gU3dhbC5maXJlKHtcclxuICAgIC8vICAgdG9hc3Q6IHRydWUsXHJcbiAgICAvLyAgIC4uLiggaWNvbiA/IHsgaWNvbkh0bWw6IGljb24gfSA6IHt9KSxcclxuICAgIC8vICAgLy8gdGl0bGVUZXh0OiBgQ2hlY2tsaXN0IEZvcm0gRXJyb3JgLFxyXG4gICAgLy8gICBodG1sOiBgPGRpdiBjbGFzcz1cInJvdyBcIj5cclxuICAgIC8vICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XHJcbiAgICAvLyAgIDxkaXYgY2xhc3M9XCJ0b2FzdHRpdGlsZVwiPiR7ZXJyfTwvZGl2PlxyXG4gICAgLy8gICA8L2Rpdj5cclxuICAgICBcclxuICAgIC8vICAgPC9kaXY+YCxcclxuICAgIC8vICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgLy8gICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgICAvLyAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAgIC8vICAgdGltZXI6IDYwMDAsXHJcbiAgICAvLyAgIHRpbWVyUHJvZ3Jlc3NCYXI6IHRydWUsXHJcbiAgICAvLyAgIGRpZE9wZW46ICh0b2FzdCkgPT4ge1xyXG4gICAgLy8gICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBTd2FsLnN0b3BUaW1lcilcclxuICAgIC8vICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgU3dhbC5yZXN1bWVUaW1lcilcclxuICAgIC8vICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpPy52YWwoJycpO1xyXG4gICAgLy8gICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIFJ1bkFJKHNJZHg6bnVtYmVyLHFJZHg6IG51bWJlcixhbnNJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBsZXQgZGlhbG9nUmVmOiBhbnk7XHJcbiAgICBsZXQgcXVlc3Rpb246IGFueSA9IHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3FuYW1lJyk/LnZhbHVlO1xyXG4gICAgaWYodGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdydW5BSScsYW5zSWR4KT8udmFsdWUgPT0gZmFsc2UpIHtcclxuICAgICAgaWYoIXF1ZXN0aW9uIHx8ICF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gIXF1ZXN0aW9uID8gJ1BsZWFzZSBlbnRlciBxdWVzdGlvbiB0byBjb250aW51ZSEnIDogJ1BsZWFzZSBlbnRlciBDaGVja2xpc3QgTmFtZSB0byBjb250aW51ZSEnO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTsgICAgICAgIFxyXG4gICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCwgcUlkeCxmYWxzZSxhbnNJZHgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTIzLjM1NjQgMTkuMzUyNUMyNC4xNzQ4IDE4LjczMjcgMjUuMTczOCAxOC4zOTg1IDI2LjIwMDQgMTguNDAwOUMyNi41NTQ5IDE4LjM5MyAyNi45MDU3IDE4LjQ3NDYgMjcuMjIwNCAxOC42MzgyQzI3LjUzNSAxOC44MDE4IDI3LjgwMzMgMTkuMDQyMSAyOC4wMDA0IDE5LjMzNjlDMjguMTk3NSAxOS4wNDIxIDI4LjQ2NTggMTguODAxOCAyOC43ODA0IDE4LjYzODJDMjkuMDk1IDE4LjQ3NDYgMjkuNDQ1OSAxOC4zOTMgMjkuODAwNCAxOC40MDA5QzMwLjgyNyAxOC4zOTg1IDMxLjgyNiAxOC43MzI3IDMyLjY0NDQgMTkuMzUyNUMzMy4yNzQ0IDE5Ljg0MjEgMzMuNzYwNCAyMC41MjAxIDMzLjkzMiAyMS4zMzk3QzM0LjMyNTYgMjEuMzY5NyAzNC42ODU2IDIxLjUzMjkgMzQuOTg4IDIxLjc3ODlDMzUuNDQ2NCAyMi4xNTA5IDM1Ljc4IDIyLjcwODkgMzUuOTkgMjMuMjk5M0MzNi4zMTg4IDI0LjIxNzMgMzYuNDA3NiAyNS4zODczIDM2LjA2NjggMjYuMzgzM0MzNi4xNTMyIDI2LjQyNDEgMzYuMjM4NCAyNi40NzIxIDM2LjMyMTIgMjYuNTI3M0MzNi42NTEyIDI2Ljc0NjkgMzYuOTAyIDI3LjA2MTMgMzcuMDg2OCAyNy40MzIxQzM3LjQ1MDQgMjguMTU4MSAzNy42MDA0IDI5LjE3MDkgMzcuNjAwNCAzMC40MDA5QzM3LjYwMDQgMzEuNzcwMSAzNy4wNzg0IDMyLjY4OTMgMzYuNDE2IDMzLjI1NjlDMzYuMDQ5NyAzMy41NzEgMzUuNjE3NCAzMy43OTg2IDM1LjE1MTIgMzMuOTIyOUMzNS4wMzEyIDM0LjU5MjUgMzQuNjk1MiAzNS4zNjc3IDM0LjE2ODQgMzYuMDI1M0MzMy40ODQ0IDM2Ljg4MzMgMzIuNDIzNiAzNy42MDA5IDMxLjAwMDQgMzcuNjAwOUMyOS44NzI0IDM3LjYwMDkgMjguOTc0OCAzNi45NzY5IDI4LjM5MTYgMzYuMzY0OUMyOC4yNTIyIDM2LjIxODggMjguMTIxNSAzNi4wNjQ1IDI4LjAwMDQgMzUuOTAyOUMyNy44NzkzIDM2LjA2NDUgMjcuNzQ4NiAzNi4yMTg4IDI3LjYwOTIgMzYuMzY0OUMyNy4wMjYgMzYuOTc2OSAyNi4xMjk2IDM3LjYwMDkgMjUuMDAwNCAzNy42MDA5QzIzLjU3NzIgMzcuNjAwOSAyMi41MTc2IDM2Ljg4MzMgMjEuODMyNCAzNi4wMjUzQzIxLjM0MDEgMzUuNDE0IDIxLjAwMjkgMzQuNjkyNyAyMC44NDk2IDMzLjkyMjlDMjAuMzgzNCAzMy43OTg2IDE5Ljk1MTEgMzMuNTcxIDE5LjU4NDggMzMuMjU2OUMxOC45MjI0IDMyLjY4OTMgMTguNDAwNCAzMS43Njg5IDE4LjQwMDQgMzAuNDAwOUMxOC40MDA0IDI5LjE3MDkgMTguNTUxNiAyOC4xNTY5IDE4LjkxNCAyNy40MzIxQzE5LjA4NTcgMjcuMDY4NSAxOS4zNDk3IDI2Ljc1NjEgMTkuNjc5NiAyNi41MjYxQzE5Ljc2MDYgMjYuNDcyNSAxOS44NDU3IDI2LjQyNTEgMTkuOTM0IDI2LjM4NDVDMTkuNTkzMiAyNS4zODYxIDE5LjY4MiAyNC4yMTczIDIwLjAxMDggMjMuMjk5M0MyMC4yMjA4IDIyLjcwODkgMjAuNTU0NCAyMi4xNTA5IDIxLjAxMjggMjEuNzc4OUMyMS4zMTUyIDIxLjUzMjkgMjEuNjc1MiAyMS4zNzA5IDIyLjA2ODggMjEuMzM5N0MyMi4yNDE2IDIwLjUyMDEgMjIuNzI2NCAxOS44NDIxIDIzLjM1NjQgMTkuMzUyNVpNMjcuNDAwNCAyMS40MDA5VjIxLjM4ODlMMjcuMzk4IDIxLjMyODlDMjcuMzgwMyAyMS4wMTYxIDI3LjMxODEgMjAuNzA3NCAyNy4yMTMyIDIwLjQxMjFDMjcuMTM4NSAyMC4xODkyIDI3LjAxMTMgMTkuOTg3NiAyNi44NDI0IDE5LjgyNDFDMjYuNjY1MSAxOS42Njk4IDI2LjQzNTIgMTkuNTg5OCAyNi4yMDA0IDE5LjYwMDlDMjUuNDQwNyAxOS41OTgzIDI0LjcwMDkgMTkuODQzNSAyNC4wOTMyIDIwLjI5OTNDMjMuNTM2NCAyMC43MzI1IDIzLjIwMDQgMjEuMzE5MyAyMy4yMDA0IDIyLjAwMDlDMjMuMjAwMyAyMi4wOTU5IDIzLjE3NzcgMjIuMTg5NiAyMy4xMzQzIDIyLjI3NDFDMjMuMDkxIDIyLjM1ODcgMjMuMDI4MiAyMi40MzE4IDIyLjk1MTEgMjIuNDg3M0MyMi44NzQgMjIuNTQyOCAyMi43ODQ4IDIyLjU3OTMgMjIuNjkwOSAyMi41OTM2QzIyLjU5NjkgMjIuNjA3OSAyMi41MDA5IDIyLjU5OTcgMjIuNDEwOCAyMi41Njk3QzIyLjE4NTIgMjIuNDk1MyAyMS45ODM2IDIyLjUzNzMgMjEuNzY4OCAyMi43MTAxQzIxLjUzMzYgMjIuOTAyMSAyMS4zMDQ0IDIzLjI0MjkgMjEuMTQgMjMuNzAyNUMyMC44MDUyIDI0LjY0MDkgMjAuODQgMjUuNzc3MyAyMS4yOTk2IDI2LjQ2ODVDMjEuMzY1MiAyNi41NjcgMjEuNDAwMyAyNi42ODI2IDIxLjQwMDQgMjYuODAwOUgyMi4zMDA0QzIzLjAxNjUgMjYuODAwOSAyMy43MDMyIDI3LjA4NTQgMjQuMjA5NiAyNy41OTE3QzI0LjcxNTkgMjguMDk4MSAyNS4wMDA0IDI4Ljc4NDggMjUuMDAwNCAyOS41MDA5VjI5LjkwMjlDMjUuNDAwNyAzMC4wNDQ1IDI1LjczODEgMzAuMzIzIDI1Ljk1MyAzMC42ODkyQzI2LjE2NzggMzEuMDU1NSAyNi4yNDYzIDMxLjQ4NTkgMjYuMTc0NSAzMS45MDQ0QzI2LjEwMjcgMzIuMzIyOSAyNS44ODUyIDMyLjcwMjUgMjUuNTYwNiAzMi45NzYyQzI1LjIzNTkgMzMuMjQ5OSAyNC44MjUgMzMuNCAyNC40MDA0IDMzLjRDMjMuOTc1OCAzMy40IDIzLjU2NDggMzMuMjQ5OSAyMy4yNDAyIDMyLjk3NjJDMjIuOTE1NiAzMi43MDI1IDIyLjY5ODEgMzIuMzIyOSAyMi42MjYzIDMxLjkwNDRDMjIuNTU0NSAzMS40ODU5IDIyLjYzMyAzMS4wNTU1IDIyLjg0NzggMzAuNjg5MkMyMy4wNjI3IDMwLjMyMyAyMy40MDAxIDMwLjA0NDUgMjMuODAwNCAyOS45MDI5VjI5LjUwMDlDMjMuODAwNCAyOC42NzI5IDIzLjEyODQgMjguMDAwOSAyMi4zMDA0IDI4LjAwMDlIMjAuMjAwNEMyMC4xMjg3IDI4LjAwMDggMjAuMDU3NSAyNy45ODc4IDE5Ljk5MDQgMjcuOTYyNUwxOS45ODY4IDI3Ljk2OTdDMTkuNzQ5MiAyOC40NDM3IDE5LjYwMDQgMjkuMjMwOSAxOS42MDA0IDMwLjQwMDlDMTkuNjAwNCAzMS40MzE3IDE5Ljk3ODQgMzIuMDEyNSAyMC4zNjYgMzIuMzQ0OUMyMC43ODI0IDMyLjcwMjUgMjEuMjQ0NCAzMi44MDA5IDIxLjQwMDQgMzIuODAwOUMyMS41NTk1IDMyLjgwMDkgMjEuNzEyMSAzMi44NjQxIDIxLjgyNDcgMzIuOTc2N0MyMS45MzcyIDMzLjA4OTIgMjIuMDAwNCAzMy4yNDE4IDIyLjAwMDQgMzMuNDAwOUMyMi4wMDA0IDMzLjg0MjUgMjIuMjQwNCAzNC42MTQxIDIyLjc2ODQgMzUuMjc2NUMyMy4yODMyIDM1LjkxODUgMjQuMDIzNiAzNi40MDA5IDI1LjAwMDQgMzYuNDAwOUMyNS42NzI0IDM2LjQwMDkgMjYuMjc0OCAzNi4wMjUzIDI2Ljc0MDQgMzUuNTM2OUMyNi45Njk2IDM1LjI5NjkgMjcuMTQ4NCAzNS4wNDg1IDI3LjI2NDggMzQuODQ0NUMyNy4zMTc4IDM0Ljc1NDEgMjcuMzYzMSAzNC42NTkzIDI3LjQwMDQgMzQuNTYxM1YyNS4wMDA5SDI2LjA5ODRDMjUuOTU2OSAyNS40MDEyIDI1LjY3ODMgMjUuNzM4NyAyNS4zMTIxIDI1Ljk1MzVDMjQuOTQ1OSAyNi4xNjgzIDI0LjUxNTQgMjYuMjQ2OCAyNC4wOTcgMjYuMTc1QzIzLjY3ODUgMjYuMTAzMiAyMy4yOTg4IDI1Ljg4NTggMjMuMDI1MSAyNS41NjExQzIyLjc1MTQgMjUuMjM2NSAyMi42MDEzIDI0LjgyNTUgMjIuNjAxMyAyNC40MDA5QzIyLjYwMTMgMjMuOTc2MyAyMi43NTE0IDIzLjU2NTQgMjMuMDI1MSAyMy4yNDA3QzIzLjI5ODggMjIuOTE2MSAyMy42Nzg1IDIyLjY5ODYgMjQuMDk3IDIyLjYyNjhDMjQuNTE1NCAyMi41NTUgMjQuOTQ1OSAyMi42MzM1IDI1LjMxMjEgMjIuODQ4M0MyNS42NzgzIDIzLjA2MzIgMjUuOTU2OSAyMy40MDA2IDI2LjA5ODQgMjMuODAwOUgyNy40MDA0VjIxLjQwMDlaTTI4LjYwMDQgMzMuMzk5N1YzNC41NjAxQzI4LjYzNzcgMzQuNjU4MSAyOC42ODMgMzQuNzUyOCAyOC43MzYgMzQuODQzM0MyOC44NTM2IDM1LjA0NzMgMjkuMDMxMiAzNS4yOTU3IDI5LjI1OTIgMzUuNTM1N0MyOS43MjYgMzYuMDI0MSAzMC4zMjk2IDM2LjM5OTcgMzEuMDAwNCAzNi4zOTk3QzMxLjk3NzIgMzYuMzk5NyAzMi43MTc2IDM1LjkxNzMgMzMuMjMyNCAzNS4yNzUzQzMzLjc2MDQgMzQuNjEyOSAzNC4wMDA0IDMzLjg0MTMgMzQuMDAwNCAzMy4zOTk3QzM0LjAwMDQgMzMuMjQwNiAzNC4wNjM2IDMzLjA4OCAzNC4xNzYxIDMyLjk3NTVDMzQuMjg4NiAzMi44NjI5IDM0LjQ0MTMgMzIuNzk5NyAzNC42MDA0IDMyLjc5OTdDMzQuNzU2NCAzMi43OTk3IDM1LjIxODQgMzIuNzAxMyAzNS42MzQ4IDMyLjM0MzdDMzYuMDIyNCAzMi4wMTEzIDM2LjQwMDQgMzEuNDMwNSAzNi40MDA0IDMwLjM5OTdDMzYuNDAwNCAyOS4yMjk3IDM2LjI1MDQgMjguNDQzNyAzNi4wMTQgMjcuOTY4NUMzNS45MzQ5IDI3Ljc5MTYgMzUuODEwOCAyNy42Mzg1IDM1LjY1NCAyNy41MjQ1QzM1LjUxODkgMjcuNDM4MSAzNS4zNjA2IDI3LjM5NSAzNS4yMDA0IDI3LjQwMDlDMzUuMDkxOSAyNy40MDA5IDM0Ljk4NTQgMjcuMzcxNCAzNC44OTIzIDI3LjMxNTZDMzQuNzk5MiAyNy4yNTk4IDM0LjcyMyAyNy4xNzk4IDM0LjY3MTcgMjcuMDg0MUMzNC42MjA1IDI2Ljk4ODQgMzQuNTk2MiAyNi44ODA3IDM0LjYwMTQgMjYuNzcyM0MzNC42MDY2IDI2LjY2MzggMzQuNjQxMSAyNi41NTg5IDM0LjcwMTIgMjYuNDY4NUMzNS4xNjIgMjUuNzc3MyAzNS4xOTU2IDI0LjY0MDkgMzQuODYwOCAyMy43MDI1QzM0LjY5NjQgMjMuMjQyOSAzNC40NjcyIDIyLjkwMDkgMzQuMjMyIDIyLjcxMDFDMzQuMDE3MiAyMi41MzczIDMzLjgxNTYgMjIuNDk0MSAzMy41OSAyMi41Njk3QzMzLjQ5OTggMjIuNTk5NyAzMy40MDM4IDIyLjYwNzkgMzMuMzA5OSAyMi41OTM2QzMzLjIxNiAyMi41NzkzIDMzLjEyNjggMjIuNTQyOCAzMy4wNDk3IDIyLjQ4NzNDMzIuOTcyNiAyMi40MzE4IDMyLjkwOTggMjIuMzU4NyAzMi44NjY0IDIyLjI3NDFDMzIuODIzMSAyMi4xODk2IDMyLjgwMDUgMjIuMDk1OSAzMi44MDA0IDIyLjAwMDlDMzIuODAwNCAyMS4zMTkzIDMyLjQ2NDQgMjAuNzMyNSAzMS45MDY0IDIwLjI5OTNDMzEuMjk5IDE5Ljg0MzggMzAuNTU5NiAxOS41OTg2IDI5LjgwMDQgMTkuNjAwOUMyOS41NjU2IDE5LjU4OTggMjkuMzM1NiAxOS42Njk4IDI5LjE1ODQgMTkuODI0MUMyOC45ODg5IDE5Ljk4NzQgMjguODYxMyAyMC4xODkxIDI4Ljc4NjQgMjAuNDEyMUMyOC42NzIxIDIwLjcyNTYgMjguNjA5MyAyMS4wNTU0IDI4LjYwMDQgMjEuMzg4OVYzMi4yMDA5SDI5LjUwMDRDMzAuMzI4NCAzMi4yMDA5IDMxLjAwMDQgMzEuNTI4OSAzMS4wMDA0IDMwLjcwMDlWMjguNDk4OUMzMC42MDAxIDI4LjM1NzQgMzAuMjYyNyAyOC4wNzg5IDMwLjA0NzggMjcuNzEyNkMyOS44MzMgMjcuMzQ2NCAyOS43NTQ1IDI2LjkxNiAyOS44MjYzIDI2LjQ5NzVDMjkuODk4MSAyNi4wNzkgMzAuMTE1NiAyNS42OTkzIDMwLjQ0MDIgMjUuNDI1N0MzMC43NjQ4IDI1LjE1MiAzMS4xNzU4IDI1LjAwMTkgMzEuNjAwNCAyNS4wMDE5QzMyLjAyNSAyNS4wMDE5IDMyLjQzNTkgMjUuMTUyIDMyLjc2MDYgMjUuNDI1N0MzMy4wODUyIDI1LjY5OTMgMzMuMzAyNyAyNi4wNzkgMzMuMzc0NSAyNi40OTc1QzMzLjQ0NjMgMjYuOTE2IDMzLjM2NzggMjcuMzQ2NCAzMy4xNTMgMjcuNzEyNkMzMi45MzgxIDI4LjA3ODkgMzIuNjAwNyAyOC4zNTc0IDMyLjIwMDQgMjguNDk4OVYzMC43MDA5QzMyLjIwMDQgMzEuNDE3IDMxLjkxNTkgMzIuMTAzOCAzMS40MDk2IDMyLjYxMDFDMzAuOTAzMiAzMy4xMTY1IDMwLjIxNjUgMzMuNDAwOSAyOS41MDA0IDMzLjQwMDlIMjguNjAwNFYzMy4zOTk3Wk0yMy44MDA0IDI0LjQwMDlDMjMuODAwNCAyNC41NjAxIDIzLjg2MzYgMjQuNzEyNyAyMy45NzYxIDI0LjgyNTJDMjQuMDg4NiAyNC45Mzc3IDI0LjI0MTMgMjUuMDAwOSAyNC40MDA0IDI1LjAwMDlDMjQuNTU5NSAyNS4wMDA5IDI0LjcxMjEgMjQuOTM3NyAyNC44MjQ3IDI0LjgyNTJDMjQuOTM3MiAyNC43MTI3IDI1LjAwMDQgMjQuNTYwMSAyNS4wMDA0IDI0LjQwMDlDMjUuMDAwNCAyNC4yNDE4IDI0LjkzNzIgMjQuMDg5MiAyNC44MjQ3IDIzLjk3NjdDMjQuNzEyMSAyMy44NjQxIDI0LjU1OTUgMjMuODAwOSAyNC40MDA0IDIzLjgwMDlDMjQuMjQxMyAyMy44MDA5IDI0LjA4ODYgMjMuODY0MSAyMy45NzYxIDIzLjk3NjdDMjMuODYzNiAyNC4wODkyIDIzLjgwMDQgMjQuMjQxOCAyMy44MDA0IDI0LjQwMDlaTTMxLjYwMDQgMjcuNDAwOUMzMS43NTk1IDI3LjQwMDkgMzEuOTEyMSAyNy4zMzc3IDMyLjAyNDcgMjcuMjI1MkMzMi4xMzcyIDI3LjExMjcgMzIuMjAwNCAyNi45NjAxIDMyLjIwMDQgMjYuODAwOUMzMi4yMDA0IDI2LjY0MTggMzIuMTM3MiAyNi40ODkyIDMyLjAyNDcgMjYuMzc2N0MzMS45MTIxIDI2LjI2NDEgMzEuNzU5NSAyNi4yMDA5IDMxLjYwMDQgMjYuMjAwOUMzMS40NDEzIDI2LjIwMDkgMzEuMjg4NiAyNi4yNjQxIDMxLjE3NjEgMjYuMzc2N0MzMS4wNjM2IDI2LjQ4OTIgMzEuMDAwNCAyNi42NDE4IDMxLjAwMDQgMjYuODAwOUMzMS4wMDA0IDI2Ljk2MDEgMzEuMDYzNiAyNy4xMTI3IDMxLjE3NjEgMjcuMjI1MkMzMS4yODg2IDI3LjMzNzcgMzEuNDQxMyAyNy40MDA5IDMxLjYwMDQgMjcuNDAwOVpNMjQuNDAwNCAzMS4wMDA5QzI0LjI0MTMgMzEuMDAwOSAyNC4wODg2IDMxLjA2NDEgMjMuOTc2MSAzMS4xNzY3QzIzLjg2MzYgMzEuMjg5MiAyMy44MDA0IDMxLjQ0MTggMjMuODAwNCAzMS42MDA5QzIzLjgwMDQgMzEuNzYwMSAyMy44NjM2IDMxLjkxMjcgMjMuOTc2MSAzMi4wMjUyQzI0LjA4ODYgMzIuMTM3NyAyNC4yNDEzIDMyLjIwMDkgMjQuNDAwNCAzMi4yMDA5QzI0LjU1OTUgMzIuMjAwOSAyNC43MTIxIDMyLjEzNzcgMjQuODI0NyAzMi4wMjUyQzI0LjkzNzIgMzEuOTEyNyAyNS4wMDA0IDMxLjc2MDEgMjUuMDAwNCAzMS42MDA5QzI1LjAwMDQgMzEuNDQxOCAyNC45MzcyIDMxLjI4OTIgMjQuODI0NyAzMS4xNzY3QzI0LjcxMjEgMzEuMDY0MSAyNC41NTk1IDMxLjAwMDkgMjQuNDAwNCAzMS4wMDA5WlwiIGZpbGw9XCIjMDM5ODU1XCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICAgIHRpdGxlOiBgUnVuIEFJIG9uIGltYWdlIHVwbG9hZGVkYCxcclxuICAgICAgICAgIGNvbnRlbnQ6IGBVc2UgdGhlIHBvd2VyIG9mIEFJIHRvIGNvbXBhcmUgYW5kIGRldGVjdCBhbm9tYWxpZXMgYmV0d2VlbiB1cGxvYWRlZCBhbmQgcmVmZXJlbmNlIGltYWdlLmAsXHJcbiAgICAgICAgICBpbnB1dGxhYmVsMTogJ1F1ZXN0aW9uJyxcclxuICAgICAgICAgIGlucHV0dHlwZTE6ICd0ZXh0JyxcclxuICAgICAgICAgIGlucHV0MTogJ3RydWUnLFxyXG4gICAgICAgICAgaW5wdXRsYWJlbDI6ICdTcGVjaWZ5IHlvdXIgcmVxdWVzdCcsXHJcbiAgICAgICAgICBpbnB1dHR5cGUyOiAndGV4dCcsXHJcbiAgICAgICAgICByZXNUeXBlOiAnY3VzdG9tJyxcclxuICAgICAgICAgIGlucHV0MjogJ3RydWUnLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXIxOiBxdWVzdGlvbixcclxuICAgICAgICAgIHBsYWNlaG9sZGVyMjogJ1BsZWFzZSBjb21wYXJlIHRoZSB1cGxvYWRlZCBpbWFnZXMgYS4uJyxcclxuICAgICAgICAgIGJ1dHRvbnR5cGU6ICdSZXF1ZXN0J1xyXG4gICAgICAgIH1cclxuICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5zdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgICAgIGxldCByZXE6IGFueSA9IHtcclxuICAgICAgICAgICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uTmFtZTogcXVlc3Rpb24sXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogcmVzLmRhdGEucmVxdWVzdFRleHQsXHJcbiAgICAgICAgICAgICAgYW5zd2VyVHlwZTogXCJpbWFnZVwiLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIixhbnNJZHgpPy52YWx1ZSB8fCAnJyxcclxuICAgICAgICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zb3BTZXJ2aWNlLnJ1bkFJSW5zZXJ0KHJlcSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKGFwaXJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFwaXJlcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFwaXJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUlEZXNjcmlwdGlvbicsYW5zSWR4KT8ucGF0Y2hWYWx1ZShyZXMuZGF0YS5yZXF1ZXN0VGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgIGA8c3BhbiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDM2cHg7XCI+JHthcGlyZXMuZGF0YS5tZXNzYWdlfTwvc3Bhbj5gLFxyXG4gICAgICAgICAgICAgICAgICAgIGA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9JY29ucy9zb3AtcnVuYWktdG9zdGljb24uc3ZnXCIgLz5gXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIC8vIDxhIFxyXG4gICAgICAgICAgICAgICAgICAvLyAgICAgICBocmVmPVwiL3N1cHBvcnQvdmlldy10aWNrZXRzXCIgXHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgIHRhcmdldD1cIl9ibGFua1wiIFxyXG4gICAgICAgICAgICAgICAgICAvLyAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCwgIzAwOUJGMyk7Zm9udC1mYW1pbHk6IFJvYm90bztmb250LXNpemU6IDE1cHg7Zm9udC13ZWlnaHQ6IDcwMDt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgVmlldyBUaWNrZXRcclxuICAgICAgICAgICAgICAgICAgLy8gICA8L2E+XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsdHJ1ZSxhbnNJZHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsdHJ1ZSxhbnNJZHgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LHRydWUsYW5zSWR4KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsZmFsc2UsYW5zSWR4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTIzLjM1NjQgMTkuMzUyNUMyNC4xNzQ4IDE4LjczMjcgMjUuMTczOCAxOC4zOTg1IDI2LjIwMDQgMTguNDAwOUMyNi41NTQ5IDE4LjM5MyAyNi45MDU3IDE4LjQ3NDYgMjcuMjIwNCAxOC42MzgyQzI3LjUzNSAxOC44MDE4IDI3LjgwMzMgMTkuMDQyMSAyOC4wMDA0IDE5LjMzNjlDMjguMTk3NSAxOS4wNDIxIDI4LjQ2NTggMTguODAxOCAyOC43ODA0IDE4LjYzODJDMjkuMDk1IDE4LjQ3NDYgMjkuNDQ1OSAxOC4zOTMgMjkuODAwNCAxOC40MDA5QzMwLjgyNyAxOC4zOTg1IDMxLjgyNiAxOC43MzI3IDMyLjY0NDQgMTkuMzUyNUMzMy4yNzQ0IDE5Ljg0MjEgMzMuNzYwNCAyMC41MjAxIDMzLjkzMiAyMS4zMzk3QzM0LjMyNTYgMjEuMzY5NyAzNC42ODU2IDIxLjUzMjkgMzQuOTg4IDIxLjc3ODlDMzUuNDQ2NCAyMi4xNTA5IDM1Ljc4IDIyLjcwODkgMzUuOTkgMjMuMjk5M0MzNi4zMTg4IDI0LjIxNzMgMzYuNDA3NiAyNS4zODczIDM2LjA2NjggMjYuMzgzM0MzNi4xNTMyIDI2LjQyNDEgMzYuMjM4NCAyNi40NzIxIDM2LjMyMTIgMjYuNTI3M0MzNi42NTEyIDI2Ljc0NjkgMzYuOTAyIDI3LjA2MTMgMzcuMDg2OCAyNy40MzIxQzM3LjQ1MDQgMjguMTU4MSAzNy42MDA0IDI5LjE3MDkgMzcuNjAwNCAzMC40MDA5QzM3LjYwMDQgMzEuNzcwMSAzNy4wNzg0IDMyLjY4OTMgMzYuNDE2IDMzLjI1NjlDMzYuMDQ5NyAzMy41NzEgMzUuNjE3NCAzMy43OTg2IDM1LjE1MTIgMzMuOTIyOUMzNS4wMzEyIDM0LjU5MjUgMzQuNjk1MiAzNS4zNjc3IDM0LjE2ODQgMzYuMDI1M0MzMy40ODQ0IDM2Ljg4MzMgMzIuNDIzNiAzNy42MDA5IDMxLjAwMDQgMzcuNjAwOUMyOS44NzI0IDM3LjYwMDkgMjguOTc0OCAzNi45NzY5IDI4LjM5MTYgMzYuMzY0OUMyOC4yNTIyIDM2LjIxODggMjguMTIxNSAzNi4wNjQ1IDI4LjAwMDQgMzUuOTAyOUMyNy44NzkzIDM2LjA2NDUgMjcuNzQ4NiAzNi4yMTg4IDI3LjYwOTIgMzYuMzY0OUMyNy4wMjYgMzYuOTc2OSAyNi4xMjk2IDM3LjYwMDkgMjUuMDAwNCAzNy42MDA5QzIzLjU3NzIgMzcuNjAwOSAyMi41MTc2IDM2Ljg4MzMgMjEuODMyNCAzNi4wMjUzQzIxLjM0MDEgMzUuNDE0IDIxLjAwMjkgMzQuNjkyNyAyMC44NDk2IDMzLjkyMjlDMjAuMzgzNCAzMy43OTg2IDE5Ljk1MTEgMzMuNTcxIDE5LjU4NDggMzMuMjU2OUMxOC45MjI0IDMyLjY4OTMgMTguNDAwNCAzMS43Njg5IDE4LjQwMDQgMzAuNDAwOUMxOC40MDA0IDI5LjE3MDkgMTguNTUxNiAyOC4xNTY5IDE4LjkxNCAyNy40MzIxQzE5LjA4NTcgMjcuMDY4NSAxOS4zNDk3IDI2Ljc1NjEgMTkuNjc5NiAyNi41MjYxQzE5Ljc2MDYgMjYuNDcyNSAxOS44NDU3IDI2LjQyNTEgMTkuOTM0IDI2LjM4NDVDMTkuNTkzMiAyNS4zODYxIDE5LjY4MiAyNC4yMTczIDIwLjAxMDggMjMuMjk5M0MyMC4yMjA4IDIyLjcwODkgMjAuNTU0NCAyMi4xNTA5IDIxLjAxMjggMjEuNzc4OUMyMS4zMTUyIDIxLjUzMjkgMjEuNjc1MiAyMS4zNzA5IDIyLjA2ODggMjEuMzM5N0MyMi4yNDE2IDIwLjUyMDEgMjIuNzI2NCAxOS44NDIxIDIzLjM1NjQgMTkuMzUyNVpNMjcuNDAwNCAyMS40MDA5VjIxLjM4ODlMMjcuMzk4IDIxLjMyODlDMjcuMzgwMyAyMS4wMTYxIDI3LjMxODEgMjAuNzA3NCAyNy4yMTMyIDIwLjQxMjFDMjcuMTM4NSAyMC4xODkyIDI3LjAxMTMgMTkuOTg3NiAyNi44NDI0IDE5LjgyNDFDMjYuNjY1MSAxOS42Njk4IDI2LjQzNTIgMTkuNTg5OCAyNi4yMDA0IDE5LjYwMDlDMjUuNDQwNyAxOS41OTgzIDI0LjcwMDkgMTkuODQzNSAyNC4wOTMyIDIwLjI5OTNDMjMuNTM2NCAyMC43MzI1IDIzLjIwMDQgMjEuMzE5MyAyMy4yMDA0IDIyLjAwMDlDMjMuMjAwMyAyMi4wOTU5IDIzLjE3NzcgMjIuMTg5NiAyMy4xMzQzIDIyLjI3NDFDMjMuMDkxIDIyLjM1ODcgMjMuMDI4MiAyMi40MzE4IDIyLjk1MTEgMjIuNDg3M0MyMi44NzQgMjIuNTQyOCAyMi43ODQ4IDIyLjU3OTMgMjIuNjkwOSAyMi41OTM2QzIyLjU5NjkgMjIuNjA3OSAyMi41MDA5IDIyLjU5OTcgMjIuNDEwOCAyMi41Njk3QzIyLjE4NTIgMjIuNDk1MyAyMS45ODM2IDIyLjUzNzMgMjEuNzY4OCAyMi43MTAxQzIxLjUzMzYgMjIuOTAyMSAyMS4zMDQ0IDIzLjI0MjkgMjEuMTQgMjMuNzAyNUMyMC44MDUyIDI0LjY0MDkgMjAuODQgMjUuNzc3MyAyMS4yOTk2IDI2LjQ2ODVDMjEuMzY1MiAyNi41NjcgMjEuNDAwMyAyNi42ODI2IDIxLjQwMDQgMjYuODAwOUgyMi4zMDA0QzIzLjAxNjUgMjYuODAwOSAyMy43MDMyIDI3LjA4NTQgMjQuMjA5NiAyNy41OTE3QzI0LjcxNTkgMjguMDk4MSAyNS4wMDA0IDI4Ljc4NDggMjUuMDAwNCAyOS41MDA5VjI5LjkwMjlDMjUuNDAwNyAzMC4wNDQ1IDI1LjczODEgMzAuMzIzIDI1Ljk1MyAzMC42ODkyQzI2LjE2NzggMzEuMDU1NSAyNi4yNDYzIDMxLjQ4NTkgMjYuMTc0NSAzMS45MDQ0QzI2LjEwMjcgMzIuMzIyOSAyNS44ODUyIDMyLjcwMjUgMjUuNTYwNiAzMi45NzYyQzI1LjIzNTkgMzMuMjQ5OSAyNC44MjUgMzMuNCAyNC40MDA0IDMzLjRDMjMuOTc1OCAzMy40IDIzLjU2NDggMzMuMjQ5OSAyMy4yNDAyIDMyLjk3NjJDMjIuOTE1NiAzMi43MDI1IDIyLjY5ODEgMzIuMzIyOSAyMi42MjYzIDMxLjkwNDRDMjIuNTU0NSAzMS40ODU5IDIyLjYzMyAzMS4wNTU1IDIyLjg0NzggMzAuNjg5MkMyMy4wNjI3IDMwLjMyMyAyMy40MDAxIDMwLjA0NDUgMjMuODAwNCAyOS45MDI5VjI5LjUwMDlDMjMuODAwNCAyOC42NzI5IDIzLjEyODQgMjguMDAwOSAyMi4zMDA0IDI4LjAwMDlIMjAuMjAwNEMyMC4xMjg3IDI4LjAwMDggMjAuMDU3NSAyNy45ODc4IDE5Ljk5MDQgMjcuOTYyNUwxOS45ODY4IDI3Ljk2OTdDMTkuNzQ5MiAyOC40NDM3IDE5LjYwMDQgMjkuMjMwOSAxOS42MDA0IDMwLjQwMDlDMTkuNjAwNCAzMS40MzE3IDE5Ljk3ODQgMzIuMDEyNSAyMC4zNjYgMzIuMzQ0OUMyMC43ODI0IDMyLjcwMjUgMjEuMjQ0NCAzMi44MDA5IDIxLjQwMDQgMzIuODAwOUMyMS41NTk1IDMyLjgwMDkgMjEuNzEyMSAzMi44NjQxIDIxLjgyNDcgMzIuOTc2N0MyMS45MzcyIDMzLjA4OTIgMjIuMDAwNCAzMy4yNDE4IDIyLjAwMDQgMzMuNDAwOUMyMi4wMDA0IDMzLjg0MjUgMjIuMjQwNCAzNC42MTQxIDIyLjc2ODQgMzUuMjc2NUMyMy4yODMyIDM1LjkxODUgMjQuMDIzNiAzNi40MDA5IDI1LjAwMDQgMzYuNDAwOUMyNS42NzI0IDM2LjQwMDkgMjYuMjc0OCAzNi4wMjUzIDI2Ljc0MDQgMzUuNTM2OUMyNi45Njk2IDM1LjI5NjkgMjcuMTQ4NCAzNS4wNDg1IDI3LjI2NDggMzQuODQ0NUMyNy4zMTc4IDM0Ljc1NDEgMjcuMzYzMSAzNC42NTkzIDI3LjQwMDQgMzQuNTYxM1YyNS4wMDA5SDI2LjA5ODRDMjUuOTU2OSAyNS40MDEyIDI1LjY3ODMgMjUuNzM4NyAyNS4zMTIxIDI1Ljk1MzVDMjQuOTQ1OSAyNi4xNjgzIDI0LjUxNTQgMjYuMjQ2OCAyNC4wOTcgMjYuMTc1QzIzLjY3ODUgMjYuMTAzMiAyMy4yOTg4IDI1Ljg4NTggMjMuMDI1MSAyNS41NjExQzIyLjc1MTQgMjUuMjM2NSAyMi42MDEzIDI0LjgyNTUgMjIuNjAxMyAyNC40MDA5QzIyLjYwMTMgMjMuOTc2MyAyMi43NTE0IDIzLjU2NTQgMjMuMDI1MSAyMy4yNDA3QzIzLjI5ODggMjIuOTE2MSAyMy42Nzg1IDIyLjY5ODYgMjQuMDk3IDIyLjYyNjhDMjQuNTE1NCAyMi41NTUgMjQuOTQ1OSAyMi42MzM1IDI1LjMxMjEgMjIuODQ4M0MyNS42NzgzIDIzLjA2MzIgMjUuOTU2OSAyMy40MDA2IDI2LjA5ODQgMjMuODAwOUgyNy40MDA0VjIxLjQwMDlaTTI4LjYwMDQgMzMuMzk5N1YzNC41NjAxQzI4LjYzNzcgMzQuNjU4MSAyOC42ODMgMzQuNzUyOCAyOC43MzYgMzQuODQzM0MyOC44NTM2IDM1LjA0NzMgMjkuMDMxMiAzNS4yOTU3IDI5LjI1OTIgMzUuNTM1N0MyOS43MjYgMzYuMDI0MSAzMC4zMjk2IDM2LjM5OTcgMzEuMDAwNCAzNi4zOTk3QzMxLjk3NzIgMzYuMzk5NyAzMi43MTc2IDM1LjkxNzMgMzMuMjMyNCAzNS4yNzUzQzMzLjc2MDQgMzQuNjEyOSAzNC4wMDA0IDMzLjg0MTMgMzQuMDAwNCAzMy4zOTk3QzM0LjAwMDQgMzMuMjQwNiAzNC4wNjM2IDMzLjA4OCAzNC4xNzYxIDMyLjk3NTVDMzQuMjg4NiAzMi44NjI5IDM0LjQ0MTMgMzIuNzk5NyAzNC42MDA0IDMyLjc5OTdDMzQuNzU2NCAzMi43OTk3IDM1LjIxODQgMzIuNzAxMyAzNS42MzQ4IDMyLjM0MzdDMzYuMDIyNCAzMi4wMTEzIDM2LjQwMDQgMzEuNDMwNSAzNi40MDA0IDMwLjM5OTdDMzYuNDAwNCAyOS4yMjk3IDM2LjI1MDQgMjguNDQzNyAzNi4wMTQgMjcuOTY4NUMzNS45MzQ5IDI3Ljc5MTYgMzUuODEwOCAyNy42Mzg1IDM1LjY1NCAyNy41MjQ1QzM1LjUxODkgMjcuNDM4MSAzNS4zNjA2IDI3LjM5NSAzNS4yMDA0IDI3LjQwMDlDMzUuMDkxOSAyNy40MDA5IDM0Ljk4NTQgMjcuMzcxNCAzNC44OTIzIDI3LjMxNTZDMzQuNzk5MiAyNy4yNTk4IDM0LjcyMyAyNy4xNzk4IDM0LjY3MTcgMjcuMDg0MUMzNC42MjA1IDI2Ljk4ODQgMzQuNTk2MiAyNi44ODA3IDM0LjYwMTQgMjYuNzcyM0MzNC42MDY2IDI2LjY2MzggMzQuNjQxMSAyNi41NTg5IDM0LjcwMTIgMjYuNDY4NUMzNS4xNjIgMjUuNzc3MyAzNS4xOTU2IDI0LjY0MDkgMzQuODYwOCAyMy43MDI1QzM0LjY5NjQgMjMuMjQyOSAzNC40NjcyIDIyLjkwMDkgMzQuMjMyIDIyLjcxMDFDMzQuMDE3MiAyMi41MzczIDMzLjgxNTYgMjIuNDk0MSAzMy41OSAyMi41Njk3QzMzLjQ5OTggMjIuNTk5NyAzMy40MDM4IDIyLjYwNzkgMzMuMzA5OSAyMi41OTM2QzMzLjIxNiAyMi41NzkzIDMzLjEyNjggMjIuNTQyOCAzMy4wNDk3IDIyLjQ4NzNDMzIuOTcyNiAyMi40MzE4IDMyLjkwOTggMjIuMzU4NyAzMi44NjY0IDIyLjI3NDFDMzIuODIzMSAyMi4xODk2IDMyLjgwMDUgMjIuMDk1OSAzMi44MDA0IDIyLjAwMDlDMzIuODAwNCAyMS4zMTkzIDMyLjQ2NDQgMjAuNzMyNSAzMS45MDY0IDIwLjI5OTNDMzEuMjk5IDE5Ljg0MzggMzAuNTU5NiAxOS41OTg2IDI5LjgwMDQgMTkuNjAwOUMyOS41NjU2IDE5LjU4OTggMjkuMzM1NiAxOS42Njk4IDI5LjE1ODQgMTkuODI0MUMyOC45ODg5IDE5Ljk4NzQgMjguODYxMyAyMC4xODkxIDI4Ljc4NjQgMjAuNDEyMUMyOC42NzIxIDIwLjcyNTYgMjguNjA5MyAyMS4wNTU0IDI4LjYwMDQgMjEuMzg4OVYzMi4yMDA5SDI5LjUwMDRDMzAuMzI4NCAzMi4yMDA5IDMxLjAwMDQgMzEuNTI4OSAzMS4wMDA0IDMwLjcwMDlWMjguNDk4OUMzMC42MDAxIDI4LjM1NzQgMzAuMjYyNyAyOC4wNzg5IDMwLjA0NzggMjcuNzEyNkMyOS44MzMgMjcuMzQ2NCAyOS43NTQ1IDI2LjkxNiAyOS44MjYzIDI2LjQ5NzVDMjkuODk4MSAyNi4wNzkgMzAuMTE1NiAyNS42OTkzIDMwLjQ0MDIgMjUuNDI1N0MzMC43NjQ4IDI1LjE1MiAzMS4xNzU4IDI1LjAwMTkgMzEuNjAwNCAyNS4wMDE5QzMyLjAyNSAyNS4wMDE5IDMyLjQzNTkgMjUuMTUyIDMyLjc2MDYgMjUuNDI1N0MzMy4wODUyIDI1LjY5OTMgMzMuMzAyNyAyNi4wNzkgMzMuMzc0NSAyNi40OTc1QzMzLjQ0NjMgMjYuOTE2IDMzLjM2NzggMjcuMzQ2NCAzMy4xNTMgMjcuNzEyNkMzMi45MzgxIDI4LjA3ODkgMzIuNjAwNyAyOC4zNTc0IDMyLjIwMDQgMjguNDk4OVYzMC43MDA5QzMyLjIwMDQgMzEuNDE3IDMxLjkxNTkgMzIuMTAzOCAzMS40MDk2IDMyLjYxMDFDMzAuOTAzMiAzMy4xMTY1IDMwLjIxNjUgMzMuNDAwOSAyOS41MDA0IDMzLjQwMDlIMjguNjAwNFYzMy4zOTk3Wk0yMy44MDA0IDI0LjQwMDlDMjMuODAwNCAyNC41NjAxIDIzLjg2MzYgMjQuNzEyNyAyMy45NzYxIDI0LjgyNTJDMjQuMDg4NiAyNC45Mzc3IDI0LjI0MTMgMjUuMDAwOSAyNC40MDA0IDI1LjAwMDlDMjQuNTU5NSAyNS4wMDA5IDI0LjcxMjEgMjQuOTM3NyAyNC44MjQ3IDI0LjgyNTJDMjQuOTM3MiAyNC43MTI3IDI1LjAwMDQgMjQuNTYwMSAyNS4wMDA0IDI0LjQwMDlDMjUuMDAwNCAyNC4yNDE4IDI0LjkzNzIgMjQuMDg5MiAyNC44MjQ3IDIzLjk3NjdDMjQuNzEyMSAyMy44NjQxIDI0LjU1OTUgMjMuODAwOSAyNC40MDA0IDIzLjgwMDlDMjQuMjQxMyAyMy44MDA5IDI0LjA4ODYgMjMuODY0MSAyMy45NzYxIDIzLjk3NjdDMjMuODYzNiAyNC4wODkyIDIzLjgwMDQgMjQuMjQxOCAyMy44MDA0IDI0LjQwMDlaTTMxLjYwMDQgMjcuNDAwOUMzMS43NTk1IDI3LjQwMDkgMzEuOTEyMSAyNy4zMzc3IDMyLjAyNDcgMjcuMjI1MkMzMi4xMzcyIDI3LjExMjcgMzIuMjAwNCAyNi45NjAxIDMyLjIwMDQgMjYuODAwOUMzMi4yMDA0IDI2LjY0MTggMzIuMTM3MiAyNi40ODkyIDMyLjAyNDcgMjYuMzc2N0MzMS45MTIxIDI2LjI2NDEgMzEuNzU5NSAyNi4yMDA5IDMxLjYwMDQgMjYuMjAwOUMzMS40NDEzIDI2LjIwMDkgMzEuMjg4NiAyNi4yNjQxIDMxLjE3NjEgMjYuMzc2N0MzMS4wNjM2IDI2LjQ4OTIgMzEuMDAwNCAyNi42NDE4IDMxLjAwMDQgMjYuODAwOUMzMS4wMDA0IDI2Ljk2MDEgMzEuMDYzNiAyNy4xMTI3IDMxLjE3NjEgMjcuMjI1MkMzMS4yODg2IDI3LjMzNzcgMzEuNDQxMyAyNy40MDA5IDMxLjYwMDQgMjcuNDAwOVpNMjQuNDAwNCAzMS4wMDA5QzI0LjI0MTMgMzEuMDAwOSAyNC4wODg2IDMxLjA2NDEgMjMuOTc2MSAzMS4xNzY3QzIzLjg2MzYgMzEuMjg5MiAyMy44MDA0IDMxLjQ0MTggMjMuODAwNCAzMS42MDA5QzIzLjgwMDQgMzEuNzYwMSAyMy44NjM2IDMxLjkxMjcgMjMuOTc2MSAzMi4wMjUyQzI0LjA4ODYgMzIuMTM3NyAyNC4yNDEzIDMyLjIwMDkgMjQuNDAwNCAzMi4yMDA5QzI0LjU1OTUgMzIuMjAwOSAyNC43MTIxIDMyLjEzNzcgMjQuODI0NyAzMi4wMjUyQzI0LjkzNzIgMzEuOTEyNyAyNS4wMDA0IDMxLjc2MDEgMjUuMDAwNCAzMS42MDA5QzI1LjAwMDQgMzEuNDQxOCAyNC45MzcyIDMxLjI4OTIgMjQuODI0NyAzMS4xNzY3QzI0LjcxMjEgMzEuMDY0MSAyNC41NTk1IDMxLjAwMDkgMjQuNDAwNCAzMS4wMDA5WlwiIGZpbGw9XCIjMDM5ODU1XCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICB0aXRsZTogYERvbid0IHJ1biBBSSBvbiBpbWFnZSB1cGxvYWRlZGAsXHJcbiAgICAgICAgY29udGVudDogYERvIHlvdSB3aXNoIHRvIG5vdCBydW4gQUkgaW4gdGhlIGltYWdlP2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCxxSWR4LGZhbHNlLGFuc0lkeCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScpPy5wYXRjaFZhbHVlKHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScpPy5wYXRjaFZhbHVlKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBydW5BSU9mZihzSWR4OiBudW1iZXIsIHFJZHg6IG51bWJlciwgc2hvd0Vycm9yPzogYm9vbGVhbixhbnNJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBjb25zdCBhbnN3ZXJGb3JtR3JvdXAgPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk7XHJcbiAgICBsZXQgc2VjdGlvblF1ZXN0aW9uID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYgKGFuc3dlckZvcm1Hcm91cCkge1xyXG4gICAgICBhbnN3ZXJGb3JtR3JvdXAucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbkNvbnRyb2wgPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJJyxhbnNJZHgpO1xyXG4gICAgaWYgKHF1ZXN0aW9uQ29udHJvbCkge1xyXG4gICAgICBxdWVzdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyBjb25zb2xlLmxvZyhxdWVzdGlvbkNvbnRyb2wpO1xyXG4gICAgXHJcbiAgICAvLyBjb25zdCBkZXNjcmlwdGlvbkNvbnRyb2wgPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJRGVzY3JpcHRpb24nLGFuc0lkeCk7XHJcbiAgICAvLyBpZiAoZGVzY3JpcHRpb25Db250cm9sKSB7XHJcbiAgICAvLyAgIGRlc2NyaXB0aW9uQ29udHJvbC5wYXRjaFZhbHVlKCcnKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGxldCBhbnN3ZXJzO1xyXG4gICAgLy8gaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAvLyAgIGFuc3dlcnMgPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKTsgICAgICAgICAgICAgICAgXHJcbiAgICAvLyAgIChhbnN3ZXJzLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgKChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ3J1bkFJRmVhdHVyZXMnKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgLy8gICAoc2VjdGlvblF1ZXN0aW9uLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAvLyAgIGlmKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT0gJ2ltYWdlJykge1xyXG4gICAgLy8gICAgIGFuc3dlcnMgPSBzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyBjb25zdCBpbWFnZXNGQSA9IGFuc3dlcnM/LmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheTtcclxuICAgIC8vIGltYWdlc0ZBPy5jb250cm9scz8uZm9yRWFjaCgoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAvLyAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgICAgY29udHJvbC5wYXRjaFZhbHVlKHsgcnVuQUk6IGZhbHNlIH0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTsgICAgXHJcbiAgXHJcbiAgICBpZiAoc2hvd0Vycm9yKSB7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gcHJvY2VzcyBydW5BSSByZXF1ZXN0ISBUcnkgYWdhaW4gYWZ0ZXIgc29tZSB0aW1lIScsJ2Vycm9yJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRTZWN0aW9uRm9ybUFycmF5KCkge1xyXG4gICAgcmV0dXJuICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtQ29udHJvbChmb3JtQ29udHJvbDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoZm9ybUNvbnRyb2wpIGFzIEZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIGdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXg6IG51bWJlciwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoZm9ybUNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIGdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsYW5zSWR4Om51bWJlciA9IC0xKSB7XHJcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbnMgPSBzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGxldCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJMaXN0ID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgaWYoIWFuc3dlckxpc3QpIHJldHVybiBudWxsO1xyXG4gICAgICBxdWVzdGlvbiA9IGFuc3dlckxpc3QuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZighcXVlc3Rpb24pIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbCA9IHF1ZXN0aW9uLmdldChmb3JtQ29udHJvbE5hbWUpIGFzIEZvcm1Db250cm9sIHwgbnVsbDtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG4gIH1cclxuICBcclxuXHJcbiAgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKHNlY3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgfVxyXG5cclxuICAvLyBpbmRpdmlkdWFsIHF1ZXN0aW9uXHJcbiAgZ2V0UXVlc3Rpb25zRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQXJyYXlOYW1lOiBzdHJpbmcsYW5zSW5kZXg6bnVtYmVyID0gLTEsbGlua3F1ZXN0aW9uSW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGxldCBzZWN0aW9uID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk/LmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAoKHNlY3Rpb24uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpPy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYoYW5zSW5kZXggPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIChxdWVzdGlvbnMuZ2V0KGZvcm1BcnJheU5hbWUpIGFzIEZvcm1BcnJheSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IGFuc3dlcnMgPSAoKHF1ZXN0aW9ucy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy5hdChhbnNJbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgbGV0IGxpbmtlZEluZGV4ID0gKChhbnN3ZXJzLmdldCgnbGlua1F1ZXN0aW9uQW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQobGlua3F1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgIHJldHVybiAobGlua2VkSW5kZXguZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUFycmF5TGlua2VkUXVlc3Rpb25zKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsYW5zd2VySW5kZXg6bnVtYmVyKSB7XHJcbiAgICBsZXQgc2VjdGlvbiA9ICgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpPy5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKChzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KT8uYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGxldCBhbnN3ZXIgPSAocXVlc3Rpb25zLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk/LmF0KGFuc3dlckluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICByZXR1cm4gKGFuc3dlci5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbnNGb3JtQXJyYXlWYWx1ZXMoc2VjdGlvbkluZGV4OiBudW1iZXIpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuZ2V0UmF3VmFsdWUoKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZyxhbnNJZHg6bnVtYmVyPSAtMSkge1xyXG4gICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICBpZiAoIXNlY3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICBpZiAoIXNlY3Rpb24pIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgY29uc3QgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICBpZiAoIXF1ZXN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYoZm9ybUNvbnRyb2xOYW1lID09IFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHF1ZXN0aW9uLmdldChmb3JtQ29udHJvbE5hbWUpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgaWYgKCFhbnN3ZXJzKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgXHJcbiAgICAgICAgbGV0IGFuc3dlckxpc3QgPSBxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICAgIGlmKCFhbnN3ZXJMaXN0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICBhbnN3ZXJzID0gYW5zd2VyTGlzdC5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgICAgaWYgKCFhbnN3ZXJzKSByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjb250cm9sID0gYW5zd2Vycy5nZXQoZm9ybUNvbnRyb2xOYW1lKSBhcyBGb3JtQ29udHJvbCB8IG51bGw7XHJcbiAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG4gIFxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlZE5lc3RlZFF1ZXN0aW9uKHNlY3Rpb25pbmRleDogbnVtYmVyLHFubzphbnkpIHtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbmluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgYW5zd2VycyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5O1xyXG4gICAgICBpZihhbnN3ZXJzKSB7XHJcbiAgICAgICAgZm9yKGxldCBqPTA7ajxhbnN3ZXJzLmxlbmd0aDtqKyspIHtcclxuICAgICAgICAgIGxldCBsaW5rZWQgPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWQpIHtcclxuICAgICAgICAgICAgbGV0IHF1ZXN0aW9uTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgICAgICBpZihxdWVzdGlvbk5vID09IHFubykge1xyXG4gICAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUoMCk7XHJcbiAgICAgICAgICAgICAgKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdzaG93TGlua2VkJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25pbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgbGV0IHVwZGF0ZWRMaXN0OmFueSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHFubyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8udmFsdWU7XHJcbiAgICAgIGlmKCF0aGlzLmRlbGV0ZWRMaXN0LmluY2x1ZGVzKHFubykpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25BcnJheSA9IHF1ZXN0aW9ucz8udmFsdWU7XHJcbiAgICAgICAgZm9yKGxldCBxbiA9IDA7IHFuIDwgcXVlc3Rpb25BcnJheS5sZW5ndGggO3FuKyspIHtcclxuICAgICAgICAgIGlmKCF1cGRhdGVkTGlzdC5pbmNsdWRlcyhxbikpIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBxdWVzdGlvbkFycmF5W3FuXTtcclxuICAgICAgICAgICAgaWYgKCFbJ2Rlc2NyaXB0aXZlJywgJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCAnbXVsdGlwbGVJbWFnZScsICd2aWRlbycsJ2xpbmVhcnNjYWxlJywndGltZScsJ2RhdGUnXS5pbmNsdWRlcyhpdGVtLmFuc3dlclR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgZm9yKGxldCBhbnMgPSAwOyBhbnMgPCBpdGVtLmFuc3dlcnMubGVuZ3RoIDsgYW5zKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmFuc3dlcnNbYW5zXS5saW5rZWRRdWVzdGlvbiA9PSBxbm8pIHtcclxuICAgICAgICAgICAgICAgICAgdXBkYXRlZExpc3QucHVzaChxbik7XHJcbiAgICAgICAgICAgICAgICAgICgoKHF1ZXN0aW9ucy5hdChxbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnMpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShpKzEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAocXVlc3Rpb25zLmF0KGkpIGFzIEZvcm1Hcm91cCk/LmdldCgncW5vJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gdXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleDogbnVtYmVyKSB7XHJcbiAgLy8gICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25pbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gIC8vICAgbGV0IHF1ZXN0aW9uQXJyYXkgPSBxdWVzdGlvbnM/LnZhbHVlO1xyXG4gIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgbGV0IHFubyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8udmFsdWU7XHJcbiAgLy8gICAgIGlmKCF0aGlzLmRlbGV0ZWRMaXN0LmluY2x1ZGVzKHFubykpIHtcclxuICAvLyAgICAgICBmb3IobGV0IHFuID0gMDsgcW4gPCBxdWVzdGlvbkFycmF5Lmxlbmd0aCA7cW4rKykge1xyXG4gIC8vICAgICAgICAgbGV0IGl0ZW0gPSBxdWVzdGlvbkFycmF5W3FuXTtcclxuICAvLyAgICAgICAgIGlmICghWydkZXNjcmlwdGl2ZScsICdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywgJ211bHRpcGxlSW1hZ2UnLCAndmlkZW8nLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJ10uaW5jbHVkZXMoaXRlbS5hbnN3ZXJUeXBlKSkge1xyXG4gIC8vICAgICAgICAgICBsZXQgZmluZEluZGV4ID0gaXRlbS5hbnN3ZXJzLm1hcCgoaXRlbTphbnksIGluZGV4OmFueSkgPT4gKGl0ZW0ubGlua2VkUXVlc3Rpb24gPT0gcW5vID8gaW5kZXggOiAtMSkpLmZpbHRlcigoaW5kZXg6YW55KSA9PiBpbmRleCAhPT0gLTEpO1xyXG4gIC8vICAgICAgICAgICBpZihmaW5kSW5kZXgubGVuZ3RoKSB7XHJcbiAgLy8gICAgICAgICAgICAgZmluZEluZGV4LmZvckVhY2goKGlkeDpudW1iZXIpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGl0ZW0uYW5zd2Vyc1tpZHhdLmNoZWNrZWQgPSB0cnVlO1xyXG4gIC8vICAgICAgICAgICAgICAgKCgocXVlc3Rpb25zLmF0KHFuKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGlkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgLy8gICAgICAgICAgICAgfSlcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICAvLyBsZXQgZmluZEFuc0lkeCA9IGl0ZW0uYW5zd2Vycy5maW5kSW5kZXgoKGVsZTphbnkpID0+IGVsZS5saW5rZWRRdWVzdGlvbiA9PSBxbm8gJiYgIWl0ZW0uY2hlY2tlZCk7XHJcbiAgLy8gICAgICAgICAgIC8vIGlmKGZpbmRBbnNJZHggIT0gLTEpIHtcclxuICAvLyAgICAgICAgICAgLy8gfVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgICAocXVlc3Rpb25zLmF0KGkpIGFzIEZvcm1Hcm91cCk/LmdldCgncW5vJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25zQW5zd2VyRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsYW5zSW5kZXg6bnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0luZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlUXVlc3Rpb24oc2VjSWR4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgYWN0aXZlc3RhdHVzOiBudW1iZXIsYW5zd2VySW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGlmKGFjdGl2ZXN0YXR1cyA9PSAxKSB7XHJcbiAgICAgIGlmKGFuc3dlckluZGV4ICE9IC0xKSB7XHJcbiAgICAgICAgdGhpcy5nZXRRdWVzdGlvbnNBbnN3ZXJGb3JtR3JvdXAoc2VjSWR4LHF1ZXN0aW9uSW5kZXgsYW5zd2VySW5kZXgpLmFkZENvbnRyb2woJ2FjdGl2ZScsdGhpcy5mYi5jb250cm9sKHRydWUpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdldFF1ZXN0aW9uc0Zvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCkuYWRkQ29udHJvbCgnYWN0aXZlJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYoYW5zd2VySW5kZXggIT0gLTEpIHtcclxuICAgICAgICB0aGlzLmdldFF1ZXN0aW9uc0Fuc3dlckZvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCxhbnN3ZXJJbmRleCkucmVtb3ZlQ29udHJvbCgnYWN0aXZlJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5nZXRRdWVzdGlvbnNGb3JtR3JvdXAoc2VjSWR4LHF1ZXN0aW9uSW5kZXgpLnJlbW92ZUNvbnRyb2woJ2FjdGl2ZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWxsb3dBZGRBbnN3ZXIoYW5zd2VyczogYW55W10pIHtcclxuICAgIHJldHVybiBhbnN3ZXJzLmxlbmd0aCA8IDMwO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25MaXN0KHNlY0lkeDpudW1iZXIscW50SWR4Om51bWJlcixhbnNJZHg6bnVtYmVyKSB7XHJcbiAgICAvLyBmb3IobGV0IGFuc3dlciBvZiBxdWVzdGlvbj8uYW5zd2Vycykge1xyXG4gICAgLy8gICAgICAgICBpZigoYW5zd2VyLmxpbmtlZFF1ZXN0aW9uICYmIGFuc3dlci5saW5rZWRRdWVzdGlvbiA9PSBgJHtxdWVzdGlvbi5xbm99YCAmJiBxdWVzdGlvbi5xbm8gPT0gKHFudElkeCsxKSkgfHwgKCFhbnN3ZXIubGlua2VkUXVlc3Rpb24ubGVuZ3RoICYmIHF1ZXN0aW9uLnFubyAhPSAocW50SWR4KzEpKSkge1xyXG4gICAgLy8gICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocXVlc3Rpb24ucW5vKVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICBsZXQgcXVlc3Rpb25EZXRhaWxzID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuZ2V0UmF3VmFsdWUoKSB8fCBbXTtcclxuICAgIFxyXG4gICAgbGV0IHF1ZXN0aW9uTGlzdDphbnkgPSBbXTtcclxuICAgIGxldCBsaW5rZWRRdWVzdGlvbnM6YW55ID0gW107XHJcbiAgICBpZihxdWVzdGlvbkRldGFpbHMubGVuZ3RoKSB7XHJcbiAgICAgIGZvcihsZXQgcXVlc3Rpb24gb2YgcXVlc3Rpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgaWYocXVlc3Rpb24uYW5zd2Vycykge1xyXG4gICAgICAgICAgaWYoWyd2aWRlbycsJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJ10uaW5jbHVkZXMocXVlc3Rpb24uYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb24uYW5zd2VycyA9IFtxdWVzdGlvbi5hbnN3ZXJzXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICBmb3IobGV0IFtpbmRleCxhbnN3ZXJdIG9mIHF1ZXN0aW9uLmFuc3dlcnMuZW50cmllcygpKSB7XHJcbiAgICAgICAgICAgIGlmKGFuc3dlcj8ubGlua2VkUXVlc3Rpb24pIHtcclxuICAgICAgICAgICAgICBsaW5rZWRRdWVzdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBxbm86cXVlc3Rpb24ucW5vLFxyXG4gICAgICAgICAgICAgICAgYW5zSWR4OmluZGV4LFxyXG4gICAgICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246cGFyc2VJbnQoYW5zd2VyLmxpbmtlZFF1ZXN0aW9uKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gcXVlc3Rpb25EZXRhaWxzID0gcXVlc3Rpb25EZXRhaWxzLmZpbHRlcigoaXRlbTphbnkpID0+IGl0ZW0ucW5vICE9IChxbnRJZHgrMSkpO1xyXG4gICAgICBmb3IobGV0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9uRGV0YWlscykge1xyXG4gICAgICAgIGlmKHF1ZXN0aW9uPy5hbnN3ZXJzKSB7XHJcbiAgICAgICAgICBsZXQgZmluZEV4aXN0cyA9IGxpbmtlZFF1ZXN0aW9ucy5maW5kKChpdGVtOmFueSkgPT4gIGl0ZW0ucW5vID09IHF1ZXN0aW9uLnFubyAmJiBpdGVtLmFuc0lkeCA9PSBhbnNJZHggJiYgaXRlbS5xbm8gPT0gKHFudElkeCsxKSk7XHJcbiAgICAgICAgICBsZXQgY2hlY2tMaW5rZWQgPSBsaW5rZWRRdWVzdGlvbnMuZmluZCgoaXRlbTphbnkpID0+IGl0ZW0ubGlua2VkUXVlc3Rpb24gPT0gcXVlc3Rpb24ucW5vKTtcclxuICAgICAgICAgICAgaWYoIWNoZWNrTGlua2VkICYmICFmaW5kRXhpc3RzICYmIHF1ZXN0aW9uLnFubyAhPSAocW50SWR4KzEpICYmICFxdWVzdGlvbkxpc3QuaW5jbHVkZXMocXVlc3Rpb24ucW5vKSkge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uTGlzdC5wdXNoKHF1ZXN0aW9uLnFubyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoZmluZEV4aXN0cyAmJiAhcXVlc3Rpb25MaXN0LmluY2x1ZGVzKGZpbmRFeGlzdHMubGlua2VkUXVlc3Rpb24pICkge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uTGlzdC5wdXNoKGZpbmRFeGlzdHMubGlua2VkUXVlc3Rpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGZpbmRFeGlzdHMgPSBsaW5rZWRRdWVzdGlvbnMuZmluZCgoaXRlbTphbnkpID0+ICBpdGVtLmxpbmtlZFF1ZXN0aW9uID09IHF1ZXN0aW9uLnFubyk7XHJcbiAgICAgICAgICBpZighZmluZEV4aXN0cyAmJiBxdWVzdGlvbi5xbm8gIT0gKHFudElkeCsxKSAmJiAhcXVlc3Rpb25MaXN0LmluY2x1ZGVzKHF1ZXN0aW9uLnFubykpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocXVlc3Rpb24ucW5vKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHJldHVybiBxdWVzdGlvbkxpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMaW5rZWQoc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIsYW5zSWR4Om51bWJlcikge1xyXG4gICAgbGV0IGxpbmtWYWx1ZSA9ICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZTtcclxuICAgIGlmKGxpbmtWYWx1ZSkge1xyXG4gICAgICBsZXQgbGlua2VkUXVlc3Rpb24gPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICBpZihsaW5rZWRRdWVzdGlvbikge1xyXG4gICAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChsaW5rZWRRdWVzdGlvbiAtIDEpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZSgwKTtcclxuICAgIH1cclxuXHJcbiAgICBpZighbGlua1ZhbHVlKSB7XHJcbiAgICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgndmFsaWRhdGlvbicpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgIHRoaXMuY2xlYXJSZWZlcmVuY2VJbWFnZShzZWNJZHgscW5JZHgsYW5zSWR4KTtcclxuICAgIH1cclxuXHJcbiAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8uc2V0VmFsdWUoIWxpbmtWYWx1ZSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVF1ZXN0aW9uVHlwZShzZWNJZHg6bnVtYmVyLHFuSWR4Om51bWJlcixhbnNJZHg6bnVtYmVyLGV2ZW50OmFueSkge1xyXG4gICAgbGV0IGxpbmtlZFF1ZXN0aW9uID0gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy52YWx1ZTtcclxuICAgIGlmKGxpbmtlZFF1ZXN0aW9uKSB7XHJcbiAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChsaW5rZWRRdWVzdGlvbiAtIDEpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUpIHtcclxuICAgICAgbGV0IGluZGV4ID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKSAtIDE7XHJcbiAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChpbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZSgwKTtcclxuICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdzaG93TGlua2VkJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdE9wdGlvbihxbm86YW55LGFuc0xpbmtlZDphbnkpIHtcclxuICAgIHJldHVybiBxbm8gPT0gYW5zTGlua2VkID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25OYW1lKHNlY0lkeDpudW1iZXIscUlkeDpudW1iZXIpIHtcclxuICAgIHJldHVybiAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFJZHgtMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ3FuYW1lJyk/LnZhbHVlO1xyXG4gIH1cclxuXHJcblJ1bkFJTmV3KHNJZHg6bnVtYmVyLHFJZHg6IG51bWJlcixhbnNJZHg6bnVtYmVyPS0xLGV2ZW50OiBhbnkpIHtcclxuICBjb25zb2xlLmxvZyhcImV2ZW50ID0+XCIsIGV2ZW50LnRhcmdldC5jaGVja2VkKVxyXG4gIC8vIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKXtcclxuICAgIGxldCBxTmFtZTogYW55ID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgscUlkeCwncW5hbWUnKT8udmFsdWU7IFxyXG4gICAgbGV0IHJ1bkFJRmVhdHVyZXM6IGFueSA9IFtdO1xyXG4gICAgbGV0IHJ1bkFJRGVzY3JpcHRpb246IGFueSA9ICcnO1xyXG4gICAgbGV0IHNlY3Rpb25RdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocUlkeCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICBydW5BSUZlYXR1cmVzPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3J1bkFJRmVhdHVyZXMnLGFuc0lkeCk/LnZhbHVlOyBcclxuICAgICAgcnVuQUlEZXNjcmlwdGlvbj0gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdydW5BSURlc2NyaXB0aW9uJyxhbnNJZHgpPy52YWx1ZTtcclxuICAgIH0gXHJcbiAgICBlbHNlIHtcclxuICAgICAgcnVuQUlGZWF0dXJlcz0gKChzZWN0aW9uUXVlc3Rpb24uZ2V0KFwiYW5zd2Vyc1wiKSBhcyBGb3JtR3JvdXApLmdldChcInJ1bkFJRmVhdHVyZXNcIikgYXMgRm9ybUFycmF5KT8udmFsdWU7IFxyXG4gICAgICBydW5BSURlc2NyaXB0aW9uPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlEZXNjcmlwdGlvblwiKSBhcyBGb3JtQXJyYXkpPy52YWx1ZTtcclxuICAgIH1cclxuICAgIGxldCBxdWVzdGlvbkltYWdlcztcclxuICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICBsZXQgYW5zd2VycyA9ICgoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICBxdWVzdGlvbkltYWdlcyA9IChhbnN3ZXJzLmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheSk/LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYoWydpbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJ10uaW5jbHVkZXModGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgscUlkeCwnYW5zd2VyVHlwZScpPy52YWx1ZSkpIHtcclxuICAgICAgICBxdWVzdGlvbkltYWdlcyA9IChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcXVlc3Rpb25JbWFnZXMgPSAoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cCkuZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICBpZihldmVudC50YXJnZXQuY2hlY2tlZCl7ICBcclxuICAgIGlmICh0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCBcInJ1bkFJXCIsIGFuc0lkeCk/LnZhbHVlID09IGZhbHNlKSB7XHJcbiAgICAgIGlmICghcU5hbWUgfHwgIXRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoXCJjaGVja2xpc3ROYW1lXCIpPy52YWx1ZSkge1xyXG4gICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICFxTmFtZVxyXG4gICAgICAgICAgPyBcIlBsZWFzZSBlbnRlciBxdWVzdGlvbiB0byBjb250aW51ZSFcIlxyXG4gICAgICAgICAgOiBcIlBsZWFzZSBlbnRlciBDaGVja2xpc3QgTmFtZSB0byBjb250aW51ZSFcIjtcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsIFwiZXJyb3JcIik7XHJcbiAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LCBmYWxzZSwgYW5zSWR4KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4UnVuQUlQb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIlxyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMjMuMzU2NCAxOS4zNTI1QzI0LjE3NDggMTguNzMyNyAyNS4xNzM4IDE4LjM5ODUgMjYuMjAwNCAxOC40MDA5QzI2LjU1NDkgMTguMzkzIDI2LjkwNTcgMTguNDc0NiAyNy4yMjA0IDE4LjYzODJDMjcuNTM1IDE4LjgwMTggMjcuODAzMyAxOS4wNDIxIDI4LjAwMDQgMTkuMzM2OUMyOC4xOTc1IDE5LjA0MjEgMjguNDY1OCAxOC44MDE4IDI4Ljc4MDQgMTguNjM4MkMyOS4wOTUgMTguNDc0NiAyOS40NDU5IDE4LjM5MyAyOS44MDA0IDE4LjQwMDlDMzAuODI3IDE4LjM5ODUgMzEuODI2IDE4LjczMjcgMzIuNjQ0NCAxOS4zNTI1QzMzLjI3NDQgMTkuODQyMSAzMy43NjA0IDIwLjUyMDEgMzMuOTMyIDIxLjMzOTdDMzQuMzI1NiAyMS4zNjk3IDM0LjY4NTYgMjEuNTMyOSAzNC45ODggMjEuNzc4OUMzNS40NDY0IDIyLjE1MDkgMzUuNzggMjIuNzA4OSAzNS45OSAyMy4yOTkzQzM2LjMxODggMjQuMjE3MyAzNi40MDc2IDI1LjM4NzMgMzYuMDY2OCAyNi4zODMzQzM2LjE1MzIgMjYuNDI0MSAzNi4yMzg0IDI2LjQ3MjEgMzYuMzIxMiAyNi41MjczQzM2LjY1MTIgMjYuNzQ2OSAzNi45MDIgMjcuMDYxMyAzNy4wODY4IDI3LjQzMjFDMzcuNDUwNCAyOC4xNTgxIDM3LjYwMDQgMjkuMTcwOSAzNy42MDA0IDMwLjQwMDlDMzcuNjAwNCAzMS43NzAxIDM3LjA3ODQgMzIuNjg5MyAzNi40MTYgMzMuMjU2OUMzNi4wNDk3IDMzLjU3MSAzNS42MTc0IDMzLjc5ODYgMzUuMTUxMiAzMy45MjI5QzM1LjAzMTIgMzQuNTkyNSAzNC42OTUyIDM1LjM2NzcgMzQuMTY4NCAzNi4wMjUzQzMzLjQ4NDQgMzYuODgzMyAzMi40MjM2IDM3LjYwMDkgMzEuMDAwNCAzNy42MDA5QzI5Ljg3MjQgMzcuNjAwOSAyOC45NzQ4IDM2Ljk3NjkgMjguMzkxNiAzNi4zNjQ5QzI4LjI1MjIgMzYuMjE4OCAyOC4xMjE1IDM2LjA2NDUgMjguMDAwNCAzNS45MDI5QzI3Ljg3OTMgMzYuMDY0NSAyNy43NDg2IDM2LjIxODggMjcuNjA5MiAzNi4zNjQ5QzI3LjAyNiAzNi45NzY5IDI2LjEyOTYgMzcuNjAwOSAyNS4wMDA0IDM3LjYwMDlDMjMuNTc3MiAzNy42MDA5IDIyLjUxNzYgMzYuODgzMyAyMS44MzI0IDM2LjAyNTNDMjEuMzQwMSAzNS40MTQgMjEuMDAyOSAzNC42OTI3IDIwLjg0OTYgMzMuOTIyOUMyMC4zODM0IDMzLjc5ODYgMTkuOTUxMSAzMy41NzEgMTkuNTg0OCAzMy4yNTY5QzE4LjkyMjQgMzIuNjg5MyAxOC40MDA0IDMxLjc2ODkgMTguNDAwNCAzMC40MDA5QzE4LjQwMDQgMjkuMTcwOSAxOC41NTE2IDI4LjE1NjkgMTguOTE0IDI3LjQzMjFDMTkuMDg1NyAyNy4wNjg1IDE5LjM0OTcgMjYuNzU2MSAxOS42Nzk2IDI2LjUyNjFDMTkuNzYwNiAyNi40NzI1IDE5Ljg0NTcgMjYuNDI1MSAxOS45MzQgMjYuMzg0NUMxOS41OTMyIDI1LjM4NjEgMTkuNjgyIDI0LjIxNzMgMjAuMDEwOCAyMy4yOTkzQzIwLjIyMDggMjIuNzA4OSAyMC41NTQ0IDIyLjE1MDkgMjEuMDEyOCAyMS43Nzg5QzIxLjMxNTIgMjEuNTMyOSAyMS42NzUyIDIxLjM3MDkgMjIuMDY4OCAyMS4zMzk3QzIyLjI0MTYgMjAuNTIwMSAyMi43MjY0IDE5Ljg0MjEgMjMuMzU2NCAxOS4zNTI1Wk0yNy40MDA0IDIxLjQwMDlWMjEuMzg4OUwyNy4zOTggMjEuMzI4OUMyNy4zODAzIDIxLjAxNjEgMjcuMzE4MSAyMC43MDc0IDI3LjIxMzIgMjAuNDEyMUMyNy4xMzg1IDIwLjE4OTIgMjcuMDExMyAxOS45ODc2IDI2Ljg0MjQgMTkuODI0MUMyNi42NjUxIDE5LjY2OTggMjYuNDM1MiAxOS41ODk4IDI2LjIwMDQgMTkuNjAwOUMyNS40NDA3IDE5LjU5ODMgMjQuNzAwOSAxOS44NDM1IDI0LjA5MzIgMjAuMjk5M0MyMy41MzY0IDIwLjczMjUgMjMuMjAwNCAyMS4zMTkzIDIzLjIwMDQgMjIuMDAwOUMyMy4yMDAzIDIyLjA5NTkgMjMuMTc3NyAyMi4xODk2IDIzLjEzNDMgMjIuMjc0MUMyMy4wOTEgMjIuMzU4NyAyMy4wMjgyIDIyLjQzMTggMjIuOTUxMSAyMi40ODczQzIyLjg3NCAyMi41NDI4IDIyLjc4NDggMjIuNTc5MyAyMi42OTA5IDIyLjU5MzZDMjIuNTk2OSAyMi42MDc5IDIyLjUwMDkgMjIuNTk5NyAyMi40MTA4IDIyLjU2OTdDMjIuMTg1MiAyMi40OTUzIDIxLjk4MzYgMjIuNTM3MyAyMS43Njg4IDIyLjcxMDFDMjEuNTMzNiAyMi45MDIxIDIxLjMwNDQgMjMuMjQyOSAyMS4xNCAyMy43MDI1QzIwLjgwNTIgMjQuNjQwOSAyMC44NCAyNS43NzczIDIxLjI5OTYgMjYuNDY4NUMyMS4zNjUyIDI2LjU2NyAyMS40MDAzIDI2LjY4MjYgMjEuNDAwNCAyNi44MDA5SDIyLjMwMDRDMjMuMDE2NSAyNi44MDA5IDIzLjcwMzIgMjcuMDg1NCAyNC4yMDk2IDI3LjU5MTdDMjQuNzE1OSAyOC4wOTgxIDI1LjAwMDQgMjguNzg0OCAyNS4wMDA0IDI5LjUwMDlWMjkuOTAyOUMyNS40MDA3IDMwLjA0NDUgMjUuNzM4MSAzMC4zMjMgMjUuOTUzIDMwLjY4OTJDMjYuMTY3OCAzMS4wNTU1IDI2LjI0NjMgMzEuNDg1OSAyNi4xNzQ1IDMxLjkwNDRDMjYuMTAyNyAzMi4zMjI5IDI1Ljg4NTIgMzIuNzAyNSAyNS41NjA2IDMyLjk3NjJDMjUuMjM1OSAzMy4yNDk5IDI0LjgyNSAzMy40IDI0LjQwMDQgMzMuNEMyMy45NzU4IDMzLjQgMjMuNTY0OCAzMy4yNDk5IDIzLjI0MDIgMzIuOTc2MkMyMi45MTU2IDMyLjcwMjUgMjIuNjk4MSAzMi4zMjI5IDIyLjYyNjMgMzEuOTA0NEMyMi41NTQ1IDMxLjQ4NTkgMjIuNjMzIDMxLjA1NTUgMjIuODQ3OCAzMC42ODkyQzIzLjA2MjcgMzAuMzIzIDIzLjQwMDEgMzAuMDQ0NSAyMy44MDA0IDI5LjkwMjlWMjkuNTAwOUMyMy44MDA0IDI4LjY3MjkgMjMuMTI4NCAyOC4wMDA5IDIyLjMwMDQgMjguMDAwOUgyMC4yMDA0QzIwLjEyODcgMjguMDAwOCAyMC4wNTc1IDI3Ljk4NzggMTkuOTkwNCAyNy45NjI1TDE5Ljk4NjggMjcuOTY5N0MxOS43NDkyIDI4LjQ0MzcgMTkuNjAwNCAyOS4yMzA5IDE5LjYwMDQgMzAuNDAwOUMxOS42MDA0IDMxLjQzMTcgMTkuOTc4NCAzMi4wMTI1IDIwLjM2NiAzMi4zNDQ5QzIwLjc4MjQgMzIuNzAyNSAyMS4yNDQ0IDMyLjgwMDkgMjEuNDAwNCAzMi44MDA5QzIxLjU1OTUgMzIuODAwOSAyMS43MTIxIDMyLjg2NDEgMjEuODI0NyAzMi45NzY3QzIxLjkzNzIgMzMuMDg5MiAyMi4wMDA0IDMzLjI0MTggMjIuMDAwNCAzMy40MDA5QzIyLjAwMDQgMzMuODQyNSAyMi4yNDA0IDM0LjYxNDEgMjIuNzY4NCAzNS4yNzY1QzIzLjI4MzIgMzUuOTE4NSAyNC4wMjM2IDM2LjQwMDkgMjUuMDAwNCAzNi40MDA5QzI1LjY3MjQgMzYuNDAwOSAyNi4yNzQ4IDM2LjAyNTMgMjYuNzQwNCAzNS41MzY5QzI2Ljk2OTYgMzUuMjk2OSAyNy4xNDg0IDM1LjA0ODUgMjcuMjY0OCAzNC44NDQ1QzI3LjMxNzggMzQuNzU0MSAyNy4zNjMxIDM0LjY1OTMgMjcuNDAwNCAzNC41NjEzVjI1LjAwMDlIMjYuMDk4NEMyNS45NTY5IDI1LjQwMTIgMjUuNjc4MyAyNS43Mzg3IDI1LjMxMjEgMjUuOTUzNUMyNC45NDU5IDI2LjE2ODMgMjQuNTE1NCAyNi4yNDY4IDI0LjA5NyAyNi4xNzVDMjMuNjc4NSAyNi4xMDMyIDIzLjI5ODggMjUuODg1OCAyMy4wMjUxIDI1LjU2MTFDMjIuNzUxNCAyNS4yMzY1IDIyLjYwMTMgMjQuODI1NSAyMi42MDEzIDI0LjQwMDlDMjIuNjAxMyAyMy45NzYzIDIyLjc1MTQgMjMuNTY1NCAyMy4wMjUxIDIzLjI0MDdDMjMuMjk4OCAyMi45MTYxIDIzLjY3ODUgMjIuNjk4NiAyNC4wOTcgMjIuNjI2OEMyNC41MTU0IDIyLjU1NSAyNC45NDU5IDIyLjYzMzUgMjUuMzEyMSAyMi44NDgzQzI1LjY3ODMgMjMuMDYzMiAyNS45NTY5IDIzLjQwMDYgMjYuMDk4NCAyMy44MDA5SDI3LjQwMDRWMjEuNDAwOVpNMjguNjAwNCAzMy4zOTk3VjM0LjU2MDFDMjguNjM3NyAzNC42NTgxIDI4LjY4MyAzNC43NTI4IDI4LjczNiAzNC44NDMzQzI4Ljg1MzYgMzUuMDQ3MyAyOS4wMzEyIDM1LjI5NTcgMjkuMjU5MiAzNS41MzU3QzI5LjcyNiAzNi4wMjQxIDMwLjMyOTYgMzYuMzk5NyAzMS4wMDA0IDM2LjM5OTdDMzEuOTc3MiAzNi4zOTk3IDMyLjcxNzYgMzUuOTE3MyAzMy4yMzI0IDM1LjI3NTNDMzMuNzYwNCAzNC42MTI5IDM0LjAwMDQgMzMuODQxMyAzNC4wMDA0IDMzLjM5OTdDMzQuMDAwNCAzMy4yNDA2IDM0LjA2MzYgMzMuMDg4IDM0LjE3NjEgMzIuOTc1NUMzNC4yODg2IDMyLjg2MjkgMzQuNDQxMyAzMi43OTk3IDM0LjYwMDQgMzIuNzk5N0MzNC43NTY0IDMyLjc5OTcgMzUuMjE4NCAzMi43MDEzIDM1LjYzNDggMzIuMzQzN0MzNi4wMjI0IDMyLjAxMTMgMzYuNDAwNCAzMS40MzA1IDM2LjQwMDQgMzAuMzk5N0MzNi40MDA0IDI5LjIyOTcgMzYuMjUwNCAyOC40NDM3IDM2LjAxNCAyNy45Njg1QzM1LjkzNDkgMjcuNzkxNiAzNS44MTA4IDI3LjYzODUgMzUuNjU0IDI3LjUyNDVDMzUuNTE4OSAyNy40MzgxIDM1LjM2MDYgMjcuMzk1IDM1LjIwMDQgMjcuNDAwOUMzNS4wOTE5IDI3LjQwMDkgMzQuOTg1NCAyNy4zNzE0IDM0Ljg5MjMgMjcuMzE1NkMzNC43OTkyIDI3LjI1OTggMzQuNzIzIDI3LjE3OTggMzQuNjcxNyAyNy4wODQxQzM0LjYyMDUgMjYuOTg4NCAzNC41OTYyIDI2Ljg4MDcgMzQuNjAxNCAyNi43NzIzQzM0LjYwNjYgMjYuNjYzOCAzNC42NDExIDI2LjU1ODkgMzQuNzAxMiAyNi40Njg1QzM1LjE2MiAyNS43NzczIDM1LjE5NTYgMjQuNjQwOSAzNC44NjA4IDIzLjcwMjVDMzQuNjk2NCAyMy4yNDI5IDM0LjQ2NzIgMjIuOTAwOSAzNC4yMzIgMjIuNzEwMUMzNC4wMTcyIDIyLjUzNzMgMzMuODE1NiAyMi40OTQxIDMzLjU5IDIyLjU2OTdDMzMuNDk5OCAyMi41OTk3IDMzLjQwMzggMjIuNjA3OSAzMy4zMDk5IDIyLjU5MzZDMzMuMjE2IDIyLjU3OTMgMzMuMTI2OCAyMi41NDI4IDMzLjA0OTcgMjIuNDg3M0MzMi45NzI2IDIyLjQzMTggMzIuOTA5OCAyMi4zNTg3IDMyLjg2NjQgMjIuMjc0MUMzMi44MjMxIDIyLjE4OTYgMzIuODAwNSAyMi4wOTU5IDMyLjgwMDQgMjIuMDAwOUMzMi44MDA0IDIxLjMxOTMgMzIuNDY0NCAyMC43MzI1IDMxLjkwNjQgMjAuMjk5M0MzMS4yOTkgMTkuODQzOCAzMC41NTk2IDE5LjU5ODYgMjkuODAwNCAxOS42MDA5QzI5LjU2NTYgMTkuNTg5OCAyOS4zMzU2IDE5LjY2OTggMjkuMTU4NCAxOS44MjQxQzI4Ljk4ODkgMTkuOTg3NCAyOC44NjEzIDIwLjE4OTEgMjguNzg2NCAyMC40MTIxQzI4LjY3MjEgMjAuNzI1NiAyOC42MDkzIDIxLjA1NTQgMjguNjAwNCAyMS4zODg5VjMyLjIwMDlIMjkuNTAwNEMzMC4zMjg0IDMyLjIwMDkgMzEuMDAwNCAzMS41Mjg5IDMxLjAwMDQgMzAuNzAwOVYyOC40OTg5QzMwLjYwMDEgMjguMzU3NCAzMC4yNjI3IDI4LjA3ODkgMzAuMDQ3OCAyNy43MTI2QzI5LjgzMyAyNy4zNDY0IDI5Ljc1NDUgMjYuOTE2IDI5LjgyNjMgMjYuNDk3NUMyOS44OTgxIDI2LjA3OSAzMC4xMTU2IDI1LjY5OTMgMzAuNDQwMiAyNS40MjU3QzMwLjc2NDggMjUuMTUyIDMxLjE3NTggMjUuMDAxOSAzMS42MDA0IDI1LjAwMTlDMzIuMDI1IDI1LjAwMTkgMzIuNDM1OSAyNS4xNTIgMzIuNzYwNiAyNS40MjU3QzMzLjA4NTIgMjUuNjk5MyAzMy4zMDI3IDI2LjA3OSAzMy4zNzQ1IDI2LjQ5NzVDMzMuNDQ2MyAyNi45MTYgMzMuMzY3OCAyNy4zNDY0IDMzLjE1MyAyNy43MTI2QzMyLjkzODEgMjguMDc4OSAzMi42MDA3IDI4LjM1NzQgMzIuMjAwNCAyOC40OTg5VjMwLjcwMDlDMzIuMjAwNCAzMS40MTcgMzEuOTE1OSAzMi4xMDM4IDMxLjQwOTYgMzIuNjEwMUMzMC45MDMyIDMzLjExNjUgMzAuMjE2NSAzMy40MDA5IDI5LjUwMDQgMzMuNDAwOUgyOC42MDA0VjMzLjM5OTdaTTIzLjgwMDQgMjQuNDAwOUMyMy44MDA0IDI0LjU2MDEgMjMuODYzNiAyNC43MTI3IDIzLjk3NjEgMjQuODI1MkMyNC4wODg2IDI0LjkzNzcgMjQuMjQxMyAyNS4wMDA5IDI0LjQwMDQgMjUuMDAwOUMyNC41NTk1IDI1LjAwMDkgMjQuNzEyMSAyNC45Mzc3IDI0LjgyNDcgMjQuODI1MkMyNC45MzcyIDI0LjcxMjcgMjUuMDAwNCAyNC41NjAxIDI1LjAwMDQgMjQuNDAwOUMyNS4wMDA0IDI0LjI0MTggMjQuOTM3MiAyNC4wODkyIDI0LjgyNDcgMjMuOTc2N0MyNC43MTIxIDIzLjg2NDEgMjQuNTU5NSAyMy44MDA5IDI0LjQwMDQgMjMuODAwOUMyNC4yNDEzIDIzLjgwMDkgMjQuMDg4NiAyMy44NjQxIDIzLjk3NjEgMjMuOTc2N0MyMy44NjM2IDI0LjA4OTIgMjMuODAwNCAyNC4yNDE4IDIzLjgwMDQgMjQuNDAwOVpNMzEuNjAwNCAyNy40MDA5QzMxLjc1OTUgMjcuNDAwOSAzMS45MTIxIDI3LjMzNzcgMzIuMDI0NyAyNy4yMjUyQzMyLjEzNzIgMjcuMTEyNyAzMi4yMDA0IDI2Ljk2MDEgMzIuMjAwNCAyNi44MDA5QzMyLjIwMDQgMjYuNjQxOCAzMi4xMzcyIDI2LjQ4OTIgMzIuMDI0NyAyNi4zNzY3QzMxLjkxMjEgMjYuMjY0MSAzMS43NTk1IDI2LjIwMDkgMzEuNjAwNCAyNi4yMDA5QzMxLjQ0MTMgMjYuMjAwOSAzMS4yODg2IDI2LjI2NDEgMzEuMTc2MSAyNi4zNzY3QzMxLjA2MzYgMjYuNDg5MiAzMS4wMDA0IDI2LjY0MTggMzEuMDAwNCAyNi44MDA5QzMxLjAwMDQgMjYuOTYwMSAzMS4wNjM2IDI3LjExMjcgMzEuMTc2MSAyNy4yMjUyQzMxLjI4ODYgMjcuMzM3NyAzMS40NDEzIDI3LjQwMDkgMzEuNjAwNCAyNy40MDA5Wk0yNC40MDA0IDMxLjAwMDlDMjQuMjQxMyAzMS4wMDA5IDI0LjA4ODYgMzEuMDY0MSAyMy45NzYxIDMxLjE3NjdDMjMuODYzNiAzMS4yODkyIDIzLjgwMDQgMzEuNDQxOCAyMy44MDA0IDMxLjYwMDlDMjMuODAwNCAzMS43NjAxIDIzLjg2MzYgMzEuOTEyNyAyMy45NzYxIDMyLjAyNTJDMjQuMDg4NiAzMi4xMzc3IDI0LjI0MTMgMzIuMjAwOSAyNC40MDA0IDMyLjIwMDlDMjQuNTU5NSAzMi4yMDA5IDI0LjcxMjEgMzIuMTM3NyAyNC44MjQ3IDMyLjAyNTJDMjQuOTM3MiAzMS45MTI3IDI1LjAwMDQgMzEuNzYwMSAyNS4wMDA0IDMxLjYwMDlDMjUuMDAwNCAzMS40NDE4IDI0LjkzNzIgMzEuMjg5MiAyNC44MjQ3IDMxLjE3NjdDMjQuNzEyMSAzMS4wNjQxIDI0LjU1OTUgMzEuMDAwOSAyNC40MDA0IDMxLjAwMDlaXCIgZmlsbD1cIiMwMzk4NTVcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgIHRpdGxlOiBgUnVuIEFJIG9uIGltYWdlIHVwbG9hZGVkYCxcclxuICAgICAgICBjb250ZW50OiBgVXNlIHRoZSBwb3dlciBvZiBBSSB0byBjb21wYXJlIGFuZCBkZXRlY3QgYW5vbWFsaWVzIGJldHdlZW4gdXBsb2FkZWQgYW5kIHJlZmVyZW5jZSBpbWFnZS5gLFxyXG4gICAgICAgIHF1ZXN0aW9uTmFtZTogcU5hbWUsXHJcbiAgICAgICAgaW1hZ2VzOiBxdWVzdGlvbkltYWdlcyxcclxuICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROLFxyXG4gICAgICAgIHJ1bkFJRmVhdHVyZXM6IHJ1bkFJRmVhdHVyZXMsXHJcbiAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogcnVuQUlEZXNjcmlwdGlvbixcclxuICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgIH07XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICE9IFwiY2FuY2VsXCIpIHtcclxuICAgICAgICAgIGxldCBpbWFnZXM6IGFueTtcclxuICAgICAgICAgIGxldCBmZWF0dXJlczogYW55O1xyXG4gICAgICAgICAgaWYgKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICAgICAgICBpbWFnZXMgPSAoXHJcbiAgICAgICAgICAgICAgKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1BcnJheSkuYXQoXHJcbiAgICAgICAgICAgICAgICBhbnNJZHhcclxuICAgICAgICAgICAgICApIGFzIEZvcm1Hcm91cFxyXG4gICAgICAgICAgICApPy5nZXQoXCJtdWx0aVJlZmVyZW5jZUltYWdlXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICAgICAgZmVhdHVyZXMgPSAoXHJcbiAgICAgICAgICAgICAgKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1BcnJheSkuYXQoXHJcbiAgICAgICAgICAgICAgICBhbnNJZHhcclxuICAgICAgICAgICAgICApIGFzIEZvcm1Hcm91cFxyXG4gICAgICAgICAgICApPy5nZXQoXCJydW5BSUZlYXR1cmVzXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICAgICAgICgoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlEZXNjcmlwdGlvblwiKT8uc2V0VmFsdWUocmVzLnJ1bkFJRGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VzID0gKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFxyXG4gICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZlYXR1cmVzID0gKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlGZWF0dXJlc1wiKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgICAgICAgIChzZWN0aW9uUXVlc3Rpb24uZ2V0KFwiYW5zd2Vyc1wiKSBhcyBGb3JtR3JvdXApLmdldChcInJ1bkFJRGVzY3JpcHRpb25cIik/LnNldFZhbHVlKHJlcy5ydW5BSURlc2NyaXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGltYWdlcy5jbGVhcigpO1xyXG4gICAgICAgICAgcmVzLmltYWdlcy5mb3JFYWNoKChpbWc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpbWFnZXMucHVzaChcclxuICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIGltYWdlVVJMOiBpbWcuaW1hZ2VVUkwsXHJcbiAgICAgICAgICAgICAgICBydW5BSTogaW1nLnJ1bkFJLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGZlYXR1cmVzLmNsZWFyKCk7XHJcbiAgICAgICAgICByZXMucnVuQUlGZWF0dXJlcy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmZWF0dXJlcy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgICAgZmVhdHVyZU5hbWU6IHRoaXMuZmIuY29udHJvbChlbGUuZmVhdHVyZU5hbWUpLFxyXG4gICAgICAgICAgICAgICAgbGFibGVOYW1lOiB0aGlzLmZiLmNvbnRyb2woZWxlLmxhYmxlTmFtZSksXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5pbnNlcnRGZWF0dXJlcyhyZXMucnVuQUlGZWF0dXJlcyk7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdCgnUnVuQUkgZW5hYmxlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsIGZhbHNlLCBhbnNJZHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LCBmYWxzZSwgYW5zSWR4KTtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1J1bkFJIGRpc2FibGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsIGJhY2tkcm9wOiBcInN0YXRpY1wifSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVFNEUyXCIvPjxwYXRoIGQ9XCJNMjggMjRWMjhNMjggMzJIMjguMDFNMzggMjhDMzggMzMuNTIyOCAzMy41MjI4IDM4IDI4IDM4QzIyLjQ3NzIgMzggMTggMzMuNTIyOCAxOCAyOEMxOCAyMi40NzcyIDIyLjQ3NzIgMTggMjggMThDMzMuNTIyOCAxOCAzOCAyMi40NzcyIDM4IDI4WlwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+PC9zcGFuPmAsXHJcbiAgICAgIHRpdGxlOiBgUnVuIEFJIFJlbW92ZWAsXHJcbiAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gUmVtb3ZlIFJ1biBBST9gLFxyXG4gICAgICBidXR0b250eXBlOiAncmVtb3ZlJ1xyXG4gICAgfVxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCJyZXMgPT5cIiwgcmVzKVxyXG4gICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1J1bkFJIGRpc2FibGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgXCJydW5BSVwiLCBhbnNJZHgpO1xyXG4gICAgICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHRydWUsIHsgZW1pdEV2ZW50OiB0cnVlIH0pOyAvLyByZXNldCB0byBPTlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm47XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgaW5zZXJ0RmVhdHVyZXMoZGF0YTphbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBydW5BSUZlYXR1cmVzOiBkYXRhLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNvcFNlcnZpY2UudXBkYXRlUnVuQUlGZWF0dXJlcyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe31cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAgXHJcbiAgb25Qb3B1cChpbWFnZTpzdHJpbmcpe1xyXG4gICAgbGV0IGltYWdlUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6IFwibWRcIiB9KTtcclxuICAgIGltYWdlUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7dHlwZTonaW1hZ2UnLGltYWdlOnRoaXMuZW52aXJvbm1lbnQuVHJheEFuc3dlckNETitpbWFnZX07XHJcbiAgICBpbWFnZVJlZi5yZXN1bHQudGhlbigoKSA9PiB7fSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCJjaGVja2xpc3RMb2FkaW5nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCIhY2hlY2tsaXN0TG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtMyBwYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtY2VudGVyIG10LTMgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZSBtZS01IHBzLTIgcHgtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzMiAxMC4wMDAzSDQuMTY2NU00LjE2NjUgMTAuMDAwM0w5Ljk5OTg0IDE1LjgzMzdNNC4xNjY1IDEwLjAwMDNMOS45OTk4NCA0LjE2Njk5XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW4gdy04MDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgbWItNCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0IHBsYWluLWlucHV0XCIgI2NoZWNrbGlzdE5hbWUgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgTmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdE5hbWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiICNjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBEZXNjcmlwdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdERlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS02IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2FkZCdcIiAoY2xpY2spPVwic2F2ZUNoZWNrbGlzdFF1ZXN0aW9ucygnY29uZmlndXJlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5Db25maWd1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2FkZCdcIiAoY2xpY2spPVwic2F2ZUFzRHJhZnRQb3AoJ2NyZWF0ZScpXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+U2F2ZSBhcyBEcmFmdDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2VkaXQnXCIgKGNsaWNrKT1cInVwZGF0ZUNoZWNrbGlzdFF1ZXN0aW9ucygnY29uZmlndXJlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5Db25maWd1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93dmFsdWUgPT09ICdlZGl0J1wiIChjbGljayk9XCJzYXZlQXNEcmFmdFBvcCgndXBkYXRlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5TYXZlIGFzIERyYWZ0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdCBjYXJkIHB4LTcgcHktN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy0xOHB4IGZ3LTYwMCB0ZXh0LWxlZnQgbWItMyBjb25jaXNlLWNoZWNrbGlzdG5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRGb3JtQ29udHJvbCgnY2hlY2tsaXN0TmFtZScpLnZhbHVlID8gZ2V0Rm9ybUNvbnRyb2woJ2NoZWNrbGlzdE5hbWUnKS52YWx1ZSA6ICdDaGVja2xpc3ROYW1lJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcGFuZWwtY29udGFpbmVyXCIgZm9ybUFycmF5TmFtZT1cInNlY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmNvbnRyb2xzO2xldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBzZWN0aW9uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkIGVkaXRhYmxlY29udGVudC1sZWZ0XCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlY3Rpb25Gb3JtQ29udHJvbChpLCduYW1lJyk/LnZhbHVlID09PSAnJyA/IFwiU2VjdGlvbiBcIiA6ICcnfX17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U2VjdGlvbkZvcm1Db250cm9sKGksJ25hbWUnKT8udmFsdWUgPyBnZXRTZWN0aW9uRm9ybUNvbnRyb2woaSwnbmFtZScpPy52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnZXRTZWN0aW9uRm9ybUNvbnRyb2woaSwnc2VjdGlvbk51bWJlcicpPy52YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwiZGVsZXRlU2VjdGlvbihpKVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIG1hdFRvb2x0aXA9XCJEZWxldGUgc2VjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjI1IDQuNUgzLjc1TTMuNzUgNC41SDE1Ljc1TTMuNzUgNC41VjE1QzMuNzUgMTUuMzk3OCAzLjkwODA0IDE1Ljc3OTQgNC4xODkzNCAxNi4wNjA3QzQuNDcwNjQgMTYuMzQyIDQuODUyMTggMTYuNSA1LjI1IDE2LjVIMTIuNzVDMTMuMTQ3OCAxNi41IDEzLjUyOTQgMTYuMzQyIDEzLjgxMDcgMTYuMDYwN0MxNC4wOTIgMTUuNzc5NCAxNC4yNSAxNS4zOTc4IDE0LjI1IDE1VjQuNUgzLjc1Wk02IDQuNVYzQzYgMi42MDIxOCA2LjE1ODA0IDIuMjIwNjQgNi40MzkzNCAxLjkzOTM0QzYuNzIwNjQgMS42NTgwNCA3LjEwMjE4IDEuNSA3LjUgMS41SDEwLjVDMTAuODk3OCAxLjUgMTEuMjc5NCAxLjY1ODA0IDExLjU2MDcgMS45MzkzNEMxMS44NDIgMi4yMjA2NCAxMiAyLjYwMjE4IDEyIDNWNC41TTcuNSA4LjI1VjEyLjc1TTEwLjUgOC4yNVYxMi43NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3cgIT09IGl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93PT09aVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJhZ0Ryb3AoaSwkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKGkpLmNvbnRyb2xzXCIgY2xhc3M9XCJxdWVzdGlvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJxdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBnZXRGb3JtQXJyYXlRdWVzdGlvbnMoaSkuY29udHJvbHM7bGV0IGo9aW5kZXg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteS0yIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdhY3RpdmUnKT8udmFsdWUgPT09IHRydWUgPyAnYWN0aXZlLXF1ZXN0aW9uJyA6ICdxLWJ0bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnIChtb3VzZWVudGVyKT1cInNldEFjdGl2ZVF1ZXN0aW9uKGksaiwxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzY3JvbGxUb1F1ZXN0aW9uKGksaik7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2V0QWN0aXZlUXVlc3Rpb24oaSxqLC0xKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25jaXNlLXF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRRdWVzdGlvbkZvcm1Db250cm9sKGksaiwncW5hbWUnKT8udmFsdWUgPyAnJyA6IFwiUXVlc3Rpb25cIn19e3sgZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChpLGosJ3FuYW1lJyk/LnZhbHVlID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRRdWVzdGlvbkZvcm1Db250cm9sKGksaiwncW5hbWUnKT8udmFsdWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFF1ZXN0aW9uRm9ybUNvbnRyb2woaSxqLCdxbm8nKT8udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiICNmb3JtUmVmPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC0yXCIgc3R5bGU9XCJ0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjaGVja2xpc3QgbmFtZSBoZXJlXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tsaXN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cIm10LTRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGNoZWNrbGlzdCBkZXNjcmlwdGlvbiBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdERlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cInNlY3Rpb25zXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbkFyZWEgbXQtNVwiICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGdldFNlY3Rpb25Gb3JtQXJyYXkoKS5jb250cm9scztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkIGVkaXRhYmxlY29udGVudFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwicGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzZWN0aW9uTmFtZSAoY2hhbmdlKT1cInVwZGF0ZUlucHV0VmFsdWUoaSxzZWN0aW9uTmFtZS52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwibWwtNVwiIChjbGljayk9XCJkZWxldGVTZWN0aW9uKGkpXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBtYXRUb29sdGlwPVwiRGVsZXRlIHNlY3Rpb25cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuMjUgNC41SDMuNzVNMy43NSA0LjVIMTUuNzVNMy43NSA0LjVWMTVDMy43NSAxNS4zOTc4IDMuOTA4MDQgMTUuNzc5NCA0LjE4OTM0IDE2LjA2MDdDNC40NzA2NCAxNi4zNDIgNC44NTIxOCAxNi41IDUuMjUgMTYuNUgxMi43NUMxMy4xNDc4IDE2LjUgMTMuNTI5NCAxNi4zNDIgMTMuODEwNyAxNi4wNjA3QzE0LjA5MiAxNS43Nzk0IDE0LjI1IDE1LjM5NzggMTQuMjUgMTVWNC41SDMuNzVaTTYgNC41VjNDNiAyLjYwMjE4IDYuMTU4MDQgMi4yMjA2NCA2LjQzOTM0IDEuOTM5MzRDNi43MjA2NCAxLjY1ODA0IDcuMTAyMTggMS41IDcuNSAxLjVIMTAuNUMxMC44OTc4IDEuNSAxMS4yNzk0IDEuNjU4MDQgMTEuNTYwNyAxLjkzOTM0QzExLjg0MiAyLjIyMDY0IDEyIDIuNjAyMTggMTIgM1Y0LjVNNy41IDguMjVWMTIuNzVNMTAuNSA4LjI1VjEyLjc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwiYWNjb3JkaWFuKGkpXCIgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvdyAhPT0gaX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9uc0FyZWFcIiAqbmdJZj1cInNob3cgPT09IGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwicXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUXVlc3Rpb24tc2VjIG10LTEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKGkpLmNvbnRyb2xzO2xldCBqID0gaW5kZXg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzZXRBY3RpdmVRdWVzdGlvbihpLGosMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInNldEFjdGl2ZVF1ZXN0aW9uKGksaiwtMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xOHB4IHB4LTMgZWRpdGFibGVjb250ZW50IHF1ZXN0aW9udGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IGRlZmF1bHQ7XCI+IFF1ZXN0aW9uIHt7aisxfX08L3NwYW4+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWRcIiByb3dzPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBjbGFzcz1cIm10LTBcIiBbaWRdPVwiJ3EtJyArIGkgKyAnLScgKyBqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHF1ZXN0aW9uIGhlcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInFuYW1lXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgncW5hbWUnKT8uaW52YWxpZCAmJiBxdWVzdGlvbi5nZXQoJ3FuYW1lJyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOiByZWQ7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ3FuYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+KlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbiBpcyByZXF1aXJlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFbJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdpbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgdy05MCB0ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBxdWVzdGlvbi5nZXQoJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZTsgbGV0IG0gPSBpbmRleFwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbWFnZT8uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltYWdlLWNvbnRhaW5lciByZWZfaW1nX2NvbnQgbWItNCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2ltYWdlLmltYWdlVVJMfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI5MCVcIiBoZWlnaHQ9XCIzMDBweFwiIGNsYXNzPVwiYXV0by1hZGp1c3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiVGFuZ28gRXllXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogb25Qb3B1cChpbWFnZS5pbWFnZVVSTClcIiBuZ2JUb29sdGlwPVwiRXhwYW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjUgMTEuNUgyNy41TTI3LjUgMTEuNVYxNi41TTI3LjUgMTEuNUwyMS42NjY3IDE3LjMzMzNNMTcuNSAyNi41SDEyLjVNMTIuNSAyNi41VjIxLjVNMTIuNSAyNi41TDE4LjMzMzMgMjAuNjY2N1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTEzXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIiBbaWRdPVwiJ2ZpbGV1cGxvYWRyZWZfMScraStqK21cIiB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFuc3dlckZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogbG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnLG0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiIFtmb3JdPVwiJ2ZpbGV1cGxvYWRyZWZfMScraStqK21cIiBuZ2JUb29sdGlwPVwiUmV1cGxvYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjcuNSAyMS41VjI0LjgzMzNDMjcuNSAyNS4yNzU0IDI3LjMyNDQgMjUuNjk5MyAyNy4wMTE4IDI2LjAxMThDMjYuNjk5MyAyNi4zMjQ0IDI2LjI3NTQgMjYuNSAyNS44MzMzIDI2LjVIMTQuMTY2N0MxMy43MjQ2IDI2LjUgMTMuMzAwNyAyNi4zMjQ0IDEyLjk4ODIgMjYuMDExOEMxMi42NzU2IDI1LjY5OTMgMTIuNSAyNS4yNzU0IDEyLjUgMjQuODMzM1YyMS41TTI0LjE2NjcgMTUuNjY2N0wyMCAxMS41TTIwIDExLjVMMTUuODMzMyAxNS42NjY3TTIwIDExLjVWMjEuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTIyXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogY2xlYXJSZWZlcmVuY2VJbWFnZShpLGosLTEsbSwnbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlJyk7XCIgbmdiVG9vbHRpcD1cIkRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEzLjk5NzRIMTQuMTY2N00xNC4xNjY3IDEzLjk5NzRIMjcuNU0xNC4xNjY3IDEzLjk5NzRWMjUuNjY0MUMxNC4xNjY3IDI2LjEwNjEgMTQuMzQyMyAyNi41MyAxNC42NTQ4IDI2Ljg0MjZDMTQuOTY3NCAyNy4xNTUxIDE1LjM5MTMgMjcuMzMwNyAxNS44MzMzIDI3LjMzMDdIMjQuMTY2N0MyNC42MDg3IDI3LjMzMDcgMjUuMDMyNiAyNy4xNTUxIDI1LjM0NTIgMjYuODQyNkMyNS42NTc3IDI2LjUzIDI1LjgzMzMgMjYuMTA2MSAyNS44MzMzIDI1LjY2NDFWMTMuOTk3NEgxNC4xNjY3Wk0xNi42NjY3IDEzLjk5NzRWMTIuMzMwN0MxNi42NjY3IDExLjg4ODcgMTYuODQyMyAxMS40NjQ4IDE3LjE1NDggMTEuMTUyMkMxNy40Njc0IDEwLjgzOTcgMTcuODkxMyAxMC42NjQxIDE4LjMzMzMgMTAuNjY0MUgyMS42NjY3QzIyLjEwODcgMTAuNjY0MSAyMi41MzI2IDEwLjgzOTcgMjIuODQ1MiAxMS4xNTIyQzIzLjE1NzcgMTEuNDY0OCAyMy4zMzMzIDExLjg4ODcgMjMuMzMzMyAxMi4zMzA3VjEzLjk5NzRNMTguMzMzMyAxOC4xNjQxVjIzLjE2NDFNMjEuNjY2NyAxOC4xNjQxVjIzLjE2NDFcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxNFwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJlZl9kZWxfaWNvblwiIChjbGljayk9XCJjbGVhclJlZmVyZW5jZUltYWdlKGksaik7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA1LjAwMTNINC4xNjY2N000LjE2NjY3IDUuMDAxM0gxNy41TTQuMTY2NjcgNS4wMDEzVjE2LjY2OEM0LjE2NjY3IDE3LjExIDQuMzQyMjYgMTcuNTMzOSA0LjY1NDgyIDE3Ljg0NjVDNC45NjczOCAxOC4xNTkgNS4zOTEzMSAxOC4zMzQ2IDUuODMzMzMgMTguMzM0NkgxNC4xNjY3QzE0LjYwODcgMTguMzM0NiAxNS4wMzI2IDE4LjE1OSAxNS4zNDUyIDE3Ljg0NjVDMTUuNjU3NyAxNy41MzM5IDE1LjgzMzMgMTcuMTEgMTUuODMzMyAxNi42NjhWNS4wMDEzSDQuMTY2NjdaTTYuNjY2NjcgNS4wMDEzVjMuMzM0NjRDNi42NjY2NyAyLjg5MjYxIDYuODQyMjYgMi40Njg2OCA3LjE1NDgyIDIuMTU2MTJDNy40NjczOCAxLjg0MzU2IDcuODkxMzEgMS42Njc5NyA4LjMzMzMzIDEuNjY3OTdIMTEuNjY2N0MxMi4xMDg3IDEuNjY3OTcgMTIuNTMyNiAxLjg0MzU2IDEyLjg0NTIgMi4xNTYxMkMxMy4xNTc3IDIuNDY4NjggMTMuMzMzMyAyLjg5MjYxIDEzLjMzMzMgMy4zMzQ2NFY1LjAwMTNNOC4zMzMzMyA5LjE2Nzk3VjE0LjE2OE0xMS42NjY3IDkuMTY3OTdWMTQuMTY4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNDIzMThcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGJ0bi1saWdodC1wcmltYXJ5IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkXycraStqXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFuc3dlckZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsLTEsJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidmaWxldXBsb2FkXycraStqXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwODJfMzEyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNjY2NyAzLjMzNTI3VjguMzM1MjdNMTkuNjY2NyA4LjMzNTI3SDE0LjY2NjdNMTkuNjY2NyA4LjMzNTI3TDE1LjggNC43MDE5M0MxNC45MDQ0IDMuODA1ODYgMTMuNzk2NCAzLjE1MTI3IDEyLjU3OTMgMi43OTkyNUMxMS4zNjIzIDIuNDQ3MjIgMTAuMDc1OSAyLjQwOTIzIDguODQwMjUgMi42ODg4MkM3LjYwNDU2IDIuOTY4NDEgNi40NTk4NCAzLjU1NjQ2IDUuNTEyOSA0LjM5ODEyQzQuNTY1OTUgNS4yMzk3NyAzLjg0NzY1IDYuMzA3NTkgMy40MjUwMSA3LjUwMTkzTTEuMzMzMzQgMTYuNjY4NlYxMS42Njg2TTEuMzMzMzQgMTEuNjY4Nkg2LjMzMzM0TTEuMzMzMzQgMTEuNjY4Nkw1LjIwMDAxIDE1LjMwMTlDNi4wOTU2MyAxNi4xOTggNy4yMDM2NSAxNi44NTI2IDguNDIwNjggMTcuMjA0NkM5LjYzNzcxIDE3LjU1NjcgMTAuOTI0MSAxNy41OTQ2IDEyLjE1OTggMTcuMzE1MUMxMy4zOTU1IDE3LjAzNTUgMTQuNTQwMiAxNi40NDc0IDE1LjQ4NzEgMTUuNjA1OEMxNi40MzQxIDE0Ljc2NDEgMTcuMTUyNCAxMy42OTYzIDE3LjU3NSAxMi41MDE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDA4Ml8zMTIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5SZXVwbG9hZCBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUubGVuZ3RoIDw1ICYmICFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGFkZC1yZWYtYnRuIGJ0bi1saWdodC1wcmltYXJ5IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkUW5SZWYxXzInK2kralwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCIgW2Zvcl09XCInZmlsZXVwbG9hZFFuUmVmMV8yJytpK2pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA0LjE2Nzk3VjE1LjgzNDZNNC4xNjY2OSAxMC4wMDEzSDE1LjgzMzRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5BZGQgUmVmZXJlbmNlIEltYWdlIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZS5sZW5ndGggPj0gNSB8fCBxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuLWxpZ2h0LWRpc2JhbGVkIGJ0biBhZGQtcmVmLWJ0biBteS0yIGJvcmRlckNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2NDA2VjE1LjgzMDdNNC4xNjc5NyA5Ljk5NzRIMTUuODM0NlwiIHN0cm9rZT1cIiM2QkNBRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDxzcGFuPkFkZCBSZWZlcmVuY2UgSW1hZ2U8L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJtdC01XCIgbmFtZT1cInNlbGVjdG9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJhbnN3ZXJUeXBlU2VsZWN0aW9uKGksaiwkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwiZGVzY3JpcHRpdmVcIiB2YWx1ZT1cImRlc2NyaXB0aXZlXCI+RGVzY3JpcHRpdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwieWVzL25vXCIgdmFsdWU9XCJ5ZXMvbm9cIj5BL0IgUXVlc3Rpb248L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIj5NdWx0aXBsZSBDaG9pY2UgUXVlc3Rpb24gLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGUgQW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiPk11bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIEFuc3dlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cImRlc2NyaXB0aXZlSW1hZ2VcIiB2YWx1ZT1cImRlc2NyaXB0aXZlSW1hZ2VcIj5DYXB0dXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlIHdpdGggRGVzY3JpcHRpb248L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJpbWFnZVwiIHZhbHVlPVwiaW1hZ2VcIj5DYXB0dXJlIEltYWdlIGFzIGFuc3dlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cInZpZGVvXCIgdmFsdWU9XCJ2aWRlb1wiPkNhcHR1cmUgdmlkZW8gYXMgYW5zd2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibXVsdGlwbGVJbWFnZVwiIHZhbHVlPVwibXVsdGlwbGVJbWFnZVwiPkNhcHR1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbGUgSW1hZ2U8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJkYXRlXCIgdmFsdWU9XCJkYXRlXCI+RGF0ZSAtIEREL01NL1lZWVk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJsaW5lYXJzY2FsZVwiIHZhbHVlPVwibGluZWFyc2NhbGVcIj5MaW5lYXIgU2NhbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJ0aW1lXCIgdmFsdWU9XCJ0aW1lXCI+VGltZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBteC00IGQtZmxleCBtdC0zXCIgKm5nSWY9XCJbJ2Rlc2NyaXB0aXZlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwidGV4dFwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2lkXT1cIidpbmxpbmVSYWRpbzAnKyBpICsgalwiICBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzAnKyBpICsgalwiPlRleHQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwibnVtYmVyXCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbaWRdPVwiJ2lubGluZVJhZGlvMScrIGkgKyBqXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgIFtmb3JdPVwiJ2lubGluZVJhZGlvMScraSArIGpcIj5OdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3llcy9ubycgfHwgcXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnIHx8IHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkZXJcIiBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtcIj5BbnN3ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihpLGosJ2Fuc3dlcnMnKT8uY29udHJvbHM7bGV0IGsgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFtmb3JtR3JvdXBOYW1lXT1cImtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYW5zd2VyLmdldCgnaXNkZWxldGVkJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IEFuc3dlcjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIGFuc3dlciBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICd5ZXMvbm8nIHx8IHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZsMlwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaW1nQWRkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOnVwZGF0ZUxpbmtlZChpLGosaylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS45OTk5OSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY2NiA5Ljk5OTM1SDE1LjgzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaW52YWxpZCAmJiBhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6IHJlZDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ2Fuc3dlcicpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEFuc3dlciBpcyByZXF1aXJlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6IHJlZDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnc2hvd1NPUEZsYWdFcnJvcicpPy52YWx1ZSA9PT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZXJ5IGFuc3dlciBjYW7igJl0IGJlIGEgZmxhZy48L3A+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUNvbnRyb2xOYW1lPVwic29wRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6IHJhaXNlZmxhZyhpLGosayx0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSYWlzZSBhIGZsYWcgaWYgdGhpcyBhbnN3ZXIgaXMgc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdzb3BGbGFnJyk/LnZhbHVlID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2l3aVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNjY2NjkgMTAuMDAwN0MyLjY2NjY5IDEwLjAwMDcgMy4zMzMzNSA5LjMzMzk4IDUuMzMzMzUgOS4zMzM5OEM3LjMzMzM1IDkuMzMzOTggOC42NjY2OSAxMC42NjczIDEwLjY2NjcgMTAuNjY3M0MxMi42NjY3IDEwLjY2NzMgMTMuMzMzNCAxMC4wMDA3IDEzLjMzMzQgMTAuMDAwN1YyLjAwMDY1QzEzLjMzMzQgMi4wMDA2NSAxMi42NjY3IDIuNjY3MzIgMTAuNjY2NyAyLjY2NzMyQzguNjY2NjkgMi42NjczMiA3LjMzMzM1IDEuMzMzOTggNS4zMzMzNSAxLjMzMzk4QzMuMzMzMzUgMS4zMzM5OCAyLjY2NjY5IDIuMDAwNjUgMi42NjY2OSAyLjAwMDY1VjEwLjAwMDdaTTIuNjY2NjkgMTAuMDAwN1YxNC42NjczXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEMEQ1RERcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6IHJhaXNlZmxhZyhpLGosayxmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiUmFpc2UgYSBmbGFnIGlmIHRoaXMgYW5zd2VyIGlzIHNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnc29wRmxhZycpPy52YWx1ZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aXZlLWZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjY2NjY5IDEwLjAwMDdDMi42NjY2OSAxMC4wMDA3IDMuMzMzMzUgOS4zMzM5OCA1LjMzMzM1IDkuMzMzOThDNy4zMzMzNSA5LjMzMzk4IDguNjY2NjkgMTAuNjY3MyAxMC42NjY3IDEwLjY2NzNDMTIuNjY2NyAxMC42NjczIDEzLjMzMzQgMTAuMDAwNyAxMy4zMzM0IDEwLjAwMDdWMi4wMDA2NUMxMy4zMzM0IDIuMDAwNjUgMTIuNjY2NyAyLjY2NzMyIDEwLjY2NjcgMi42NjczMkM4LjY2NjY5IDIuNjY3MzIgNy4zMzMzNSAxLjMzMzk4IDUuMzMzMzUgMS4zMzM5OEMzLjMzMzM1IDEuMzMzOTggMi42NjY2OSAyLjAwMDY1IDIuNjY2NjkgMi4wMDA2NVYxMC4wMDA3Wk0yLjY2NjY5IDEwLjAwMDdWMTQuNjY3M1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYW5zd2VyLmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFuc3dlcnZhbGlkYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJtdC03XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2N1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImdldHZhbGlkYXRpb24oaSxqLGssJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbGlkYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhY2tib3ggcHQtNCBtdC0yIG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlZhbGlkYXRlIHJlc3BvbnNlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+VHJpZ2dlciBhbiBhY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlYWNoIHJlc3BvbnNlIHRvIHZhbGlkYXRlIGl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSAhPT0gJ3llcy9ubycgJiYgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKGksaiwnYW5zd2VycycpLnZhbHVlLmxlbmd0aCA+IDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOmRlbGV0ZUFuc3dlcihpLGosaylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSBhbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICpuZ0lmPVwibW9yZXFuLnZhbGlkYXRpb25cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYW5zd2VyLmdldCgndmFsaWRhdGlvbicpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBwdC03IGZzLTQgZnctNDAwIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoZSByZXNwb25zZSBpcyB0aGlzLCB0aGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJtdC01IG14LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbGlkYXRpb25UeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVZhbGlkYXRpb25UeXBlKCRldmVudCxpLGosaylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPkRlc2NyaXB0aXZlIEFuc3dlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+Q2FwdHVyZSBJbWFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+Q2FwdHVyZSBWaWRlbzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgbXgtNCBkLWZsZXggcHQtOFwiICpuZ0lmPVwiYW5zd2VyLmdldCgndmFsaWRhdGlvblR5cGUnKT8udmFsdWUgPT09ICdEZXNjcmlwdGl2ZSBBbnN3ZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvMicgKyBpICsgaiArIGtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInRleHRcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvMicgKyBpICsgaiArIGtcIj5UZXh0PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvMycrIGkgKyBqICsga1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibnVtYmVyXCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzMnICsgaSArIGogKyBrXCI+TnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdzaG93TGlua2VkJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBwdC03IGZzLTQgZnctNDAwIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmtlZCBRdWVzdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IFtpZF09XCJpKyctJytrXCIgW25hbWVdPVwiaSsnLScra1wiIGNsYXNzPVwibXQtNVwiIChjaGFuZ2UpPVwidXBkYXRlUXVlc3Rpb25UeXBlKGksaixrLCRldmVudClcIiBbZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IFF1ZXN0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGdldFF1ZXN0aW9uTGlzdChpLGosaylcIiBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdE9wdGlvbihvcHRpb24sYW5zd2VyLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWUpXCI+UXVlc3Rpb24ge3tvcHRpb259fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ3ZhbGlkYXRpb24nKT8udmFsdWUgJiYgYW5zd2VyLmdldCgndmFsaWRhdGlvblR5cGUnKT8udmFsdWUgPT09ICdDYXB0dXJlIEltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWU7bGV0IG49aW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNCBpbWFnZS1jb250YWluZXIgcmVmX2ltZ19jb250IG1iLTQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aW1hZ2UuaW1hZ2VVUkx9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI5MCVcIiBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvLWFkanUgICAgc3RcIiBhbHQ9XCJUYW5nbyBFeWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPycnIDpvblBvcHVwKGltYWdlLmltYWdlVVJMKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjUgMTEuNUgyNy41TTI3LjUgMTEuNVYxNi41TTI3LjUgMTEuNUwyMS42NjY3IDE3LjMzMzNNMTcuNSAyNi41SDEyLjVNMTIuNSAyNi41VjIxLjVNMTIuNSAyNi41TDE4LjMzMzMgMjAuNjY2N1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTEzXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTNcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGV1cGxvYWRfdmFsaWRyZWYnK2kraitrK25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiIG5hbWU9XCJhbnN3ZXJGaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJGV2ZW50LnByZXZlbnREZWZhdWx0KCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogbG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LGssJ211bHRpUmVmZXJlbmNlSW1hZ2UnLG4pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInZmlsZXVwbG9hZF92YWxpZHJlZicraStqK2srblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTIyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy41IDIxLjVWMjQuODMzM0MyNy41IDI1LjI3NTQgMjcuMzI0NCAyNS42OTkzIDI3LjAxMTggMjYuMDExOEMyNi42OTkzIDI2LjMyNDQgMjYuMjc1NCAyNi41IDI1LjgzMzMgMjYuNUgxNC4xNjY3QzEzLjcyNDYgMjYuNSAxMy4zMDA3IDI2LjMyNDQgMTIuOTg4MiAyNi4wMTE4QzEyLjY3NTYgMjUuNjk5MyAxMi41IDI1LjI3NTQgMTIuNSAyNC44MzMzVjIxLjVNMjQuMTY2NyAxNS42NjY3TDIwIDExLjVNMjAgMTEuNUwxNS44MzMzIDE1LjY2NjdNMjAgMTEuNVYyMS41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MjJcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MjJcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MjJcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6Y2xlYXJSZWZlcmVuY2VJbWFnZShpLGosayxuLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUxNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMy45OTc0SDE0LjE2NjdNMTQuMTY2NyAxMy45OTc0SDI3LjVNMTQuMTY2NyAxMy45OTc0VjI1LjY2NDFDMTQuMTY2NyAyNi4xMDYxIDE0LjM0MjMgMjYuNTMgMTQuNjU0OCAyNi44NDI2QzE0Ljk2NzQgMjcuMTU1MSAxNS4zOTEzIDI3LjMzMDcgMTUuODMzMyAyNy4zMzA3SDI0LjE2NjdDMjQuNjA4NyAyNy4zMzA3IDI1LjAzMjYgMjcuMTU1MSAyNS4zNDUyIDI2Ljg0MjZDMjUuNjU3NyAyNi41MyAyNS44MzMzIDI2LjEwNjEgMjUuODMzMyAyNS42NjQxVjEzLjk5NzRIMTQuMTY2N1pNMTYuNjY2NyAxMy45OTc0VjEyLjMzMDdDMTYuNjY2NyAxMS44ODg3IDE2Ljg0MjMgMTEuNDY0OCAxNy4xNTQ4IDExLjE1MjJDMTcuNDY3NCAxMC44Mzk3IDE3Ljg5MTMgMTAuNjY0MSAxOC4zMzMzIDEwLjY2NDFIMjEuNjY2N0MyMi4xMDg3IDEwLjY2NDEgMjIuNTMyNiAxMC44Mzk3IDIyLjg0NTIgMTEuMTUyMkMyMy4xNTc3IDExLjQ2NDggMjMuMzMzMyAxMS44ODg3IDIzLjMzMzMgMTIuMzMwN1YxMy45OTc0TTE4LjMzMzMgMTguMTY0MVYyMy4xNjQxTTIxLjY2NjcgMTguMTY0MVYyMy4xNjQxXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MTRcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyZWZfZGVsX2ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclJlZmVyZW5jZUltYWdlKGksaixrKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDUuMDAxM0g0LjE2NjY3TTQuMTY2NjcgNS4wMDEzSDE3LjVNNC4xNjY2NyA1LjAwMTNWMTYuNjY4QzQuMTY2NjcgMTcuMTEgNC4zNDIyNiAxNy41MzM5IDQuNjU0ODIgMTcuODQ2NUM0Ljk2NzM4IDE4LjE1OSA1LjM5MTMxIDE4LjMzNDYgNS44MzMzMyAxOC4zMzQ2SDE0LjE2NjdDMTQuNjA4NyAxOC4zMzQ2IDE1LjAzMjYgMTguMTU5IDE1LjM0NTIgMTcuODQ2NUMxNS42NTc3IDE3LjUzMzkgMTUuODMzMyAxNy4xMSAxNS44MzMzIDE2LjY2OFY1LjAwMTNINC4xNjY2N1pNNi42NjY2NyA1LjAwMTNWMy4zMzQ2NEM2LjY2NjY3IDIuODkyNjEgNi44NDIyNiAyLjQ2ODY4IDcuMTU0ODIgMi4xNTYxMkM3LjQ2NzM4IDEuODQzNTYgNy44OTEzMSAxLjY2Nzk3IDguMzMzMzMgMS42Njc5N0gxMS42NjY3QzEyLjEwODcgMS42Njc5NyAxMi41MzI2IDEuODQzNTYgMTIuODQ1MiAyLjE1NjEyQzEzLjE1NzcgMi40Njg2OCAxMy4zMzMzIDIuODkyNjEgMTMuMzMzMyAzLjMzNDY0VjUuMDAxM004LjMzMzMzIDkuMTY3OTdWMTQuMTY4TTExLjY2NjcgOS4xNjc5N1YxNC4xNjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0I0MjMxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGJ0bi1saWdodC1wcmltYXJ5IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGV1cGxvYWRfJytpK2ora1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCIgbmFtZT1cImFuc3dlckZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCxrKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidmaWxldXBsb2FkXycraStqK2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteC0yXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MDgyXzMxMjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS42NjY3IDMuMzM1MjdWOC4zMzUyN00xOS42NjY3IDguMzM1MjdIMTQuNjY2N00xOS42NjY3IDguMzM1MjdMMTUuOCA0LjcwMTkzQzE0LjkwNDQgMy44MDU4NiAxMy43OTY0IDMuMTUxMjcgMTIuNTc5MyAyLjc5OTI1QzExLjM2MjMgMi40NDcyMiAxMC4wNzU5IDIuNDA5MjMgOC44NDAyNSAyLjY4ODgyQzcuNjA0NTYgMi45Njg0MSA2LjQ1OTg0IDMuNTU2NDYgNS41MTI5IDQuMzk4MTJDNC41NjU5NSA1LjIzOTc3IDMuODQ3NjUgNi4zMDc1OSAzLjQyNTAxIDcuNTAxOTNNMS4zMzMzNCAxNi42Njg2VjExLjY2ODZNMS4zMzMzNCAxMS42Njg2SDYuMzMzMzRNMS4zMzMzNCAxMS42Njg2TDUuMjAwMDEgMTUuMzAxOUM2LjA5NTYzIDE2LjE5OCA3LjIwMzY1IDE2Ljg1MjYgOC40MjA2OCAxNy4yMDQ2QzkuNjM3NzEgMTcuNTU2NyAxMC45MjQxIDE3LjU5NDYgMTIuMTU5OCAxNy4zMTUxQzEzLjM5NTUgMTcuMDM1NSAxNC41NDAyIDE2LjQ0NzQgMTUuNDg3MSAxNS42MDU4QzE2LjQzNDEgMTQuNzY0MSAxNy4xNTI0IDEzLjY5NjMgMTcuNTc1IDEyLjUwMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjbGlwMF80MDgyXzMxMjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlJldXBsb2FkIEltYWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWUubGVuZ3RoID49IDUgfHwgcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuLWxpZ2h0LWRpc2JhbGVkIGJ0biBhZGQtcmVmLWJ0biBteS0yIGJvcmRlckNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2NDA2VjE1LjgzMDdNNC4xNjc5NyA5Ljk5NzRIMTUuODM0NlwiIHN0cm9rZT1cIiM2QkNBRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPHNwYW4+QWRkIFJlZmVyZW5jZSBJbWFnZTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSAmJiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWUubGVuZ3RoIDwgNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4gYWRkLXJlZi1idG4gYnRuLWxpZ2h0LXByaW1hcnkgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInZmlsZXVwbG9hZF92YWxpZEltYWdlMScraStqK2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiIG5hbWU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsaywnbXVsdGlSZWZlcmVuY2VJbWFnZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiJ2ZpbGV1cGxvYWRfdmFsaWRJbWFnZTEnK2kraitrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj4gPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgNC4xNjc5N1YxNS44MzQ2TTQuMTY2NjkgMTAuMDAxM0gxNS44MzM0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPkFkZCBSZWZlcmVuY2UgSW1hZ2UgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBteC0yIGJ0bi1zZWMgbXQtNiB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBteC0wIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3cgdXBsb2FkIGZyb20gZ2FsbGVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiICpuZ0lmPVwidXNlclR5cGUgJiYgdXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJmczE2LTYwMCBweC0xMlwiPiBSdW4gQUkg4pyoPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtbC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gKGNsaWNrKT1cIlJ1bkFJTmV3KGksaixrKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicnVuQUlcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgKGNsaWNrKT1cIlJ1bkFJTmV3KGksaixrLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIFtuZ0NsYXNzXT1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlSW1hZ2UnID8gJ210LTEnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVuYWJsZSBBSSB3aGVyZSB5b3Ugd2FudCB0YW5nbyB0byBpZGVudGlmeSwgdHJhY2sgYW5kIGFsZXJ0IGluc3RhbmNlcy5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjMwMV8xMDAwMzgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy45OTk2NyAxMC42NjU0VjcuOTk4N003Ljk5OTY3IDUuMzMyMDNIOC4wMDYzNE0xNC42NjYzIDcuOTk4N0MxNC42NjYzIDExLjY4MDYgMTEuNjgxNiAxNC42NjU0IDcuOTk5NjcgMTQuNjY1NEM0LjMxNzc4IDE0LjY2NTQgMS4zMzMwMSAxMS42ODA2IDEuMzMzMDEgNy45OTg3QzEuMzMzMDEgNC4zMTY4IDQuMzE3NzggMS4zMzIwMyA3Ljk5OTY3IDEuMzMyMDNDMTEuNjgxNiAxLjMzMjAzIDE0LjY2NjMgNC4zMTY4IDE0LjY2NjMgNy45OTg3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIzMDFfMTAwMDM4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/Lmhhc0Vycm9yKCdkdXBsaWNhdGVTdHJpbmcnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXQtMlwiPiogU2FtZSBhbnN3ZXIgY2Fubm90IGJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdGVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnIHx8IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScpICYmICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dBZGRBbnN3ZXIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/LnZhbHVlKSAmJiAhcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiQWRkTW9yZUFucyhpLGoscXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBjb2wtbGctMTIgYnRuLWxpZ2h0LXByaW1hcnkgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIE1vcmUgQW5zd2VyPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEltYWdlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUdyb3VwTmFtZT1cImFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlO2xldCBuPWluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNCBpbWFnZS1jb250YWluZXIgcmVmX2ltZ19jb250IHJlZl9pbWdfY29udCBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2ltYWdlLmltYWdlVVJMfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI5MCVcIiBoZWlnaHQ9XCIzMDBweFwiIGNsYXNzPVwiYXV0by1hZGp1c3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiVGFuZ28gRXllXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uUG9wdXAoaW1hZ2UuaW1hZ2VVUkwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTEzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDExLjVIMjcuNU0yNy41IDExLjVWMTYuNU0yNy41IDExLjVMMjEuNjY2NyAxNy4zMzMzTTE3LjUgMjYuNUgxMi41TTEyLjUgMjYuNVYyMS41TTEyLjUgMjYuNUwxOC4zMzMzIDIwLjY2NjdcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxM1wiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiIFtpZF09XCInZmlsZXVwbG9hZEltYWdlXzQ1JytuXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAkZXZlbnQucHJldmVudERlZmF1bHQoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCwtMSwnbXVsdGlSZWZlcmVuY2VJbWFnZScsbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInZmlsZXVwbG9hZEltYWdlXzQ1JytuXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjcuNSAyMS41VjI0LjgzMzNDMjcuNSAyNS4yNzU0IDI3LjMyNDQgMjUuNjk5MyAyNy4wMTE4IDI2LjAxMThDMjYuNjk5MyAyNi4zMjQ0IDI2LjI3NTQgMjYuNSAyNS44MzMzIDI2LjVIMTQuMTY2N0MxMy43MjQ2IDI2LjUgMTMuMzAwNyAyNi4zMjQ0IDEyLjk4ODIgMjYuMDExOEMxMi42NzU2IDI1LjY5OTMgMTIuNSAyNS4yNzU0IDEyLjUgMjQuODMzM1YyMS41TTI0LjE2NjcgMTUuNjY2N0wyMCAxMS41TTIwIDExLjVMMTUuODMzMyAxNS42NjY3TTIwIDExLjVWMjEuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTIyXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyc6IGNsZWFyUmVmZXJlbmNlSW1hZ2UoaSxqLC0xLG4sJ211bHRpUmVmZXJlbmNlSW1hZ2UnKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUgMTMuOTk3NEgxNC4xNjY3TTE0LjE2NjcgMTMuOTk3NEgyNy41TTE0LjE2NjcgMTMuOTk3NFYyNS42NjQxQzE0LjE2NjcgMjYuMTA2MSAxNC4zNDIzIDI2LjUzIDE0LjY1NDggMjYuODQyNkMxNC45Njc0IDI3LjE1NTEgMTUuMzkxMyAyNy4zMzA3IDE1LjgzMzMgMjcuMzMwN0gyNC4xNjY3QzI0LjYwODcgMjcuMzMwNyAyNS4wMzI2IDI3LjE1NTEgMjUuMzQ1MiAyNi44NDI2QzI1LjY1NzcgMjYuNTMgMjUuODMzMyAyNi4xMDYxIDI1LjgzMzMgMjUuNjY0MVYxMy45OTc0SDE0LjE2NjdaTTE2LjY2NjcgMTMuOTk3NFYxMi4zMzA3QzE2LjY2NjcgMTEuODg4NyAxNi44NDIzIDExLjQ2NDggMTcuMTU0OCAxMS4xNTIyQzE3LjQ2NzQgMTAuODM5NyAxNy44OTEzIDEwLjY2NDEgMTguMzMzMyAxMC42NjQxSDIxLjY2NjdDMjIuMTA4NyAxMC42NjQxIDIyLjUzMjYgMTAuODM5NyAyMi44NDUyIDExLjE1MjJDMjMuMTU3NyAxMS40NjQ4IDIzLjMzMzMgMTEuODg4NyAyMy4zMzMzIDEyLjMzMDdWMTMuOTk3NE0xOC4zMzMzIDE4LjE2NDFWMjMuMTY0MU0yMS42NjY3IDE4LjE2NDFWMjMuMTY0MVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTE0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTE0XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTE0XCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyZWZfZGVsX2ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIihxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgcXVlc3Rpb24uZ2V0KCdydW5BSURlZmF1bHQnKT8udmFsdWUpID8gJyc6IGNsZWFyUmVmZXJlbmNlSW1hZ2UoaSxqKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgW3N0eWxlXT1cIihxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgcXVlc3Rpb24uZ2V0KCdydW5BSURlZmF1bHQnKT8udmFsdWUpID8gJ2N1cnNvcjpkZWZhdWx0JzonJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDUuMDAxM0g0LjE2NjY3TTQuMTY2NjcgNS4wMDEzSDE3LjVNNC4xNjY2NyA1LjAwMTNWMTYuNjY4QzQuMTY2NjcgMTcuMTEgNC4zNDIyNiAxNy41MzM5IDQuNjU0ODIgMTcuODQ2NUM0Ljk2NzM4IDE4LjE1OSA1LjM5MTMxIDE4LjMzNDYgNS44MzMzMyAxOC4zMzQ2SDE0LjE2NjdDMTQuNjA4NyAxOC4zMzQ2IDE1LjAzMjYgMTguMTU5IDE1LjM0NTIgMTcuODQ2NUMxNS42NTc3IDE3LjUzMzkgMTUuODMzMyAxNy4xMSAxNS44MzMzIDE2LjY2OFY1LjAwMTNINC4xNjY2N1pNNi42NjY2NyA1LjAwMTNWMy4zMzQ2NEM2LjY2NjY3IDIuODkyNjEgNi44NDIyNiAyLjQ2ODY4IDcuMTU0ODIgMi4xNTYxMkM3LjQ2NzM4IDEuODQzNTYgNy44OTEzMSAxLjY2Nzk3IDguMzMzMzMgMS42Njc5N0gxMS42NjY3QzEyLjEwODcgMS42Njc5NyAxMi41MzI2IDEuODQzNTYgMTIuODQ1MiAyLjE1NjEyQzEzLjE1NzcgMi40Njg2OCAxMy4zMzMzIDIuODkyNjEgMTMuMzMzMyAzLjMzNDY0VjUuMDAxM004LjMzMzMzIDkuMTY3OTdWMTQuMTY4TTExLjY2NjcgOS4xNjc5N1YxNC4xNjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjQyMzE4XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGJ0bi1saWdodC1wcmltYXJ5IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiIGlkPVwiZmlsZXVwbG9hZFwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQpXCIgKm5nSWY9XCIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlICE9PSAnaW1hZ2UnIHx8IChxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgIXF1ZXN0aW9uLmdldCgncnVuQUlEZWZhdWx0Jyk/LnZhbHVlKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWxldXBsb2FkXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIxIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MDgyXzMxMjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNjY2NyAzLjMzNTI3VjguMzM1MjdNMTkuNjY2NyA4LjMzNTI3SDE0LjY2NjdNMTkuNjY2NyA4LjMzNTI3TDE1LjggNC43MDE5M0MxNC45MDQ0IDMuODA1ODYgMTMuNzk2NCAzLjE1MTI3IDEyLjU3OTMgMi43OTkyNUMxMS4zNjIzIDIuNDQ3MjIgMTAuMDc1OSAyLjQwOTIzIDguODQwMjUgMi42ODg4MkM3LjYwNDU2IDIuOTY4NDEgNi40NTk4NCAzLjU1NjQ2IDUuNTEyOSA0LjM5ODEyQzQuNTY1OTUgNS4yMzk3NyAzLjg0NzY1IDYuMzA3NTkgMy40MjUwMSA3LjUwMTkzTTEuMzMzMzQgMTYuNjY4NlYxMS42Njg2TTEuMzMzMzQgMTEuNjY4Nkg2LjMzMzM0TTEuMzMzMzQgMTEuNjY4Nkw1LjIwMDAxIDE1LjMwMTlDNi4wOTU2MyAxNi4xOTggNy4yMDM2NSAxNi44NTI2IDguNDIwNjggMTcuMjA0NkM5LjYzNzcxIDE3LjU1NjcgMTAuOTI0MSAxNy41OTQ2IDEyLjE1OTggMTcuMzE1MUMxMy4zOTU1IDE3LjAzNTUgMTQuNTQwMiAxNi40NDc0IDE1LjQ4NzEgMTUuNjA1OEMxNi40MzQxIDE0Ljc2NDEgMTcuMTUyNCAxMy42OTYzIDE3LjU3NSAxMi41MDE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDA4Ml8zMTIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlJldXBsb2FkIEltYWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlICYmIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUubGVuZ3RoIDwgNSAmJiAhcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4gYWRkLXJlZi1idG4gYnRuLWxpZ2h0LXByaW1hcnkgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgaWQ9XCJmaWxldXBsb2FkcmVmSW1hZ2UxXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCwtMSwnbXVsdGlSZWZlcmVuY2VJbWFnZScpXCIgKm5nSWY9XCIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlICE9PSAnaW1hZ2UnIHx8IChxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgIXF1ZXN0aW9uLmdldCgncnVuQUlEZWZhdWx0Jyk/LnZhbHVlKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBvaW50ZXJcIiBmb3I9XCJmaWxldXBsb2FkcmVmSW1hZ2UxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPiA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgNC4xNjc5N1YxNS44MzQ2TTQuMTY2NjkgMTAuMDAxM0gxNS44MzM0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPkFkZCBSZWZlcmVuY2UgSW1hZ2UgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlLmxlbmd0aCA+PSA1IHx8IHF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4tbGlnaHQtZGlzYmFsZWQgYnRuIGFkZC1yZWYtYnRuIG15LTIgYm9yZGVyQ2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDEzIDQuMTY0MDZWMTUuODMwN000LjE2Nzk3IDkuOTk3NEgxNS44MzQ2XCIgc3Ryb2tlPVwiIzZCQ0FGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPHNwYW4+QWRkIFJlZmVyZW5jZSBJbWFnZTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBteC0yIGJ0bi1zZWMgbXQtNiB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvdyB1cGxvYWQgZnJvbSBnYWxsZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoWydtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKSAmJiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlID09PSAnJykgPyAnY29sLWxnLTQgbXQtNicgOiBbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSkgPyAnY29sLWxnLTInIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiAqbmdJZj1cIihbJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpICYmIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUgPT09ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvNCcgKyBpICsgalwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInRleHRcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzQnICsgaSArIGpcIj5UZXh0PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvNScgKyBpICsgalwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm51bWJlclwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvNScgKyBpICsgalwiPk51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlICYmIFsnaW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnZGVzY3JpcHRpdmVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVJbWFnZScgPyAnY29sLWxnLTUgZC1mbGV4IG10LTYnIDogJ2NvbC1sZy0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzYnICsgaSArIGpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ0ZXh0XCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW82JyArIGkgKyBqXCI+VGV4dDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzYnICsgaSArIGpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJudW1iZXJcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzYnICsgaSArIGpcIj5OdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgKm5nSWY9XCJ1c2VyVHlwZSAmJiB1c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImZzMTYtNjAwIHB4LTEyXCI+IFJ1biBBSSDinKg8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIGFsaWduLWl0ZW1zLWNlbnRlciBidG4tc2VjIG1sLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwiUnVuQUlOZXcoaSxqKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicnVuQUlcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgKGNsaWNrKT1cIlJ1bkFJTmV3KGksaiwtMSwkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBbbmdDbGFzc109XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZUltYWdlJyA/ICdtdC0xJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFbmFibGUgQUkgd2hlcmUgeW91IHdhbnQgdGFuZ28gdG8gaWRlbnRpZnksIHRyYWNrIGFuZCBhbGVydCBpbnN0YW5jZXMuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIzMDFfMTAwMDM4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuOTk5NjcgMTAuNjY1NFY3Ljk5ODdNNy45OTk2NyA1LjMzMjAzSDguMDA2MzRNMTQuNjY2MyA3Ljk5ODdDMTQuNjY2MyAxMS42ODA2IDExLjY4MTYgMTQuNjY1NCA3Ljk5OTY3IDE0LjY2NTRDNC4zMTc3OCAxNC42NjU0IDEuMzMzMDEgMTEuNjgwNiAxLjMzMzAxIDcuOTk4N0MxLjMzMzAxIDQuMzE2OCA0LjMxNzc4IDEuMzMyMDMgNy45OTk2NyAxLjMzMjAzQzExLjY4MTYgMS4zMzIwMyAxNC42NjYzIDQuMzE2OCAxNC42NjYzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMzAxXzEwMDAzOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBWaWRlbyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3ZpZGVvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyIGJ0bi1zZWMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPkFsbG93IHVwbG9hZCBmcm9tIGdhbGxlcnk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3RpbWUnXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUdyb3VwTmFtZT1cImFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1sZy00IGJ0bi1zZWMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4XCIgdHlwZT1cInRpbWVcIiBuYW1lPVwidGltZVwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2xpbmVhcnNjYWxlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1zZWMgbXQtMiBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTEwMHB4XCIgdHlwZT1cIm51bWJlclwiIG5hbWU9XCJzdGFydFwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwicmFuZ2VTdGFydFwiPiAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXNlYyBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTE2cHhcIj50bzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgYnRuLXNlYyBtdC0yIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMTAwcHhcIiB0eXBlPVwibnVtYmVyXCIgbmFtZT1cInN0YXJ0XCIgbmdEZWZhdWx0Q29udHJvbCBmb3JtQ29udHJvbE5hbWU9XCJyYW5nZUVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTFcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGNsb25lUXVlc3Rpb24oaSxqKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRHVwbGljYXRlXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzMzODVfMTA1NzgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjY2MyAxMi40OTkzSDMuMzMzMjlDMi44OTEyNyAxMi40OTkzIDIuNDY3MzQgMTIuMzIzOCAyLjE1NDc4IDEyLjAxMTJDMS44NDIyMiAxMS42OTg2IDEuNjY2NjMgMTEuMjc0NyAxLjY2NjYzIDEwLjgzMjdWMy4zMzI2OEMxLjY2NjYzIDIuODkwNjUgMS44NDIyMiAyLjQ2NjczIDIuMTU0NzggMi4xNTQxN0MyLjQ2NzM0IDEuODQxNjEgMi44OTEyNyAxLjY2NjAyIDMuMzMzMjkgMS42NjYwMkgxMC44MzMzQzExLjI3NTMgMS42NjYwMiAxMS42OTkyIDEuODQxNjEgMTIuMDExOCAyLjE1NDE3QzEyLjMyNDQgMi40NjY3MyAxMi41IDIuODkwNjUgMTIuNSAzLjMzMjY4VjQuMTY2MDJNOS4xNjY2MyA3LjQ5OTM1SDE2LjY2NjZDMTcuNTg3MSA3LjQ5OTM1IDE4LjMzMzMgOC4yNDU1NCAxOC4zMzMzIDkuMTY2MDJWMTYuNjY2QzE4LjMzMzMgMTcuNTg2NSAxNy41ODcxIDE4LjMzMjcgMTYuNjY2NiAxOC4zMzI3SDkuMTY2NjNDOC4yNDYxNSAxOC4zMzI3IDcuNDk5OTYgMTcuNTg2NSA3LjQ5OTk2IDE2LjY2NlY5LjE2NjAyQzcuNDk5OTYgOC4yNDU1NCA4LjI0NjE1IDcuNDk5MzUgOS4xNjY2MyA3LjQ5OTM1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyNEMEQ1REQnIDogJyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzMzODVfMTA1NzhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJycgOiBkZWxldGVRdWVzdGlvbihpLGopXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHF1ZXN0aW9uXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIFtuZ2JUb29sdGlwXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJ1RoZSBkZWxldGUgb3B0aW9uIGlzIGRpc2FibGVkIGFzIHRoZSBydW5BSSBpcyBlbmFibGVkJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA0Ljk5OTM1SDQuMTY2NjdNNC4xNjY2NyA0Ljk5OTM1SDE3LjVNNC4xNjY2NyA0Ljk5OTM1VjE2LjY2NkM0LjE2NjY3IDE3LjEwOCA0LjM0MjI2IDE3LjUzMiA0LjY1NDgyIDE3Ljg0NDVDNC45NjczOCAxOC4xNTcxIDUuMzkxMzEgMTguMzMyNyA1LjgzMzMzIDE4LjMzMjdIMTQuMTY2N0MxNC42MDg3IDE4LjMzMjcgMTUuMDMyNiAxOC4xNTcxIDE1LjM0NTIgMTcuODQ0NUMxNS42NTc3IDE3LjUzMiAxNS44MzMzIDE3LjEwOCAxNS44MzMzIDE2LjY2NlY0Ljk5OTM1SDQuMTY2NjdaTTYuNjY2NjcgNC45OTkzNVYzLjMzMjY4QzYuNjY2NjcgMi44OTA2NSA2Ljg0MjI2IDIuNDY2NzMgNy4xNTQ4MiAyLjE1NDE3QzcuNDY3MzggMS44NDE2MSA3Ljg5MTMxIDEuNjY2MDIgOC4zMzMzMyAxLjY2NjAySDExLjY2NjdDMTIuMTA4NyAxLjY2NjAyIDEyLjUzMjYgMS44NDE2MSAxMi44NDUyIDIuMTU0MTdDMTMuMTU3NyAyLjQ2NjczIDEzLjMzMzMgMi44OTA2NSAxMy4zMzMzIDMuMzMyNjhWNC45OTkzNU04LjMzMzMzIDkuMTY2MDJWMTQuMTY2TTExLjY2NjcgOS4xNjYwMlYxNC4xNjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyNEMEQ1REQnIDogJyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB4LTBcIiAqbmdJZj1cIkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTcgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiYWRkTmV3UXVlc3Rpb24oc2VjdGlvbkluZGV4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIiBjbGFzcz1cIm10LTIgYnRuLXNlYyBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk5OSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY2NiA5Ljk5OTM1SDE1LjgzMzNcIiBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gQWRkIE5ldyBRdWVzdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcGwtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtY2FyZCBweS03IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImFkZE5ld1NlY3Rpb24oKVwiIGNsYXNzPVwibXQtMiBweC0wIGJ0bi1zZWMgcG9pbnRlclwiPiA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTk5IDQuMTY2MDJWMTUuODMyN000LjE2NjY2IDkuOTk5MzVIMTUuODMzM1wiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBBZGQgTmV3IFNlY3Rpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
1858
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2FkZC1jaGVja2xpc3QvYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuSCxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLEtBQUssRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7O0FBUTNGLE1BQU0sT0FBTyxxQkFBcUI7SUFvQlo7SUFBaUM7SUFBd0I7SUFBeUM7SUFBd0I7SUFBNkI7SUFBMkI7SUFBc0I7SUFBK0I7SUFuQnJPLE9BQU8sQ0FBYTtJQUUxQyxhQUFhLENBQWE7SUFDMUIsSUFBSSxHQUFXLENBQUMsQ0FBQztJQUNqQixZQUFZLEdBQVcsQ0FBQyxDQUFD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U0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IHRpbWVyLHRha2VVbnRpbCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVHJheHBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJheHBvcHVwL3RyYXhwb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBub1doaXRlc3BhY2VWYWxpZGF0b3IgfSBmcm9tICcuLi9jcmVhdGUtdGFzay92YWxpZGF0b3JzL3doaXRlc3BhY2UtdmFsaWRhdG9yJztcclxuaW1wb3J0IHsgdW5pcXVlU3RyaW5nVmFsaWRhdG9yIH0gZnJvbSAnLi4vY3JlYXRlLXRhc2svdmFsaWRhdG9ycy91bmlxdWUtc3RyaW5nLXZhbGlkYXRvcic7XHJcbmltcG9ydCB7IFRyYXhSdW5BSVBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJheC1ydW4tYWktcG9wdXAvdHJheC1ydW4tYWktcG9wdXAuY29tcG9uZW50JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hZGQtY2hlY2tsaXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWNoZWNrbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FkZC1jaGVja2xpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRDaGVja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdmb3JtUmVmJykgZm9ybVJlZjogRWxlbWVudFJlZjtcclxuXHJcbiAgQ2hlY2tsaXN0Rm9ybSE6IEZvcm1Hcm91cDtcclxuICBzaG93OiBudW1iZXIgPSAwO1xyXG4gIHNlY3Rpb25JbmRleDogbnVtYmVyID0gMDtcclxuICBnZXRvYmplY3Q6IGFueTtcclxuICBlZGl0dmFsdWU6IGFueTtcclxuICBpc0Rpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBub3NlY3Rpb246Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3d2YWx1ZTogc3RyaW5nO1xyXG4gIHJlZkltZ1FJZHg6IG51bWJlciA9IDA7XHJcbiAgY2hlY2tsaXN0TG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHBvcHVwQ291bnQ6bnVtYmVyID0gMDtcclxuICBjbGllbnRJZDphbnk7XHJcbiAgZGVsZXRlZExpc3Q6YW55ID0gW107XHJcbiAgZW52aXJvbm1lbnQ6YW55O1xyXG4gIHVzZXJUeXBlOiBhbnk7XHJcbiAgbWF4U2VjdGlvbk51bWJlcjogYW55O1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZSxwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixwcml2YXRlIGNoYW5nZWRldGVjdG9yOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgZGlhbG9nOk5nYk1vZGFsLHByaXZhdGUgcm91dGU6QWN0aXZhdGVkUm91dGUscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UscHJpdmF0ZSByb3V0ZXI6Um91dGVyLHByaXZhdGUgc29wU2VydmljZTpUcmF4U2VydmljZSxwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gIH1cclxuICBcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdENoZWNrbGlzdCgpO1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgbGV0IHN0b3JhZ2VEZXRhaWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnKSB8fCAne30nKTtcclxuXHJcbiAgICBsZXQgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCAne30nKVxyXG4gICAgaWYodXNlckluZm8udXNlclR5cGUpe1xyXG4gICAgICB0aGlzLnVzZXJUeXBlID0gdXNlckluZm8udXNlclR5cGU7IFxyXG4gICAgfSBcclxuXHJcbiAgICBpZighc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICBzdG9yYWdlRGV0YWlscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NsaWVudC1kZXRhaWxzJykgfHwgJ3t9Jyk7XHJcbiAgICAgIHN0b3JhZ2VEZXRhaWxzLmNsaWVudCA9IHN0b3JhZ2VEZXRhaWxzLmNsaWVudElkO1xyXG4gICAgfVxyXG4gICAgaWYoc3RvcmFnZURldGFpbHM/LmNsaWVudCkge1xyXG4gICAgICB0aGlzLmNsaWVudElkID0gc3RvcmFnZURldGFpbHMuY2xpZW50O1xyXG4gICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmVkaXR2YWx1ZSA9IHBhcmFtcy5jaGVja2xpc3RJZDtcclxuICAgICAgICBpZiAocGFyYW1zLmNoZWNrbGlzdElkKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3d2YWx1ZSA9ICdlZGl0JztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gT3BlbiBQb3B1cCBmb3IgR2V0IENoZWNrbGlzdCBOYW1lIC8vXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuc2hvd3ZhbHVlID0gJ2FkZCdcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd3ZhbHVlID09ICdlZGl0JyB8fCBwYXJhbXMudHlwZSkge1xyXG4gICAgICAgICAgbGV0IG9iajogYW55ID0ge307XHJcbiAgICAgICAgICBpZiAocGFyYW1zLmNoZWNrbGlzdElkKSB7XHJcbiAgICAgICAgICAgIG9iai5jaGVja0xpc3RJZCA9IHBhcmFtcy5jaGVja2xpc3RJZFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb2JqLnR5cGUgPSBwYXJhbXMudHlwZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9iai5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zb3BTZXJ2aWNlLmdldGNvbmZpZyhvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZihyZXMpIHtcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldG9iamVjdCA9IHJlcy5kYXRhLmNoZWNrTGlzdERldGFpbHM7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNoZWNrbGlzdFF1ZXN0aW9ucygpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaW5pdENoZWNrbGlzdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnY7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFjaC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXRhY2guY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIk1hbmFnZSBDaGVja2xpc3RcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFwiQXV0b21hdGUgb3IgY3JlYXRlIGNoZWNrbGlzdHMgdG8gaW1wcm92ZSBvcGVyYXRpb25hbCBlZmZpY2llbmN5XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH1cclxuICAgIF0pO1xyXG4gIH1cclxuICBcclxuICB1cGRhdGVJbnB1dFZhbHVlKHNlY3Rpb25JbmRleDogbnVtYmVyLHNlY3Rpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChzZWN0aW9uTmFtZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuZ2V0U2VjdGlvbkZvcm1Db250cm9sKHNlY3Rpb25JbmRleCwnbmFtZScpPy5zZXRWYWx1ZShgU2VjdGlvbiAke3NlY3Rpb25JbmRleCsxfWApO1xyXG4gICAgfVxyXG4gIH1cclxuICBzY3JvbGxUb1F1ZXN0aW9uKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHF1ZXN0aW9uSWQgPSBgcS0ke3NlY3Rpb25JbmRleH0tJHtxdWVzdGlvbkluZGV4fWA7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgcXVlc3Rpb25FbGVtZW50ID0gdGhpcy5mb3JtUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7cXVlc3Rpb25JZH1gKTtcclxuICBcclxuICAgICAgaWYgKHF1ZXN0aW9uRWxlbWVudCkge1xyXG4gICAgICAgIHF1ZXN0aW9uRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNoZWNrbGlzdFF1ZXN0aW9ucygpIHsgXHJcbiAgICBsZXQgc2VjdGlvbnNhcnJheTogYW55ID0gW107XHJcbiAgICBsZXQgc2VjdGlvbnM6IGFueVtdID0gW107XHJcbiAgICBzZWN0aW9uc2FycmF5ID0gdGhpcy5nZXRvYmplY3Quc2VjdGlvbnNcclxuXHJcbiAgICB0aGlzLm1heFNlY3Rpb25OdW1iZXIgPSBNYXRoLm1heCguLi5zZWN0aW9uc2FycmF5Lm1hcCgoZWxlOmFueSkgPT4gZWxlLnNlY3Rpb25OdW1iZXIgKSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInRoaXMubWF4U2VjdGlvbk51bWJlciAxPT5cIiwgdGhpcy5tYXhTZWN0aW9uTnVtYmVyKVxyXG4gICAgc2VjdGlvbnNhcnJheS5mb3JFYWNoKChpOiBhbnksc2VjdGlvbkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgbGV0IHF1ZXN0aW9uczogYW55W10gPSBbXTtcclxuICAgICAgbGV0IHNlY3Rpb25OdW1iZXIgPSBpPy5zZWN0aW9uTnVtYmVyIHx8IChzZWN0aW9uSW5kZXggKyAxKVxyXG4gICAgICBpLnF1ZXN0aW9ucy5mb3JFYWNoKChqOiBhbnkscXVlc3Rpb25JbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgbGV0IGFuc3dlcjogYW55W10gPSBbXTtcclxuICAgICAgICBsZXQgcnVuQUk6YW55W10gPSBqLmFuc3dlcnMuZmlsdGVyKChlbGU6YW55KSA9PiBlbGUucnVuQUkpOztcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcInJ1bkFJID0+XCIsIHJ1bkFJKVxyXG4gICAgICAgIGouYW5zd2Vycz8uZm9yRWFjaCgoazogYW55LGFuc3dlckluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIC8vIGlmKHR5cGVvZiBrPy5yZWZlcmVuY2VJbWFnZSA9PSdzdHJpbmcnICYmIGs/LnJlZmVyZW5jZUltYWdlICE9ICcnICYmIGsubXVsdGlSZWZlcmVuY2VJbWFnZS5sZW5ndGgpIHtcclxuICAgICAgICAgIC8vICAgay5tdWx0aVJlZmVyZW5jZUltYWdlID0gW3tpbWFnZVVSTDprPy5yZWZlcmVuY2VJbWFnZSxydW5BSTpmYWxzZX1dXHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBhbnN3ZXIucHVzaChcclxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgLi4uKCFbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdsaW5lYXJzY2FsZScsJ3RpbWUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiBqPy5hbnN3ZXJUeXBlICE9ICd2aWRlbyc/IHsgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6az8uYW5zd2VyLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woYW5zd2VySW5kZXgpLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiBqPy5hbnN3ZXJUeXBlICE9ICd2aWRlbyc/IHsgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woaz8uc29wRmxhZyA/IGs/LnNvcEZsYWcgOiBmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSAmJiBqPy5hbnN3ZXJUeXBlICE9ICd2aWRlbyc/IHsgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOms/LnZhbGlkYXRpb24sZGlzYWJsZWQ6ICh0aGlzLnVzZXJUeXBlID09PSAnY2xpZW50JyA/IHJ1bkFJLmxlbmd0aCA6IGZhbHNlKSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKCFbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdsaW5lYXJzY2FsZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpICYmIGo/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJz8geyAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOms/LnZhbGlkYXRpb25UeXBlLGRpc2FibGVkOiAodGhpcy51c2VyVHlwZSA9PT0gJ2NsaWVudCcgPyBydW5BSS5sZW5ndGggOiBmYWxzZSkgfSwgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIiwgXCJDYXB0dXJlIFZpZGVvXCJdKSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7IFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KGs/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgfHwgW10gKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLigoWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgfHwgaj8uYW5zd2VyVHlwZSA9PSAndmlkZW8nKSA/IHsgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOmo/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPyB0cnVlIDogZmFsc2UsZGlzYWJsZWQ6ISFydW5BSS5sZW5ndGh9KSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTooaz8ucnVuQUkpID8gaz8ucnVuQUkgOiBmYWxzZSxkaXNhYmxlZDogKHRoaXMudXNlclR5cGUgPT09ICdjbGllbnQnID8gcnVuQUkubGVuZ3RoIDogZmFsc2UpIH0pIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgJ3Nob3dMaW5rZWQnOiB0aGlzLmZiLmNvbnRyb2woKGs/LnNob3dMaW5rZWQpID8gaz8uc2hvd0xpbmtlZCA6IGZhbHNlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7ICdsaW5rZWRRdWVzdGlvbic6IHRoaXMuZmIuY29udHJvbCgoaz8ubGlua2VkUXVlc3Rpb24pID8gaz8ubGlua2VkUXVlc3Rpb24gOiAwKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSA/IHsgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoaz8ubXVsdGlSZWZlcmVuY2VJbWFnZSB8fCBbXSApIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKCghWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8geyAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6az8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/IHRydWUgOiBmYWxzZSxkaXNhYmxlZDohIXJ1bkFJLmxlbmd0aH0pIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKCFbJ2Rlc2NyaXB0aXZlJywnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6KGs/LnJ1bkFJKSA/IGs/LnJ1bkFJIDogZmFsc2UsZGlzYWJsZWQ6ICh0aGlzLnVzZXJUeXBlID09PSAnY2xpZW50JyA/IHJ1bkFJLmxlbmd0aCA6IGZhbHNlKSB9KSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkgPyB7ICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbChrLmRlc2NyaXB0aXZldHlwZSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydsaW5lYXJzY2FsZSddLmluY2x1ZGVzKGo/LmFuc3dlclR5cGUpID8geyAncmFuZ2VTdGFydCc6dGhpcy5mYi5jb250cm9sKGsucmFuZ2VTdGFydCksJ3JhbmdlRW5kJzp0aGlzLmZiLmNvbnRyb2woay5yYW5nZUVuZCkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICByZWZlcmVuY2VJbWFnZTprPy5yZWZlcmVuY2VJbWFnZSA/PyAnJyxcclxuICAgICAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShrPy5ydW5BSUZlYXR1cmVzIHx8IFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woaz8ucnVuQUlEZXNjcmlwdGlvbiB8fCAnJyksXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBpZih0eXBlb2Ygai5xdWVzdGlvblJlZmVyZW5jZUltYWdlID09ICdzdHJpbmcnICYmIGoucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSAhPSAnJykge1xyXG4gICAgICAgIC8vICAgai5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBbe2ltYWdlVVJMOmoucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSxydW5BSTpmYWxzZX1dO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBxdWVzdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25JbmRleCsxKSxcclxuICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTpqPy5xbmFtZSxkaXNhYmxlZDpydW5BSS5sZW5ndGh9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICBcIm9sZFFuYW1lXCI6dGhpcy5mYi5jb250cm9sKGo/LnFuYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6aj8uYW5zd2VyVHlwZSxkaXNhYmxlZDpydW5BSS5sZW5ndGh9LCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCIsJ2RhdGUnLCdsaW5lYXJzY2FsZScsJ3RpbWUnXSkpLFxyXG4gICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdkYXRlJ10uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8geyAnYW5zd2Vycyc6IChbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsICd2aWRlbycsJ211bHRpcGxlSW1hZ2UnLCd0aW1lJywnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSkgPyBhbnN3ZXJbMF0gOiB0aGlzLmZiLmFycmF5KGFuc3dlcixbdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCldKSB9IDoge30sXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6KFsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJyxcIm11bHRpcGxlSW1hZ2VcIl0uaW5jbHVkZXMoaj8uYW5zd2VyVHlwZSkpID8gKGo/LnJ1bkFJKSA/IHRydWUgOiBmYWxzZSA6IGZhbHNlLGRpc2FibGVkOiAhIXJ1bkFJLmxlbmd0aH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICdydW5BSURlZmF1bHQnOnRoaXMuZmIuY29udHJvbChqPy5ydW5BSSB8fCBmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTooWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCd2aWRlbycsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSkgPyAoaj8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSkgPyB0cnVlIDogZmFsc2UgOiBmYWxzZSxkaXNhYmxlZDohIXJ1bkFJLmxlbmd0aH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIC8vICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKChbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhqPy5hbnN3ZXJUeXBlKSkgPyAoaj8ucnVuQUlEZXNjcmlwdGlvbikgOiAnJyksXHJcbiAgICAgICAgICAgICdsaW5rVHlwZSc6IHRoaXMuZmIuY29udHJvbChqPy5saW5rVHlwZSksXHJcbiAgICAgICAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShqPy5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgfHwgW10pLFxyXG4gICAgICAgICAgICAvLyBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOiBbW2o/LnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPz8gJyddXSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBqPy5kZXNjcmlwdGl2ZXR5cGUsZGlzYWJsZWQ6ISFydW5BSS5sZW5ndGh9KSxcclxuICAgICAgICAgICAgcXVlc3Rpb25SZWZlcmVuY2VJbWFnZTpqPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlID8/ICcnLFxyXG4gICAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KGo/LnJ1bkFJRmVhdHVyZXMgfHwgW10pLFxyXG4gICAgICAgICAgICBkaXNhYmxlUnVuQUk6cnVuQUkubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbChqPy5ydW5BSURlc2NyaXB0aW9uIHx8ICcnKSxcclxuICAgICAgICAgICAgXCJ1bmlxdWVxbm9cIjogdGhpcy5mYi5jb250cm9sKGo/LnVuaXF1ZXFubyB8fCAwKSxcclxuICAgICAgICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKGo/LnVuaXF1ZXFpZCB8fCAnJyksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBzZWN0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgXCJuYW1lXCI6IHRoaXMuZmIuY29udHJvbChpPy5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgIFwib2xkTmFtZVwiOnRoaXMuZmIuY29udHJvbChpPy5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgIFwic2VjdGlvbk51bWJlclwiOiB0aGlzLmZiLmNvbnRyb2woc2VjdGlvbk51bWJlciksXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KHF1ZXN0aW9ucyksXHJcbiAgICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbChpPy5tYXhRdWVzdGlvbk51bWJlciB8fCAwKSxcclxuICAgICAgfSkpO1xyXG4gICAgICBxdWVzdGlvbnMgPSBbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnY2hlY2tsaXN0TmFtZSc6IHRoaXMuZmIuY29udHJvbCh0aGlzLmdldG9iamVjdC5jaGVja0xpc3ROYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnY2hlY2tsaXN0RGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2wodGhpcy5nZXRvYmplY3QuY2hlY2tMaXN0RGVzY3JpcHRpb24pLFxyXG4gICAgICAnc2VjdGlvbnMnOiB0aGlzLmZiLmFycmF5KHNlY3Rpb25zKVxyXG4gICAgfSk7ICAgXHJcbiAgICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5jaGVja2xpc3RMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5DaGVja2xpc3RGb3JtLCdmb3JtJyk7XHJcbiAgfVxyXG5cclxuICBpbml0Q2hlY2tsaXN0KCkge1xyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICdjaGVja2xpc3ROYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAnY2hlY2tsaXN0RGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAnc2VjdGlvbnMnOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgIFwibmFtZVwiOiB0aGlzLmZiLmNvbnRyb2woJ1NlY3Rpb24gMScsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLFZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKDEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLmZiLmFycmF5KFtcclxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgXCJxbm9cIjogdGhpcy5mYi5jb250cm9sKDEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10pKSxcclxuICAgICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAgICdsaW5rVHlwZSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgndGV4dCcpLFxyXG4gICAgICAgICAgICAgICdxdWVzdGlvblJlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLCAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICAgXCJ1bmlxdWVxbm9cIjogdGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICBdKSxcclxuICAgICAgICAgIFwibWF4UXVlc3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgIH0pXHJcbiAgICAgIF0pXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tsaXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgYWxsb3dlZFZhbHVlc1ZhbGlkYXRvcihhbGxvd2VkVmFsdWVzOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgICBpZiAodmFsdWUgJiYgYWxsb3dlZFZhbHVlcy5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcclxuICAgICAgICByZXR1cm4geyBpbnZhbGlkVmFsdWU6IHRydWUgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhZGROZXdTZWN0aW9uKCkge1xyXG4gICAgbGV0IHNlY3Rpb25zID0gdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXk7XHJcbiAgICBsZXQgc2VjdGlvbkxlbmd0aCA9IHNlY3Rpb25zLmxlbmd0aDtcclxuICAgIGlmKHRoaXMubWF4U2VjdGlvbk51bWJlcil7XHJcbiAgICAgIHRoaXMubWF4U2VjdGlvbk51bWJlcisrO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubWF4U2VjdGlvbk51bWJlciA9IE1hdGgubWF4KC4uLnNlY3Rpb25zLnZhbHVlLm1hcCgoZWxlOmFueSkgPT4gZWxlLnNlY3Rpb25OdW1iZXIgKSkrMTtcclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKFwidGhpcy5tYXhTZWN0aW9uTnVtYmVyID0+XCIsIHRoaXMubWF4U2VjdGlvbk51bWJlcik7XHJcblxyXG4gICAgKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5wdXNoKFxyXG4gICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcIm5hbWVcIjogdGhpcy5mYi5jb250cm9sKGBTZWN0aW9uICR7c2VjdGlvbkxlbmd0aCArIDF9YCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKHRoaXMubWF4U2VjdGlvbk51bWJlciwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAvLyBcInNlY3Rpb25OdW1iZXJcIjogdGhpcy5mYi5jb250cm9sKGZpbmRTZWNOdW0gKyAxLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMuZmIuYXJyYXkoW1xyXG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIFwicW5vXCI6IHRoaXMuZmIuY29udHJvbCgxLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAncW5hbWUnOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ2xpbmtUeXBlJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKSxcclxuICAgICAgICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgXCJ1bmlxdWVxbm9cIjogdGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdKSxcclxuICAgICAgICBcIm1heFF1ZXN0aW9uTnVtYmVyXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICBpZihzZWN0aW9uTGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjY29yZGlhbihzZWN0aW9uTGVuZ3RoKTtcclxuICAgIHRoaXMuc3dhbFRvYXN0KCdOZXcgc2VjdGlvbiBhZGRlZCEnKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVNlY3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucmVtb3ZlQXQoc2VjdGlvbkluZGV4KTtcclxuICB9XHJcblxyXG4gIGRyYWdEcm9wKHNlY3Rpb25JbmRleDogYW55LCBldmVudDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIC8vIHRoaXMudXBkYXRlbGlua2VkUXVlc3Rpb25ObyhzZWN0aW9uSW5kZXgsZXZlbnQucHJldmlvdXNJbmRleCxldmVudC5jdXJyZW50SW5kZXgpXHJcbiAgICAgIHRoaXMudXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25JbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgICBldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVsaW5rZWRRdWVzdGlvbk5vKHNlY0lkeDpudW1iZXIscHJldklkeDpudW1iZXIscW5JZHg6bnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgZm9yKGxldCBpPTA7aTxxdWVzdGlvbnMubGVuZ3RoLTE7aSsrKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gKChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICBmb3IobGV0IGo9MDtqPGFuc3dlcnM/Lmxlbmd0aCAtMTtqKyspIHtcclxuICAgICAgICBsZXQgbGlua2VkID0gKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgaWYobGlua2VkKSB7XHJcbiAgICAgICAgICBsZXQgbGlua2VkTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWRObyA9PSBwcmV2SWR4ICsgMSkge1xyXG4gICAgICAgICAgICAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUocW5JZHggKyAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYobGlua2VkTm8gPD0gcW5JZHggKyAxKSB7XHJcbiAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShsaW5rZWRObyAtIDEpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYW5zd2VyVHlwZVNlbGVjdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBsZXQgc2VsZWN0dmFsdWU6IHN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIFxyXG4gICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldChcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgaWYoIVsnZGVzY3JpcHRpdmUnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoc2VsZWN0dmFsdWUpKSB7XHJcbiAgICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cClcclxuICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Rlc2NyaXB0aXZldHlwZScpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdkZXNjcmlwdGl2ZXR5cGUnKT8uc2V0VmFsdWUoJ3RleHQnKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVtb3ZlUXVlc3Rpb25MaW5rZWQoc2VjdGlvbkluZGV4LHF1ZXN0aW9uSW5kZXgpO1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAneWVzL25vJyB8fCBldmVudC50YXJnZXQudmFsdWUgPT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJykge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzRm9ybUFycmF5KHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCxzZWxlY3R2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnZGVzY3JpcHRpdmUnKSB7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnZGVzY3JpcHRpdmVJbWFnZScpIHtcclxuICAgICAgdGhpcy5zZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsIHNlbGVjdHZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdtdWx0aXBsZWNob2ljZW11bHRpcGxlJykge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzRm9ybUFycmF5KHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCxzZWxlY3R2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnaW1hZ2UnKSB7XHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNGb3JtR3JvdXAoc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LCAnaW1hZ2UnKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICd2aWRlbycpIHtcclxuICAgICAgdGhpcy5zZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICd2aWRlbycpO1xyXG4gICAgfWVsc2UgaWYgKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgdGhpcy5zZXRBbnN3ZXJBc0Zvcm1Hcm91cChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdtdWx0aXBsZUltYWdlJyk7XHJcbiAgICB9ZWxzZSBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdkYXRlJykge31cclxuICAgIGVsc2UgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICd0aW1lJykge1xyXG4gICAgICB0aGlzLnNldEFuc3dlckFzVGltZShzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICd0aW1lJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGV2ZW50LnRhcmdldC52YWx1ZSA9PSAnbGluZWFyc2NhbGUnKSB7XHJcbiAgICAgIHRoaXMuc2V0QW5zd2VyQXNUaW1lKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ2xpbmVhcnNjYWxlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc1RpbWUoc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIsdHlwZTpzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxbklkeCkgYXMgRm9ybUdyb3VwKTtcclxuXHJcbiAgICAgIGlmKHR5cGUgPT0gJ3RpbWUnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgIH0pLFxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHF1ZXN0aW9uLnNldENvbnRyb2woJ2Fuc3dlcnMnLFxyXG4gICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgICAnYW5zd2Vyb3B0aW9uTnVtYmVyJzogdGhpcy5mYi5jb250cm9sKDEpLFxyXG4gICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgICdsaW5rZWRRdWVzdGlvbic6dGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgICAgICAgJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCdudW1iZXInKSxcclxuICAgICAgICAgICAgICdyYW5nZVN0YXJ0Jzp0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgICAgICAgICAncmFuZ2VFbmQnOnRoaXMuZmIuY29udHJvbCgxMDAsKSxcclxuICAgICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICB9KSxcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgXHJcblxyXG4gICAgLy8gY29uc29sZS5sb2cocXVlc3Rpb24pO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICByZW1vdmVRdWVzdGlvbkxpbmtlZChzZWNJZHg6YW55LHFuSWR4OmFueSkge1xyXG4gICAgbGV0IGFuc3dlcnMgPSAoKCh0aGlzLmdldFNlY3Rpb25Gb3JtQXJyYXkoKS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgaWYoYW5zd2Vycykge1xyXG4gICAgICBmb3IobGV0IGk9MDtpPGFuc3dlcnMubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgbGV0IHFuID0gKGFuc3dlcnMuYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgIGlmKHFuKSB7XHJcbiAgICAgICAgICAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuIC0gMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbGlkYXRpb25UeXBlKGV2ZW50OmFueSxzZWN0aW9uOm51bWJlcixxdWVzdGlvbjpudW1iZXIsYW5zd2VyOm51bWJlcikge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LnZhbHVlID09ICdEZXNjcmlwdGl2ZSBBbnN3ZXInKSB7XHJcbiAgICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAuYXQoc2VjdGlvbikgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc3dlcikgYXMgRm9ybUdyb3VwKS5nZXQoJ2Rlc2NyaXB0aXZldHlwZScpPy5zZXRWYWx1ZSgndGV4dCcpO1xyXG4gICAgfVxyXG4gICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChzZWN0aW9uKSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHF1ZXN0aW9uKSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zd2VyKSBhcyBGb3JtR3JvdXApLmdldCgnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzZXRBbnN3ZXJBc0Zvcm1BcnJheShzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLHNlbGVjdHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgXHJcbiAgICBpZiAoc2VsZWN0dmFsdWUgPT0gJ3llcy9ubycpIHtcclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnWWVzJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbCgxKSxcclxuICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgIC8vICdsaW5rUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbChmYWxzZSxbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAvLyAnYW5zd2VySW5wdXRTdHlsZSc6IHRoaXMuZmIuY29udHJvbCgncmFkaW8nLFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgICAnbGlua2VkUXVlc3Rpb24nOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAnc2hvd0xpbmtlZCc6dGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKCdObycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMiksXHJcbiAgICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgICAgJ2xpbmtlZFF1ZXN0aW9uJzp0aGlzLmZiLmNvbnRyb2woMCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmNvbnRyb2woJycpLCAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdLHVuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICAgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbCgxKSxcclxuICAgICAgICAgICAgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvblR5cGUnOiB0aGlzLmZiLmNvbnRyb2woJ0NhcHR1cmUgSW1hZ2UnLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLFwiQ2FwdHVyZSBWaWRlb1wiXSkpLFxyXG4gICAgICAgICAgICAuLi4oc2VsZWN0dmFsdWUgPT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJyA/IHtcImxpbmtlZFF1ZXN0aW9uXCI6dGhpcy5mYi5jb250cm9sKDAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksJ3Nob3dMaW5rZWQnOnRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKX0gOiB7fSksXHJcbiAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICBcInJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJydW5BSUZlYXR1cmVzXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICdhbnN3ZXInOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgICAgICdzb3BGbGFnJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgICAndmFsaWRhdGlvbic6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgICAgLi4uKHNlbGVjdHZhbHVlID09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgPyB7XCJsaW5rZWRRdWVzdGlvblwiOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLCdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSl9IDoge30pLFxyXG4gICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAgIFwicnVuQUlGZWF0dXJlc1wiOnRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIF0sdW5pcXVlU3RyaW5nVmFsaWRhdG9yKCkpLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHNldEFuc3dlckFzRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc3dlclR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKFsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhhbnN3ZXJUeXBlKSkge1xyXG4gICAgICAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0Q29udHJvbCgnYW5zd2VycycsIFxyXG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoW10pLFxyXG4gICAgICAgICAgXCJyZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgICAgLi4uKGFuc3dlclR5cGUgPT0gJ211bHRpcGxlSW1hZ2UnID8geydkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgndGV4dCcpfTp7fSksXHJcbiAgICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICB9KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcXVlc3Rpb24gPSAoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAgIC5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG5cclxuICAgICAgcXVlc3Rpb24uc2V0Q29udHJvbCgnYW5zd2VycycsIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGxvYWRJbWFnZUZyb21EZXZpY2Uoc2VjSWR4OiBudW1iZXIscUlkeDogbnVtYmVyLGV2ZW50OiBhbnksYW5zSWR4Om51bWJlcj0tMSxjdHJsTmFtZTpzdHJpbmcgPSAnJyxpbWdJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmZpbGVzICE9IHVuZGVmaW5lZCAmJiBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBsZXQgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2NsaWVudElkJyx0aGlzLmNsaWVudElkKVxyXG4gICAgdGhpcy5zb3BTZXJ2aWNlLmltYWdldXBsb2FkKGZvcm1EYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3QgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG5cclxuICAgICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICAgIGlmKGN0cmxOYW1lKSB7XHJcbiAgICAgICAgbGV0IHJlZkltYWdlcztcclxuICAgICAgICBpZihjdHJsTmFtZSA9PSBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSB7XHJcbiAgICAgICAgICByZWZJbWFnZXMgPSBxdWVzdGlvbi5nZXQoY3RybE5hbWUpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsZXQgYW5zd2Vyc1xyXG4gICAgICAgICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgICAgICAgIGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApOyBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBhbnN3ZXJzID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVmSW1hZ2VzID0gYW5zd2Vycz8uZ2V0KFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHJlZkltYWdlcykge1xyXG4gICAgICAgICAgaWYoaW1nSWR4ICE9IC0xKSB7XHJcbiAgICAgICAgICAgIChyZWZJbWFnZXM/LmF0KGltZ0lkeCkgYXMgRm9ybUdyb3VwKT8uc2V0VmFsdWUoe2ltYWdlVVJMOnJlcy5kYXRhLmltZ1VybCxydW5BSTpmYWxzZX0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmVmSW1hZ2VzPy5wdXNoKHRoaXMuZmIuZ3JvdXAoe2ltYWdlVVJMOnJlcy5kYXRhLmltZ1VybCxydW5BSTpmYWxzZX0pKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY0lkeCxxSWR4LFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiLGFuc0lkeCk/LnNldFZhbHVlKHJlcy5kYXRhLmltZ1VybCk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAgICAgIFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGNsZWFyUmVmZXJlbmNlSW1hZ2Uoc2VjSWR4OiBudW1iZXIscUlkeDogbnVtYmVyLGFuc0lkeDpudW1iZXI9LTEsaW1hZ2VJbmRleDpudW1iZXI9LTEsY3RybE5hbWU6c3RyaW5nPVwiXCIpIHtcclxuICAgIC8vIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNlY0lkeCxxSWR4LFwicmVmZXJlbmNlSW1hZ2VcIixhbnNJZHgpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICAvLyB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzZWNJZHgscUlkeCwncnVuQUknLGFuc0lkeCk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICBpZiAoIXNlY3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICAgIFxyXG4gICAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbnMuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZiAoIXNlY3Rpb24pIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9ucyA9IHNlY3Rpb24uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICBpZiAoIXF1ZXN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgICBcclxuICAgICAgY29uc3QgcXVlc3Rpb24gPSBxdWVzdGlvbnMuYXQocUlkeCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgICBpZihpbWFnZUluZGV4ICE9IC0xICYmIGN0cmxOYW1lKSB7XHJcbiAgICAgIGxldCByZWZJbWFnZXM7XHJcbiAgICAgIGlmKGN0cmxOYW1lID09IFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIHtcclxuICAgICAgICByZWZJbWFnZXMgPSBxdWVzdGlvbi5nZXQoY3RybE5hbWUpIGFzIEZvcm1BcnJheTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgYW5zd2VycztcclxuICAgICAgICBpZihhbnNJZHggIT0gLTEpIHtcclxuICAgICAgICAgIGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgYW5zd2VycyA9IHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVmSW1hZ2VzID0gYW5zd2Vycy5nZXQoY3RybE5hbWUpIGFzIEZvcm1BcnJheTtcclxuICAgICAgfVxyXG4gICAgICAgIHJlZkltYWdlcy5yZW1vdmVBdChpbWFnZUluZGV4KTtcclxuXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKHF1ZXN0aW9uLmdldChcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIikgYXMgRm9ybUFycmF5KT8uY2xlYXIoKTtcclxuICAgICAgKHF1ZXN0aW9uLmdldChcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0dmFsaWRhdGlvbihzZWN0aW9uSW5kZXg6IGFueSwgcXVlc3Rpb25JbmRleDogYW55LCBhZGRtb3JlcW5JbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYWRkbW9yZXFuSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCd2YWxpZGF0aW9uJyk/LnNldFZhbHVlKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcclxuICB9XHJcblxyXG4gIGFkZE5ld1F1ZXN0aW9uKHNlY3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5zZWN0aW9uSW5kZXggPiAtMSkge1xyXG4gICAgICBpZiAoISgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSkpIHtcclxuICAgICAgICAoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuc2V0Q29udHJvbCgncXVlc3Rpb25zJywgdGhpcy5mYi5hcnJheShbXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBxdWVzdGlvbnMgPSAoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuXHJcbiAgICAgIGxldCBxdWVzdGlvbnNMZW5ndGggPSBxdWVzdGlvbnMubGVuZ3RoO1xyXG4gICAgICBxdWVzdGlvbnMucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25zTGVuZ3RoICsgMSwpLFxyXG4gICAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAnYW5zd2VyVHlwZSc6IHRoaXMuZmIuY29udHJvbCgnZGVzY3JpcHRpdmUnLFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAnbGlua1R5cGUnOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAnZGVzY3JpcHRpdmV0eXBlJzp0aGlzLmZiLmNvbnRyb2woJ3RleHQnKSxcclxuICAgICAgICAncXVlc3Rpb25SZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICBcInJ1bkFJRmVhdHVyZXNcIjp0aGlzLmZiLmFycmF5KFtdKSwgICAgICAgIFxyXG4gICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICBcInVuaXF1ZXFpZFwiOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICB9KSk7ICAgICAgXHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnN3YWxUb2FzdCgnTmV3IHF1ZXN0aW9uIGFkZGVkIScpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9RdWVzdGlvbihzZWN0aW9uSW5kZXgscXVlc3Rpb25zTGVuZ3RoKTtcclxuICAgICAgfSwxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlUXVlc3Rpb24oc2VjdGlvbkluZGV4OiBhbnksIHF1ZXN0aW9uSW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5kZWxldGVkTGlzdCA9IFtdO1xyXG4gICAgbGV0IHF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ3FuYW1lJyk/LnZhbHVlIHx8ICcnO1xyXG4gICAgbGV0IHFubyA9IHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXgsIHF1ZXN0aW9uSW5kZXgsICdxbm8nKT8udmFsdWU7XHJcbiAgICBxdWVzdGlvbiA9IHF1ZXN0aW9uID8gcXVlc3Rpb24gOiBgUXVlc3Rpb24gJHt0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4LCAncW5vJyk/LnZhbHVlIHx8ICcnfWA7XHJcbiAgICBxdWVzdGlvbiA9IHF1ZXN0aW9uLmxlbmd0aCA+IDIwID8gcXVlc3Rpb24uc2xpY2UoMCwyMCkgKyAnLi4uJyA6IHF1ZXN0aW9uO1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVFNEUyXCIvPjxwYXRoIGQ9XCJNMjggMjRWMjhNMjggMzJIMjguMDFNMzggMjhDMzggMzMuNTIyOCAzMy41MjI4IDM4IDI4IDM4QzIyLjQ3NzIgMzggMTggMzMuNTIyOCAxOCAyOEMxOCAyMi40NzcyIDIyLjQ3NzIgMTggMjggMThDMzMuNTIyOCAxOCAzOCAyMi40NzcyIDM4IDI4WlwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+PC9zcGFuPmAsXHJcbiAgICAgIHRpdGxlOiBgRGVsZXRlICcke3F1ZXN0aW9ufSc/YCxcclxuICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgPGI+JyR7cXVlc3Rpb259JzwvYj4/IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgYnV0dG9udHlwZTogJ2RlbGV0ZSdcclxuICAgIH1cclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICBsZXQgbGlua2VkUXVlc3Rpb246YW55ID0gKCgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgICAgIGxldCB0eXBlOmFueSA9ICgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWU7XHJcbiAgICAgICAgaWYoIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ3ZpZGVvJywnbGluZWFyc2NhbGUnLCd0aW1lJywnZGF0ZSddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICBmb3IobGV0IGk9MDtpPGxpbmtlZFF1ZXN0aW9uPy5sZW5ndGg7aSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBsaW5rZWRRbiA9ICgobGlua2VkUXVlc3Rpb24uYXQoaSkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlKTtcclxuICAgICAgICAgICAgaWYobGlua2VkUW4pIHtcclxuICAgICAgICAgICAgICBsZXQgbm8gPSBsaW5rZWRRbiAtMTtcclxuICAgICAgICAgICAgICAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25JbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KG5vKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua1R5cGUnKT8uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIGlmKGxpbmtlZFFuICYmIHBhcnNlSW50KGxpbmtlZFFuKSA+IHF1ZXN0aW9uSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3VidHJhY3RRdWVzdGlvbm5vKHNlY3Rpb25JbmRleCxsaW5rZWRRbi0xKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAodGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4LCAncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5yZW1vdmVBdChxdWVzdGlvbkluZGV4KTtcclxuICAgICAgICB0aGlzLnJlbW92ZWROZXN0ZWRRdWVzdGlvbihzZWN0aW9uSW5kZXgscW5vKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVF1ZXN0aW9uUW5vcyhzZWN0aW9uSW5kZXgpO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGAke3F1ZXN0aW9ufSBoYXMgYmVlbiBkZWxldGVkIWApO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBzdWJ0cmFjdFF1ZXN0aW9ubm8oc2VjdGlvbkluZGV4Om51bWJlcixxdWVzdGlvbkluZGV4OmFueSkge1xyXG4gICAgbGV0IGxpbmtlZFF1ZXN0aW9uQW5zd2VycyA9ICgoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25JbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHF1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KTtcclxuICAgIGxldCBubyA9ICgodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3FubycpPy52YWx1ZTtcclxuICAgIHRoaXMuZGVsZXRlZExpc3QucHVzaChubyk7XHJcbiAgICBmb3IobGV0IGo9MDtqPGxpbmtlZFF1ZXN0aW9uQW5zd2Vycz8ubGVuZ3RoO2orKykge1xyXG4gICAgICBsZXQgbGlua2VkUW4gPSAoKGxpbmtlZFF1ZXN0aW9uQW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWUpO1xyXG4gICAgICBpZihsaW5rZWRRbiAmJiBwYXJzZUludChsaW5rZWRRbikgPiBxdWVzdGlvbkluZGV4KSB7XHJcbiAgICAgICAgKChsaW5rZWRRdWVzdGlvbkFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJykpPy5zZXRWYWx1ZShsaW5rZWRRbiAtIDEpO1xyXG4gICAgICAgIHRoaXMuc3VidHJhY3RRdWVzdGlvbm5vKHNlY3Rpb25JbmRleCxsaW5rZWRRbi0xKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmFpc2VmbGFnKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFuc0lkeDogbnVtYmVyLHZhbHVlOiBib29sZWFuLGxpbmtJbmRleDpudW1iZXIgPSAtMSxsaW5rQW5zSW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGxldCBxdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk/LmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGlmKHZhbHVlID09IHRydWUpIHtcclxuICAgICAgbGV0IGFuc3dlcnMgPSAocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS52YWx1ZTtcclxuICAgICAgaWYobGlua0luZGV4ID09IC0xKSB7XHJcbiAgICAgICAgaWYoYW5zd2Vycy5maWx0ZXIoKHg6YW55KT0+IHguc29wRmxhZyA9PSB0cnVlKS5sZW5ndGggPT0gKGFuc3dlcnMubGVuZ3RoIC0xKSkge1xyXG4gICAgICAgICAgKChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5hZGRDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgICAgICAgdGltZXIoNTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgKChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5yZW1vdmVDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICAgIGxldCBsaW5rUXVlc3Rpb24gPSAoKGFuc3dlcnMuZ2V0KCdsaW5rUXVlc3Rpb25BbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChsaW5rSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICAgbGV0IGxpbmtBbnN3ZXJzID0gKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLnZhbHVlXHJcbiAgICAgICAgaWYobGlua0Fuc3dlcnMuZmlsdGVyKCh4OmFueSk9PiB4LnNvcEZsYWcgPT0gdHJ1ZSkubGVuZ3RoID09IChsaW5rQW5zd2Vycy5sZW5ndGggLTEpKSB7XHJcbiAgICAgICAgICAoKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtBbnNJbmRleCkgYXMgRm9ybUdyb3VwKS5hZGRDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgICAgICAgdGltZXIoNTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAoKGxpbmtRdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGxpbmtBbnNJbmRleCkgYXMgRm9ybUdyb3VwKS5yZW1vdmVDb250cm9sKCdzaG93U09QRmxhZ0Vycm9yJyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAgaWYobGlua0luZGV4ID09IC0xKVxyXG4gICAgICAgICgoKChxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCk/LmdldCgnc29wRmxhZycpIGFzIEZvcm1Db250cm9sKSk/LnNldFZhbHVlKHZhbHVlKTsgXHJcbiAgICBlbHNlICAge1xyXG4gICAgICAgbGV0IGFuc3dlcnMgPSAoKHF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICAgIGxldCBsaW5rUXVlc3Rpb24gPSAoKGFuc3dlcnMuZ2V0KCdsaW5rUXVlc3Rpb25BbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChsaW5rSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgICgoKChsaW5rUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KT8uYXQobGlua0Fuc0luZGV4KSBhcyBGb3JtR3JvdXApPy5nZXQoJ3NvcEZsYWcnKSBhcyBGb3JtQ29udHJvbCkpPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGROZXN0ZWRRdWVzdGlvbihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBhbnNJZHg6IG51bWJlcix2YWx1ZTogYm9vbGVhbixsaW5rZWRRdWVzdGlvbkluZGV4Om51bWJlcj0tMSxsaW5rZWRBbnN3ZXI6bnVtYmVyID0gLTEpIHtcclxuICAgICBsZXQgYW5zd2VyID0gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKVxyXG4gICAgICAuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgICAgIC5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cFxyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgaWYoIWFuc3dlcj8uZ2V0KCdsaW5rUXVlc3Rpb25BbnN3ZXJzJyk/LnZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBhbnN3ZXIuc2V0Q29udHJvbCgnbGlua1F1ZXN0aW9uQW5zd2VycycsXHJcbiAgICAgICAgdGhpcy5mYi5hcnJheShbXHJcbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgXCJxbm9cIjogdGhpcy5mYi5jb250cm9sKDEpLFxyXG4gICAgICAgICAgICAncW5hbWUnOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLG5vV2hpdGVzcGFjZVZhbGlkYXRvcigpXSksXHJcbiAgICAgICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgICAgICAgICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICAgXCJtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2VcIjp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgICAgICdxdWVzdGlvblJlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShbXSksICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFwidW5pcXVlcW5vXCI6IHRoaXMuZmIuY29udHJvbCgwKSxcclxuICAgICAgICAgICAgXCJ1bmlxdWVxaWRcIjogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgXSlcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBuZXN0ZWRRdWVzdGlvbiA9IGFuc3dlci5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXlcclxuICAgICAgbmVzdGVkUXVlc3Rpb24ucHVzaCh0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2woMSksXHJcbiAgICAgICAgJ3FuYW1lJzogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxub1doaXRlc3BhY2VWYWxpZGF0b3IoKV0pLFxyXG4gICAgICAgICdhbnN3ZXJUeXBlJzogdGhpcy5mYi5jb250cm9sKCdkZXNjcmlwdGl2ZScsXHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiZGVzY3JpcHRpdmVcIiwgXCJ5ZXMvbm9cIiwgXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLCBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImRlc2NyaXB0aXZlSW1hZ2VcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCIsJ211bHRpcGxlSW1hZ2UnLCdkYXRlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10pKSxcclxuICAgICAgICAncnVuQUknOiB0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgICAgJ3J1bkFJRGVzY3JpcHRpb24nOiB0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCI6dGhpcy5mYi5hcnJheShbXSksXHJcbiAgICAgICAgJ2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0JyksXHJcbiAgICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgJ3J1bkFJRmVhdHVyZXMnOnRoaXMuZmIuYXJyYXkoW10pLCAgICAgICAgXHJcbiAgICAgICAgXCJ1bmlxdWVxbm9cIjogdGhpcy5mYi5jb250cm9sKDApLFxyXG4gICAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG4gXHJcbiAgYWNjb3JkaWFuKGluZGV4OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNob3cgPT0gaW5kZXgpIHtcclxuICAgICAgdGhpcy5zaG93ID0gLTE7XHJcbiAgICAgIHRoaXMuc2VjdGlvbkluZGV4ID0gLTE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3cgPSBpbmRleDtcclxuICAgICAgdGhpcy5zZWN0aW9uSW5kZXggPSBpbmRleDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlY3Rpb24oc2VjdGlvbkluZGV4OiBhbnkpIHtcclxuICAgIGxldCBzZWN0aW9uID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgbGV0IHNlY3Rpb25MZW5ndGg6YW55ID0gXCIgXCIgKyAoc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkubGVuZ3RoO1xyXG4gICAgbGV0IHNlY3Rpb25OYW1lOnN0cmluZyA9IHNlY3Rpb24uZ2V0KCduYW1lJyk/LnZhbHVlO1xyXG4gICAgc2VjdGlvbk5hbWUgPSBzZWN0aW9uTmFtZS5sZW5ndGggPiAyMCA/IChzZWN0aW9uTmFtZS5zbGljZSgwLCAyMCkgKyBcIi4uLlwiKSA6IHNlY3Rpb25OYW1lO1xyXG4gICAgbGV0IHF1ZXN0aW9uX3RleHQgPSAnJ1xyXG4gICAgaWYgKHNlY3Rpb25MZW5ndGggPT0gMSlcclxuICAgICAgcXVlc3Rpb25fdGV4dCA9ICdRdWVzdGlvbidcclxuICAgIGVsc2VcclxuICAgICBxdWVzdGlvbl90ZXh0ID0gJ1F1ZXN0aW9ucydcclxuICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUU0RTJcIi8+PHBhdGggZD1cIk0yOCAyNFYyOE0yOCAzMkgyOC4wMU0zOCAyOEMzOCAzMy41MjI4IDMzLjUyMjggMzggMjggMzhDMjIuNDc3MiAzOCAxOCAzMy41MjI4IDE4IDI4QzE4IDIyLjQ3NzIgMjIuNDc3MiAxOCAyOCAxOEMzMy41MjI4IDE4IDM4IDIyLjQ3NzIgMzggMjhaXCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICB0aXRsZTogYERlbGV0ZSAnJHtzZWN0aW9uTmFtZX0gU2VjdGlvbic/YCxcclxuICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUnIDxiPicke3NlY3Rpb25OYW1lfSc8L2I+PyB3aXRoIDxiPiR7c2VjdGlvbkxlbmd0aH0gJHtxdWVzdGlvbl90ZXh0fTwvYj4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICBidXR0b250eXBlOiAnZGVsZXRlJ1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudFxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PSAnZGVsZXRlJykge1xyXG4gICAgICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkucmVtb3ZlQXQoc2VjdGlvbkluZGV4KVxyXG4gICAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEFkZE1vcmVBbnMoc2VjdGlvbmluZGV4OiBhbnksIHF1ZXN0aW9uSW5kZXg6IGFueSx0eXBlOnN0cmluZykge1xyXG4gICAgbGV0IGFuc29wdGlvbiA9XHJcbiAgICAgICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQoc2VjdGlvbmluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgICAgLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KVxyXG4gICAgICAgIC5hdChxdWVzdGlvbkluZGV4KVxyXG4gICAgICAgIC5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgbGV0IGFuc29wdGlvbkxlbmd0aCA9IGFuc29wdGlvbi5sZW5ndGg7XHJcbiAgICBpZiAoYW5zb3B0aW9uTGVuZ3RoIDw9IDI5KSB7XHJcbiAgICAgIGFuc29wdGlvbi5wdXNoKFxyXG4gICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgJ2Fuc3dlcic6IHRoaXMuZmIuY29udHJvbChgYCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgICAgICdhbnN3ZXJvcHRpb25OdW1iZXInOiB0aGlzLmZiLmNvbnRyb2woYW5zb3B0aW9uTGVuZ3RoICsgMSksXHJcbiAgICAgICAgICAnc29wRmxhZyc6IHRoaXMuZmIuY29udHJvbChmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgICAgICd2YWxpZGF0aW9uJzogdGhpcy5mYi5jb250cm9sKGZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgICAgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKCdDYXB0dXJlIEltYWdlJywgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcIkNhcHR1cmUgSW1hZ2VcIiwgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIixcIkNhcHR1cmUgVmlkZW9cIl0pKSxcclxuICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiOiB0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgIC4uLih0eXBlID09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScgPyB7XCJsaW5rZWRRdWVzdGlvblwiOnRoaXMuZmIuY29udHJvbCgwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLCdzaG93TGlua2VkJzp0aGlzLmZiLmNvbnRyb2woZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSl9IDoge30pLFxyXG4gICAgICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAuLi4odHlwZSA9PSAnbXVsdGlwbGVJbWFnZScgPyB7J2Rlc2NyaXB0aXZldHlwZSc6dGhpcy5mYi5jb250cm9sKCd0ZXh0Jyl9Ont9KSxcclxuICAgICAgICAgICdyZWZlcmVuY2VJbWFnZSc6dGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KFtdKSxcclxuICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQW5zd2VyKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsIGFkZG1vcmVxbkluZGV4OiBudW1iZXIsYW5zSW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGlmKGFuc0luZGV4ICE9IC0xKSB7XHJcbiAgICAgIHRoaXMuZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ2Fuc3dlcnMnLGFuc0luZGV4KS5yZW1vdmVBdChhZGRtb3JlcW5JbmRleCk7ICAgIFxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKHNlY3Rpb25JbmRleCwgcXVlc3Rpb25JbmRleCwgJ2Fuc3dlcnMnLGFuc0luZGV4KS5yZW1vdmVBdChhZGRtb3JlcW5JbmRleCk7ICAgIFxyXG4gICAgfVxyXG4gICAgdGhpcy5DaGVja2xpc3RGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGNsb25lUXVlc3Rpb24oc2VjdGlvbmluZGV4OiBhbnksIHF1ZXN0aW9uaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGNsb25lUXVlc3Rpb24gPSAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1Db250cm9sKHNlY3Rpb25pbmRleCwgJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25pbmRleCkgYXMgRm9ybUdyb3VwKS52YWx1ZTtcclxuICAgIGxldCBxdWVzdGlvbkxlbmd0aCA9ICAodGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbmluZGV4LCAncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS52YWx1ZTtcclxuICAgIGxldCBxdWVzdGlvbjogYW55O1xyXG4gICAgbGV0IGFuc3dlcjogYW55O1xyXG4gICAgaWYgKGNsb25lUXVlc3Rpb24uYW5zd2Vycykge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjbG9uZVF1ZXN0aW9uLmFuc3dlcnMpICYmIGNsb25lUXVlc3Rpb24uYW5zd2Vycy5sZW5ndGgpIHtcclxuICAgICAgICBhbnN3ZXIgPSBbXTtcclxuICAgICAgICBjbG9uZVF1ZXN0aW9uLmFuc3dlcnMuZm9yRWFjaCgoazogYW55KSA9PiB7XHJcbiAgICAgICAgICBhbnN3ZXIucHVzaChcclxuICAgICAgICAgICAgdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgLi4uKCFbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgJiYgY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSAhPSAndmlkZW8nID8geyAnYW5zd2VyJzogdGhpcy5mYi5jb250cm9sKGs/LmFuc3dlciwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ2Fuc3dlcm9wdGlvbk51bWJlcic6IHRoaXMuZmIuY29udHJvbChrPy5hbnN3ZXJvcHRpb25OdW1iZXIgKyAxKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ3NvcEZsYWcnOiB0aGlzLmZiLmNvbnRyb2woaz8uc29wRmxhZyA/IGs/LnNvcEZsYWcgOiBmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ3ZhbGlkYXRpb24nOiB0aGlzLmZiLmNvbnRyb2woaz8udmFsaWRhdGlvbiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpICYmIGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgIT0gJ3ZpZGVvJyA/IHsgJ3ZhbGlkYXRpb25UeXBlJzogdGhpcy5mYi5jb250cm9sKGs/LnZhbGlkYXRpb25UeXBlLCB0aGlzLmFsbG93ZWRWYWx1ZXNWYWxpZGF0b3IoW1wiQ2FwdHVyZSBJbWFnZVwiLCBcIkRlc2NyaXB0aXZlIEFuc3dlclwiLCBcIkNhcHR1cmUgVmlkZW9cIl0pKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLighWydkZXNjcmlwdGl2ZScsJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnZGF0ZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogdGhpcy5mYi5hcnJheShrPy5tdWx0aVJlZmVyZW5jZUltYWdlKSB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLigoIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSkgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGs/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPT0gdHJ1ZSA/IHRydWUgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oIVsnZGVzY3JpcHRpdmUnLCdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZScsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGs/LnJ1bkFJID8gaz8ucnVuQUkgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgICAgICAuLi4oWydtdWx0aXBsZWNob2ljZXNpbmdsZScsJ3llcy9ubyddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpID8geyAnc2hvd0xpbmtlZCc6IGZhbHNlIH0gOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uKFsnbXVsdGlwbGVjaG9pY2VzaW5nbGUnLCd5ZXMvbm8nXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ2xpbmtlZFF1ZXN0aW9uJzogMCB9IDoge30pLFxyXG4gICAgICAgICAgICAgIC4uLihbJ211bHRpcGxlY2hvaWNlc2luZ2xlJywneWVzL25vJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdsaW5rZWRRdWVzdGlvbic6IDAgfSA6IHt9KSxcclxuICAgICAgICAgICAgICBkZXNjcmlwdGl2ZXR5cGU6dGhpcy5mYi5jb250cm9sKGs/LmRlc2NyaXB0aXZldHlwZSksXHJcbiAgICAgICAgICAgICAgJ3JlZmVyZW5jZUltYWdlJzp0aGlzLmZiLmNvbnRyb2woJycpLFxyXG4gICAgICAgICAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KGs/LnJ1bkFJRmVhdHVyZXMgfHwgW10pLFxyXG4gICAgICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKCcnKSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYodHlwZW9mIGNsb25lUXVlc3Rpb24uYW5zd2VycyA9PT0gJ29iamVjdCcgJiYgY2xvbmVRdWVzdGlvbi5hbnN3ZXJzICE9PSBudWxsKSB7XHJcbiAgICAgICAgYW5zd2VyID0gdGhpcy5mYi5ncm91cCh7ICAgICAgICAgIFxyXG4gICAgICAgICAgLi4uKFsnaW1hZ2UnLCAnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSkgfSA6IHt9KSxcclxuICAgICAgICAgIC4uLigoWydpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUpIHx8IGNsb25lUXVlc3Rpb24/LmFuc3dlclR5cGUgPT0gJ3ZpZGVvJykgPyB7ICdhbGxvd1VwbG9hZGZyb21HYWxsZXJ5JzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPT0gdHJ1ZSA/IHRydWUgOiBmYWxzZSkgfSA6IHt9KSxcclxuICAgICAgICAgIC4uLihbJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7ICdydW5BSSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzPy5ydW5BSSA/IGNsb25lUXVlc3Rpb24/LmFuc3dlcnM/LnJ1bkFJIDogZmFsc2UpIH0gOiB7fSksXHJcbiAgICAgICAgICAuLi4oWydtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkgPyB7IGRlc2NyaXB0aXZldHlwZTp0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlKSB9IDoge30pLFxyXG4gICAgICAgICAgLi4uKFsnbGluZWFyc2NhbGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ3JhbmdlU3RhcnQnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJzLnJhbmdlU3RhcnQpLCdyYW5nZUVuZCc6dGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LmFuc3dlcnMucmFuZ2VFbmQpIH0gOiB7fSksXHJcbiAgICAgICAgICAncmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICAgICAncnVuQUlGZWF0dXJlcyc6dGhpcy5mYi5hcnJheShjbG9uZVF1ZXN0aW9uPy5ydW5BSUZlYXR1cmVzIHx8IFtdKSxcclxuICAgICAgICAgICdydW5BSURlc2NyaXB0aW9uJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnJ1bkFJRGVzY3JpcHRpb24gfHwgJycpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBpZih0eXBlb2YgY2xvbmVRdWVzdGlvbj8ucXVlc3Rpb25SZWZlcmVuY2VJbWFnZSA9PSAnc3RyaW5nJyAmJiBjbG9uZVF1ZXN0aW9uPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlICE9ICcnKSB7XHJcbiAgICAvLyAgIGNsb25lUXVlc3Rpb24ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlID0gW3tpbWFnZVVSTDpjbG9uZVF1ZXN0aW9uPy5xdWVzdGlvblJlZmVyZW5jZUltYWdlLHJ1bkFJOmZhbHNlfV07XHJcbiAgICAvLyB9XHJcbiAgICBxdWVzdGlvbiA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBcInFub1wiOiB0aGlzLmZiLmNvbnRyb2wocXVlc3Rpb25MZW5ndGgubGVuZ3RoICsgMSksXHJcbiAgICAgICdxbmFtZSc6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5xbmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKCldKSxcclxuICAgICAgJ2Fuc3dlclR5cGUnOiB0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSwgdGhpcy5hbGxvd2VkVmFsdWVzVmFsaWRhdG9yKFtcImRlc2NyaXB0aXZlXCIsIFwieWVzL25vXCIsIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIiwgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsIFwiaW1hZ2VcIiwgXCJ2aWRlb1wiLCdtdWx0aXBsZUltYWdlJywnZGF0ZScsJ2xpbmVhcnNjYWxlJywndGltZSddKSksXHJcbiAgICAgIC4uLighWydkZXNjcmlwdGl2ZScsJ2RhdGUnXS5pbmNsdWRlcyhjbG9uZVF1ZXN0aW9uPy5hbnN3ZXJUeXBlKSA/IHsgJ2Fuc3dlcnMnOiAoWydpbWFnZScsJ2Rlc2NyaXB0aXZlSW1hZ2UnLCAndmlkZW8nLCdtdWx0aXBsZUltYWdlJywnbGluZWFyc2NhbGUnLCd0aW1lJ10uaW5jbHVkZXMoY2xvbmVRdWVzdGlvbj8uYW5zd2VyVHlwZSkpID8gYW5zd2VyIDogdGhpcy5mYi5hcnJheShhbnN3ZXIsW3VuaXF1ZVN0cmluZ1ZhbGlkYXRvcigpXSkgfSA6IHt9KSxcclxuICAgICAgJ3J1bkFJJzogdGhpcy5mYi5jb250cm9sKGNsb25lUXVlc3Rpb24/LnJ1bkFJLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAncnVuQUlEZXNjcmlwdGlvbic6IHRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5ydW5BSURlc2NyaXB0aW9uIHx8ICcnKSxcclxuICAgICAgJ2FsbG93VXBsb2FkZnJvbUdhbGxlcnknOiB0aGlzLmZiLmNvbnRyb2woY2xvbmVRdWVzdGlvbj8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSksXHJcbiAgICAgICdsaW5rVHlwZSc6IHRoaXMuZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgICdkZXNjcmlwdGl2ZXR5cGUnOnRoaXMuZmIuY29udHJvbChjbG9uZVF1ZXN0aW9uPy5kZXNjcmlwdGl2ZXR5cGUpLFxyXG4gICAgICBcIm11bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZVwiOnRoaXMuZmIuYXJyYXkoY2xvbmVRdWVzdGlvbj8ubXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlKSxcclxuICAgICAgJ3F1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnOnRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICAgICdydW5BSUZlYXR1cmVzJzp0aGlzLmZiLmFycmF5KGNsb25lUXVlc3Rpb24/LnJ1bkFJRmVhdHVyZXMgfHwgW10pLCAgICAgIFxyXG4gICAgICBcInVuaXF1ZXFub1wiOiB0aGlzLmZiLmNvbnRyb2woMCksXHJcbiAgICAgIFwidW5pcXVlcWlkXCI6IHRoaXMuZmIuY29udHJvbCgnJyksXHJcbiAgICB9KTtcclxuICAgIC8vIHRoaXMudXBkYXRlQ2xvbmVkbGlua2VkUXVlc3Rpb25ObyhzZWN0aW9uaW5kZXgsIGNsb25lUXVlc3Rpb24/LnFubyk7XHJcbiAgICAodGhpcy5nZXRTZWN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbmluZGV4LCAncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5pbnNlcnQoY2xvbmVRdWVzdGlvbj8ucW5vLHF1ZXN0aW9uKTtcclxuICAgIHRoaXMuQ2hlY2tsaXN0Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXN0aW9uUW5vcyhzZWN0aW9uaW5kZXgpO1xyXG4gICAgdGhpcy5zd2FsVG9hc3QoYFF1ZXN0aW9uICR7Y2xvbmVRdWVzdGlvbj8ucW5vfSBoYXMgYmVlbiBkdXBsaWNhdGVkIWApO1xyXG4gICAgdGhpcy5jaGFuZ2VkZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDbG9uZWRsaW5rZWRRdWVzdGlvbk5vKHNlY0lkeDpudW1iZXIscWlkeDpudW1iZXIpIHtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgYW5zd2VycyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5O1xyXG4gICAgICBpZihhbnN3ZXJzKSB7XHJcbiAgICAgICAgZm9yKGxldCBqPTA7ajxhbnN3ZXJzLmxlbmd0aDtqKyspIHtcclxuICAgICAgICAgIGxldCBsaW5rZWQgPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWQpIHtcclxuICAgICAgICAgICAgbGV0IHF1ZXN0aW9uTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgICAgICBpZihxdWVzdGlvbk5vID4gcWlkeCkge1xyXG4gICAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUocXVlc3Rpb25ObyArIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzYXZlQ2hlY2tsaXN0UXVlc3Rpb25zKHR5cGU6IHN0cmluZykge1xyXG4gICAgICBsZXQgY2hlY2tsaXN0ID0gdGhpcy5DaGVja2xpc3RGb3JtLnZhbHVlO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhjaGVja2xpc3QsJ2NoZWNrbGlzdCcpXHJcbiAgICAgIGlmKCF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbGlkKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1BsZWFzZSBlbnRlciBjaGVja2xpc3QgbmFtZSEnO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gICAgICBcclxuICAgICAgXHJcbiAgICAgIGlmICghdGhpcy5DaGVja2xpc3RGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5tYXJrRm9ybUNvbnRyb2xzQXNUb3VjaGVkKHRoaXMuQ2hlY2tsaXN0Rm9ybSwwKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvRXJyb3JzKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHNlY3Rpb25zID0gY2hlY2tsaXN0LnNlY3Rpb25zO1xyXG4gICAgICBpZih0eXBlID09ICdzYXZlQXNEcmFmdCcpIHtcclxuICAgICAgICBjaGVja2xpc3Quc3VibWl0VHlwZSA9ICdzYXZlJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjaGVja2xpc3Quc3VibWl0VHlwZSA9ICdjb25maWd1cmUnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCFzZWN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBzZWN0aW9uISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYodHlwZSA9PSAnY29uZmlndXJlJyAmJiAhc2VjdGlvbnNbaV0ucXVlc3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1BsZWFzZSBhZGQgYXRsZWFzdCBvbmUgcXVlc3Rpb24gaW4gc2VjdGlvbiEnO1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zLmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIGlmKGluZGV4ICE9IGkgJiYgc2VjdGlvbnNbaV0ubmFtZS50cmltKCkgPT0gZWxlLm5hbWUudHJpbSgpKVxyXG4gICAgICAgICAgICByZXR1cm4gZWxlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYoZmluZEV4aXN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KGAke3NlY3Rpb25zW2ldLm5hbWV9IHNlY3Rpb24gbmFtZSBpcyBEdXBsaWNhdGVkYCAsJ2Vycm9yJyk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2VjdGlvbnNbaV0ucXVlc3Rpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgYW5zVHlwZSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlO1xyXG4gICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lLnRyaW0oKS5yZXBsYWNlQWxsKC9cXG4vZywgJycpXHJcbiAgICAgICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9ucy5maWx0ZXIoKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKGluZGV4ICE9IGogJiYgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lLnRyaW0oKSA9PSBlbGUucW5hbWUudHJpbSgpKVxyXG4gICAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgaWYoZmluZEV4aXN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLnFuYW1lfSBxdWVzdGlvbiBuYW1lIGlzIER1cGxpY2F0ZWRgICwnZXJyb3InKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoYW5zVHlwZSA9PSAnbGluZWFyc2NhbGUnKSB7XHJcbiAgICAgICAgICAgIGlmKHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJhbmdlU3RhcnQgPiBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5yYW5nZUVuZCl7XHJcbiAgICAgICAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1JhbmdlIHN0YXJ0IGlzIGdyZWF0ZXIgdGhhbiByYW5nZSBFbmQuJztcclxuICAgICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZihhbnNUeXBlICE9ICdkZXNjcmlwdGl2ZScpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5kZXNjcmlwdGl2ZXR5cGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXS5pbmNsdWRlcyhhbnNUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3Nob3dMaW5rZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2xpbmtlZFF1ZXN0aW9uJ10gPSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5ID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcInllcy9ub1wiXS5pbmNsdWRlcyhhbnNUeXBlKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlciddID0gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlciddLnRyaW0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHR5cGVvZiBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgIT09IG51bGwgJiZcclxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMpIHx8IFsnZGVzY3JpcHRpdmUnLCdkYXRlJ10uaW5jbHVkZXMoYW5zVHlwZSkpIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgXCJhbnN3ZXJcIjogJycsXHJcbiAgICAgICAgICAgICAgXCJhbnN3ZXJvcHRpb25OdW1iZXJcIjogMSxcclxuICAgICAgICAgICAgICBcInNvcEZsYWdcIjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9uXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvblR5cGVcIjogXCJcIixcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25BbnN3ZXJcIjogXCJcIixcclxuICAgICAgICAgICAgICBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIjogc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgPyBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSA6IFtdLFxyXG4gICAgICAgICAgICAgIFwic2hvd0xpbmtlZFwiOmZhbHNlLFxyXG4gICAgICAgICAgICAgIFwibGlua2VkUXVlc3Rpb25cIjowLFxyXG4gICAgICAgICAgICAgIC4uLihhbnNUeXBlID09ICdtdWx0aXBsZUltYWdlJyA/IHsnZGVzY3JpcHRpdmV0eXBlJzpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlfTp7fSksXHJcbiAgICAgICAgICAgICAgLi4uKGFuc1R5cGUgPT0gJ2xpbmVhcnNjYWxlJyA/IHsncmFuZ2VTdGFydCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlU3RhcnR9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oYW5zVHlwZSA9PSAnbGluZWFyc2NhbGUnID8geydyYW5nZUVuZCc6c2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlRW5kfTp7fSksXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6JycsXHJcbiAgICAgICAgICAgICAgcnVuQUk6c2VjdGlvbnNbaV0/LnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczpzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0/LmFuc3dlcnM/LnJ1bkFJRmVhdHVyZXMgPz8gW10sXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uID8gc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uIDogXCJcIixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5IDogZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKGFuc1R5cGUgPT0gJ211bHRpcGxlSW1hZ2UnKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmRlc2NyaXB0aXZldHlwZSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgPyBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uZGVzY3JpcHRpdmV0eXBlIDogJ3RleHQnO1xyXG4gICAgICAgICAgICAgIC8vIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5tdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UgPSBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ubXVsdGlSZWZlcmVuY2VJbWFnZSA/IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlIDogW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VjdGlvbnNbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgPSBbaXRlbV07XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5ydW5BSSA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJ1bkFJO1xyXG4gICAgICAgICAgICAvLyBzZWN0aW9uc1tpXS5xdWVzdGlvbnNbal0ucnVuQUlGZWF0dXJlcyA9IHNlY3Rpb25zW2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLnJ1bkFJRmVhdHVyZXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNoZWNrbGlzdC5zZWN0aW9ucyA9IHNlY3Rpb25zO1xyXG4gICAgICBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZSA9IGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5zbGljZSgxKTtcclxuICAgICAgY2hlY2tsaXN0LmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgICAgY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUgPSBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZS50cmltKCk7XHJcbiAgICAgIGNoZWNrbGlzdC5jaGVja2xpc3REZXNjcmlwdGlvbiA9IGNoZWNrbGlzdD8uY2hlY2tsaXN0RGVzY3JpcHRpb24gPyBjaGVja2xpc3Q/LmNoZWNrbGlzdERlc2NyaXB0aW9uPy50cmltKCkgOiAnJztcclxuICAgICAgdGhpcy5zb3BTZXJ2aWNlLmNyZWF0ZWNoZWNrbGlzdChjaGVja2xpc3QpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmKHJlcykge1xyXG4gICAgICAgICAgaWYgKHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgaWYodHlwZT09J2NvbmZpZ3VyZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2NoZWNrTGlzdElkPSR7cmVzLmRhdGEuY2hlY2tsaXN0SWR9YCk7ICAgICBcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvbWFuYWdlL3RyYXgvY2hlY2tsaXN0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCEnLCdlcnJvcicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN3YWxUb2FzdCgnVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhJywnZXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCAnVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhU2VydmVyIEVycm9yISc7XHJcbiAgICAgICAgdGhpcy5zd2FsVG9hc3QoZXJyLCdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBzYXZlQXNEcmFmdFBvcCh0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgdGhpcy5wb3B1cENvdW50ID0gdGhpcy5wb3B1cENvdW50ICsgMTtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICAgIGltYWdlc3JjOiAgYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgdGl0bGU6YFVuc2F2ZWQgY2hhbmdlc2AsXHJcbiAgICAgICAgY29udGVudDpgRG8geW91IHdhbnQgdG8gc2F2ZSBhcyBkcmFmdD9gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6J2RyYWZ0J1xyXG4gICAgICB9XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKT0+e1xyXG4gICAgICAgIGlmKCFyZXMpIHtcclxuICAgICAgICAgIHRoaXMucG9wdXBDb3VudCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHJlcykge1xyXG4gICAgICAgICAgaWYodHlwZSA9PSAnY3JlYXRlJykge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVDaGVja2xpc3RRdWVzdGlvbnMoJ3NhdmVBc0RyYWZ0Jyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoZWNrbGlzdFF1ZXN0aW9ucygnc2F2ZUFzRHJhZnQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2hlY2tsaXN0UXVlc3Rpb25zKHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IHNlY3Rpb25zYXJyYXk6IGFueSA9IFtdO1xyXG4gICAgbGV0IGNoZWNrbGlzdDogYW55O1xyXG4gICAgXHJcbiAgICBpZighdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy52YWxpZCkge1xyXG4gICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGVudGVyIGNoZWNrbGlzdCBuYW1lISc7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSAgICAgIFxyXG4gICAgXHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLkNoZWNrbGlzdEZvcm0pO1xyXG4gICAgLy8gcmV0dXJuO1xyXG4gICAgY2hlY2tsaXN0ID0gdGhpcy5DaGVja2xpc3RGb3JtLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLkNoZWNrbGlzdEZvcm0sJ2Zvcm0nKVxyXG4gICAgaWYgKCF0aGlzLkNoZWNrbGlzdEZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5tYXJrRm9ybUNvbnRyb2xzQXNUb3VjaGVkKHRoaXMuQ2hlY2tsaXN0Rm9ybSwwKTtcclxuICAgICAgdGhpcy5zY3JvbGxUb0Vycm9ycyh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHNlY3Rpb25zYXJyYXkgPSBjaGVja2xpc3Quc2VjdGlvbnM7XHJcbiAgICBpZighdGhpcy5DaGVja2xpc3RGb3JtLmdldCgnY2hlY2tsaXN0TmFtZScpPy52YWxpZCkge1xyXG4gICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGVudGVyIGNoZWNrbGlzdCBuYW1lISc7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYodHlwZSA9PSAnc2F2ZUFzRHJhZnQnKSB7XHJcbiAgICAgIGNoZWNrbGlzdC5zdWJtaXRUeXBlID0gJ3NhdmUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hlY2tsaXN0LnN1Ym1pdFR5cGUgPSAnY29uZmlndXJlJztcclxuICAgIH1cclxuICAgIGlmKCFzZWN0aW9uc2FycmF5Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUGxlYXNlIGFkZCBhdGxlYXN0IG9uZSBzZWN0aW9uISc7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWN0aW9uc2FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBzZWN0aW9uTmFtZSA9IHNlY3Rpb25zYXJyYXlbaV0ubmFtZTtcclxuICAgICAgbGV0IGZpbmRFeGlzdHMgPSBzZWN0aW9uc2FycmF5LmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIGlmKGluZGV4ICE9IGkgJiYgc2VjdGlvbk5hbWUudHJpbSgpID09IGVsZS5uYW1lLnRyaW0oKSlcclxuICAgICAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgfSlcclxuICAgICAgaWYoZmluZEV4aXN0cy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChgJHtzZWN0aW9uTmFtZX0gc2VjdGlvbiBuYW1lIGlzIER1cGxpY2F0ZWRgICwnZXJyb3InKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYodHlwZSA9PSAnY29uZmlndXJlJyAmJiAhc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gJ1BsZWFzZSBhZGQgYXRsZWFzdCBvbmUgcXVlc3Rpb24gaW4gc2VjdGlvbiEnO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLnFuYW1lID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpLnJlcGxhY2VBbGwoL1xcbi9nLCAnJylcclxuICAgICAgICBsZXQgZmluZEV4aXN0cyA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zLmZpbHRlcigoZWxlOmFueSxpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIGlmKGluZGV4ICE9IGogJiYgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWUudHJpbSgpID09IGVsZS5xbmFtZS50cmltKCkpXHJcbiAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpZihmaW5kRXhpc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoYCR7c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucW5hbWV9IHF1ZXN0aW9uIG5hbWUgaXMgRHVwbGljYXRlZGAgLCdlcnJvcicpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdsaW5lYXJzY2FsZScpIHtcclxuICAgICAgICAgIGlmKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VTdGFydCA+IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucmFuZ2VFbmQpe1xyXG4gICAgICAgICAgICBsZXQgZXJyOiBzdHJpbmcgPSAnUmFuZ2Ugc3RhcnQgaXMgZ3JlYXRlciB0aGFuIHJhbmdlIEVuZC4nO1xyXG4gICAgICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSAhPSAnZGVzY3JpcHRpdmUnKSB7XHJcbiAgICAgICAgICBkZWxldGUgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uZGVzY3JpcHRpdmV0eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoW1wibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXS5pbmNsdWRlcyhzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlKSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ2Fuc3dlcklucHV0U3R5bGUnXSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGU7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bXCJtdWx0aVJlZmVyZW5jZUltYWdlXCJdID0gXCJcIjtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSddID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3ZhbGlkYXRpb25BbnN3ZXInXSA9IFwiXCI7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3J1bkFJJ10gPSBmYWxzZTtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10gPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnNba11bJ3Nob3dMaW5rZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydsaW5rZWRRdWVzdGlvbiddID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFtcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJ5ZXMvbm9cIl0uaW5jbHVkZXMoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vyc1trXVsnYW5zd2VyJ10gPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzW2tdWydhbnN3ZXInXS50cmltKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMgPT09ICdvYmplY3QnICYmXHJcbiAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzICE9PSBudWxsICYmXHJcbiAgICAgICAgICAhQXJyYXkuaXNBcnJheShzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzKSB8fCBbJ2Rlc2NyaXB0aXZlJywnZGF0ZSddLmluY2x1ZGVzKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0ge1xyXG4gICAgICAgICAgICAgIFwiYW5zd2VyXCI6ICcnLFxyXG4gICAgICAgICAgICAgIFwiYW5zd2Vyb3B0aW9uTnVtYmVyXCI6IDEsXHJcbiAgICAgICAgICAgICAgXCJzb3BGbGFnXCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIFwidmFsaWRhdGlvblwiOiBmYWxzZSxcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25BbnN3ZXJcIjogXCJcIixcclxuICAgICAgICAgICAgICBcInZhbGlkYXRpb25UeXBlXCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXCJtdWx0aVJlZmVyZW5jZUltYWdlXCI6IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/Lm11bHRpUmVmZXJlbmNlSW1hZ2UgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5tdWx0aVJlZmVyZW5jZUltYWdlIDogW10sXHJcbiAgICAgICAgICAgICAgXCJzaG93TGlua2VkXCI6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgXCJsaW5rZWRRdWVzdGlvblwiOjAsXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6JycsXHJcbiAgICAgICAgICAgICAgLi4uKHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlclR5cGUgPT0gJ211bHRpcGxlSW1hZ2UnID8geydkZXNjcmlwdGl2ZXR5cGUnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmRlc2NyaXB0aXZldHlwZX06e30pLFxyXG4gICAgICAgICAgICAgIC4uLihzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJUeXBlID09ICdsaW5lYXJzY2FsZScgPyB7J3JhbmdlU3RhcnQnOnNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LnJhbmdlU3RhcnR9Ont9KSxcclxuICAgICAgICAgICAgICAuLi4oc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnbGluZWFyc2NhbGUnID8geydyYW5nZUVuZCc6c2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8ucmFuZ2VFbmR9Ont9KSxcclxuICAgICAgICAgICAgICBydW5BSTpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczpzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUlGZWF0dXJlcyA/PyBbXSxcclxuICAgICAgICAgICAgICBydW5BSURlc2NyaXB0aW9uOiBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXT8uYW5zd2Vycz8ucnVuQUlEZXNjcmlwdGlvbiA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdPy5hbnN3ZXJzPy5ydW5BSURlc2NyaXB0aW9uIDogXCJcIixcclxuICAgICAgICAgICAgICAvLyBcImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgOiBmYWxzZSxcclxuICAgICAgICAgICAgICAvLyBcImFuc3dlcklucHV0U3R5bGVcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycz8uYW5zd2VySW5wdXRTdHlsZSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFuc3dlcklucHV0U3R5bGUgOiBcIlwiLFxyXG4gICAgICAgICAgICAgIC8vIFwicnVuQUlcIjogc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSSA/IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUkgOiBmYWxzZSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYWxsb3dVcGxvYWRmcm9tR2FsbGVyeSA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnM/LmFsbG93VXBsb2FkZnJvbUdhbGxlcnkgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5hbGxvd1VwbG9hZGZyb21HYWxsZXJ5IDogZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLnJ1bkFJID0gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2Vycy5ydW5BSTtcclxuICAgICAgICAgICAgLy8gc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0ucnVuQUlGZWF0dXJlcyA9IHNlY3Rpb25zYXJyYXlbaV0ucXVlc3Rpb25zW2pdLmFuc3dlcnMucnVuQUlGZWF0dXJlcztcclxuICAgICAgICAgICAgaWYoc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VyVHlwZSA9PSAnbXVsdGlwbGVJbWFnZScpIHtcclxuICAgICAgICAgICAgICBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5kZXNjcmlwdGl2ZXR5cGUgPSBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgPyBzZWN0aW9uc2FycmF5W2ldLnF1ZXN0aW9uc1tqXS5hbnN3ZXJzPy5kZXNjcmlwdGl2ZXR5cGUgOiAndGV4dCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VjdGlvbnNhcnJheVtpXS5xdWVzdGlvbnNbal0uYW5zd2VycyA9IFtpdGVtXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNoZWNrbGlzdC5zZWN0aW9ucyA9IHNlY3Rpb25zYXJyYXk7XHJcbiAgICBjaGVja2xpc3QuY2hlY2tsaXN0TmFtZSA9IGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lLnRyaW0oKS5zbGljZSgxKTtcclxuICAgIGNoZWNrbGlzdC5jaGVja2xpc3ROYW1lID0gY2hlY2tsaXN0LmNoZWNrbGlzdE5hbWUudHJpbSgpO1xyXG4gICAgY2hlY2tsaXN0LmNoZWNrbGlzdERlc2NyaXB0aW9uID0gY2hlY2tsaXN0Py5jaGVja2xpc3REZXNjcmlwdGlvbiA/IGNoZWNrbGlzdD8uY2hlY2tsaXN0RGVzY3JpcHRpb24/LnRyaW0oKSA6ICcnO1xyXG4gICAgY2hlY2tsaXN0LmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcclxuICAgIHRoaXMuc29wU2VydmljZS5nZXR1cGRhdGVjaGVja2xpc3QodGhpcy5lZGl0dmFsdWUsIGNoZWNrbGlzdCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcykge1xyXG4gICAgICAgIGlmIChyZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBpZih0eXBlPT0nY29uZmlndXJlJykge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2NoZWNrTGlzdElkPSR7cmVzLmRhdGEuY2hlY2tsaXN0SWR9JnNob3dFZGl0PXRydWVgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9tYW5hZ2UvdHJheC9jaGVja2xpc3QnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zd2FsVG9hc3QoJ1VuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IScsJ2Vycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gdXBkYXRlIGNoZWNrbGlzdCEnLCdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ1VuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IVNlcnZlciBFcnJvciEnO1xyXG4gICAgICB0aGlzLnN3YWxUb2FzdChlcnIsJ2Vycm9yJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQoY29udHJvbDogRm9ybUdyb3VwIHwgRm9ybUFycmF5LHNlY3Rpb25JbmRleD86IG51bWJlcikge1xyXG4gICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcblxyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgZm9yIChjb25zdCBjb250cm9sTmFtZSBpbiBjb250cm9sLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgdGhpcy5tYXJrRm9ybUNvbnRyb2xzQXNUb3VjaGVkKGNvbnRyb2wuZ2V0KGNvbnRyb2xOYW1lKSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgY29udHJvbC5jb250cm9scy5mb3JFYWNoKGZvcm1Db250cm9sID0+IHtcclxuICAgICAgICB0aGlzLm1hcmtGb3JtQ29udHJvbHNBc1RvdWNoZWQoZm9ybUNvbnRyb2wgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0Vycm9ycyhzZWN0aW9uczogRm9ybUFycmF5KSB7XHJcbiAgICBmb3IobGV0IGk9MDtpPHNlY3Rpb25zLmxlbmd0aDtpKyspIHtcclxuICAgICAgbGV0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChpKSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgIGlmIChzZWN0aW9uLmludmFsaWQpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICBmb3IobGV0IGo9MDtqPHF1ZXN0aW9ucy5sZW5ndGg7aisrKSB7XHJcbiAgICAgICAgICBsZXQgcXVlc3Rpb24gPSBxdWVzdGlvbnMuYXQoaikgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocXVlc3Rpb24sJ3F1ZXN0aW9uJyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAocXVlc3Rpb24uaW52YWxpZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvdyA9IGk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1F1ZXN0aW9uKGksIGopO1xyXG4gICAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KCdQbGVhc2UgZmlsbCBvdXQgYWxsIHRoZSBmaWVsZHMhJywnZXJyb3InKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzd2FsVG9hc3QoZXJyOiBzdHJpbmcsdHlwZT86c3RyaW5nLGljb24/OiBzdHJpbmcpIHtcclxuICAgIGlmKHR5cGUgPT0gJ2Vycm9yJykge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChlcnIpO1xyXG4gICAgfVxyXG4gICAgLy8gU3dhbC5maXJlKHtcclxuICAgIC8vICAgdG9hc3Q6IHRydWUsXHJcbiAgICAvLyAgIC4uLiggaWNvbiA/IHsgaWNvbkh0bWw6IGljb24gfSA6IHt9KSxcclxuICAgIC8vICAgLy8gdGl0bGVUZXh0OiBgQ2hlY2tsaXN0IEZvcm0gRXJyb3JgLFxyXG4gICAgLy8gICBodG1sOiBgPGRpdiBjbGFzcz1cInJvdyBcIj5cclxuICAgIC8vICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XHJcbiAgICAvLyAgIDxkaXYgY2xhc3M9XCJ0b2FzdHRpdGlsZVwiPiR7ZXJyfTwvZGl2PlxyXG4gICAgLy8gICA8L2Rpdj5cclxuICAgICBcclxuICAgIC8vICAgPC9kaXY+YCxcclxuICAgIC8vICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgLy8gICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXHJcbiAgICAvLyAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAgIC8vICAgdGltZXI6IDYwMDAsXHJcbiAgICAvLyAgIHRpbWVyUHJvZ3Jlc3NCYXI6IHRydWUsXHJcbiAgICAvLyAgIGRpZE9wZW46ICh0b2FzdCkgPT4ge1xyXG4gICAgLy8gICAgIHRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBTd2FsLnN0b3BUaW1lcilcclxuICAgIC8vICAgICB0b2FzdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgU3dhbC5yZXN1bWVUaW1lcilcclxuICAgIC8vICAgICAkKFwiI2t0X2NyZWF0ZV9hY2NvdW50X2Zvcm1fYWNjb3VudF90eXBlX3BlcnNvbmFsXCIpPy52YWwoJycpO1xyXG4gICAgLy8gICAgIHRoaXMuY2hhbmdlZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIFJ1bkFJKHNJZHg6bnVtYmVyLHFJZHg6IG51bWJlcixhbnNJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBsZXQgZGlhbG9nUmVmOiBhbnk7XHJcbiAgICBsZXQgcXVlc3Rpb246IGFueSA9IHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3FuYW1lJyk/LnZhbHVlO1xyXG4gICAgaWYodGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdydW5BSScsYW5zSWR4KT8udmFsdWUgPT0gZmFsc2UpIHtcclxuICAgICAgaWYoIXF1ZXN0aW9uIHx8ICF0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGVycjogc3RyaW5nID0gIXF1ZXN0aW9uID8gJ1BsZWFzZSBlbnRlciBxdWVzdGlvbiB0byBjb250aW51ZSEnIDogJ1BsZWFzZSBlbnRlciBDaGVja2xpc3QgTmFtZSB0byBjb250aW51ZSEnO1xyXG4gICAgICAgIHRoaXMuc3dhbFRvYXN0KGVyciwnZXJyb3InKTsgICAgICAgIFxyXG4gICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCwgcUlkeCxmYWxzZSxhbnNJZHgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCd9KTtcclxuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTIzLjM1NjQgMTkuMzUyNUMyNC4xNzQ4IDE4LjczMjcgMjUuMTczOCAxOC4zOTg1IDI2LjIwMDQgMTguNDAwOUMyNi41NTQ5IDE4LjM5MyAyNi45MDU3IDE4LjQ3NDYgMjcuMjIwNCAxOC42MzgyQzI3LjUzNSAxOC44MDE4IDI3LjgwMzMgMTkuMDQyMSAyOC4wMDA0IDE5LjMzNjlDMjguMTk3NSAxOS4wNDIxIDI4LjQ2NTggMTguODAxOCAyOC43ODA0IDE4LjYzODJDMjkuMDk1IDE4LjQ3NDYgMjkuNDQ1OSAxOC4zOTMgMjkuODAwNCAxOC40MDA5QzMwLjgyNyAxOC4zOTg1IDMxLjgyNiAxOC43MzI3IDMyLjY0NDQgMTkuMzUyNUMzMy4yNzQ0IDE5Ljg0MjEgMzMuNzYwNCAyMC41MjAxIDMzLjkzMiAyMS4zMzk3QzM0LjMyNTYgMjEuMzY5NyAzNC42ODU2IDIxLjUzMjkgMzQuOTg4IDIxLjc3ODlDMzUuNDQ2NCAyMi4xNTA5IDM1Ljc4IDIyLjcwODkgMzUuOTkgMjMuMjk5M0MzNi4zMTg4IDI0LjIxNzMgMzYuNDA3NiAyNS4zODczIDM2LjA2NjggMjYuMzgzM0MzNi4xNTMyIDI2LjQyNDEgMzYuMjM4NCAyNi40NzIxIDM2LjMyMTIgMjYuNTI3M0MzNi42NTEyIDI2Ljc0NjkgMzYuOTAyIDI3LjA2MTMgMzcuMDg2OCAyNy40MzIxQzM3LjQ1MDQgMjguMTU4MSAzNy42MDA0IDI5LjE3MDkgMzcuNjAwNCAzMC40MDA5QzM3LjYwMDQgMzEuNzcwMSAzNy4wNzg0IDMyLjY4OTMgMzYuNDE2IDMzLjI1NjlDMzYuMDQ5NyAzMy41NzEgMzUuNjE3NCAzMy43OTg2IDM1LjE1MTIgMzMuOTIyOUMzNS4wMzEyIDM0LjU5MjUgMzQuNjk1MiAzNS4zNjc3IDM0LjE2ODQgMzYuMDI1M0MzMy40ODQ0IDM2Ljg4MzMgMzIuNDIzNiAzNy42MDA5IDMxLjAwMDQgMzcuNjAwOUMyOS44NzI0IDM3LjYwMDkgMjguOTc0OCAzNi45NzY5IDI4LjM5MTYgMzYuMzY0OUMyOC4yNTIyIDM2LjIxODggMjguMTIxNSAzNi4wNjQ1IDI4LjAwMDQgMzUuOTAyOUMyNy44NzkzIDM2LjA2NDUgMjcuNzQ4NiAzNi4yMTg4IDI3LjYwOTIgMzYuMzY0OUMyNy4wMjYgMzYuOTc2OSAyNi4xMjk2IDM3LjYwMDkgMjUuMDAwNCAzNy42MDA5QzIzLjU3NzIgMzcuNjAwOSAyMi41MTc2IDM2Ljg4MzMgMjEuODMyNCAzNi4wMjUzQzIxLjM0MDEgMzUuNDE0IDIxLjAwMjkgMzQuNjkyNyAyMC44NDk2IDMzLjkyMjlDMjAuMzgzNCAzMy43OTg2IDE5Ljk1MTEgMzMuNTcxIDE5LjU4NDggMzMuMjU2OUMxOC45MjI0IDMyLjY4OTMgMTguNDAwNCAzMS43Njg5IDE4LjQwMDQgMzAuNDAwOUMxOC40MDA0IDI5LjE3MDkgMTguNTUxNiAyOC4xNTY5IDE4LjkxNCAyNy40MzIxQzE5LjA4NTcgMjcuMDY4NSAxOS4zNDk3IDI2Ljc1NjEgMTkuNjc5NiAyNi41MjYxQzE5Ljc2MDYgMjYuNDcyNSAxOS44NDU3IDI2LjQyNTEgMTkuOTM0IDI2LjM4NDVDMTkuNTkzMiAyNS4zODYxIDE5LjY4MiAyNC4yMTczIDIwLjAxMDggMjMuMjk5M0MyMC4yMjA4IDIyLjcwODkgMjAuNTU0NCAyMi4xNTA5IDIxLjAxMjggMjEuNzc4OUMyMS4zMTUyIDIxLjUzMjkgMjEuNjc1MiAyMS4zNzA5IDIyLjA2ODggMjEuMzM5N0MyMi4yNDE2IDIwLjUyMDEgMjIuNzI2NCAxOS44NDIxIDIzLjM1NjQgMTkuMzUyNVpNMjcuNDAwNCAyMS40MDA5VjIxLjM4ODlMMjcuMzk4IDIxLjMyODlDMjcuMzgwMyAyMS4wMTYxIDI3LjMxODEgMjAuNzA3NCAyNy4yMTMyIDIwLjQxMjFDMjcuMTM4NSAyMC4xODkyIDI3LjAxMTMgMTkuOTg3NiAyNi44NDI0IDE5LjgyNDFDMjYuNjY1MSAxOS42Njk4IDI2LjQzNTIgMTkuNTg5OCAyNi4yMDA0IDE5LjYwMDlDMjUuNDQwNyAxOS41OTgzIDI0LjcwMDkgMTkuODQzNSAyNC4wOTMyIDIwLjI5OTNDMjMuNTM2NCAyMC43MzI1IDIzLjIwMDQgMjEuMzE5MyAyMy4yMDA0IDIyLjAwMDlDMjMuMjAwMyAyMi4wOTU5IDIzLjE3NzcgMjIuMTg5NiAyMy4xMzQzIDIyLjI3NDFDMjMuMDkxIDIyLjM1ODcgMjMuMDI4MiAyMi40MzE4IDIyLjk1MTEgMjIuNDg3M0MyMi44NzQgMjIuNTQyOCAyMi43ODQ4IDIyLjU3OTMgMjIuNjkwOSAyMi41OTM2QzIyLjU5NjkgMjIuNjA3OSAyMi41MDA5IDIyLjU5OTcgMjIuNDEwOCAyMi41Njk3QzIyLjE4NTIgMjIuNDk1MyAyMS45ODM2IDIyLjUzNzMgMjEuNzY4OCAyMi43MTAxQzIxLjUzMzYgMjIuOTAyMSAyMS4zMDQ0IDIzLjI0MjkgMjEuMTQgMjMuNzAyNUMyMC44MDUyIDI0LjY0MDkgMjAuODQgMjUuNzc3MyAyMS4yOTk2IDI2LjQ2ODVDMjEuMzY1MiAyNi41NjcgMjEuNDAwMyAyNi42ODI2IDIxLjQwMDQgMjYuODAwOUgyMi4zMDA0QzIzLjAxNjUgMjYuODAwOSAyMy43MDMyIDI3LjA4NTQgMjQuMjA5NiAyNy41OTE3QzI0LjcxNTkgMjguMDk4MSAyNS4wMDA0IDI4Ljc4NDggMjUuMDAwNCAyOS41MDA5VjI5LjkwMjlDMjUuNDAwNyAzMC4wNDQ1IDI1LjczODEgMzAuMzIzIDI1Ljk1MyAzMC42ODkyQzI2LjE2NzggMzEuMDU1NSAyNi4yNDYzIDMxLjQ4NTkgMjYuMTc0NSAzMS45MDQ0QzI2LjEwMjcgMzIuMzIyOSAyNS44ODUyIDMyLjcwMjUgMjUuNTYwNiAzMi45NzYyQzI1LjIzNTkgMzMuMjQ5OSAyNC44MjUgMzMuNCAyNC40MDA0IDMzLjRDMjMuOTc1OCAzMy40IDIzLjU2NDggMzMuMjQ5OSAyMy4yNDAyIDMyLjk3NjJDMjIuOTE1NiAzMi43MDI1IDIyLjY5ODEgMzIuMzIyOSAyMi42MjYzIDMxLjkwNDRDMjIuNTU0NSAzMS40ODU5IDIyLjYzMyAzMS4wNTU1IDIyLjg0NzggMzAuNjg5MkMyMy4wNjI3IDMwLjMyMyAyMy40MDAxIDMwLjA0NDUgMjMuODAwNCAyOS45MDI5VjI5LjUwMDlDMjMuODAwNCAyOC42NzI5IDIzLjEyODQgMjguMDAwOSAyMi4zMDA0IDI4LjAwMDlIMjAuMjAwNEMyMC4xMjg3IDI4LjAwMDggMjAuMDU3NSAyNy45ODc4IDE5Ljk5MDQgMjcuOTYyNUwxOS45ODY4IDI3Ljk2OTdDMTkuNzQ5MiAyOC40NDM3IDE5LjYwMDQgMjkuMjMwOSAxOS42MDA0IDMwLjQwMDlDMTkuNjAwNCAzMS40MzE3IDE5Ljk3ODQgMzIuMDEyNSAyMC4zNjYgMzIuMzQ0OUMyMC43ODI0IDMyLjcwMjUgMjEuMjQ0NCAzMi44MDA5IDIxLjQwMDQgMzIuODAwOUMyMS41NTk1IDMyLjgwMDkgMjEuNzEyMSAzMi44NjQxIDIxLjgyNDcgMzIuOTc2N0MyMS45MzcyIDMzLjA4OTIgMjIuMDAwNCAzMy4yNDE4IDIyLjAwMDQgMzMuNDAwOUMyMi4wMDA0IDMzLjg0MjUgMjIuMjQwNCAzNC42MTQxIDIyLjc2ODQgMzUuMjc2NUMyMy4yODMyIDM1LjkxODUgMjQuMDIzNiAzNi40MDA5IDI1LjAwMDQgMzYuNDAwOUMyNS42NzI0IDM2LjQwMDkgMjYuMjc0OCAzNi4wMjUzIDI2Ljc0MDQgMzUuNTM2OUMyNi45Njk2IDM1LjI5NjkgMjcuMTQ4NCAzNS4wNDg1IDI3LjI2NDggMzQuODQ0NUMyNy4zMTc4IDM0Ljc1NDEgMjcuMzYzMSAzNC42NTkzIDI3LjQwMDQgMzQuNTYxM1YyNS4wMDA5SDI2LjA5ODRDMjUuOTU2OSAyNS40MDEyIDI1LjY3ODMgMjUuNzM4NyAyNS4zMTIxIDI1Ljk1MzVDMjQuOTQ1OSAyNi4xNjgzIDI0LjUxNTQgMjYuMjQ2OCAyNC4wOTcgMjYuMTc1QzIzLjY3ODUgMjYuMTAzMiAyMy4yOTg4IDI1Ljg4NTggMjMuMDI1MSAyNS41NjExQzIyLjc1MTQgMjUuMjM2NSAyMi42MDEzIDI0LjgyNTUgMjIuNjAxMyAyNC40MDA5QzIyLjYwMTMgMjMuOTc2MyAyMi43NTE0IDIzLjU2NTQgMjMuMDI1MSAyMy4yNDA3QzIzLjI5ODggMjIuOTE2MSAyMy42Nzg1IDIyLjY5ODYgMjQuMDk3IDIyLjYyNjhDMjQuNTE1NCAyMi41NTUgMjQuOTQ1OSAyMi42MzM1IDI1LjMxMjEgMjIuODQ4M0MyNS42NzgzIDIzLjA2MzIgMjUuOTU2OSAyMy40MDA2IDI2LjA5ODQgMjMuODAwOUgyNy40MDA0VjIxLjQwMDlaTTI4LjYwMDQgMzMuMzk5N1YzNC41NjAxQzI4LjYzNzcgMzQuNjU4MSAyOC42ODMgMzQuNzUyOCAyOC43MzYgMzQuODQzM0MyOC44NTM2IDM1LjA0NzMgMjkuMDMxMiAzNS4yOTU3IDI5LjI1OTIgMzUuNTM1N0MyOS43MjYgMzYuMDI0MSAzMC4zMjk2IDM2LjM5OTcgMzEuMDAwNCAzNi4zOTk3QzMxLjk3NzIgMzYuMzk5NyAzMi43MTc2IDM1LjkxNzMgMzMuMjMyNCAzNS4yNzUzQzMzLjc2MDQgMzQuNjEyOSAzNC4wMDA0IDMzLjg0MTMgMzQuMDAwNCAzMy4zOTk3QzM0LjAwMDQgMzMuMjQwNiAzNC4wNjM2IDMzLjA4OCAzNC4xNzYxIDMyLjk3NTVDMzQuMjg4NiAzMi44NjI5IDM0LjQ0MTMgMzIuNzk5NyAzNC42MDA0IDMyLjc5OTdDMzQuNzU2NCAzMi43OTk3IDM1LjIxODQgMzIuNzAxMyAzNS42MzQ4IDMyLjM0MzdDMzYuMDIyNCAzMi4wMTEzIDM2LjQwMDQgMzEuNDMwNSAzNi40MDA0IDMwLjM5OTdDMzYuNDAwNCAyOS4yMjk3IDM2LjI1MDQgMjguNDQzNyAzNi4wMTQgMjcuOTY4NUMzNS45MzQ5IDI3Ljc5MTYgMzUuODEwOCAyNy42Mzg1IDM1LjY1NCAyNy41MjQ1QzM1LjUxODkgMjcuNDM4MSAzNS4zNjA2IDI3LjM5NSAzNS4yMDA0IDI3LjQwMDlDMzUuMDkxOSAyNy40MDA5IDM0Ljk4NTQgMjcuMzcxNCAzNC44OTIzIDI3LjMxNTZDMzQuNzk5MiAyNy4yNTk4IDM0LjcyMyAyNy4xNzk4IDM0LjY3MTcgMjcuMDg0MUMzNC42MjA1IDI2Ljk4ODQgMzQuNTk2MiAyNi44ODA3IDM0LjYwMTQgMjYuNzcyM0MzNC42MDY2IDI2LjY2MzggMzQuNjQxMSAyNi41NTg5IDM0LjcwMTIgMjYuNDY4NUMzNS4xNjIgMjUuNzc3MyAzNS4xOTU2IDI0LjY0MDkgMzQuODYwOCAyMy43MDI1QzM0LjY5NjQgMjMuMjQyOSAzNC40NjcyIDIyLjkwMDkgMzQuMjMyIDIyLjcxMDFDMzQuMDE3MiAyMi41MzczIDMzLjgxNTYgMjIuNDk0MSAzMy41OSAyMi41Njk3QzMzLjQ5OTggMjIuNTk5NyAzMy40MDM4IDIyLjYwNzkgMzMuMzA5OSAyMi41OTM2QzMzLjIxNiAyMi41NzkzIDMzLjEyNjggMjIuNTQyOCAzMy4wNDk3IDIyLjQ4NzNDMzIuOTcyNiAyMi40MzE4IDMyLjkwOTggMjIuMzU4NyAzMi44NjY0IDIyLjI3NDFDMzIuODIzMSAyMi4xODk2IDMyLjgwMDUgMjIuMDk1OSAzMi44MDA0IDIyLjAwMDlDMzIuODAwNCAyMS4zMTkzIDMyLjQ2NDQgMjAuNzMyNSAzMS45MDY0IDIwLjI5OTNDMzEuMjk5IDE5Ljg0MzggMzAuNTU5NiAxOS41OTg2IDI5LjgwMDQgMTkuNjAwOUMyOS41NjU2IDE5LjU4OTggMjkuMzM1NiAxOS42Njk4IDI5LjE1ODQgMTkuODI0MUMyOC45ODg5IDE5Ljk4NzQgMjguODYxMyAyMC4xODkxIDI4Ljc4NjQgMjAuNDEyMUMyOC42NzIxIDIwLjcyNTYgMjguNjA5MyAyMS4wNTU0IDI4LjYwMDQgMjEuMzg4OVYzMi4yMDA5SDI5LjUwMDRDMzAuMzI4NCAzMi4yMDA5IDMxLjAwMDQgMzEuNTI4OSAzMS4wMDA0IDMwLjcwMDlWMjguNDk4OUMzMC42MDAxIDI4LjM1NzQgMzAuMjYyNyAyOC4wNzg5IDMwLjA0NzggMjcuNzEyNkMyOS44MzMgMjcuMzQ2NCAyOS43NTQ1IDI2LjkxNiAyOS44MjYzIDI2LjQ5NzVDMjkuODk4MSAyNi4wNzkgMzAuMTE1NiAyNS42OTkzIDMwLjQ0MDIgMjUuNDI1N0MzMC43NjQ4IDI1LjE1MiAzMS4xNzU4IDI1LjAwMTkgMzEuNjAwNCAyNS4wMDE5QzMyLjAyNSAyNS4wMDE5IDMyLjQzNTkgMjUuMTUyIDMyLjc2MDYgMjUuNDI1N0MzMy4wODUyIDI1LjY5OTMgMzMuMzAyNyAyNi4wNzkgMzMuMzc0NSAyNi40OTc1QzMzLjQ0NjMgMjYuOTE2IDMzLjM2NzggMjcuMzQ2NCAzMy4xNTMgMjcuNzEyNkMzMi45MzgxIDI4LjA3ODkgMzIuNjAwNyAyOC4zNTc0IDMyLjIwMDQgMjguNDk4OVYzMC43MDA5QzMyLjIwMDQgMzEuNDE3IDMxLjkxNTkgMzIuMTAzOCAzMS40MDk2IDMyLjYxMDFDMzAuOTAzMiAzMy4xMTY1IDMwLjIxNjUgMzMuNDAwOSAyOS41MDA0IDMzLjQwMDlIMjguNjAwNFYzMy4zOTk3Wk0yMy44MDA0IDI0LjQwMDlDMjMuODAwNCAyNC41NjAxIDIzLjg2MzYgMjQuNzEyNyAyMy45NzYxIDI0LjgyNTJDMjQuMDg4NiAyNC45Mzc3IDI0LjI0MTMgMjUuMDAwOSAyNC40MDA0IDI1LjAwMDlDMjQuNTU5NSAyNS4wMDA5IDI0LjcxMjEgMjQuOTM3NyAyNC44MjQ3IDI0LjgyNTJDMjQuOTM3MiAyNC43MTI3IDI1LjAwMDQgMjQuNTYwMSAyNS4wMDA0IDI0LjQwMDlDMjUuMDAwNCAyNC4yNDE4IDI0LjkzNzIgMjQuMDg5MiAyNC44MjQ3IDIzLjk3NjdDMjQuNzEyMSAyMy44NjQxIDI0LjU1OTUgMjMuODAwOSAyNC40MDA0IDIzLjgwMDlDMjQuMjQxMyAyMy44MDA5IDI0LjA4ODYgMjMuODY0MSAyMy45NzYxIDIzLjk3NjdDMjMuODYzNiAyNC4wODkyIDIzLjgwMDQgMjQuMjQxOCAyMy44MDA0IDI0LjQwMDlaTTMxLjYwMDQgMjcuNDAwOUMzMS43NTk1IDI3LjQwMDkgMzEuOTEyMSAyNy4zMzc3IDMyLjAyNDcgMjcuMjI1MkMzMi4xMzcyIDI3LjExMjcgMzIuMjAwNCAyNi45NjAxIDMyLjIwMDQgMjYuODAwOUMzMi4yMDA0IDI2LjY0MTggMzIuMTM3MiAyNi40ODkyIDMyLjAyNDcgMjYuMzc2N0MzMS45MTIxIDI2LjI2NDEgMzEuNzU5NSAyNi4yMDA5IDMxLjYwMDQgMjYuMjAwOUMzMS40NDEzIDI2LjIwMDkgMzEuMjg4NiAyNi4yNjQxIDMxLjE3NjEgMjYuMzc2N0MzMS4wNjM2IDI2LjQ4OTIgMzEuMDAwNCAyNi42NDE4IDMxLjAwMDQgMjYuODAwOUMzMS4wMDA0IDI2Ljk2MDEgMzEuMDYzNiAyNy4xMTI3IDMxLjE3NjEgMjcuMjI1MkMzMS4yODg2IDI3LjMzNzcgMzEuNDQxMyAyNy40MDA5IDMxLjYwMDQgMjcuNDAwOVpNMjQuNDAwNCAzMS4wMDA5QzI0LjI0MTMgMzEuMDAwOSAyNC4wODg2IDMxLjA2NDEgMjMuOTc2MSAzMS4xNzY3QzIzLjg2MzYgMzEuMjg5MiAyMy44MDA0IDMxLjQ0MTggMjMuODAwNCAzMS42MDA5QzIzLjgwMDQgMzEuNzYwMSAyMy44NjM2IDMxLjkxMjcgMjMuOTc2MSAzMi4wMjUyQzI0LjA4ODYgMzIuMTM3NyAyNC4yNDEzIDMyLjIwMDkgMjQuNDAwNCAzMi4yMDA5QzI0LjU1OTUgMzIuMjAwOSAyNC43MTIxIDMyLjEzNzcgMjQuODI0NyAzMi4wMjUyQzI0LjkzNzIgMzEuOTEyNyAyNS4wMDA0IDMxLjc2MDEgMjUuMDAwNCAzMS42MDA5QzI1LjAwMDQgMzEuNDQxOCAyNC45MzcyIDMxLjI4OTIgMjQuODI0NyAzMS4xNzY3QzI0LjcxMjEgMzEuMDY0MSAyNC41NTk1IDMxLjAwMDkgMjQuNDAwNCAzMS4wMDA5WlwiIGZpbGw9XCIjMDM5ODU1XCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICAgIHRpdGxlOiBgUnVuIEFJIG9uIGltYWdlIHVwbG9hZGVkYCxcclxuICAgICAgICAgIGNvbnRlbnQ6IGBVc2UgdGhlIHBvd2VyIG9mIEFJIHRvIGNvbXBhcmUgYW5kIGRldGVjdCBhbm9tYWxpZXMgYmV0d2VlbiB1cGxvYWRlZCBhbmQgcmVmZXJlbmNlIGltYWdlLmAsXHJcbiAgICAgICAgICBpbnB1dGxhYmVsMTogJ1F1ZXN0aW9uJyxcclxuICAgICAgICAgIGlucHV0dHlwZTE6ICd0ZXh0JyxcclxuICAgICAgICAgIGlucHV0MTogJ3RydWUnLFxyXG4gICAgICAgICAgaW5wdXRsYWJlbDI6ICdTcGVjaWZ5IHlvdXIgcmVxdWVzdCcsXHJcbiAgICAgICAgICBpbnB1dHR5cGUyOiAndGV4dCcsXHJcbiAgICAgICAgICByZXNUeXBlOiAnY3VzdG9tJyxcclxuICAgICAgICAgIGlucHV0MjogJ3RydWUnLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXIxOiBxdWVzdGlvbixcclxuICAgICAgICAgIHBsYWNlaG9sZGVyMjogJ1BsZWFzZSBjb21wYXJlIHRoZSB1cGxvYWRlZCBpbWFnZXMgYS4uJyxcclxuICAgICAgICAgIGJ1dHRvbnR5cGU6ICdSZXF1ZXN0J1xyXG4gICAgICAgIH1cclxuICAgICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5zdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgICAgIGxldCByZXE6IGFueSA9IHtcclxuICAgICAgICAgICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdjaGVja2xpc3ROYW1lJyk/LnZhbHVlLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uTmFtZTogcXVlc3Rpb24sXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogcmVzLmRhdGEucmVxdWVzdFRleHQsXHJcbiAgICAgICAgICAgICAgYW5zd2VyVHlwZTogXCJpbWFnZVwiLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCBcIm11bHRpUmVmZXJlbmNlSW1hZ2VcIixhbnNJZHgpPy52YWx1ZSB8fCAnJyxcclxuICAgICAgICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zb3BTZXJ2aWNlLnJ1bkFJSW5zZXJ0KHJlcSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKGFwaXJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFwaXJlcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFwaXJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk/LnBhdGNoVmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUlEZXNjcmlwdGlvbicsYW5zSWR4KT8ucGF0Y2hWYWx1ZShyZXMuZGF0YS5yZXF1ZXN0VGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3dhbFRvYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgIGA8c3BhbiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDM2cHg7XCI+JHthcGlyZXMuZGF0YS5tZXNzYWdlfTwvc3Bhbj5gLFxyXG4gICAgICAgICAgICAgICAgICAgIGA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9JY29ucy9zb3AtcnVuYWktdG9zdGljb24uc3ZnXCIgLz5gXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIC8vIDxhIFxyXG4gICAgICAgICAgICAgICAgICAvLyAgICAgICBocmVmPVwiL3N1cHBvcnQvdmlldy10aWNrZXRzXCIgXHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgIHRhcmdldD1cIl9ibGFua1wiIFxyXG4gICAgICAgICAgICAgICAgICAvLyAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCwgIzAwOUJGMyk7Zm9udC1mYW1pbHk6IFJvYm90bztmb250LXNpemU6IDE1cHg7Zm9udC13ZWlnaHQ6IDcwMDt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgVmlldyBUaWNrZXRcclxuICAgICAgICAgICAgICAgICAgLy8gICA8L2E+XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsdHJ1ZSxhbnNJZHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsdHJ1ZSxhbnNJZHgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LHRydWUsYW5zSWR4KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsZmFsc2UsYW5zSWR4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQse2NlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0ge1xyXG4gICAgICAgIGltYWdlc3JjOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTIzLjM1NjQgMTkuMzUyNUMyNC4xNzQ4IDE4LjczMjcgMjUuMTczOCAxOC4zOTg1IDI2LjIwMDQgMTguNDAwOUMyNi41NTQ5IDE4LjM5MyAyNi45MDU3IDE4LjQ3NDYgMjcuMjIwNCAxOC42MzgyQzI3LjUzNSAxOC44MDE4IDI3LjgwMzMgMTkuMDQyMSAyOC4wMDA0IDE5LjMzNjlDMjguMTk3NSAxOS4wNDIxIDI4LjQ2NTggMTguODAxOCAyOC43ODA0IDE4LjYzODJDMjkuMDk1IDE4LjQ3NDYgMjkuNDQ1OSAxOC4zOTMgMjkuODAwNCAxOC40MDA5QzMwLjgyNyAxOC4zOTg1IDMxLjgyNiAxOC43MzI3IDMyLjY0NDQgMTkuMzUyNUMzMy4yNzQ0IDE5Ljg0MjEgMzMuNzYwNCAyMC41MjAxIDMzLjkzMiAyMS4zMzk3QzM0LjMyNTYgMjEuMzY5NyAzNC42ODU2IDIxLjUzMjkgMzQuOTg4IDIxLjc3ODlDMzUuNDQ2NCAyMi4xNTA5IDM1Ljc4IDIyLjcwODkgMzUuOTkgMjMuMjk5M0MzNi4zMTg4IDI0LjIxNzMgMzYuNDA3NiAyNS4zODczIDM2LjA2NjggMjYuMzgzM0MzNi4xNTMyIDI2LjQyNDEgMzYuMjM4NCAyNi40NzIxIDM2LjMyMTIgMjYuNTI3M0MzNi42NTEyIDI2Ljc0NjkgMzYuOTAyIDI3LjA2MTMgMzcuMDg2OCAyNy40MzIxQzM3LjQ1MDQgMjguMTU4MSAzNy42MDA0IDI5LjE3MDkgMzcuNjAwNCAzMC40MDA5QzM3LjYwMDQgMzEuNzcwMSAzNy4wNzg0IDMyLjY4OTMgMzYuNDE2IDMzLjI1NjlDMzYuMDQ5NyAzMy41NzEgMzUuNjE3NCAzMy43OTg2IDM1LjE1MTIgMzMuOTIyOUMzNS4wMzEyIDM0LjU5MjUgMzQuNjk1MiAzNS4zNjc3IDM0LjE2ODQgMzYuMDI1M0MzMy40ODQ0IDM2Ljg4MzMgMzIuNDIzNiAzNy42MDA5IDMxLjAwMDQgMzcuNjAwOUMyOS44NzI0IDM3LjYwMDkgMjguOTc0OCAzNi45NzY5IDI4LjM5MTYgMzYuMzY0OUMyOC4yNTIyIDM2LjIxODggMjguMTIxNSAzNi4wNjQ1IDI4LjAwMDQgMzUuOTAyOUMyNy44NzkzIDM2LjA2NDUgMjcuNzQ4NiAzNi4yMTg4IDI3LjYwOTIgMzYuMzY0OUMyNy4wMjYgMzYuOTc2OSAyNi4xMjk2IDM3LjYwMDkgMjUuMDAwNCAzNy42MDA5QzIzLjU3NzIgMzcuNjAwOSAyMi41MTc2IDM2Ljg4MzMgMjEuODMyNCAzNi4wMjUzQzIxLjM0MDEgMzUuNDE0IDIxLjAwMjkgMzQuNjkyNyAyMC44NDk2IDMzLjkyMjlDMjAuMzgzNCAzMy43OTg2IDE5Ljk1MTEgMzMuNTcxIDE5LjU4NDggMzMuMjU2OUMxOC45MjI0IDMyLjY4OTMgMTguNDAwNCAzMS43Njg5IDE4LjQwMDQgMzAuNDAwOUMxOC40MDA0IDI5LjE3MDkgMTguNTUxNiAyOC4xNTY5IDE4LjkxNCAyNy40MzIxQzE5LjA4NTcgMjcuMDY4NSAxOS4zNDk3IDI2Ljc1NjEgMTkuNjc5NiAyNi41MjYxQzE5Ljc2MDYgMjYuNDcyNSAxOS44NDU3IDI2LjQyNTEgMTkuOTM0IDI2LjM4NDVDMTkuNTkzMiAyNS4zODYxIDE5LjY4MiAyNC4yMTczIDIwLjAxMDggMjMuMjk5M0MyMC4yMjA4IDIyLjcwODkgMjAuNTU0NCAyMi4xNTA5IDIxLjAxMjggMjEuNzc4OUMyMS4zMTUyIDIxLjUzMjkgMjEuNjc1MiAyMS4zNzA5IDIyLjA2ODggMjEuMzM5N0MyMi4yNDE2IDIwLjUyMDEgMjIuNzI2NCAxOS44NDIxIDIzLjM1NjQgMTkuMzUyNVpNMjcuNDAwNCAyMS40MDA5VjIxLjM4ODlMMjcuMzk4IDIxLjMyODlDMjcuMzgwMyAyMS4wMTYxIDI3LjMxODEgMjAuNzA3NCAyNy4yMTMyIDIwLjQxMjFDMjcuMTM4NSAyMC4xODkyIDI3LjAxMTMgMTkuOTg3NiAyNi44NDI0IDE5LjgyNDFDMjYuNjY1MSAxOS42Njk4IDI2LjQzNTIgMTkuNTg5OCAyNi4yMDA0IDE5LjYwMDlDMjUuNDQwNyAxOS41OTgzIDI0LjcwMDkgMTkuODQzNSAyNC4wOTMyIDIwLjI5OTNDMjMuNTM2NCAyMC43MzI1IDIzLjIwMDQgMjEuMzE5MyAyMy4yMDA0IDIyLjAwMDlDMjMuMjAwMyAyMi4wOTU5IDIzLjE3NzcgMjIuMTg5NiAyMy4xMzQzIDIyLjI3NDFDMjMuMDkxIDIyLjM1ODcgMjMuMDI4MiAyMi40MzE4IDIyLjk1MTEgMjIuNDg3M0MyMi44NzQgMjIuNTQyOCAyMi43ODQ4IDIyLjU3OTMgMjIuNjkwOSAyMi41OTM2QzIyLjU5NjkgMjIuNjA3OSAyMi41MDA5IDIyLjU5OTcgMjIuNDEwOCAyMi41Njk3QzIyLjE4NTIgMjIuNDk1MyAyMS45ODM2IDIyLjUzNzMgMjEuNzY4OCAyMi43MTAxQzIxLjUzMzYgMjIuOTAyMSAyMS4zMDQ0IDIzLjI0MjkgMjEuMTQgMjMuNzAyNUMyMC44MDUyIDI0LjY0MDkgMjAuODQgMjUuNzc3MyAyMS4yOTk2IDI2LjQ2ODVDMjEuMzY1MiAyNi41NjcgMjEuNDAwMyAyNi42ODI2IDIxLjQwMDQgMjYuODAwOUgyMi4zMDA0QzIzLjAxNjUgMjYuODAwOSAyMy43MDMyIDI3LjA4NTQgMjQuMjA5NiAyNy41OTE3QzI0LjcxNTkgMjguMDk4MSAyNS4wMDA0IDI4Ljc4NDggMjUuMDAwNCAyOS41MDA5VjI5LjkwMjlDMjUuNDAwNyAzMC4wNDQ1IDI1LjczODEgMzAuMzIzIDI1Ljk1MyAzMC42ODkyQzI2LjE2NzggMzEuMDU1NSAyNi4yNDYzIDMxLjQ4NTkgMjYuMTc0NSAzMS45MDQ0QzI2LjEwMjcgMzIuMzIyOSAyNS44ODUyIDMyLjcwMjUgMjUuNTYwNiAzMi45NzYyQzI1LjIzNTkgMzMuMjQ5OSAyNC44MjUgMzMuNCAyNC40MDA0IDMzLjRDMjMuOTc1OCAzMy40IDIzLjU2NDggMzMuMjQ5OSAyMy4yNDAyIDMyLjk3NjJDMjIuOTE1NiAzMi43MDI1IDIyLjY5ODEgMzIuMzIyOSAyMi42MjYzIDMxLjkwNDRDMjIuNTU0NSAzMS40ODU5IDIyLjYzMyAzMS4wNTU1IDIyLjg0NzggMzAuNjg5MkMyMy4wNjI3IDMwLjMyMyAyMy40MDAxIDMwLjA0NDUgMjMuODAwNCAyOS45MDI5VjI5LjUwMDlDMjMuODAwNCAyOC42NzI5IDIzLjEyODQgMjguMDAwOSAyMi4zMDA0IDI4LjAwMDlIMjAuMjAwNEMyMC4xMjg3IDI4LjAwMDggMjAuMDU3NSAyNy45ODc4IDE5Ljk5MDQgMjcuOTYyNUwxOS45ODY4IDI3Ljk2OTdDMTkuNzQ5MiAyOC40NDM3IDE5LjYwMDQgMjkuMjMwOSAxOS42MDA0IDMwLjQwMDlDMTkuNjAwNCAzMS40MzE3IDE5Ljk3ODQgMzIuMDEyNSAyMC4zNjYgMzIuMzQ0OUMyMC43ODI0IDMyLjcwMjUgMjEuMjQ0NCAzMi44MDA5IDIxLjQwMDQgMzIuODAwOUMyMS41NTk1IDMyLjgwMDkgMjEuNzEyMSAzMi44NjQxIDIxLjgyNDcgMzIuOTc2N0MyMS45MzcyIDMzLjA4OTIgMjIuMDAwNCAzMy4yNDE4IDIyLjAwMDQgMzMuNDAwOUMyMi4wMDA0IDMzLjg0MjUgMjIuMjQwNCAzNC42MTQxIDIyLjc2ODQgMzUuMjc2NUMyMy4yODMyIDM1LjkxODUgMjQuMDIzNiAzNi40MDA5IDI1LjAwMDQgMzYuNDAwOUMyNS42NzI0IDM2LjQwMDkgMjYuMjc0OCAzNi4wMjUzIDI2Ljc0MDQgMzUuNTM2OUMyNi45Njk2IDM1LjI5NjkgMjcuMTQ4NCAzNS4wNDg1IDI3LjI2NDggMzQuODQ0NUMyNy4zMTc4IDM0Ljc1NDEgMjcuMzYzMSAzNC42NTkzIDI3LjQwMDQgMzQuNTYxM1YyNS4wMDA5SDI2LjA5ODRDMjUuOTU2OSAyNS40MDEyIDI1LjY3ODMgMjUuNzM4NyAyNS4zMTIxIDI1Ljk1MzVDMjQuOTQ1OSAyNi4xNjgzIDI0LjUxNTQgMjYuMjQ2OCAyNC4wOTcgMjYuMTc1QzIzLjY3ODUgMjYuMTAzMiAyMy4yOTg4IDI1Ljg4NTggMjMuMDI1MSAyNS41NjExQzIyLjc1MTQgMjUuMjM2NSAyMi42MDEzIDI0LjgyNTUgMjIuNjAxMyAyNC40MDA5QzIyLjYwMTMgMjMuOTc2MyAyMi43NTE0IDIzLjU2NTQgMjMuMDI1MSAyMy4yNDA3QzIzLjI5ODggMjIuOTE2MSAyMy42Nzg1IDIyLjY5ODYgMjQuMDk3IDIyLjYyNjhDMjQuNTE1NCAyMi41NTUgMjQuOTQ1OSAyMi42MzM1IDI1LjMxMjEgMjIuODQ4M0MyNS42NzgzIDIzLjA2MzIgMjUuOTU2OSAyMy40MDA2IDI2LjA5ODQgMjMuODAwOUgyNy40MDA0VjIxLjQwMDlaTTI4LjYwMDQgMzMuMzk5N1YzNC41NjAxQzI4LjYzNzcgMzQuNjU4MSAyOC42ODMgMzQuNzUyOCAyOC43MzYgMzQuODQzM0MyOC44NTM2IDM1LjA0NzMgMjkuMDMxMiAzNS4yOTU3IDI5LjI1OTIgMzUuNTM1N0MyOS43MjYgMzYuMDI0MSAzMC4zMjk2IDM2LjM5OTcgMzEuMDAwNCAzNi4zOTk3QzMxLjk3NzIgMzYuMzk5NyAzMi43MTc2IDM1LjkxNzMgMzMuMjMyNCAzNS4yNzUzQzMzLjc2MDQgMzQuNjEyOSAzNC4wMDA0IDMzLjg0MTMgMzQuMDAwNCAzMy4zOTk3QzM0LjAwMDQgMzMuMjQwNiAzNC4wNjM2IDMzLjA4OCAzNC4xNzYxIDMyLjk3NTVDMzQuMjg4NiAzMi44NjI5IDM0LjQ0MTMgMzIuNzk5NyAzNC42MDA0IDMyLjc5OTdDMzQuNzU2NCAzMi43OTk3IDM1LjIxODQgMzIuNzAxMyAzNS42MzQ4IDMyLjM0MzdDMzYuMDIyNCAzMi4wMTEzIDM2LjQwMDQgMzEuNDMwNSAzNi40MDA0IDMwLjM5OTdDMzYuNDAwNCAyOS4yMjk3IDM2LjI1MDQgMjguNDQzNyAzNi4wMTQgMjcuOTY4NUMzNS45MzQ5IDI3Ljc5MTYgMzUuODEwOCAyNy42Mzg1IDM1LjY1NCAyNy41MjQ1QzM1LjUxODkgMjcuNDM4MSAzNS4zNjA2IDI3LjM5NSAzNS4yMDA0IDI3LjQwMDlDMzUuMDkxOSAyNy40MDA5IDM0Ljk4NTQgMjcuMzcxNCAzNC44OTIzIDI3LjMxNTZDMzQuNzk5MiAyNy4yNTk4IDM0LjcyMyAyNy4xNzk4IDM0LjY3MTcgMjcuMDg0MUMzNC42MjA1IDI2Ljk4ODQgMzQuNTk2MiAyNi44ODA3IDM0LjYwMTQgMjYuNzcyM0MzNC42MDY2IDI2LjY2MzggMzQuNjQxMSAyNi41NTg5IDM0LjcwMTIgMjYuNDY4NUMzNS4xNjIgMjUuNzc3MyAzNS4xOTU2IDI0LjY0MDkgMzQuODYwOCAyMy43MDI1QzM0LjY5NjQgMjMuMjQyOSAzNC40NjcyIDIyLjkwMDkgMzQuMjMyIDIyLjcxMDFDMzQuMDE3MiAyMi41MzczIDMzLjgxNTYgMjIuNDk0MSAzMy41OSAyMi41Njk3QzMzLjQ5OTggMjIuNTk5NyAzMy40MDM4IDIyLjYwNzkgMzMuMzA5OSAyMi41OTM2QzMzLjIxNiAyMi41NzkzIDMzLjEyNjggMjIuNTQyOCAzMy4wNDk3IDIyLjQ4NzNDMzIuOTcyNiAyMi40MzE4IDMyLjkwOTggMjIuMzU4NyAzMi44NjY0IDIyLjI3NDFDMzIuODIzMSAyMi4xODk2IDMyLjgwMDUgMjIuMDk1OSAzMi44MDA0IDIyLjAwMDlDMzIuODAwNCAyMS4zMTkzIDMyLjQ2NDQgMjAuNzMyNSAzMS45MDY0IDIwLjI5OTNDMzEuMjk5IDE5Ljg0MzggMzAuNTU5NiAxOS41OTg2IDI5LjgwMDQgMTkuNjAwOUMyOS41NjU2IDE5LjU4OTggMjkuMzM1NiAxOS42Njk4IDI5LjE1ODQgMTkuODI0MUMyOC45ODg5IDE5Ljk4NzQgMjguODYxMyAyMC4xODkxIDI4Ljc4NjQgMjAuNDEyMUMyOC42NzIxIDIwLjcyNTYgMjguNjA5MyAyMS4wNTU0IDI4LjYwMDQgMjEuMzg4OVYzMi4yMDA5SDI5LjUwMDRDMzAuMzI4NCAzMi4yMDA5IDMxLjAwMDQgMzEuNTI4OSAzMS4wMDA0IDMwLjcwMDlWMjguNDk4OUMzMC42MDAxIDI4LjM1NzQgMzAuMjYyNyAyOC4wNzg5IDMwLjA0NzggMjcuNzEyNkMyOS44MzMgMjcuMzQ2NCAyOS43NTQ1IDI2LjkxNiAyOS44MjYzIDI2LjQ5NzVDMjkuODk4MSAyNi4wNzkgMzAuMTE1NiAyNS42OTkzIDMwLjQ0MDIgMjUuNDI1N0MzMC43NjQ4IDI1LjE1MiAzMS4xNzU4IDI1LjAwMTkgMzEuNjAwNCAyNS4wMDE5QzMyLjAyNSAyNS4wMDE5IDMyLjQzNTkgMjUuMTUyIDMyLjc2MDYgMjUuNDI1N0MzMy4wODUyIDI1LjY5OTMgMzMuMzAyNyAyNi4wNzkgMzMuMzc0NSAyNi40OTc1QzMzLjQ0NjMgMjYuOTE2IDMzLjM2NzggMjcuMzQ2NCAzMy4xNTMgMjcuNzEyNkMzMi45MzgxIDI4LjA3ODkgMzIuNjAwNyAyOC4zNTc0IDMyLjIwMDQgMjguNDk4OVYzMC43MDA5QzMyLjIwMDQgMzEuNDE3IDMxLjkxNTkgMzIuMTAzOCAzMS40MDk2IDMyLjYxMDFDMzAuOTAzMiAzMy4xMTY1IDMwLjIxNjUgMzMuNDAwOSAyOS41MDA0IDMzLjQwMDlIMjguNjAwNFYzMy4zOTk3Wk0yMy44MDA0IDI0LjQwMDlDMjMuODAwNCAyNC41NjAxIDIzLjg2MzYgMjQuNzEyNyAyMy45NzYxIDI0LjgyNTJDMjQuMDg4NiAyNC45Mzc3IDI0LjI0MTMgMjUuMDAwOSAyNC40MDA0IDI1LjAwMDlDMjQuNTU5NSAyNS4wMDA5IDI0LjcxMjEgMjQuOTM3NyAyNC44MjQ3IDI0LjgyNTJDMjQuOTM3MiAyNC43MTI3IDI1LjAwMDQgMjQuNTYwMSAyNS4wMDA0IDI0LjQwMDlDMjUuMDAwNCAyNC4yNDE4IDI0LjkzNzIgMjQuMDg5MiAyNC44MjQ3IDIzLjk3NjdDMjQuNzEyMSAyMy44NjQxIDI0LjU1OTUgMjMuODAwOSAyNC40MDA0IDIzLjgwMDlDMjQuMjQxMyAyMy44MDA5IDI0LjA4ODYgMjMuODY0MSAyMy45NzYxIDIzLjk3NjdDMjMuODYzNiAyNC4wODkyIDIzLjgwMDQgMjQuMjQxOCAyMy44MDA0IDI0LjQwMDlaTTMxLjYwMDQgMjcuNDAwOUMzMS43NTk1IDI3LjQwMDkgMzEuOTEyMSAyNy4zMzc3IDMyLjAyNDcgMjcuMjI1MkMzMi4xMzcyIDI3LjExMjcgMzIuMjAwNCAyNi45NjAxIDMyLjIwMDQgMjYuODAwOUMzMi4yMDA0IDI2LjY0MTggMzIuMTM3MiAyNi40ODkyIDMyLjAyNDcgMjYuMzc2N0MzMS45MTIxIDI2LjI2NDEgMzEuNzU5NSAyNi4yMDA5IDMxLjYwMDQgMjYuMjAwOUMzMS40NDEzIDI2LjIwMDkgMzEuMjg4NiAyNi4yNjQxIDMxLjE3NjEgMjYuMzc2N0MzMS4wNjM2IDI2LjQ4OTIgMzEuMDAwNCAyNi42NDE4IDMxLjAwMDQgMjYuODAwOUMzMS4wMDA0IDI2Ljk2MDEgMzEuMDYzNiAyNy4xMTI3IDMxLjE3NjEgMjcuMjI1MkMzMS4yODg2IDI3LjMzNzcgMzEuNDQxMyAyNy40MDA5IDMxLjYwMDQgMjcuNDAwOVpNMjQuNDAwNCAzMS4wMDA5QzI0LjI0MTMgMzEuMDAwOSAyNC4wODg2IDMxLjA2NDEgMjMuOTc2MSAzMS4xNzY3QzIzLjg2MzYgMzEuMjg5MiAyMy44MDA0IDMxLjQ0MTggMjMuODAwNCAzMS42MDA5QzIzLjgwMDQgMzEuNzYwMSAyMy44NjM2IDMxLjkxMjcgMjMuOTc2MSAzMi4wMjUyQzI0LjA4ODYgMzIuMTM3NyAyNC4yNDEzIDMyLjIwMDkgMjQuNDAwNCAzMi4yMDA5QzI0LjU1OTUgMzIuMjAwOSAyNC43MTIxIDMyLjEzNzcgMjQuODI0NyAzMi4wMjUyQzI0LjkzNzIgMzEuOTEyNyAyNS4wMDA0IDMxLjc2MDEgMjUuMDAwNCAzMS42MDA5QzI1LjAwMDQgMzEuNDQxOCAyNC45MzcyIDMxLjI4OTIgMjQuODI0NyAzMS4xNzY3QzI0LjcxMjEgMzEuMDY0MSAyNC41NTk1IDMxLjAwMDkgMjQuNDAwNCAzMS4wMDA5WlwiIGZpbGw9XCIjMDM5ODU1XCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+YCxcclxuICAgICAgICB0aXRsZTogYERvbid0IHJ1biBBSSBvbiBpbWFnZSB1cGxvYWRlZGAsXHJcbiAgICAgICAgY29udGVudDogYERvIHlvdSB3aXNoIHRvIG5vdCBydW4gQUkgaW4gdGhlIGltYWdlP2AsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMucnVuQUlPZmYoc0lkeCxxSWR4LGZhbHNlLGFuc0lkeCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ2V0QW5zd2VyRm9ybUdyb3VwX0Zvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScpPy5wYXRjaFZhbHVlKHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgsIHFJZHgsICdydW5BSScpPy5wYXRjaFZhbHVlKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBydW5BSU9mZihzSWR4OiBudW1iZXIsIHFJZHg6IG51bWJlciwgc2hvd0Vycm9yPzogYm9vbGVhbixhbnNJZHg6bnVtYmVyPS0xKSB7XHJcbiAgICBjb25zdCBhbnN3ZXJGb3JtR3JvdXAgPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCAncnVuQUknLGFuc0lkeCk7XHJcbiAgICBsZXQgc2VjdGlvblF1ZXN0aW9uID0gKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYgKGFuc3dlckZvcm1Hcm91cCkge1xyXG4gICAgICBhbnN3ZXJGb3JtR3JvdXAucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbkNvbnRyb2wgPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJJyxhbnNJZHgpO1xyXG4gICAgaWYgKHF1ZXN0aW9uQ29udHJvbCkge1xyXG4gICAgICBxdWVzdGlvbkNvbnRyb2wucGF0Y2hWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyBjb25zb2xlLmxvZyhxdWVzdGlvbkNvbnRyb2wpO1xyXG4gICAgXHJcbiAgICAvLyBjb25zdCBkZXNjcmlwdGlvbkNvbnRyb2wgPSB0aGlzLmdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgJ3J1bkFJRGVzY3JpcHRpb24nLGFuc0lkeCk7XHJcbiAgICAvLyBpZiAoZGVzY3JpcHRpb25Db250cm9sKSB7XHJcbiAgICAvLyAgIGRlc2NyaXB0aW9uQ29udHJvbC5wYXRjaFZhbHVlKCcnKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGxldCBhbnN3ZXJzO1xyXG4gICAgLy8gaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAvLyAgIGFuc3dlcnMgPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKTsgICAgICAgICAgICAgICAgXHJcbiAgICAvLyAgIChhbnN3ZXJzLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgKChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ3J1bkFJRmVhdHVyZXMnKSBhcyBGb3JtQXJyYXkpPy5jbGVhcigpO1xyXG4gICAgLy8gICAoc2VjdGlvblF1ZXN0aW9uLmdldCgncnVuQUlGZWF0dXJlcycpIGFzIEZvcm1BcnJheSk/LmNsZWFyKCk7XHJcbiAgICAvLyAgIGlmKHNlY3Rpb25RdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT0gJ2ltYWdlJykge1xyXG4gICAgLy8gICAgIGFuc3dlcnMgPSBzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyBjb25zdCBpbWFnZXNGQSA9IGFuc3dlcnM/LmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheTtcclxuICAgIC8vIGltYWdlc0ZBPy5jb250cm9scz8uZm9yRWFjaCgoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAvLyAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgICAgY29udHJvbC5wYXRjaFZhbHVlKHsgcnVuQUk6IGZhbHNlIH0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTsgICAgXHJcbiAgXHJcbiAgICBpZiAoc2hvd0Vycm9yKSB7XHJcbiAgICAgIHRoaXMuc3dhbFRvYXN0KCdVbmFibGUgdG8gcHJvY2VzcyBydW5BSSByZXF1ZXN0ISBUcnkgYWdhaW4gYWZ0ZXIgc29tZSB0aW1lIScsJ2Vycm9yJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRTZWN0aW9uRm9ybUFycmF5KCkge1xyXG4gICAgcmV0dXJuICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtQ29udHJvbChmb3JtQ29udHJvbDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoZm9ybUNvbnRyb2wpIGFzIEZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIGdldFNlY3Rpb25Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXg6IG51bWJlciwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSlcclxuICAgICAgICAuYXQoc2VjdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApXHJcbiAgICAgIC5nZXQoZm9ybUNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIGdldFF1ZXN0aW9uRm9ybUNvbnRyb2woc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsYW5zSWR4Om51bWJlciA9IC0xKSB7XHJcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbnMpIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgIGlmICghc2VjdGlvbikgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbnMgPSBzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgIGlmICghcXVlc3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGxldCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgICAgIGxldCBhbnN3ZXJMaXN0ID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5IHwgbnVsbDtcclxuICAgICAgaWYoIWFuc3dlckxpc3QpIHJldHVybiBudWxsO1xyXG4gICAgICBxdWVzdGlvbiA9IGFuc3dlckxpc3QuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgICBpZighcXVlc3Rpb24pIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbCA9IHF1ZXN0aW9uLmdldChmb3JtQ29udHJvbE5hbWUpIGFzIEZvcm1Db250cm9sIHwgbnVsbDtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG4gIH1cclxuICBcclxuXHJcbiAgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKHNlY3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgfVxyXG5cclxuICAvLyBpbmRpdmlkdWFsIHF1ZXN0aW9uXHJcbiAgZ2V0UXVlc3Rpb25zRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQXJyYXlOYW1lOiBzdHJpbmcsYW5zSW5kZXg6bnVtYmVyID0gLTEsbGlua3F1ZXN0aW9uSW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGxldCBzZWN0aW9uID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSk/LmF0KHNlY3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAoKHNlY3Rpb24uZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpPy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgaWYoYW5zSW5kZXggPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIChxdWVzdGlvbnMuZ2V0KGZvcm1BcnJheU5hbWUpIGFzIEZvcm1BcnJheSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IGFuc3dlcnMgPSAoKHF1ZXN0aW9ucy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpPy5hdChhbnNJbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgbGV0IGxpbmtlZEluZGV4ID0gKChhbnN3ZXJzLmdldCgnbGlua1F1ZXN0aW9uQW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQobGlua3F1ZXN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICAgIHJldHVybiAobGlua2VkSW5kZXguZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUFycmF5TGlua2VkUXVlc3Rpb25zKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsYW5zd2VySW5kZXg6bnVtYmVyKSB7XHJcbiAgICBsZXQgc2VjdGlvbiA9ICgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpPy5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCk7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKChzZWN0aW9uLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KT8uYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGxldCBhbnN3ZXIgPSAocXVlc3Rpb25zLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSk/LmF0KGFuc3dlckluZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICByZXR1cm4gKGFuc3dlci5nZXQoJ2xpbmtRdWVzdGlvbkFuc3dlcnMnKSBhcyBGb3JtQXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRRdWVzdGlvbnNGb3JtQXJyYXlWYWx1ZXMoc2VjdGlvbkluZGV4OiBudW1iZXIpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuZ2V0UmF3VmFsdWUoKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyLCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZyxhbnNJZHg6bnVtYmVyPSAtMSkge1xyXG4gICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICBpZiAoIXNlY3Rpb25zKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5hdChzZWN0aW9uSW5kZXgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICBpZiAoIXNlY3Rpb24pIHJldHVybiBudWxsO1xyXG4gIFxyXG4gICAgY29uc3QgcXVlc3Rpb25zID0gc2VjdGlvbi5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICBpZiAoIXF1ZXN0aW9ucykgcmV0dXJuIG51bGw7XHJcbiAgXHJcbiAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9ucy5hdChxdWVzdGlvbkluZGV4KSBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgaWYgKCFxdWVzdGlvbikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYoZm9ybUNvbnRyb2xOYW1lID09IFwibXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlXCIpIHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHF1ZXN0aW9uLmdldChmb3JtQ29udHJvbE5hbWUpIGFzIEZvcm1BcnJheSB8IG51bGw7XHJcbiAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBhbnN3ZXJzID0gcXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICAgICAgaWYgKCFhbnN3ZXJzKSByZXR1cm4gbnVsbDtcclxuICBcclxuICAgICAgaWYoYW5zSWR4ICE9IC0xKSB7XHJcbiAgXHJcbiAgICAgICAgbGV0IGFuc3dlckxpc3QgPSBxdWVzdGlvbi5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkgfCBudWxsO1xyXG4gICAgICAgIGlmKCFhbnN3ZXJMaXN0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICBhbnN3ZXJzID0gYW5zd2VyTGlzdC5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgICAgICAgaWYgKCFhbnN3ZXJzKSByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjb250cm9sID0gYW5zd2Vycy5nZXQoZm9ybUNvbnRyb2xOYW1lKSBhcyBGb3JtQ29udHJvbCB8IG51bGw7XHJcbiAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG4gIFxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlZE5lc3RlZFF1ZXN0aW9uKHNlY3Rpb25pbmRleDogbnVtYmVyLHFubzphbnkpIHtcclxuICAgIGxldCBxdWVzdGlvbnMgPSAodGhpcy5nZXRTZWN0aW9uRm9ybUFycmF5KCkuYXQoc2VjdGlvbmluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHF1ZXN0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgYW5zd2VycyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5O1xyXG4gICAgICBpZihhbnN3ZXJzKSB7XHJcbiAgICAgICAgZm9yKGxldCBqPTA7ajxhbnN3ZXJzLmxlbmd0aDtqKyspIHtcclxuICAgICAgICAgIGxldCBsaW5rZWQgPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ3Nob3dMaW5rZWQnKT8udmFsdWU7XHJcbiAgICAgICAgICBpZihsaW5rZWQpIHtcclxuICAgICAgICAgICAgbGV0IHF1ZXN0aW9uTm8gPSAoYW5zd2Vycy5hdChqKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICAgICAgICBpZihxdWVzdGlvbk5vID09IHFubykge1xyXG4gICAgICAgICAgICAgIChhbnN3ZXJzLmF0KGopIGFzIEZvcm1Hcm91cCk/LmdldCgnbGlua2VkUXVlc3Rpb24nKT8uc2V0VmFsdWUoMCk7XHJcbiAgICAgICAgICAgICAgKGFuc3dlcnMuYXQoaikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdzaG93TGlua2VkJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25pbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gICAgbGV0IHVwZGF0ZWRMaXN0OmFueSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHFubyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8udmFsdWU7XHJcbiAgICAgIGlmKCF0aGlzLmRlbGV0ZWRMaXN0LmluY2x1ZGVzKHFubykpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25BcnJheSA9IHF1ZXN0aW9ucz8udmFsdWU7XHJcbiAgICAgICAgZm9yKGxldCBxbiA9IDA7IHFuIDwgcXVlc3Rpb25BcnJheS5sZW5ndGggO3FuKyspIHtcclxuICAgICAgICAgIGlmKCF1cGRhdGVkTGlzdC5pbmNsdWRlcyhxbikpIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBxdWVzdGlvbkFycmF5W3FuXTtcclxuICAgICAgICAgICAgaWYgKCFbJ2Rlc2NyaXB0aXZlJywgJ2ltYWdlJywgJ2Rlc2NyaXB0aXZlSW1hZ2UnLCAnbXVsdGlwbGVJbWFnZScsICd2aWRlbycsJ2xpbmVhcnNjYWxlJywndGltZScsJ2RhdGUnXS5pbmNsdWRlcyhpdGVtLmFuc3dlclR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgZm9yKGxldCBhbnMgPSAwOyBhbnMgPCBpdGVtLmFuc3dlcnMubGVuZ3RoIDsgYW5zKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmFuc3dlcnNbYW5zXS5saW5rZWRRdWVzdGlvbiA9PSBxbm8pIHtcclxuICAgICAgICAgICAgICAgICAgdXBkYXRlZExpc3QucHVzaChxbik7XHJcbiAgICAgICAgICAgICAgICAgICgoKHF1ZXN0aW9ucy5hdChxbikgYXMgRm9ybUdyb3VwKT8uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnMpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZShpKzEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAocXVlc3Rpb25zLmF0KGkpIGFzIEZvcm1Hcm91cCk/LmdldCgncW5vJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gdXBkYXRlUXVlc3Rpb25Rbm9zKHNlY3Rpb25pbmRleDogbnVtYmVyKSB7XHJcbiAgLy8gICBsZXQgcXVlc3Rpb25zID0gKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY3Rpb25pbmRleCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpO1xyXG4gIC8vICAgbGV0IHF1ZXN0aW9uQXJyYXkgPSBxdWVzdGlvbnM/LnZhbHVlO1xyXG4gIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgbGV0IHFubyA9IChxdWVzdGlvbnMuYXQoaSkgYXMgRm9ybUdyb3VwKT8uZ2V0KCdxbm8nKT8udmFsdWU7XHJcbiAgLy8gICAgIGlmKCF0aGlzLmRlbGV0ZWRMaXN0LmluY2x1ZGVzKHFubykpIHtcclxuICAvLyAgICAgICBmb3IobGV0IHFuID0gMDsgcW4gPCBxdWVzdGlvbkFycmF5Lmxlbmd0aCA7cW4rKykge1xyXG4gIC8vICAgICAgICAgbGV0IGl0ZW0gPSBxdWVzdGlvbkFycmF5W3FuXTtcclxuICAvLyAgICAgICAgIGlmICghWydkZXNjcmlwdGl2ZScsICdpbWFnZScsICdkZXNjcmlwdGl2ZUltYWdlJywgJ211bHRpcGxlSW1hZ2UnLCAndmlkZW8nLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJ10uaW5jbHVkZXMoaXRlbS5hbnN3ZXJUeXBlKSkge1xyXG4gIC8vICAgICAgICAgICBsZXQgZmluZEluZGV4ID0gaXRlbS5hbnN3ZXJzLm1hcCgoaXRlbTphbnksIGluZGV4OmFueSkgPT4gKGl0ZW0ubGlua2VkUXVlc3Rpb24gPT0gcW5vID8gaW5kZXggOiAtMSkpLmZpbHRlcigoaW5kZXg6YW55KSA9PiBpbmRleCAhPT0gLTEpO1xyXG4gIC8vICAgICAgICAgICBpZihmaW5kSW5kZXgubGVuZ3RoKSB7XHJcbiAgLy8gICAgICAgICAgICAgZmluZEluZGV4LmZvckVhY2goKGlkeDpudW1iZXIpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGl0ZW0uYW5zd2Vyc1tpZHhdLmNoZWNrZWQgPSB0cnVlO1xyXG4gIC8vICAgICAgICAgICAgICAgKCgocXVlc3Rpb25zLmF0KHFuKSBhcyBGb3JtR3JvdXApPy5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGlkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgLy8gICAgICAgICAgICAgfSlcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICAvLyBsZXQgZmluZEFuc0lkeCA9IGl0ZW0uYW5zd2Vycy5maW5kSW5kZXgoKGVsZTphbnkpID0+IGVsZS5saW5rZWRRdWVzdGlvbiA9PSBxbm8gJiYgIWl0ZW0uY2hlY2tlZCk7XHJcbiAgLy8gICAgICAgICAgIC8vIGlmKGZpbmRBbnNJZHggIT0gLTEpIHtcclxuICAvLyAgICAgICAgICAgLy8gfVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgICAocXVlc3Rpb25zLmF0KGkpIGFzIEZvcm1Hcm91cCk/LmdldCgncW5vJyk/LnNldFZhbHVlKGkrMSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLkNoZWNrbGlzdEZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25zQW5zd2VyRm9ybUdyb3VwKHNlY3Rpb25JbmRleDogbnVtYmVyLCBxdWVzdGlvbkluZGV4OiBudW1iZXIsYW5zSW5kZXg6bnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjdGlvbkluZGV4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocXVlc3Rpb25JbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0luZGV4KSBhcyBGb3JtR3JvdXApO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlUXVlc3Rpb24oc2VjSWR4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgYWN0aXZlc3RhdHVzOiBudW1iZXIsYW5zd2VySW5kZXg6bnVtYmVyID0gLTEpIHtcclxuICAgIGlmKGFjdGl2ZXN0YXR1cyA9PSAxKSB7XHJcbiAgICAgIGlmKGFuc3dlckluZGV4ICE9IC0xKSB7XHJcbiAgICAgICAgdGhpcy5nZXRRdWVzdGlvbnNBbnN3ZXJGb3JtR3JvdXAoc2VjSWR4LHF1ZXN0aW9uSW5kZXgsYW5zd2VySW5kZXgpLmFkZENvbnRyb2woJ2FjdGl2ZScsdGhpcy5mYi5jb250cm9sKHRydWUpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdldFF1ZXN0aW9uc0Zvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCkuYWRkQ29udHJvbCgnYWN0aXZlJyx0aGlzLmZiLmNvbnRyb2wodHJ1ZSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYoYW5zd2VySW5kZXggIT0gLTEpIHtcclxuICAgICAgICB0aGlzLmdldFF1ZXN0aW9uc0Fuc3dlckZvcm1Hcm91cChzZWNJZHgscXVlc3Rpb25JbmRleCxhbnN3ZXJJbmRleCkucmVtb3ZlQ29udHJvbCgnYWN0aXZlJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5nZXRRdWVzdGlvbnNGb3JtR3JvdXAoc2VjSWR4LHF1ZXN0aW9uSW5kZXgpLnJlbW92ZUNvbnRyb2woJ2FjdGl2ZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWxsb3dBZGRBbnN3ZXIoYW5zd2VyczogYW55W10pIHtcclxuICAgIHJldHVybiBhbnN3ZXJzLmxlbmd0aCA8IDMwO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25MaXN0KHNlY0lkeDpudW1iZXIscW50SWR4Om51bWJlcixhbnNJZHg6bnVtYmVyKSB7XHJcbiAgICAvLyBmb3IobGV0IGFuc3dlciBvZiBxdWVzdGlvbj8uYW5zd2Vycykge1xyXG4gICAgLy8gICAgICAgICBpZigoYW5zd2VyLmxpbmtlZFF1ZXN0aW9uICYmIGFuc3dlci5saW5rZWRRdWVzdGlvbiA9PSBgJHtxdWVzdGlvbi5xbm99YCAmJiBxdWVzdGlvbi5xbm8gPT0gKHFudElkeCsxKSkgfHwgKCFhbnN3ZXIubGlua2VkUXVlc3Rpb24ubGVuZ3RoICYmIHF1ZXN0aW9uLnFubyAhPSAocW50SWR4KzEpKSkge1xyXG4gICAgLy8gICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocXVlc3Rpb24ucW5vKVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICBsZXQgcXVlc3Rpb25EZXRhaWxzID0gKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuZ2V0UmF3VmFsdWUoKSB8fCBbXTtcclxuICAgIFxyXG4gICAgbGV0IHF1ZXN0aW9uTGlzdDphbnkgPSBbXTtcclxuICAgIGxldCBsaW5rZWRRdWVzdGlvbnM6YW55ID0gW107XHJcbiAgICBpZihxdWVzdGlvbkRldGFpbHMubGVuZ3RoKSB7XHJcbiAgICAgIGZvcihsZXQgcXVlc3Rpb24gb2YgcXVlc3Rpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgaWYocXVlc3Rpb24uYW5zd2Vycykge1xyXG4gICAgICAgICAgaWYoWyd2aWRlbycsJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdsaW5lYXJzY2FsZScsJ3RpbWUnLCdkYXRlJ10uaW5jbHVkZXMocXVlc3Rpb24uYW5zd2VyVHlwZSkpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb24uYW5zd2VycyA9IFtxdWVzdGlvbi5hbnN3ZXJzXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICBmb3IobGV0IFtpbmRleCxhbnN3ZXJdIG9mIHF1ZXN0aW9uLmFuc3dlcnMuZW50cmllcygpKSB7XHJcbiAgICAgICAgICAgIGlmKGFuc3dlcj8ubGlua2VkUXVlc3Rpb24pIHtcclxuICAgICAgICAgICAgICBsaW5rZWRRdWVzdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBxbm86cXVlc3Rpb24ucW5vLFxyXG4gICAgICAgICAgICAgICAgYW5zSWR4OmluZGV4LFxyXG4gICAgICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246cGFyc2VJbnQoYW5zd2VyLmxpbmtlZFF1ZXN0aW9uKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gcXVlc3Rpb25EZXRhaWxzID0gcXVlc3Rpb25EZXRhaWxzLmZpbHRlcigoaXRlbTphbnkpID0+IGl0ZW0ucW5vICE9IChxbnRJZHgrMSkpO1xyXG4gICAgICBmb3IobGV0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9uRGV0YWlscykge1xyXG4gICAgICAgIGlmKHF1ZXN0aW9uPy5hbnN3ZXJzKSB7XHJcbiAgICAgICAgICBsZXQgZmluZEV4aXN0cyA9IGxpbmtlZFF1ZXN0aW9ucy5maW5kKChpdGVtOmFueSkgPT4gIGl0ZW0ucW5vID09IHF1ZXN0aW9uLnFubyAmJiBpdGVtLmFuc0lkeCA9PSBhbnNJZHggJiYgaXRlbS5xbm8gPT0gKHFudElkeCsxKSk7XHJcbiAgICAgICAgICBsZXQgY2hlY2tMaW5rZWQgPSBsaW5rZWRRdWVzdGlvbnMuZmluZCgoaXRlbTphbnkpID0+IGl0ZW0ubGlua2VkUXVlc3Rpb24gPT0gcXVlc3Rpb24ucW5vKTtcclxuICAgICAgICAgICAgaWYoIWNoZWNrTGlua2VkICYmICFmaW5kRXhpc3RzICYmIHF1ZXN0aW9uLnFubyAhPSAocW50SWR4KzEpICYmICFxdWVzdGlvbkxpc3QuaW5jbHVkZXMocXVlc3Rpb24ucW5vKSkge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uTGlzdC5wdXNoKHF1ZXN0aW9uLnFubyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoZmluZEV4aXN0cyAmJiAhcXVlc3Rpb25MaXN0LmluY2x1ZGVzKGZpbmRFeGlzdHMubGlua2VkUXVlc3Rpb24pICkge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uTGlzdC5wdXNoKGZpbmRFeGlzdHMubGlua2VkUXVlc3Rpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGZpbmRFeGlzdHMgPSBsaW5rZWRRdWVzdGlvbnMuZmluZCgoaXRlbTphbnkpID0+ICBpdGVtLmxpbmtlZFF1ZXN0aW9uID09IHF1ZXN0aW9uLnFubyk7XHJcbiAgICAgICAgICBpZighZmluZEV4aXN0cyAmJiBxdWVzdGlvbi5xbm8gIT0gKHFudElkeCsxKSAmJiAhcXVlc3Rpb25MaXN0LmluY2x1ZGVzKHF1ZXN0aW9uLnFubykpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocXVlc3Rpb24ucW5vKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHJldHVybiBxdWVzdGlvbkxpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMaW5rZWQoc2VjSWR4Om51bWJlcixxbklkeDpudW1iZXIsYW5zSWR4Om51bWJlcikge1xyXG4gICAgbGV0IGxpbmtWYWx1ZSA9ICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZTtcclxuICAgIGlmKGxpbmtWYWx1ZSkge1xyXG4gICAgICBsZXQgbGlua2VkUXVlc3Rpb24gPSAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnZhbHVlO1xyXG4gICAgICBpZihsaW5rZWRRdWVzdGlvbikge1xyXG4gICAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChsaW5rZWRRdWVzdGlvbiAtIDEpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgKCgoKCgodGhpcy5DaGVja2xpc3RGb3JtLmdldCgnc2VjdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHNlY0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZSgwKTtcclxuICAgIH1cclxuXHJcbiAgICBpZighbGlua1ZhbHVlKSB7XHJcbiAgICAgICgoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFuSWR4KSBhcyBGb3JtR3JvdXApLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApLmdldCgndmFsaWRhdGlvbicpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgIHRoaXMuY2xlYXJSZWZlcmVuY2VJbWFnZShzZWNJZHgscW5JZHgsYW5zSWR4KTtcclxuICAgIH1cclxuXHJcbiAgICAoKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KSBhcyBGb3JtR3JvdXApLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3Nob3dMaW5rZWQnKT8uc2V0VmFsdWUoIWxpbmtWYWx1ZSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVF1ZXN0aW9uVHlwZShzZWNJZHg6bnVtYmVyLHFuSWR4Om51bWJlcixhbnNJZHg6bnVtYmVyLGV2ZW50OmFueSkge1xyXG4gICAgbGV0IGxpbmtlZFF1ZXN0aW9uID0gKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy52YWx1ZTtcclxuICAgIGlmKGxpbmtlZFF1ZXN0aW9uKSB7XHJcbiAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChsaW5rZWRRdWVzdGlvbiAtIDEpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rVHlwZScpPy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZihldmVudC50YXJnZXQudmFsdWUpIHtcclxuICAgICAgbGV0IGluZGV4ID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKSAtIDE7XHJcbiAgICAgICgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChpbmRleCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtUeXBlJyk/LnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAoKCgoKHRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoJ3NlY3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChzZWNJZHgpLmdldCgncXVlc3Rpb25zJykgYXMgRm9ybUFycmF5KS5hdChxbklkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2Fuc3dlcnMnKSBhcyBGb3JtQXJyYXkpLmF0KGFuc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ2xpbmtlZFF1ZXN0aW9uJyk/LnNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdsaW5rZWRRdWVzdGlvbicpPy5zZXRWYWx1ZSgwKTtcclxuICAgICAgKCgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc2VjSWR4KS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocW5JZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KCdzaG93TGlua2VkJyk/LnNldFZhbHVlKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdE9wdGlvbihxbm86YW55LGFuc0xpbmtlZDphbnkpIHtcclxuICAgIHJldHVybiBxbm8gPT0gYW5zTGlua2VkID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25OYW1lKHNlY0lkeDpudW1iZXIscUlkeDpudW1iZXIpIHtcclxuICAgIHJldHVybiAoKHRoaXMuZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmF0KHNlY0lkeCkuZ2V0KCdxdWVzdGlvbnMnKSBhcyBGb3JtQXJyYXkpLmF0KHFJZHgtMSkgYXMgRm9ybUdyb3VwKS5nZXQoJ3FuYW1lJyk/LnZhbHVlO1xyXG4gIH1cclxuXHJcblJ1bkFJTmV3KHNJZHg6bnVtYmVyLHFJZHg6IG51bWJlcixhbnNJZHg6bnVtYmVyPS0xLGV2ZW50OiBhbnkpIHtcclxuICBjb25zb2xlLmxvZyhcImV2ZW50ID0+XCIsIGV2ZW50LnRhcmdldC5jaGVja2VkKVxyXG4gIC8vIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKXtcclxuICAgIGxldCBxTmFtZTogYW55ID0gdGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgscUlkeCwncW5hbWUnKT8udmFsdWU7IFxyXG4gICAgbGV0IHJ1bkFJRmVhdHVyZXM6IGFueSA9IFtdO1xyXG4gICAgbGV0IHJ1bkFJRGVzY3JpcHRpb246IGFueSA9ICcnO1xyXG4gICAgbGV0IHNlY3Rpb25RdWVzdGlvbiA9ICgoKCh0aGlzLkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQoc0lkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3F1ZXN0aW9ucycpIGFzIEZvcm1BcnJheSkuYXQocUlkeCkgYXMgRm9ybUdyb3VwKTtcclxuICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICBydW5BSUZlYXR1cmVzPSB0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LHFJZHgsJ3J1bkFJRmVhdHVyZXMnLGFuc0lkeCk/LnZhbHVlOyBcclxuICAgICAgcnVuQUlEZXNjcmlwdGlvbj0gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCxxSWR4LCdydW5BSURlc2NyaXB0aW9uJyxhbnNJZHgpPy52YWx1ZTtcclxuICAgIH0gXHJcbiAgICBlbHNlIHtcclxuICAgICAgcnVuQUlGZWF0dXJlcz0gKChzZWN0aW9uUXVlc3Rpb24uZ2V0KFwiYW5zd2Vyc1wiKSBhcyBGb3JtR3JvdXApLmdldChcInJ1bkFJRmVhdHVyZXNcIikgYXMgRm9ybUFycmF5KT8udmFsdWU7IFxyXG4gICAgICBydW5BSURlc2NyaXB0aW9uPSAoKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlEZXNjcmlwdGlvblwiKSBhcyBGb3JtQXJyYXkpPy52YWx1ZTtcclxuICAgIH1cclxuICAgIGxldCBxdWVzdGlvbkltYWdlcztcclxuICAgIGlmKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICBsZXQgYW5zd2VycyA9ICgoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1BcnJheSkuYXQoYW5zSWR4KSBhcyBGb3JtR3JvdXApO1xyXG4gICAgICBxdWVzdGlvbkltYWdlcyA9IChhbnN3ZXJzLmdldCgnbXVsdGlSZWZlcmVuY2VJbWFnZScpIGFzIEZvcm1BcnJheSk/LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYoWydpbWFnZScsJ211bHRpcGxlSW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJ10uaW5jbHVkZXModGhpcy5nZXRRdWVzdGlvbkZvcm1Db250cm9sKHNJZHgscUlkeCwnYW5zd2VyVHlwZScpPy52YWx1ZSkpIHtcclxuICAgICAgICBxdWVzdGlvbkltYWdlcyA9IChzZWN0aW9uUXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJykgYXMgRm9ybUdyb3VwKS5nZXQoJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcXVlc3Rpb25JbWFnZXMgPSAoc2VjdGlvblF1ZXN0aW9uLmdldCgnYW5zd2VycycpIGFzIEZvcm1Hcm91cCkuZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICBpZihldmVudC50YXJnZXQuY2hlY2tlZCl7ICBcclxuICAgIGlmICh0aGlzLmdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChzSWR4LCBxSWR4LCBcInJ1bkFJXCIsIGFuc0lkeCk/LnZhbHVlID09IGZhbHNlKSB7XHJcbiAgICAgIGlmICghcU5hbWUgfHwgIXRoaXMuQ2hlY2tsaXN0Rm9ybS5nZXQoXCJjaGVja2xpc3ROYW1lXCIpPy52YWx1ZSkge1xyXG4gICAgICAgIGxldCBlcnI6IHN0cmluZyA9ICFxTmFtZVxyXG4gICAgICAgICAgPyBcIlBsZWFzZSBlbnRlciBxdWVzdGlvbiB0byBjb250aW51ZSFcIlxyXG4gICAgICAgICAgOiBcIlBsZWFzZSBlbnRlciBDaGVja2xpc3QgTmFtZSB0byBjb250aW51ZSFcIjtcclxuICAgICAgICB0aGlzLnN3YWxUb2FzdChlcnIsIFwiZXJyb3JcIik7XHJcbiAgICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LCBmYWxzZSwgYW5zSWR4KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4UnVuQUlQb3B1cENvbXBvbmVudCwge1xyXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgIHNpemU6IFwibWRcIixcclxuICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIlxyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7XHJcbiAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMjMuMzU2NCAxOS4zNTI1QzI0LjE3NDggMTguNzMyNyAyNS4xNzM4IDE4LjM5ODUgMjYuMjAwNCAxOC40MDA5QzI2LjU1NDkgMTguMzkzIDI2LjkwNTcgMTguNDc0NiAyNy4yMjA0IDE4LjYzODJDMjcuNTM1IDE4LjgwMTggMjcuODAzMyAxOS4wNDIxIDI4LjAwMDQgMTkuMzM2OUMyOC4xOTc1IDE5LjA0MjEgMjguNDY1OCAxOC44MDE4IDI4Ljc4MDQgMTguNjM4MkMyOS4wOTUgMTguNDc0NiAyOS40NDU5IDE4LjM5MyAyOS44MDA0IDE4LjQwMDlDMzAuODI3IDE4LjM5ODUgMzEuODI2IDE4LjczMjcgMzIuNjQ0NCAxOS4zNTI1QzMzLjI3NDQgMTkuODQyMSAzMy43NjA0IDIwLjUyMDEgMzMuOTMyIDIxLjMzOTdDMzQuMzI1NiAyMS4zNjk3IDM0LjY4NTYgMjEuNTMyOSAzNC45ODggMjEuNzc4OUMzNS40NDY0IDIyLjE1MDkgMzUuNzggMjIuNzA4OSAzNS45OSAyMy4yOTkzQzM2LjMxODggMjQuMjE3MyAzNi40MDc2IDI1LjM4NzMgMzYuMDY2OCAyNi4zODMzQzM2LjE1MzIgMjYuNDI0MSAzNi4yMzg0IDI2LjQ3MjEgMzYuMzIxMiAyNi41MjczQzM2LjY1MTIgMjYuNzQ2OSAzNi45MDIgMjcuMDYxMyAzNy4wODY4IDI3LjQzMjFDMzcuNDUwNCAyOC4xNTgxIDM3LjYwMDQgMjkuMTcwOSAzNy42MDA0IDMwLjQwMDlDMzcuNjAwNCAzMS43NzAxIDM3LjA3ODQgMzIuNjg5MyAzNi40MTYgMzMuMjU2OUMzNi4wNDk3IDMzLjU3MSAzNS42MTc0IDMzLjc5ODYgMzUuMTUxMiAzMy45MjI5QzM1LjAzMTIgMzQuNTkyNSAzNC42OTUyIDM1LjM2NzcgMzQuMTY4NCAzNi4wMjUzQzMzLjQ4NDQgMzYuODgzMyAzMi40MjM2IDM3LjYwMDkgMzEuMDAwNCAzNy42MDA5QzI5Ljg3MjQgMzcuNjAwOSAyOC45NzQ4IDM2Ljk3NjkgMjguMzkxNiAzNi4zNjQ5QzI4LjI1MjIgMzYuMjE4OCAyOC4xMjE1IDM2LjA2NDUgMjguMDAwNCAzNS45MDI5QzI3Ljg3OTMgMzYuMDY0NSAyNy43NDg2IDM2LjIxODggMjcuNjA5MiAzNi4zNjQ5QzI3LjAyNiAzNi45NzY5IDI2LjEyOTYgMzcuNjAwOSAyNS4wMDA0IDM3LjYwMDlDMjMuNTc3MiAzNy42MDA5IDIyLjUxNzYgMzYuODgzMyAyMS44MzI0IDM2LjAyNTNDMjEuMzQwMSAzNS40MTQgMjEuMDAyOSAzNC42OTI3IDIwLjg0OTYgMzMuOTIyOUMyMC4zODM0IDMzLjc5ODYgMTkuOTUxMSAzMy41NzEgMTkuNTg0OCAzMy4yNTY5QzE4LjkyMjQgMzIuNjg5MyAxOC40MDA0IDMxLjc2ODkgMTguNDAwNCAzMC40MDA5QzE4LjQwMDQgMjkuMTcwOSAxOC41NTE2IDI4LjE1NjkgMTguOTE0IDI3LjQzMjFDMTkuMDg1NyAyNy4wNjg1IDE5LjM0OTcgMjYuNzU2MSAxOS42Nzk2IDI2LjUyNjFDMTkuNzYwNiAyNi40NzI1IDE5Ljg0NTcgMjYuNDI1MSAxOS45MzQgMjYuMzg0NUMxOS41OTMyIDI1LjM4NjEgMTkuNjgyIDI0LjIxNzMgMjAuMDEwOCAyMy4yOTkzQzIwLjIyMDggMjIuNzA4OSAyMC41NTQ0IDIyLjE1MDkgMjEuMDEyOCAyMS43Nzg5QzIxLjMxNTIgMjEuNTMyOSAyMS42NzUyIDIxLjM3MDkgMjIuMDY4OCAyMS4zMzk3QzIyLjI0MTYgMjAuNTIwMSAyMi43MjY0IDE5Ljg0MjEgMjMuMzU2NCAxOS4zNTI1Wk0yNy40MDA0IDIxLjQwMDlWMjEuMzg4OUwyNy4zOTggMjEuMzI4OUMyNy4zODAzIDIxLjAxNjEgMjcuMzE4MSAyMC43MDc0IDI3LjIxMzIgMjAuNDEyMUMyNy4xMzg1IDIwLjE4OTIgMjcuMDExMyAxOS45ODc2IDI2Ljg0MjQgMTkuODI0MUMyNi42NjUxIDE5LjY2OTggMjYuNDM1MiAxOS41ODk4IDI2LjIwMDQgMTkuNjAwOUMyNS40NDA3IDE5LjU5ODMgMjQuNzAwOSAxOS44NDM1IDI0LjA5MzIgMjAuMjk5M0MyMy41MzY0IDIwLjczMjUgMjMuMjAwNCAyMS4zMTkzIDIzLjIwMDQgMjIuMDAwOUMyMy4yMDAzIDIyLjA5NTkgMjMuMTc3NyAyMi4xODk2IDIzLjEzNDMgMjIuMjc0MUMyMy4wOTEgMjIuMzU4NyAyMy4wMjgyIDIyLjQzMTggMjIuOTUxMSAyMi40ODczQzIyLjg3NCAyMi41NDI4IDIyLjc4NDggMjIuNTc5MyAyMi42OTA5IDIyLjU5MzZDMjIuNTk2OSAyMi42MDc5IDIyLjUwMDkgMjIuNTk5NyAyMi40MTA4IDIyLjU2OTdDMjIuMTg1MiAyMi40OTUzIDIxLjk4MzYgMjIuNTM3MyAyMS43Njg4IDIyLjcxMDFDMjEuNTMzNiAyMi45MDIxIDIxLjMwNDQgMjMuMjQyOSAyMS4xNCAyMy43MDI1QzIwLjgwNTIgMjQuNjQwOSAyMC44NCAyNS43NzczIDIxLjI5OTYgMjYuNDY4NUMyMS4zNjUyIDI2LjU2NyAyMS40MDAzIDI2LjY4MjYgMjEuNDAwNCAyNi44MDA5SDIyLjMwMDRDMjMuMDE2NSAyNi44MDA5IDIzLjcwMzIgMjcuMDg1NCAyNC4yMDk2IDI3LjU5MTdDMjQuNzE1OSAyOC4wOTgxIDI1LjAwMDQgMjguNzg0OCAyNS4wMDA0IDI5LjUwMDlWMjkuOTAyOUMyNS40MDA3IDMwLjA0NDUgMjUuNzM4MSAzMC4zMjMgMjUuOTUzIDMwLjY4OTJDMjYuMTY3OCAzMS4wNTU1IDI2LjI0NjMgMzEuNDg1OSAyNi4xNzQ1IDMxLjkwNDRDMjYuMTAyNyAzMi4zMjI5IDI1Ljg4NTIgMzIuNzAyNSAyNS41NjA2IDMyLjk3NjJDMjUuMjM1OSAzMy4yNDk5IDI0LjgyNSAzMy40IDI0LjQwMDQgMzMuNEMyMy45NzU4IDMzLjQgMjMuNTY0OCAzMy4yNDk5IDIzLjI0MDIgMzIuOTc2MkMyMi45MTU2IDMyLjcwMjUgMjIuNjk4MSAzMi4zMjI5IDIyLjYyNjMgMzEuOTA0NEMyMi41NTQ1IDMxLjQ4NTkgMjIuNjMzIDMxLjA1NTUgMjIuODQ3OCAzMC42ODkyQzIzLjA2MjcgMzAuMzIzIDIzLjQwMDEgMzAuMDQ0NSAyMy44MDA0IDI5LjkwMjlWMjkuNTAwOUMyMy44MDA0IDI4LjY3MjkgMjMuMTI4NCAyOC4wMDA5IDIyLjMwMDQgMjguMDAwOUgyMC4yMDA0QzIwLjEyODcgMjguMDAwOCAyMC4wNTc1IDI3Ljk4NzggMTkuOTkwNCAyNy45NjI1TDE5Ljk4NjggMjcuOTY5N0MxOS43NDkyIDI4LjQ0MzcgMTkuNjAwNCAyOS4yMzA5IDE5LjYwMDQgMzAuNDAwOUMxOS42MDA0IDMxLjQzMTcgMTkuOTc4NCAzMi4wMTI1IDIwLjM2NiAzMi4zNDQ5QzIwLjc4MjQgMzIuNzAyNSAyMS4yNDQ0IDMyLjgwMDkgMjEuNDAwNCAzMi44MDA5QzIxLjU1OTUgMzIuODAwOSAyMS43MTIxIDMyLjg2NDEgMjEuODI0NyAzMi45NzY3QzIxLjkzNzIgMzMuMDg5MiAyMi4wMDA0IDMzLjI0MTggMjIuMDAwNCAzMy40MDA5QzIyLjAwMDQgMzMuODQyNSAyMi4yNDA0IDM0LjYxNDEgMjIuNzY4NCAzNS4yNzY1QzIzLjI4MzIgMzUuOTE4NSAyNC4wMjM2IDM2LjQwMDkgMjUuMDAwNCAzNi40MDA5QzI1LjY3MjQgMzYuNDAwOSAyNi4yNzQ4IDM2LjAyNTMgMjYuNzQwNCAzNS41MzY5QzI2Ljk2OTYgMzUuMjk2OSAyNy4xNDg0IDM1LjA0ODUgMjcuMjY0OCAzNC44NDQ1QzI3LjMxNzggMzQuNzU0MSAyNy4zNjMxIDM0LjY1OTMgMjcuNDAwNCAzNC41NjEzVjI1LjAwMDlIMjYuMDk4NEMyNS45NTY5IDI1LjQwMTIgMjUuNjc4MyAyNS43Mzg3IDI1LjMxMjEgMjUuOTUzNUMyNC45NDU5IDI2LjE2ODMgMjQuNTE1NCAyNi4yNDY4IDI0LjA5NyAyNi4xNzVDMjMuNjc4NSAyNi4xMDMyIDIzLjI5ODggMjUuODg1OCAyMy4wMjUxIDI1LjU2MTFDMjIuNzUxNCAyNS4yMzY1IDIyLjYwMTMgMjQuODI1NSAyMi42MDEzIDI0LjQwMDlDMjIuNjAxMyAyMy45NzYzIDIyLjc1MTQgMjMuNTY1NCAyMy4wMjUxIDIzLjI0MDdDMjMuMjk4OCAyMi45MTYxIDIzLjY3ODUgMjIuNjk4NiAyNC4wOTcgMjIuNjI2OEMyNC41MTU0IDIyLjU1NSAyNC45NDU5IDIyLjYzMzUgMjUuMzEyMSAyMi44NDgzQzI1LjY3ODMgMjMuMDYzMiAyNS45NTY5IDIzLjQwMDYgMjYuMDk4NCAyMy44MDA5SDI3LjQwMDRWMjEuNDAwOVpNMjguNjAwNCAzMy4zOTk3VjM0LjU2MDFDMjguNjM3NyAzNC42NTgxIDI4LjY4MyAzNC43NTI4IDI4LjczNiAzNC44NDMzQzI4Ljg1MzYgMzUuMDQ3MyAyOS4wMzEyIDM1LjI5NTcgMjkuMjU5MiAzNS41MzU3QzI5LjcyNiAzNi4wMjQxIDMwLjMyOTYgMzYuMzk5NyAzMS4wMDA0IDM2LjM5OTdDMzEuOTc3MiAzNi4zOTk3IDMyLjcxNzYgMzUuOTE3MyAzMy4yMzI0IDM1LjI3NTNDMzMuNzYwNCAzNC42MTI5IDM0LjAwMDQgMzMuODQxMyAzNC4wMDA0IDMzLjM5OTdDMzQuMDAwNCAzMy4yNDA2IDM0LjA2MzYgMzMuMDg4IDM0LjE3NjEgMzIuOTc1NUMzNC4yODg2IDMyLjg2MjkgMzQuNDQxMyAzMi43OTk3IDM0LjYwMDQgMzIuNzk5N0MzNC43NTY0IDMyLjc5OTcgMzUuMjE4NCAzMi43MDEzIDM1LjYzNDggMzIuMzQzN0MzNi4wMjI0IDMyLjAxMTMgMzYuNDAwNCAzMS40MzA1IDM2LjQwMDQgMzAuMzk5N0MzNi40MDA0IDI5LjIyOTcgMzYuMjUwNCAyOC40NDM3IDM2LjAxNCAyNy45Njg1QzM1LjkzNDkgMjcuNzkxNiAzNS44MTA4IDI3LjYzODUgMzUuNjU0IDI3LjUyNDVDMzUuNTE4OSAyNy40MzgxIDM1LjM2MDYgMjcuMzk1IDM1LjIwMDQgMjcuNDAwOUMzNS4wOTE5IDI3LjQwMDkgMzQuOTg1NCAyNy4zNzE0IDM0Ljg5MjMgMjcuMzE1NkMzNC43OTkyIDI3LjI1OTggMzQuNzIzIDI3LjE3OTggMzQuNjcxNyAyNy4wODQxQzM0LjYyMDUgMjYuOTg4NCAzNC41OTYyIDI2Ljg4MDcgMzQuNjAxNCAyNi43NzIzQzM0LjYwNjYgMjYuNjYzOCAzNC42NDExIDI2LjU1ODkgMzQuNzAxMiAyNi40Njg1QzM1LjE2MiAyNS43NzczIDM1LjE5NTYgMjQuNjQwOSAzNC44NjA4IDIzLjcwMjVDMzQuNjk2NCAyMy4yNDI5IDM0LjQ2NzIgMjIuOTAwOSAzNC4yMzIgMjIuNzEwMUMzNC4wMTcyIDIyLjUzNzMgMzMuODE1NiAyMi40OTQxIDMzLjU5IDIyLjU2OTdDMzMuNDk5OCAyMi41OTk3IDMzLjQwMzggMjIuNjA3OSAzMy4zMDk5IDIyLjU5MzZDMzMuMjE2IDIyLjU3OTMgMzMuMTI2OCAyMi41NDI4IDMzLjA0OTcgMjIuNDg3M0MzMi45NzI2IDIyLjQzMTggMzIuOTA5OCAyMi4zNTg3IDMyLjg2NjQgMjIuMjc0MUMzMi44MjMxIDIyLjE4OTYgMzIuODAwNSAyMi4wOTU5IDMyLjgwMDQgMjIuMDAwOUMzMi44MDA0IDIxLjMxOTMgMzIuNDY0NCAyMC43MzI1IDMxLjkwNjQgMjAuMjk5M0MzMS4yOTkgMTkuODQzOCAzMC41NTk2IDE5LjU5ODYgMjkuODAwNCAxOS42MDA5QzI5LjU2NTYgMTkuNTg5OCAyOS4zMzU2IDE5LjY2OTggMjkuMTU4NCAxOS44MjQxQzI4Ljk4ODkgMTkuOTg3NCAyOC44NjEzIDIwLjE4OTEgMjguNzg2NCAyMC40MTIxQzI4LjY3MjEgMjAuNzI1NiAyOC42MDkzIDIxLjA1NTQgMjguNjAwNCAyMS4zODg5VjMyLjIwMDlIMjkuNTAwNEMzMC4zMjg0IDMyLjIwMDkgMzEuMDAwNCAzMS41Mjg5IDMxLjAwMDQgMzAuNzAwOVYyOC40OTg5QzMwLjYwMDEgMjguMzU3NCAzMC4yNjI3IDI4LjA3ODkgMzAuMDQ3OCAyNy43MTI2QzI5LjgzMyAyNy4zNDY0IDI5Ljc1NDUgMjYuOTE2IDI5LjgyNjMgMjYuNDk3NUMyOS44OTgxIDI2LjA3OSAzMC4xMTU2IDI1LjY5OTMgMzAuNDQwMiAyNS40MjU3QzMwLjc2NDggMjUuMTUyIDMxLjE3NTggMjUuMDAxOSAzMS42MDA0IDI1LjAwMTlDMzIuMDI1IDI1LjAwMTkgMzIuNDM1OSAyNS4xNTIgMzIuNzYwNiAyNS40MjU3QzMzLjA4NTIgMjUuNjk5MyAzMy4zMDI3IDI2LjA3OSAzMy4zNzQ1IDI2LjQ5NzVDMzMuNDQ2MyAyNi45MTYgMzMuMzY3OCAyNy4zNDY0IDMzLjE1MyAyNy43MTI2QzMyLjkzODEgMjguMDc4OSAzMi42MDA3IDI4LjM1NzQgMzIuMjAwNCAyOC40OTg5VjMwLjcwMDlDMzIuMjAwNCAzMS40MTcgMzEuOTE1OSAzMi4xMDM4IDMxLjQwOTYgMzIuNjEwMUMzMC45MDMyIDMzLjExNjUgMzAuMjE2NSAzMy40MDA5IDI5LjUwMDQgMzMuNDAwOUgyOC42MDA0VjMzLjM5OTdaTTIzLjgwMDQgMjQuNDAwOUMyMy44MDA0IDI0LjU2MDEgMjMuODYzNiAyNC43MTI3IDIzLjk3NjEgMjQuODI1MkMyNC4wODg2IDI0LjkzNzcgMjQuMjQxMyAyNS4wMDA5IDI0LjQwMDQgMjUuMDAwOUMyNC41NTk1IDI1LjAwMDkgMjQuNzEyMSAyNC45Mzc3IDI0LjgyNDcgMjQuODI1MkMyNC45MzcyIDI0LjcxMjcgMjUuMDAwNCAyNC41NjAxIDI1LjAwMDQgMjQuNDAwOUMyNS4wMDA0IDI0LjI0MTggMjQuOTM3MiAyNC4wODkyIDI0LjgyNDcgMjMuOTc2N0MyNC43MTIxIDIzLjg2NDEgMjQuNTU5NSAyMy44MDA5IDI0LjQwMDQgMjMuODAwOUMyNC4yNDEzIDIzLjgwMDkgMjQuMDg4NiAyMy44NjQxIDIzLjk3NjEgMjMuOTc2N0MyMy44NjM2IDI0LjA4OTIgMjMuODAwNCAyNC4yNDE4IDIzLjgwMDQgMjQuNDAwOVpNMzEuNjAwNCAyNy40MDA5QzMxLjc1OTUgMjcuNDAwOSAzMS45MTIxIDI3LjMzNzcgMzIuMDI0NyAyNy4yMjUyQzMyLjEzNzIgMjcuMTEyNyAzMi4yMDA0IDI2Ljk2MDEgMzIuMjAwNCAyNi44MDA5QzMyLjIwMDQgMjYuNjQxOCAzMi4xMzcyIDI2LjQ4OTIgMzIuMDI0NyAyNi4zNzY3QzMxLjkxMjEgMjYuMjY0MSAzMS43NTk1IDI2LjIwMDkgMzEuNjAwNCAyNi4yMDA5QzMxLjQ0MTMgMjYuMjAwOSAzMS4yODg2IDI2LjI2NDEgMzEuMTc2MSAyNi4zNzY3QzMxLjA2MzYgMjYuNDg5MiAzMS4wMDA0IDI2LjY0MTggMzEuMDAwNCAyNi44MDA5QzMxLjAwMDQgMjYuOTYwMSAzMS4wNjM2IDI3LjExMjcgMzEuMTc2MSAyNy4yMjUyQzMxLjI4ODYgMjcuMzM3NyAzMS40NDEzIDI3LjQwMDkgMzEuNjAwNCAyNy40MDA5Wk0yNC40MDA0IDMxLjAwMDlDMjQuMjQxMyAzMS4wMDA5IDI0LjA4ODYgMzEuMDY0MSAyMy45NzYxIDMxLjE3NjdDMjMuODYzNiAzMS4yODkyIDIzLjgwMDQgMzEuNDQxOCAyMy44MDA0IDMxLjYwMDlDMjMuODAwNCAzMS43NjAxIDIzLjg2MzYgMzEuOTEyNyAyMy45NzYxIDMyLjAyNTJDMjQuMDg4NiAzMi4xMzc3IDI0LjI0MTMgMzIuMjAwOSAyNC40MDA0IDMyLjIwMDlDMjQuNTU5NSAzMi4yMDA5IDI0LjcxMjEgMzIuMTM3NyAyNC44MjQ3IDMyLjAyNTJDMjQuOTM3MiAzMS45MTI3IDI1LjAwMDQgMzEuNzYwMSAyNS4wMDA0IDMxLjYwMDlDMjUuMDAwNCAzMS40NDE4IDI0LjkzNzIgMzEuMjg5MiAyNC44MjQ3IDMxLjE3NjdDMjQuNzEyMSAzMS4wNjQxIDI0LjU1OTUgMzEuMDAwOSAyNC40MDA0IDMxLjAwMDlaXCIgZmlsbD1cIiMwMzk4NTVcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgIHRpdGxlOiBgUnVuIEFJIG9uIGltYWdlIHVwbG9hZGVkYCxcclxuICAgICAgICBjb250ZW50OiBgVXNlIHRoZSBwb3dlciBvZiBBSSB0byBjb21wYXJlIGFuZCBkZXRlY3QgYW5vbWFsaWVzIGJldHdlZW4gdXBsb2FkZWQgYW5kIHJlZmVyZW5jZSBpbWFnZS5gLFxyXG4gICAgICAgIHF1ZXN0aW9uTmFtZTogcU5hbWUsXHJcbiAgICAgICAgaW1hZ2VzOiBxdWVzdGlvbkltYWdlcyxcclxuICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROLFxyXG4gICAgICAgIHJ1bkFJRmVhdHVyZXM6IHJ1bkFJRmVhdHVyZXMsXHJcbiAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogcnVuQUlEZXNjcmlwdGlvbixcclxuICAgICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkXHJcbiAgICAgIH07XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICE9IFwiY2FuY2VsXCIpIHtcclxuICAgICAgICAgIGxldCBpbWFnZXM6IGFueTtcclxuICAgICAgICAgIGxldCBmZWF0dXJlczogYW55O1xyXG4gICAgICAgICAgaWYgKGFuc0lkeCAhPSAtMSkge1xyXG4gICAgICAgICAgICBpbWFnZXMgPSAoXHJcbiAgICAgICAgICAgICAgKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1BcnJheSkuYXQoXHJcbiAgICAgICAgICAgICAgICBhbnNJZHhcclxuICAgICAgICAgICAgICApIGFzIEZvcm1Hcm91cFxyXG4gICAgICAgICAgICApPy5nZXQoXCJtdWx0aVJlZmVyZW5jZUltYWdlXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICAgICAgZmVhdHVyZXMgPSAoXHJcbiAgICAgICAgICAgICAgKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1BcnJheSkuYXQoXHJcbiAgICAgICAgICAgICAgICBhbnNJZHhcclxuICAgICAgICAgICAgICApIGFzIEZvcm1Hcm91cFxyXG4gICAgICAgICAgICApPy5nZXQoXCJydW5BSUZlYXR1cmVzXCIpIGFzIEZvcm1BcnJheTtcclxuICAgICAgICAgICAgICgoc2VjdGlvblF1ZXN0aW9uLmdldChcImFuc3dlcnNcIikgYXMgRm9ybUFycmF5KS5hdChhbnNJZHgpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlEZXNjcmlwdGlvblwiKT8uc2V0VmFsdWUocmVzLnJ1bkFJRGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VzID0gKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFxyXG4gICAgICAgICAgICAgIFwibXVsdGlSZWZlcmVuY2VJbWFnZVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZlYXR1cmVzID0gKHNlY3Rpb25RdWVzdGlvbi5nZXQoXCJhbnN3ZXJzXCIpIGFzIEZvcm1Hcm91cCkuZ2V0KFwicnVuQUlGZWF0dXJlc1wiKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgICAgICAgIChzZWN0aW9uUXVlc3Rpb24uZ2V0KFwiYW5zd2Vyc1wiKSBhcyBGb3JtR3JvdXApLmdldChcInJ1bkFJRGVzY3JpcHRpb25cIik/LnNldFZhbHVlKHJlcy5ydW5BSURlc2NyaXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGltYWdlcy5jbGVhcigpO1xyXG4gICAgICAgICAgcmVzLmltYWdlcy5mb3JFYWNoKChpbWc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpbWFnZXMucHVzaChcclxuICAgICAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIGltYWdlVVJMOiBpbWcuaW1hZ2VVUkwsXHJcbiAgICAgICAgICAgICAgICBydW5BSTogaW1nLnJ1bkFJLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGZlYXR1cmVzLmNsZWFyKCk7XHJcbiAgICAgICAgICByZXMucnVuQUlGZWF0dXJlcy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmZWF0dXJlcy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICAgICAgZmVhdHVyZU5hbWU6IHRoaXMuZmIuY29udHJvbChlbGUuZmVhdHVyZU5hbWUpLFxyXG4gICAgICAgICAgICAgICAgbGFibGVOYW1lOiB0aGlzLmZiLmNvbnRyb2woZWxlLmxhYmxlTmFtZSksXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5pbnNlcnRGZWF0dXJlcyhyZXMucnVuQUlGZWF0dXJlcyk7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdCgnUnVuQUkgZW5hYmxlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJ1bkFJT2ZmKHNJZHgsIHFJZHgsIGZhbHNlLCBhbnNJZHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5ydW5BSU9mZihzSWR4LCBxSWR4LCBmYWxzZSwgYW5zSWR4KTtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1J1bkFJIGRpc2FibGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCx7Y2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsIGJhY2tkcm9wOiBcInN0YXRpY1wifSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHtcclxuICAgICAgaW1hZ2VzcmM6IGA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVFNEUyXCIvPjxwYXRoIGQ9XCJNMjggMjRWMjhNMjggMzJIMjguMDFNMzggMjhDMzggMzMuNTIyOCAzMy41MjI4IDM4IDI4IDM4QzIyLjQ3NzIgMzggMTggMzMuNTIyOCAxOCAyOEMxOCAyMi40NzcyIDIyLjQ3NzIgMTggMjggMThDMzMuNTIyOCAxOCAzOCAyMi40NzcyIDM4IDI4WlwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+PC9zcGFuPmAsXHJcbiAgICAgIHRpdGxlOiBgUnVuIEFJIFJlbW92ZWAsXHJcbiAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gUmVtb3ZlIFJ1biBBST9gLFxyXG4gICAgICBidXR0b250eXBlOiAncmVtb3ZlJ1xyXG4gICAgfVxyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCJyZXMgPT5cIiwgcmVzKVxyXG4gICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1J1bkFJIGRpc2FibGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woc0lkeCwgcUlkeCwgXCJydW5BSVwiLCBhbnNJZHgpO1xyXG4gICAgICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHRydWUsIHsgZW1pdEV2ZW50OiB0cnVlIH0pOyAvLyByZXNldCB0byBPTlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm47XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgaW5zZXJ0RmVhdHVyZXMoZGF0YTphbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBydW5BSUZlYXR1cmVzOiBkYXRhLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNvcFNlcnZpY2UudXBkYXRlUnVuQUlGZWF0dXJlcyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe31cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAgXHJcbiAgb25Qb3B1cChpbWFnZTpzdHJpbmcpe1xyXG4gICAgbGV0IGltYWdlUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHsgY2VudGVyZWQ6IHRydWUsIHNpemU6IFwibWRcIiB9KTtcclxuICAgIGltYWdlUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSB7dHlwZTonaW1hZ2UnLGltYWdlOnRoaXMuZW52aXJvbm1lbnQuVHJheEFuc3dlckNETitpbWFnZX07XHJcbiAgICBpbWFnZVJlZi5yZXN1bHQudGhlbigoKSA9PiB7fSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCJjaGVja2xpc3RMb2FkaW5nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCIhY2hlY2tsaXN0TG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtMyBwYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtY2VudGVyIG10LTMgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZSBtZS01IHBzLTIgcHgtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzMiAxMC4wMDAzSDQuMTY2NU00LjE2NjUgMTAuMDAwM0w5Ljk5OTg0IDE1LjgzMzdNNC4xNjY1IDEwLjAwMDNMOS45OTk4NCA0LjE2Njk5XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW4gdy04MDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0YWJsZWNvbnRlbnQgbWItNCB3LTEwMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hlY2tsaXN0IHBsYWluLWlucHV0XCIgI2NoZWNrbGlzdE5hbWUgcGxhY2Vob2xkZXI9XCJFbnRlciBDaGVja2xpc3QgTmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdE5hbWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50IHctMTAwXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFpbi1pbnB1dFwiICNjaGVja2xpc3REZXNjcmlwdGlvbiBwbGFjZWhvbGRlcj1cIkVudGVyIENoZWNrbGlzdCBEZXNjcmlwdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdERlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS02IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2FkZCdcIiAoY2xpY2spPVwic2F2ZUNoZWNrbGlzdFF1ZXN0aW9ucygnY29uZmlndXJlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5Db25maWd1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2FkZCdcIiAoY2xpY2spPVwic2F2ZUFzRHJhZnRQb3AoJ2NyZWF0ZScpXCI+PHNwYW4gY2xhc3M9XCJtcy0yXCI+U2F2ZSBhcyBEcmFmdDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3d2YWx1ZSA9PT0gJ2VkaXQnXCIgKGNsaWNrKT1cInVwZGF0ZUNoZWNrbGlzdFF1ZXN0aW9ucygnY29uZmlndXJlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5Db25maWd1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93dmFsdWUgPT09ICdlZGl0J1wiIChjbGljayk9XCJzYXZlQXNEcmFmdFBvcCgndXBkYXRlJylcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5TYXZlIGFzIERyYWZ0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbGVmdCBjYXJkIHB4LTcgcHktN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy0xOHB4IGZ3LTYwMCB0ZXh0LWxlZnQgbWItMyBjb25jaXNlLWNoZWNrbGlzdG5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRGb3JtQ29udHJvbCgnY2hlY2tsaXN0TmFtZScpLnZhbHVlID8gZ2V0Rm9ybUNvbnRyb2woJ2NoZWNrbGlzdE5hbWUnKS52YWx1ZSA6ICdDaGVja2xpc3ROYW1lJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcGFuZWwtY29udGFpbmVyXCIgZm9ybUFycmF5TmFtZT1cInNlY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgZ2V0U2VjdGlvbkZvcm1BcnJheSgpLmNvbnRyb2xzO2xldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBzZWN0aW9uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkIGVkaXRhYmxlY29udGVudC1sZWZ0XCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlY3Rpb25Gb3JtQ29udHJvbChpLCduYW1lJyk/LnZhbHVlID09PSAnJyA/IFwiU2VjdGlvbiBcIiA6ICcnfX17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U2VjdGlvbkZvcm1Db250cm9sKGksJ25hbWUnKT8udmFsdWUgPyBnZXRTZWN0aW9uRm9ybUNvbnRyb2woaSwnbmFtZScpPy52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnZXRTZWN0aW9uRm9ybUNvbnRyb2woaSwnc2VjdGlvbk51bWJlcicpPy52YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwiZGVsZXRlU2VjdGlvbihpKVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjM1XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIG1hdFRvb2x0aXA9XCJEZWxldGUgc2VjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjI1IDQuNUgzLjc1TTMuNzUgNC41SDE1Ljc1TTMuNzUgNC41VjE1QzMuNzUgMTUuMzk3OCAzLjkwODA0IDE1Ljc3OTQgNC4xODkzNCAxNi4wNjA3QzQuNDcwNjQgMTYuMzQyIDQuODUyMTggMTYuNSA1LjI1IDE2LjVIMTIuNzVDMTMuMTQ3OCAxNi41IDEzLjUyOTQgMTYuMzQyIDEzLjgxMDcgMTYuMDYwN0MxNC4wOTIgMTUuNzc5NCAxNC4yNSAxNS4zOTc4IDE0LjI1IDE1VjQuNUgzLjc1Wk02IDQuNVYzQzYgMi42MDIxOCA2LjE1ODA0IDIuMjIwNjQgNi40MzkzNCAxLjkzOTM0QzYuNzIwNjQgMS42NTgwNCA3LjEwMjE4IDEuNSA3LjUgMS41SDEwLjVDMTAuODk3OCAxLjUgMTEuMjc5NCAxLjY1ODA0IDExLjU2MDcgMS45MzkzNEMxMS44NDIgMi4yMjA2NCAxMiAyLjYwMjE4IDEyIDNWNC41TTcuNSA4LjI1VjEyLjc1TTEwLjUgOC4yNVYxMi43NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIFtuZ0NsYXNzXT1cInsncm90YXRlJyA6IHNob3cgIT09IGl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93PT09aVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJhZ0Ryb3AoaSwkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKGkpLmNvbnRyb2xzXCIgY2xhc3M9XCJxdWVzdGlvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJxdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBnZXRGb3JtQXJyYXlRdWVzdGlvbnMoaSkuY29udHJvbHM7bGV0IGo9aW5kZXg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteS0yIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdhY3RpdmUnKT8udmFsdWUgPT09IHRydWUgPyAnYWN0aXZlLXF1ZXN0aW9uJyA6ICdxLWJ0bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnIChtb3VzZWVudGVyKT1cInNldEFjdGl2ZVF1ZXN0aW9uKGksaiwxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzY3JvbGxUb1F1ZXN0aW9uKGksaik7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2V0QWN0aXZlUXVlc3Rpb24oaSxqLC0xKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25jaXNlLXF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRRdWVzdGlvbkZvcm1Db250cm9sKGksaiwncW5hbWUnKT8udmFsdWUgPyAnJyA6IFwiUXVlc3Rpb25cIn19e3sgZ2V0UXVlc3Rpb25Gb3JtQ29udHJvbChpLGosJ3FuYW1lJyk/LnZhbHVlID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRRdWVzdGlvbkZvcm1Db250cm9sKGksaiwncW5hbWUnKT8udmFsdWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFF1ZXN0aW9uRm9ybUNvbnRyb2woaSxqLCdxbm8nKT8udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiQ2hlY2tsaXN0Rm9ybVwiICNmb3JtUmVmPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC0yXCIgc3R5bGU9XCJ0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjaGVja2xpc3QgbmFtZSBoZXJlXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tsaXN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cIm10LTRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGNoZWNrbGlzdCBkZXNjcmlwdGlvbiBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdERlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cInNlY3Rpb25zXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbkFyZWEgbXQtNVwiICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGdldFNlY3Rpb25Gb3JtQXJyYXkoKS5jb250cm9scztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkIGVkaXRhYmxlY29udGVudFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwicGxhaW4taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzZWN0aW9uTmFtZSAoY2hhbmdlKT1cInVwZGF0ZUlucHV0VmFsdWUoaSxzZWN0aW9uTmFtZS52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwibWwtNVwiIChjbGljayk9XCJkZWxldGVTZWN0aW9uKGkpXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBtYXRUb29sdGlwPVwiRGVsZXRlIHNlY3Rpb25cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuMjUgNC41SDMuNzVNMy43NSA0LjVIMTUuNzVNMy43NSA0LjVWMTVDMy43NSAxNS4zOTc4IDMuOTA4MDQgMTUuNzc5NCA0LjE4OTM0IDE2LjA2MDdDNC40NzA2NCAxNi4zNDIgNC44NTIxOCAxNi41IDUuMjUgMTYuNUgxMi43NUMxMy4xNDc4IDE2LjUgMTMuNTI5NCAxNi4zNDIgMTMuODEwNyAxNi4wNjA3QzE0LjA5MiAxNS43Nzk0IDE0LjI1IDE1LjM5NzggMTQuMjUgMTVWNC41SDMuNzVaTTYgNC41VjNDNiAyLjYwMjE4IDYuMTU4MDQgMi4yMjA2NCA2LjQzOTM0IDEuOTM5MzRDNi43MjA2NCAxLjY1ODA0IDcuMTAyMTggMS41IDcuNSAxLjVIMTAuNUMxMC44OTc4IDEuNSAxMS4yNzk0IDEuNjU4MDQgMTEuNTYwNyAxLjkzOTM0QzExLjg0MiAyLjIyMDY0IDEyIDIuNjAyMTggMTIgM1Y0LjVNNy41IDguMjVWMTIuNzVNMTAuNSA4LjI1VjEyLjc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwiYWNjb3JkaWFuKGkpXCIgW25nQ2xhc3NdPVwieydyb3RhdGUnIDogc2hvdyAhPT0gaX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9uc0FyZWFcIiAqbmdJZj1cInNob3cgPT09IGlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtQXJyYXlOYW1lPVwicXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUXVlc3Rpb24tc2VjIG10LTEwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zKGkpLmNvbnRyb2xzO2xldCBqID0gaW5kZXg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzZXRBY3RpdmVRdWVzdGlvbihpLGosMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInNldEFjdGl2ZVF1ZXN0aW9uKGksaiwtMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xOHB4IHB4LTMgZWRpdGFibGVjb250ZW50IHF1ZXN0aW9udGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IGRlZmF1bHQ7XCI+IFF1ZXN0aW9uIHt7aisxfX08L3NwYW4+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWRcIiByb3dzPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBjbGFzcz1cIm10LTBcIiBbaWRdPVwiJ3EtJyArIGkgKyAnLScgKyBqXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHF1ZXN0aW9uIGhlcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInFuYW1lXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgncW5hbWUnKT8uaW52YWxpZCAmJiBxdWVzdGlvbi5nZXQoJ3FuYW1lJyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOiByZWQ7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ3FuYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+KlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbiBpcyByZXF1aXJlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFbJ2Rlc2NyaXB0aXZlSW1hZ2UnLCdpbWFnZScsJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgdy05MCB0ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBxdWVzdGlvbi5nZXQoJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZTsgbGV0IG0gPSBpbmRleFwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbWFnZT8uaW1hZ2VVUkxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltYWdlLWNvbnRhaW5lciByZWZfaW1nX2NvbnQgbWItNCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2ltYWdlLmltYWdlVVJMfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI5MCVcIiBoZWlnaHQ9XCIzMDBweFwiIGNsYXNzPVwiYXV0by1hZGp1c3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiVGFuZ28gRXllXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogb25Qb3B1cChpbWFnZS5pbWFnZVVSTClcIiBuZ2JUb29sdGlwPVwiRXhwYW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjUgMTEuNUgyNy41TTI3LjUgMTEuNVYxNi41TTI3LjUgMTEuNUwyMS42NjY3IDE3LjMzMzNNMTcuNSAyNi41SDEyLjVNMTIuNSAyNi41VjIxLjVNMTIuNSAyNi41TDE4LjMzMzMgMjAuNjY2N1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTEzXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIiBbaWRdPVwiJ2ZpbGV1cGxvYWRyZWZfMScraStqK21cIiB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFuc3dlckZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogbG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnLG0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiIFtmb3JdPVwiJ2ZpbGV1cGxvYWRyZWZfMScraStqK21cIiBuZ2JUb29sdGlwPVwiUmV1cGxvYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjcuNSAyMS41VjI0LjgzMzNDMjcuNSAyNS4yNzU0IDI3LjMyNDQgMjUuNjk5MyAyNy4wMTE4IDI2LjAxMThDMjYuNjk5MyAyNi4zMjQ0IDI2LjI3NTQgMjYuNSAyNS44MzMzIDI2LjVIMTQuMTY2N0MxMy43MjQ2IDI2LjUgMTMuMzAwNyAyNi4zMjQ0IDEyLjk4ODIgMjYuMDExOEMxMi42NzU2IDI1LjY5OTMgMTIuNSAyNS4yNzU0IDEyLjUgMjQuODMzM1YyMS41TTI0LjE2NjcgMTUuNjY2N0wyMCAxMS41TTIwIDExLjVMMTUuODMzMyAxNS42NjY3TTIwIDExLjVWMjEuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTIyXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogY2xlYXJSZWZlcmVuY2VJbWFnZShpLGosLTEsbSwnbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlJyk7XCIgbmdiVG9vbHRpcD1cIkRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41IDEzLjk5NzRIMTQuMTY2N00xNC4xNjY3IDEzLjk5NzRIMjcuNU0xNC4xNjY3IDEzLjk5NzRWMjUuNjY0MUMxNC4xNjY3IDI2LjEwNjEgMTQuMzQyMyAyNi41MyAxNC42NTQ4IDI2Ljg0MjZDMTQuOTY3NCAyNy4xNTUxIDE1LjM5MTMgMjcuMzMwNyAxNS44MzMzIDI3LjMzMDdIMjQuMTY2N0MyNC42MDg3IDI3LjMzMDcgMjUuMDMyNiAyNy4xNTUxIDI1LjM0NTIgMjYuODQyNkMyNS42NTc3IDI2LjUzIDI1LjgzMzMgMjYuMTA2MSAyNS44MzMzIDI1LjY2NDFWMTMuOTk3NEgxNC4xNjY3Wk0xNi42NjY3IDEzLjk5NzRWMTIuMzMwN0MxNi42NjY3IDExLjg4ODcgMTYuODQyMyAxMS40NjQ4IDE3LjE1NDggMTEuMTUyMkMxNy40Njc0IDEwLjgzOTcgMTcuODkxMyAxMC42NjQxIDE4LjMzMzMgMTAuNjY0MUgyMS42NjY3QzIyLjEwODcgMTAuNjY0MSAyMi41MzI2IDEwLjgzOTcgMjIuODQ1MiAxMS4xNTIyQzIzLjE1NzcgMTEuNDY0OCAyMy4zMzMzIDExLjg4ODcgMjMuMzMzMyAxMi4zMzA3VjEzLjk5NzRNMTguMzMzMyAxOC4xNjQxVjIzLjE2NDFNMjEuNjY2NyAxOC4xNjQxVjIzLjE2NDFcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxNFwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJlZl9kZWxfaWNvblwiIChjbGljayk9XCJjbGVhclJlZmVyZW5jZUltYWdlKGksaik7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA1LjAwMTNINC4xNjY2N000LjE2NjY3IDUuMDAxM0gxNy41TTQuMTY2NjcgNS4wMDEzVjE2LjY2OEM0LjE2NjY3IDE3LjExIDQuMzQyMjYgMTcuNTMzOSA0LjY1NDgyIDE3Ljg0NjVDNC45NjczOCAxOC4xNTkgNS4zOTEzMSAxOC4zMzQ2IDUuODMzMzMgMTguMzM0NkgxNC4xNjY3QzE0LjYwODcgMTguMzM0NiAxNS4wMzI2IDE4LjE1OSAxNS4zNDUyIDE3Ljg0NjVDMTUuNjU3NyAxNy41MzM5IDE1LjgzMzMgMTcuMTEgMTUuODMzMyAxNi42NjhWNS4wMDEzSDQuMTY2NjdaTTYuNjY2NjcgNS4wMDEzVjMuMzM0NjRDNi42NjY2NyAyLjg5MjYxIDYuODQyMjYgMi40Njg2OCA3LjE1NDgyIDIuMTU2MTJDNy40NjczOCAxLjg0MzU2IDcuODkxMzEgMS42Njc5NyA4LjMzMzMzIDEuNjY3OTdIMTEuNjY2N0MxMi4xMDg3IDEuNjY3OTcgMTIuNTMyNiAxLjg0MzU2IDEyLjg0NTIgMi4xNTYxMkMxMy4xNTc3IDIuNDY4NjggMTMuMzMzMyAyLjg5MjYxIDEzLjMzMzMgMy4zMzQ2NFY1LjAwMTNNOC4zMzMzMyA5LjE2Nzk3VjE0LjE2OE0xMS42NjY3IDkuMTY3OTdWMTQuMTY4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNDIzMThcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGJ0bi1saWdodC1wcmltYXJ5IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkXycraStqXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImFuc3dlckZpbGVcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsLTEsJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidmaWxldXBsb2FkXycraStqXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwibXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwODJfMzEyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNjY2NyAzLjMzNTI3VjguMzM1MjdNMTkuNjY2NyA4LjMzNTI3SDE0LjY2NjdNMTkuNjY2NyA4LjMzNTI3TDE1LjggNC43MDE5M0MxNC45MDQ0IDMuODA1ODYgMTMuNzk2NCAzLjE1MTI3IDEyLjU3OTMgMi43OTkyNUMxMS4zNjIzIDIuNDQ3MjIgMTAuMDc1OSAyLjQwOTIzIDguODQwMjUgMi42ODg4MkM3LjYwNDU2IDIuOTY4NDEgNi40NTk4NCAzLjU1NjQ2IDUuNTEyOSA0LjM5ODEyQzQuNTY1OTUgNS4yMzk3NyAzLjg0NzY1IDYuMzA3NTkgMy40MjUwMSA3LjUwMTkzTTEuMzMzMzQgMTYuNjY4NlYxMS42Njg2TTEuMzMzMzQgMTEuNjY4Nkg2LjMzMzM0TTEuMzMzMzQgMTEuNjY4Nkw1LjIwMDAxIDE1LjMwMTlDNi4wOTU2MyAxNi4xOTggNy4yMDM2NSAxNi44NTI2IDguNDIwNjggMTcuMjA0NkM5LjYzNzcxIDE3LjU1NjcgMTAuOTI0MSAxNy41OTQ2IDEyLjE1OTggMTcuMzE1MUMxMy4zOTU1IDE3LjAzNTUgMTQuNTQwMiAxNi40NDc0IDE1LjQ4NzEgMTUuNjA1OEMxNi40MzQxIDE0Ljc2NDEgMTcuMTUyNCAxMy42OTYzIDE3LjU3NSAxMi41MDE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDA4Ml8zMTIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5SZXVwbG9hZCBJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUubGVuZ3RoIDw1ICYmICFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGFkZC1yZWYtYnRuIGJ0bi1saWdodC1wcmltYXJ5IG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2lkXT1cIidmaWxldXBsb2FkUW5SZWYxXzInK2kralwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LC0xLCdtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCIgW2Zvcl09XCInZmlsZXVwbG9hZFFuUmVmMV8yJytpK2pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA0LjE2Nzk3VjE1LjgzNDZNNC4xNjY2OSAxMC4wMDEzSDE1LjgzMzRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5BZGQgUmVmZXJlbmNlIEltYWdlIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ211bHRpUXVlc3Rpb25SZWZlcmVuY2VJbWFnZScpPy52YWx1ZS5sZW5ndGggPj0gNSB8fCBxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuLWxpZ2h0LWRpc2JhbGVkIGJ0biBhZGQtcmVmLWJ0biBteS0yIGJvcmRlckNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2NDA2VjE1LjgzMDdNNC4xNjc5NyA5Ljk5NzRIMTUuODM0NlwiIHN0cm9rZT1cIiM2QkNBRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDxzcGFuPkFkZCBSZWZlcmVuY2UgSW1hZ2U8L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJtdC01XCIgbmFtZT1cInNlbGVjdG9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJhbnN3ZXJUeXBlU2VsZWN0aW9uKGksaiwkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwiZGVzY3JpcHRpdmVcIiB2YWx1ZT1cImRlc2NyaXB0aXZlXCI+RGVzY3JpcHRpdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwieWVzL25vXCIgdmFsdWU9XCJ5ZXMvbm9cIj5BL0IgUXVlc3Rpb248L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIj5NdWx0aXBsZSBDaG9pY2UgUXVlc3Rpb24gLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGUgQW5zd2VyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiPk11bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpcGxlIEFuc3dlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cImRlc2NyaXB0aXZlSW1hZ2VcIiB2YWx1ZT1cImRlc2NyaXB0aXZlSW1hZ2VcIj5DYXB0dXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlIHdpdGggRGVzY3JpcHRpb248L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJpbWFnZVwiIHZhbHVlPVwiaW1hZ2VcIj5DYXB0dXJlIEltYWdlIGFzIGFuc3dlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT1cInZpZGVvXCIgdmFsdWU9XCJ2aWRlb1wiPkNhcHR1cmUgdmlkZW8gYXMgYW5zd2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPVwibXVsdGlwbGVJbWFnZVwiIHZhbHVlPVwibXVsdGlwbGVJbWFnZVwiPkNhcHR1cmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbGUgSW1hZ2U8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJkYXRlXCIgdmFsdWU9XCJkYXRlXCI+RGF0ZSAtIEREL01NL1lZWVk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJsaW5lYXJzY2FsZVwiIHZhbHVlPVwibGluZWFyc2NhbGVcIj5MaW5lYXIgU2NhbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9XCJ0aW1lXCIgdmFsdWU9XCJ0aW1lXCI+VGltZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBteC00IGQtZmxleCBtdC0zXCIgKm5nSWY9XCJbJ2Rlc2NyaXB0aXZlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwidGV4dFwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2lkXT1cIidpbmxpbmVSYWRpbzAnKyBpICsgalwiICBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzAnKyBpICsgalwiPlRleHQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aXZldHlwZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwibnVtYmVyXCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbaWRdPVwiJ2lubGluZVJhZGlvMScrIGkgKyBqXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgIFtmb3JdPVwiJ2lubGluZVJhZGlvMScraSArIGpcIj5OdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3llcy9ubycgfHwgcXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVjaG9pY2VzaW5nbGUnIHx8IHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMThweCBmdy1ib2xkZXJcIiBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtcIj5BbnN3ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJhbnN3ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGdldEZvcm1BcnJheVF1ZXN0aW9uc0Fuc3dlcihpLGosJ2Fuc3dlcnMnKT8uY29udHJvbHM7bGV0IGsgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFtmb3JtR3JvdXBOYW1lXT1cImtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYW5zd2VyLmdldCgnaXNkZWxldGVkJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IEFuc3dlcjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHBiLTAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJtdC0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIGFuc3dlciBoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICd5ZXMvbm8nIHx8IHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZsMlwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaW1nQWRkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOnVwZGF0ZUxpbmtlZChpLGosaylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS45OTk5OSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY2NiA5Ljk5OTM1SDE1LjgzMzNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8uaW52YWxpZCAmJiBhbnN3ZXIuZ2V0KCdhbnN3ZXInKT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6IHJlZDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ2Fuc3dlcicpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEFuc3dlciBpcyByZXF1aXJlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwiY29sb3I6IHJlZDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnc2hvd1NPUEZsYWdFcnJvcicpPy52YWx1ZSA9PT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZXJ5IGFuc3dlciBjYW7igJl0IGJlIGEgZmxhZy48L3A+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUNvbnRyb2xOYW1lPVwic29wRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6IHJhaXNlZmxhZyhpLGosayx0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJSYWlzZSBhIGZsYWcgaWYgdGhpcyBhbnN3ZXIgaXMgc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdzb3BGbGFnJyk/LnZhbHVlID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2l3aVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNjY2NjkgMTAuMDAwN0MyLjY2NjY5IDEwLjAwMDcgMy4zMzMzNSA5LjMzMzk4IDUuMzMzMzUgOS4zMzM5OEM3LjMzMzM1IDkuMzMzOTggOC42NjY2OSAxMC42NjczIDEwLjY2NjcgMTAuNjY3M0MxMi42NjY3IDEwLjY2NzMgMTMuMzMzNCAxMC4wMDA3IDEzLjMzMzQgMTAuMDAwN1YyLjAwMDY1QzEzLjMzMzQgMi4wMDA2NSAxMi42NjY3IDIuNjY3MzIgMTAuNjY2NyAyLjY2NzMyQzguNjY2NjkgMi42NjczMiA3LjMzMzM1IDEuMzMzOTggNS4zMzMzNSAxLjMzMzk4QzMuMzMzMzUgMS4zMzM5OCAyLjY2NjY5IDIuMDAwNjUgMi42NjY2OSAyLjAwMDY1VjEwLjAwMDdaTTIuNjY2NjkgMTAuMDAwN1YxNC42NjczXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEMEQ1RERcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6IHJhaXNlZmxhZyhpLGosayxmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiUmFpc2UgYSBmbGFnIGlmIHRoaXMgYW5zd2VyIGlzIHNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYW5zd2VyLmdldCgnc29wRmxhZycpPy52YWx1ZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aXZlLWZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjY2NjY5IDEwLjAwMDdDMi42NjY2OSAxMC4wMDA3IDMuMzMzMzUgOS4zMzM5OCA1LjMzMzM1IDkuMzMzOThDNy4zMzMzNSA5LjMzMzk4IDguNjY2NjkgMTAuNjY3MyAxMC42NjY3IDEwLjY2NzNDMTIuNjY2NyAxMC42NjczIDEzLjMzMzQgMTAuMDAwNyAxMy4zMzM0IDEwLjAwMDdWMi4wMDA2NUMxMy4zMzM0IDIuMDAwNjUgMTIuNjY2NyAyLjY2NzMyIDEwLjY2NjcgMi42NjczMkM4LjY2NjY5IDIuNjY3MzIgNy4zMzMzNSAxLjMzMzk4IDUuMzMzMzUgMS4zMzM5OEMzLjMzMzM1IDEuMzMzOTggMi42NjY2OSAyLjAwMDY1IDIuNjY2NjkgMi4wMDA2NVYxMC4wMDA3Wk0yLjY2NjY5IDEwLjAwMDdWMTQuNjY3M1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYW5zd2VyLmdldCgnc2hvd0xpbmtlZCcpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFuc3dlcnZhbGlkYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJtdC03XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2N1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImdldHZhbGlkYXRpb24oaSxqLGssJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbGlkYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhY2tib3ggcHQtNCBtdC0yIG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogZGVmYXVsdDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlZhbGlkYXRlIHJlc3BvbnNlPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+VHJpZ2dlciBhbiBhY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlYWNoIHJlc3BvbnNlIHRvIHZhbGlkYXRlIGl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSAhPT0gJ3llcy9ubycgJiYgZ2V0Rm9ybUFycmF5UXVlc3Rpb25zQW5zd2VyKGksaiwnYW5zd2VycycpLnZhbHVlLmxlbmd0aCA+IDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/JycgOmRlbGV0ZUFuc3dlcihpLGosaylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSBhbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICpuZ0lmPVwibW9yZXFuLnZhbGlkYXRpb25cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYW5zd2VyLmdldCgndmFsaWRhdGlvbicpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBwdC03IGZzLTQgZnctNDAwIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoZSByZXNwb25zZSBpcyB0aGlzLCB0aGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJtdC01IG14LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbGlkYXRpb25UeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVZhbGlkYXRpb25UeXBlKCRldmVudCxpLGosaylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPkRlc2NyaXB0aXZlIEFuc3dlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+Q2FwdHVyZSBJbWFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+Q2FwdHVyZSBWaWRlbzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgbXgtNCBkLWZsZXggcHQtOFwiICpuZ0lmPVwiYW5zd2VyLmdldCgndmFsaWRhdGlvblR5cGUnKT8udmFsdWUgPT09ICdEZXNjcmlwdGl2ZSBBbnN3ZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvMicgKyBpICsgaiArIGtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInRleHRcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvMicgKyBpICsgaiArIGtcIj5UZXh0PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvMycrIGkgKyBqICsga1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibnVtYmVyXCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzMnICsgaSArIGogKyBrXCI+TnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhbnN3ZXIuZ2V0KCdzaG93TGlua2VkJyk/LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBwdC03IGZzLTQgZnctNDAwIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmtlZCBRdWVzdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IFtpZF09XCJpKyctJytrXCIgW25hbWVdPVwiaSsnLScra1wiIGNsYXNzPVwibXQtNVwiIChjaGFuZ2UpPVwidXBkYXRlUXVlc3Rpb25UeXBlKGksaixrLCRldmVudClcIiBbZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IFF1ZXN0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGdldFF1ZXN0aW9uTGlzdChpLGosaylcIiBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdE9wdGlvbihvcHRpb24sYW5zd2VyLmdldCgnbGlua2VkUXVlc3Rpb24nKT8udmFsdWUpXCI+UXVlc3Rpb24ge3tvcHRpb259fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFuc3dlci5nZXQoJ3ZhbGlkYXRpb24nKT8udmFsdWUgJiYgYW5zd2VyLmdldCgndmFsaWRhdGlvblR5cGUnKT8udmFsdWUgPT09ICdDYXB0dXJlIEltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWU7bGV0IG49aW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNCBpbWFnZS1jb250YWluZXIgcmVmX2ltZ19jb250IG1iLTQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e2Vudmlyb25tZW50LlRyYXhBbnN3ZXJDRE59fXt7aW1hZ2UuaW1hZ2VVUkx9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI5MCVcIiBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdXRvLWFkanUgICAgc3RcIiBhbHQ9XCJUYW5nbyBFeWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPycnIDpvblBvcHVwKGltYWdlLmltYWdlVVJMKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjUgMTEuNUgyNy41TTI3LjUgMTEuNVYxNi41TTI3LjUgMTEuNUwyMS42NjY3IDE3LjMzMzNNMTcuNSAyNi41SDEyLjVNMTIuNSAyNi41VjIxLjVNMTIuNSAyNi41TDE4LjMzMzMgMjAuNjY2N1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTEzXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTEzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTNcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGV1cGxvYWRfdmFsaWRyZWYnK2kraitrK25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiIG5hbWU9XCJhbnN3ZXJGaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJGV2ZW50LnByZXZlbnREZWZhdWx0KCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/ICcnIDogbG9hZEltYWdlRnJvbURldmljZShpLHJlZkltZ1FJZHgsJGV2ZW50LGssJ211bHRpUmVmZXJlbmNlSW1hZ2UnLG4pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInZmlsZXVwbG9hZF92YWxpZHJlZicraStqK2srblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWZJbWdRSWR4PWo7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTIyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNy41IDIxLjVWMjQuODMzM0MyNy41IDI1LjI3NTQgMjcuMzI0NCAyNS42OTkzIDI3LjAxMTggMjYuMDExOEMyNi42OTkzIDI2LjMyNDQgMjYuMjc1NCAyNi41IDI1LjgzMzMgMjYuNUgxNC4xNjY3QzEzLjcyNDYgMjYuNSAxMy4zMDA3IDI2LjMyNDQgMTIuOTg4MiAyNi4wMTE4QzEyLjY3NTYgMjUuNjk5MyAxMi41IDI1LjI3NTQgMTIuNSAyNC44MzMzVjIxLjVNMjQuMTY2NyAxNS42NjY3TDIwIDExLjVNMjAgMTEuNUwxNS44MzMzIDE1LjY2NjdNMjAgMTEuNVYyMS41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MjJcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MjJcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MjJcIiByZXN1bHQ9XCJzaGFwZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8nJyA6Y2xlYXJSZWZlcmVuY2VJbWFnZShpLGosayxuLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUxNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNSAxMy45OTc0SDE0LjE2NjdNMTQuMTY2NyAxMy45OTc0SDI3LjVNMTQuMTY2NyAxMy45OTc0VjI1LjY2NDFDMTQuMTY2NyAyNi4xMDYxIDE0LjM0MjMgMjYuNTMgMTQuNjU0OCAyNi44NDI2QzE0Ljk2NzQgMjcuMTU1MSAxNS4zOTEzIDI3LjMzMDcgMTUuODMzMyAyNy4zMzA3SDI0LjE2NjdDMjQuNjA4NyAyNy4zMzA3IDI1LjAzMjYgMjcuMTU1MSAyNS4zNDUyIDI2Ljg0MjZDMjUuNjU3NyAyNi41MyAyNS44MzMzIDI2LjEwNjEgMjUuODMzMyAyNS42NjQxVjEzLjk5NzRIMTQuMTY2N1pNMTYuNjY2NyAxMy45OTc0VjEyLjMzMDdDMTYuNjY2NyAxMS44ODg3IDE2Ljg0MjMgMTEuNDY0OCAxNy4xNTQ4IDExLjE1MjJDMTcuNDY3NCAxMC44Mzk3IDE3Ljg5MTMgMTAuNjY0MSAxOC4zMzMzIDEwLjY2NDFIMjEuNjY2N0MyMi4xMDg3IDEwLjY2NDEgMjIuNTMyNiAxMC44Mzk3IDIyLjg0NTIgMTEuMTUyMkMyMy4xNTc3IDExLjQ2NDggMjMuMzMzMyAxMS44ODg3IDIzLjMzMzMgMTIuMzMwN1YxMy45OTc0TTE4LjMzMzMgMTguMTY0MVYyMy4xNjQxTTIxLjY2NjcgMTguMTY0MVYyMy4xNjQxXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMTQ1NTdfNjI1MTRcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTQ1NTdfNjI1MTRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyZWZfZGVsX2ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclJlZmVyZW5jZUltYWdlKGksaixrKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDUuMDAxM0g0LjE2NjY3TTQuMTY2NjcgNS4wMDEzSDE3LjVNNC4xNjY2NyA1LjAwMTNWMTYuNjY4QzQuMTY2NjcgMTcuMTEgNC4zNDIyNiAxNy41MzM5IDQuNjU0ODIgMTcuODQ2NUM0Ljk2NzM4IDE4LjE1OSA1LjM5MTMxIDE4LjMzNDYgNS44MzMzMyAxOC4zMzQ2SDE0LjE2NjdDMTQuNjA4NyAxOC4zMzQ2IDE1LjAzMjYgMTguMTU5IDE1LjM0NTIgMTcuODQ2NUMxNS42NTc3IDE3LjUzMzkgMTUuODMzMyAxNy4xMSAxNS44MzMzIDE2LjY2OFY1LjAwMTNINC4xNjY2N1pNNi42NjY2NyA1LjAwMTNWMy4zMzQ2NEM2LjY2NjY3IDIuODkyNjEgNi44NDIyNiAyLjQ2ODY4IDcuMTU0ODIgMi4xNTYxMkM3LjQ2NzM4IDEuODQzNTYgNy44OTEzMSAxLjY2Nzk3IDguMzMzMzMgMS42Njc5N0gxMS42NjY3QzEyLjEwODcgMS42Njc5NyAxMi41MzI2IDEuODQzNTYgMTIuODQ1MiAyLjE1NjEyQzEzLjE1NzcgMi40Njg2OCAxMy4zMzMzIDIuODkyNjEgMTMuMzMzMyAzLjMzNDY0VjUuMDAxM004LjMzMzMzIDkuMTY3OTdWMTQuMTY4TTExLjY2NjcgOS4xNjc5N1YxNC4xNjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0I0MjMxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGJ0bi1saWdodC1wcmltYXJ5IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJkLW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGV1cGxvYWRfJytpK2ora1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCIgbmFtZT1cImFuc3dlckZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCxrKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidmaWxldXBsb2FkXycraStqK2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteC0yXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MDgyXzMxMjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS42NjY3IDMuMzM1MjdWOC4zMzUyN00xOS42NjY3IDguMzM1MjdIMTQuNjY2N00xOS42NjY3IDguMzM1MjdMMTUuOCA0LjcwMTkzQzE0LjkwNDQgMy44MDU4NiAxMy43OTY0IDMuMTUxMjcgMTIuNTc5MyAyLjc5OTI1QzExLjM2MjMgMi40NDcyMiAxMC4wNzU5IDIuNDA5MjMgOC44NDAyNSAyLjY4ODgyQzcuNjA0NTYgMi45Njg0MSA2LjQ1OTg0IDMuNTU2NDYgNS41MTI5IDQuMzk4MTJDNC41NjU5NSA1LjIzOTc3IDMuODQ3NjUgNi4zMDc1OSAzLjQyNTAxIDcuNTAxOTNNMS4zMzMzNCAxNi42Njg2VjExLjY2ODZNMS4zMzMzNCAxMS42Njg2SDYuMzMzMzRNMS4zMzMzNCAxMS42Njg2TDUuMjAwMDEgMTUuMzAxOUM2LjA5NTYzIDE2LjE5OCA3LjIwMzY1IDE2Ljg1MjYgOC40MjA2OCAxNy4yMDQ2QzkuNjM3NzEgMTcuNTU2NyAxMC45MjQxIDE3LjU5NDYgMTIuMTU5OCAxNy4zMTUxQzEzLjM5NTUgMTcuMDM1NSAxNC41NDAyIDE2LjQ0NzQgMTUuNDg3MSAxNS42MDU4QzE2LjQzNDEgMTQuNzY0MSAxNy4xNTI0IDEzLjY5NjMgMTcuNTc1IDEyLjUwMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjbGlwMF80MDgyXzMxMjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlJldXBsb2FkIEltYWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWUubGVuZ3RoID49IDUgfHwgcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuLWxpZ2h0LWRpc2JhbGVkIGJ0biBhZGQtcmVmLWJ0biBteS0yIGJvcmRlckNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2NDA2VjE1LjgzMDdNNC4xNjc5NyA5Ljk5NzRIMTUuODM0NlwiIHN0cm9rZT1cIiM2QkNBRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPHNwYW4+QWRkIFJlZmVyZW5jZSBJbWFnZTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSAmJiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyxrKT8udmFsdWUubGVuZ3RoIDwgNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4gYWRkLXJlZi1idG4gYnRuLWxpZ2h0LXByaW1hcnkgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInZmlsZXVwbG9hZF92YWxpZEltYWdlMScraStqK2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiIG5hbWU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQsaywnbXVsdGlSZWZlcmVuY2VJbWFnZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiJ2ZpbGV1cGxvYWRfdmFsaWRJbWFnZTEnK2kraitrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj4gPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgNC4xNjc5N1YxNS44MzQ2TTQuMTY2NjkgMTAuMDAxM0gxNS44MzM0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPkFkZCBSZWZlcmVuY2UgSW1hZ2UgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBteC0yIGJ0bi1zZWMgbXQtNiB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBteC0wIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhbGxvd1VwbG9hZGZyb21HYWxsZXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3cgdXBsb2FkIGZyb20gZ2FsbGVyeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiICpuZ0lmPVwidXNlclR5cGUgJiYgdXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJmczE2LTYwMCBweC0xMlwiPiBSdW4gQUkg4pyoPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBhbGlnbi1pdGVtcy1jZW50ZXIgYnRuLXNlYyBtbC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gKGNsaWNrKT1cIlJ1bkFJTmV3KGksaixrKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicnVuQUlcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgKGNsaWNrKT1cIlJ1bkFJTmV3KGksaixrLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIFtuZ0NsYXNzXT1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlSW1hZ2UnID8gJ210LTEnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVuYWJsZSBBSSB3aGVyZSB5b3Ugd2FudCB0YW5nbyB0byBpZGVudGlmeSwgdHJhY2sgYW5kIGFsZXJ0IGluc3RhbmNlcy5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10ZXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjMwMV8xMDAwMzgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy45OTk2NyAxMC42NjU0VjcuOTk4N003Ljk5OTY3IDUuMzMyMDNIOC4wMDYzNE0xNC42NjYzIDcuOTk4N0MxNC42NjYzIDExLjY4MDYgMTEuNjgxNiAxNC42NjU0IDcuOTk5NjcgMTQuNjY1NEM0LjMxNzc4IDE0LjY2NTQgMS4zMzMwMSAxMS42ODA2IDEuMzMzMDEgNy45OTg3QzEuMzMzMDEgNC4zMTY4IDQuMzE3NzggMS4zMzIwMyA3Ljk5OTY3IDEuMzMyMDNDMTEuNjgxNiAxLjMzMjAzIDE0LjY2NjMgNC4zMTY4IDE0LjY2NjMgNy45OTg3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIzMDFfMTAwMDM4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/Lmhhc0Vycm9yKCdkdXBsaWNhdGVTdHJpbmcnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXQtMlwiPiogU2FtZSBhbnN3ZXIgY2Fubm90IGJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdGVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ211bHRpcGxlY2hvaWNlbXVsdGlwbGUnIHx8IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZWNob2ljZXNpbmdsZScpICYmICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dBZGRBbnN3ZXIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJzJyk/LnZhbHVlKSAmJiAhcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiQWRkTW9yZUFucyhpLGoscXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBjb2wtbGctMTIgYnRuLWxpZ2h0LXByaW1hcnkgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIE1vcmUgQW5zd2VyPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEltYWdlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlsnaW1hZ2UnLCdkZXNjcmlwdGl2ZUltYWdlJywnbXVsdGlwbGVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUdyb3VwTmFtZT1cImFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlO2xldCBuPWluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNCBpbWFnZS1jb250YWluZXIgcmVmX2ltZ19jb250IHJlZl9pbWdfY29udCBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROfX17e2ltYWdlLmltYWdlVVJMfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI5MCVcIiBoZWlnaHQ9XCIzMDBweFwiIGNsYXNzPVwiYXV0by1hZGp1c3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiVGFuZ28gRXllXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWljb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uUG9wdXAoaW1hZ2UuaW1hZ2VVUkwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE0NTU3XzYyNTEzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDExLjVIMjcuNU0yNy41IDExLjVWMTYuNU0yNy41IDExLjVMMjEuNjY2NyAxNy4zMzMzTTE3LjUgMjYuNUgxMi41TTEyLjUgMjYuNVYyMS41TTEyLjUgMjYuNUwxOC4zMzMzIDIwLjY2NjdcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xNDU1N182MjUxM1wiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUxM1wiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiIFtpZF09XCInZmlsZXVwbG9hZEltYWdlXzQ1JytuXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAkZXZlbnQucHJldmVudERlZmF1bHQoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCwtMSwnbXVsdGlSZWZlcmVuY2VJbWFnZScsbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInZmlsZXVwbG9hZEltYWdlXzQ1JytuXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8xNDU1N182MjUyMilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjcuNSAyMS41VjI0LjgzMzNDMjcuNSAyNS4yNzU0IDI3LjMyNDQgMjUuNjk5MyAyNy4wMTE4IDI2LjAxMThDMjYuNjk5MyAyNi4zMjQ0IDI2LjI3NTQgMjYuNSAyNS44MzMzIDI2LjVIMTQuMTY2N0MxMy43MjQ2IDI2LjUgMTMuMzAwNyAyNi4zMjQ0IDEyLjk4ODIgMjYuMDExOEMxMi42NzU2IDI1LjY5OTMgMTIuNSAyNS4yNzU0IDEyLjUgMjQuODMzM1YyMS41TTI0LjE2NjcgMTUuNjY2N0wyMCAxMS41TTIwIDExLjVMMTUuODMzMyAxNS42NjY3TTIwIDExLjVWMjEuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTIyXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTIyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xNDU1N182MjUyMlwiIHJlc3VsdD1cInNoYXBlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyc6IGNsZWFyUmVmZXJlbmNlSW1hZ2UoaSxqLC0xLG4sJ211bHRpUmVmZXJlbmNlSW1hZ2UnKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTQ1NTdfNjI1MTQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUgMTMuOTk3NEgxNC4xNjY3TTE0LjE2NjcgMTMuOTk3NEgyNy41TTE0LjE2NjcgMTMuOTk3NFYyNS42NjQxQzE0LjE2NjcgMjYuMTA2MSAxNC4zNDIzIDI2LjUzIDE0LjY1NDggMjYuODQyNkMxNC45Njc0IDI3LjE1NTEgMTUuMzkxMyAyNy4zMzA3IDE1LjgzMzMgMjcuMzMwN0gyNC4xNjY3QzI0LjYwODcgMjcuMzMwNyAyNS4wMzI2IDI3LjE1NTEgMjUuMzQ1MiAyNi44NDI2QzI1LjY1NzcgMjYuNTMgMjUuODMzMyAyNi4xMDYxIDI1LjgzMzMgMjUuNjY0MVYxMy45OTc0SDE0LjE2NjdaTTE2LjY2NjcgMTMuOTk3NFYxMi4zMzA3QzE2LjY2NjcgMTEuODg4NyAxNi44NDIzIDExLjQ2NDggMTcuMTU0OCAxMS4xNTIyQzE3LjQ2NzQgMTAuODM5NyAxNy44OTEzIDEwLjY2NDEgMTguMzMzMyAxMC42NjQxSDIxLjY2NjdDMjIuMTA4NyAxMC42NjQxIDIyLjUzMjYgMTAuODM5NyAyMi44NDUyIDExLjE1MjJDMjMuMTU3NyAxMS40NjQ4IDIzLjMzMzMgMTEuODg4NyAyMy4zMzMzIDEyLjMzMDdWMTMuOTk3NE0xOC4zMzMzIDE4LjE2NDFWMjMuMTY0MU0yMS42NjY3IDE4LjE2NDFWMjMuMTY0MVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE0NTU3XzYyNTE0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTE0XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzE0NTU3XzYyNTE0XCIgcmVzdWx0PVwic2hhcGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyZWZfZGVsX2ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIihxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgcXVlc3Rpb24uZ2V0KCdydW5BSURlZmF1bHQnKT8udmFsdWUpID8gJyc6IGNsZWFyUmVmZXJlbmNlSW1hZ2UoaSxqKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgW3N0eWxlXT1cIihxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgcXVlc3Rpb24uZ2V0KCdydW5BSURlZmF1bHQnKT8udmFsdWUpID8gJ2N1cnNvcjpkZWZhdWx0JzonJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMi41IDUuMDAxM0g0LjE2NjY3TTQuMTY2NjcgNS4wMDEzSDE3LjVNNC4xNjY2NyA1LjAwMTNWMTYuNjY4QzQuMTY2NjcgMTcuMTEgNC4zNDIyNiAxNy41MzM5IDQuNjU0ODIgMTcuODQ2NUM0Ljk2NzM4IDE4LjE1OSA1LjM5MTMxIDE4LjMzNDYgNS44MzMzMyAxOC4zMzQ2SDE0LjE2NjdDMTQuNjA4NyAxOC4zMzQ2IDE1LjAzMjYgMTguMTU5IDE1LjM0NTIgMTcuODQ2NUMxNS42NTc3IDE3LjUzMzkgMTUuODMzMyAxNy4xMSAxNS44MzMzIDE2LjY2OFY1LjAwMTNINC4xNjY2N1pNNi42NjY2NyA1LjAwMTNWMy4zMzQ2NEM2LjY2NjY3IDIuODkyNjEgNi44NDIyNiAyLjQ2ODY4IDcuMTU0ODIgMi4xNTYxMkM3LjQ2NzM4IDEuODQzNTYgNy44OTEzMSAxLjY2Nzk3IDguMzMzMzMgMS42Njc5N0gxMS42NjY3QzEyLjEwODcgMS42Njc5NyAxMi41MzI2IDEuODQzNTYgMTIuODQ1MiAyLjE1NjEyQzEzLjE1NzcgMi40Njg2OCAxMy4zMzMzIDIuODkyNjEgMTMuMzMzMyAzLjMzNDY0VjUuMDAxM004LjMzMzMzIDkuMTY3OTdWMTQuMTY4TTExLjY2NjcgOS4xNjc5N1YxNC4xNjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjQyMzE4XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTMgYnRuIGJ0bi1saWdodC1wcmltYXJ5IG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImQtbm9uZVwiIGlkPVwiZmlsZXVwbG9hZFwiIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsb2FkSW1hZ2VGcm9tRGV2aWNlKGkscmVmSW1nUUlkeCwkZXZlbnQpXCIgKm5nSWY9XCIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlICE9PSAnaW1hZ2UnIHx8IChxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgIXF1ZXN0aW9uLmdldCgncnVuQUlEZWZhdWx0Jyk/LnZhbHVlKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWxldXBsb2FkXCIgKGNsaWNrKT1cInJlZkltZ1FJZHg9ajtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cIm14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIxIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MDgyXzMxMjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuNjY2NyAzLjMzNTI3VjguMzM1MjdNMTkuNjY2NyA4LjMzNTI3SDE0LjY2NjdNMTkuNjY2NyA4LjMzNTI3TDE1LjggNC43MDE5M0MxNC45MDQ0IDMuODA1ODYgMTMuNzk2NCAzLjE1MTI3IDEyLjU3OTMgMi43OTkyNUMxMS4zNjIzIDIuNDQ3MjIgMTAuMDc1OSAyLjQwOTIzIDguODQwMjUgMi42ODg4MkM3LjYwNDU2IDIuOTY4NDEgNi40NTk4NCAzLjU1NjQ2IDUuNTEyOSA0LjM5ODEyQzQuNTY1OTUgNS4yMzk3NyAzLjg0NzY1IDYuMzA3NTkgMy40MjUwMSA3LjUwMTkzTTEuMzMzMzQgMTYuNjY4NlYxMS42Njg2TTEuMzMzMzQgMTEuNjY4Nkg2LjMzMzM0TTEuMzMzMzQgMTEuNjY4Nkw1LjIwMDAxIDE1LjMwMTlDNi4wOTU2MyAxNi4xOTggNy4yMDM2NSAxNi44NTI2IDguNDIwNjggMTcuMjA0NkM5LjYzNzcxIDE3LjU1NjcgMTAuOTI0MSAxNy41OTQ2IDEyLjE1OTggMTcuMzE1MUMxMy4zOTU1IDE3LjAzNTUgMTQuNTQwMiAxNi40NDc0IDE1LjQ4NzEgMTUuNjA1OEMxNi40MzQxIDE0Ljc2NDEgMTcuMTUyNCAxMy42OTYzIDE3LjU3NSAxMi41MDE5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDA4Ml8zMTIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlJldXBsb2FkIEltYWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlICYmIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUubGVuZ3RoIDwgNSAmJiAhcXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4gYWRkLXJlZi1idG4gYnRuLWxpZ2h0LXByaW1hcnkgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgaWQ9XCJmaWxldXBsb2FkcmVmSW1hZ2UxXCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxvYWRJbWFnZUZyb21EZXZpY2UoaSxyZWZJbWdRSWR4LCRldmVudCwtMSwnbXVsdGlSZWZlcmVuY2VJbWFnZScpXCIgKm5nSWY9XCIocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlICE9PSAnaW1hZ2UnIHx8IChxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdpbWFnZScgJiYgIXF1ZXN0aW9uLmdldCgncnVuQUlEZWZhdWx0Jyk/LnZhbHVlKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInBvaW50ZXJcIiBmb3I9XCJmaWxldXBsb2FkcmVmSW1hZ2UxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmSW1nUUlkeD1qO1wiPiA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgNC4xNjc5N1YxNS44MzQ2TTQuMTY2NjkgMTAuMDAxM0gxNS44MzM0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPkFkZCBSZWZlcmVuY2UgSW1hZ2UgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlLmxlbmd0aCA+PSA1IHx8IHF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGctMyBidG4tbGlnaHQtZGlzYmFsZWQgYnRuIGFkZC1yZWYtYnRuIG15LTIgYm9yZGVyQ2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwb2ludGVyXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDEzIDQuMTY0MDZWMTUuODMwN000LjE2Nzk3IDkuOTk3NEgxNS44MzQ2XCIgc3Ryb2tlPVwiIzZCQ0FGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPHNwYW4+QWRkIFJlZmVyZW5jZSBJbWFnZTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBteC0yIGJ0bi1zZWMgbXQtNiB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInRvY1wiIHZhbHVlPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFsbG93VXBsb2FkZnJvbUdhbGxlcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvdyB1cGxvYWQgZnJvbSBnYWxsZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoWydtdWx0aXBsZUltYWdlJ10uaW5jbHVkZXMocXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlKSAmJiBnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlID09PSAnJykgPyAnY29sLWxnLTQgbXQtNicgOiBbJ2ltYWdlJywnZGVzY3JpcHRpdmVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSkgPyAnY29sLWxnLTInIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiAqbmdJZj1cIihbJ211bHRpcGxlSW1hZ2UnXS5pbmNsdWRlcyhxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUpICYmIGdldEFuc3dlckZvcm1Hcm91cF9Gb3JtQ29udHJvbChpLGosJ211bHRpUmVmZXJlbmNlSW1hZ2UnKT8udmFsdWUgPT09ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvNCcgKyBpICsgalwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInRleHRcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzQnICsgaSArIGpcIj5UZXh0PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGl2ZXR5cGVcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBbaWRdPVwiJ2lubGluZVJhZGlvNScgKyBpICsgalwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm51bWJlclwiIFtuYW1lXT1cIidkZXNjcmlwdGl2ZXR5cGUnXCIgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyB0cnVlIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkc2NyaXB0aXZlVHlwZVwiIFtmb3JdPVwiJ2lubGluZVJhZGlvNScgKyBpICsgalwiPk51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRBbnN3ZXJGb3JtR3JvdXBfRm9ybUNvbnRyb2woaSxqLCdtdWx0aVJlZmVyZW5jZUltYWdlJyk/LnZhbHVlICYmIFsnaW1hZ2UnLCdtdWx0aXBsZUltYWdlJywnZGVzY3JpcHRpdmVJbWFnZSddLmluY2x1ZGVzKHF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVJbWFnZScgPyAnY29sLWxnLTUgZC1mbGV4IG10LTYnIDogJ2NvbC1sZy0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiICpuZ0lmPVwicXVlc3Rpb24uZ2V0KCdhbnN3ZXJUeXBlJyk/LnZhbHVlID09PSAnbXVsdGlwbGVJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzYnICsgaSArIGpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ0ZXh0XCIgW25hbWVdPVwiJ2Rlc2NyaXB0aXZldHlwZSdcIiBbYXR0ci5kaXNhYmxlZF09XCJxdWVzdGlvbi5nZXQoJ2Rpc2FibGVSdW5BSScpPy52YWx1ZSA/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImN1cnNvci1wb2ludGVyIGRzY3JpcHRpdmVUeXBlXCIgW2Zvcl09XCInaW5saW5lUmFkaW82JyArIGkgKyBqXCI+VGV4dDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpdmV0eXBlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgW2lkXT1cIidpbmxpbmVSYWRpbzYnICsgaSArIGpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJudW1iZXJcIiBbbmFtZV09XCInZGVzY3JpcHRpdmV0eXBlJ1wiIFthdHRyLmRpc2FibGVkXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZHNjcmlwdGl2ZVR5cGVcIiBbZm9yXT1cIidpbmxpbmVSYWRpbzYnICsgaSArIGpcIj5OdW1iZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgKm5nSWY9XCJ1c2VyVHlwZSAmJiB1c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImZzMTYtNjAwIHB4LTEyXCI+IFJ1biBBSSDinKg8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIGFsaWduLWl0ZW1zLWNlbnRlciBidG4tc2VjIG1sLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwiUnVuQUlOZXcoaSxqKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicnVuQUlcIiBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgKGNsaWNrKT1cIlJ1bkFJTmV3KGksaiwtMSwkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBbbmdDbGFzc109XCJxdWVzdGlvbi5nZXQoJ2Fuc3dlclR5cGUnKT8udmFsdWUgPT09ICdtdWx0aXBsZUltYWdlJyA/ICdtdC0xJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFbmFibGUgQUkgd2hlcmUgeW91IHdhbnQgdGFuZ28gdG8gaWRlbnRpZnksIHRyYWNrIGFuZCBhbGVydCBpbnN0YW5jZXMuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIzMDFfMTAwMDM4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuOTk5NjcgMTAuNjY1NFY3Ljk5ODdNNy45OTk2NyA1LjMzMjAzSDguMDA2MzRNMTQuNjY2MyA3Ljk5ODdDMTQuNjY2MyAxMS42ODA2IDExLjY4MTYgMTQuNjY1NCA3Ljk5OTY3IDE0LjY2NTRDNC4zMTc3OCAxNC42NjU0IDEuMzMzMDEgMTEuNjgwNiAxLjMzMzAxIDcuOTk4N0MxLjMzMzAxIDQuMzE2OCA0LjMxNzc4IDEuMzMyMDMgNy45OTk2NyAxLjMzMjAzQzExLjY4MTYgMS4zMzIwMyAxNC42NjYzIDQuMzE2OCAxNC42NjYzIDcuOTk4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMzAxXzEwMDAzOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBWaWRlbyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3ZpZGVvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgY29sLWxnLTQgZm9ybS1jaGVjayBmb3JtLXN3aXRjaCB0ZXh0LWxlZnQgYWxpZ24taXRlbXMtY2VudGVyIGJ0bi1zZWMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG14LTAgcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9jXCIgdmFsdWU9XCIxXCIgbmdEZWZhdWx0Q29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dVcGxvYWRmcm9tR2FsbGVyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiPkFsbG93IHVwbG9hZCBmcm9tIGdhbGxlcnk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ3RpbWUnXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUdyb3VwTmFtZT1cImFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1sZy00IGJ0bi1zZWMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTIwMHB4XCIgdHlwZT1cInRpbWVcIiBuYW1lPVwidGltZVwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLmdldCgnYW5zd2VyVHlwZScpPy52YWx1ZSA9PT0gJ2xpbmVhcnNjYWxlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBmb3JtR3JvdXBOYW1lPVwiYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1zZWMgbXQtMiBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNvbGlkIGZsYXRwaWNrci1pbnB1dCB3LTEwMHB4XCIgdHlwZT1cIm51bWJlclwiIG5hbWU9XCJzdGFydFwiIG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwicmFuZ2VTdGFydFwiPiAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXNlYyBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTE2cHhcIj50bzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgYnRuLXNlYyBtdC0yIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc29saWQgZmxhdHBpY2tyLWlucHV0IHctMTAwcHhcIiB0eXBlPVwibnVtYmVyXCIgbmFtZT1cInN0YXJ0XCIgbmdEZWZhdWx0Q29udHJvbCBmb3JtQ29udHJvbE5hbWU9XCJyYW5nZUVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTFcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAoY2xpY2spPVwicXVlc3Rpb24uZ2V0KCdkaXNhYmxlUnVuQUknKT8udmFsdWUgPyAnJyA6IGNsb25lUXVlc3Rpb24oaSxqKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRHVwbGljYXRlXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzMzODVfMTA1NzgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjY2MyAxMi40OTkzSDMuMzMzMjlDMi44OTEyNyAxMi40OTkzIDIuNDY3MzQgMTIuMzIzOCAyLjE1NDc4IDEyLjAxMTJDMS44NDIyMiAxMS42OTg2IDEuNjY2NjMgMTEuMjc0NyAxLjY2NjYzIDEwLjgzMjdWMy4zMzI2OEMxLjY2NjYzIDIuODkwNjUgMS44NDIyMiAyLjQ2NjczIDIuMTU0NzggMi4xNTQxN0MyLjQ2NzM0IDEuODQxNjEgMi44OTEyNyAxLjY2NjAyIDMuMzMzMjkgMS42NjYwMkgxMC44MzMzQzExLjI3NTMgMS42NjYwMiAxMS42OTkyIDEuODQxNjEgMTIuMDExOCAyLjE1NDE3QzEyLjMyNDQgMi40NjY3MyAxMi41IDIuODkwNjUgMTIuNSAzLjMzMjY4VjQuMTY2MDJNOS4xNjY2MyA3LjQ5OTM1SDE2LjY2NjZDMTcuNTg3MSA3LjQ5OTM1IDE4LjMzMzMgOC4yNDU1NCAxOC4zMzMzIDkuMTY2MDJWMTYuNjY2QzE4LjMzMzMgMTcuNTg2NSAxNy41ODcxIDE4LjMzMjcgMTYuNjY2NiAxOC4zMzI3SDkuMTY2NjNDOC4yNDYxNSAxOC4zMzI3IDcuNDk5OTYgMTcuNTg2NSA3LjQ5OTk2IDE2LjY2NlY5LjE2NjAyQzcuNDk5OTYgOC4yNDU1NCA4LjI0NjE1IDcuNDk5MzUgOS4xNjY2MyA3LjQ5OTM1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyNEMEQ1REQnIDogJyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzMzODVfMTA1NzhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJycgOiBkZWxldGVRdWVzdGlvbihpLGopXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogMjRweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHF1ZXN0aW9uXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdGVzdFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIFtuZ2JUb29sdGlwXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJ1RoZSBkZWxldGUgb3B0aW9uIGlzIGRpc2FibGVkIGFzIHRoZSBydW5BSSBpcyBlbmFibGVkJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIuNSA0Ljk5OTM1SDQuMTY2NjdNNC4xNjY2NyA0Ljk5OTM1SDE3LjVNNC4xNjY2NyA0Ljk5OTM1VjE2LjY2NkM0LjE2NjY3IDE3LjEwOCA0LjM0MjI2IDE3LjUzMiA0LjY1NDgyIDE3Ljg0NDVDNC45NjczOCAxOC4xNTcxIDUuMzkxMzEgMTguMzMyNyA1LjgzMzMzIDE4LjMzMjdIMTQuMTY2N0MxNC42MDg3IDE4LjMzMjcgMTUuMDMyNiAxOC4xNTcxIDE1LjM0NTIgMTcuODQ0NUMxNS42NTc3IDE3LjUzMiAxNS44MzMzIDE3LjEwOCAxNS44MzMzIDE2LjY2NlY0Ljk5OTM1SDQuMTY2NjdaTTYuNjY2NjcgNC45OTkzNVYzLjMzMjY4QzYuNjY2NjcgMi44OTA2NSA2Ljg0MjI2IDIuNDY2NzMgNy4xNTQ4MiAyLjE1NDE3QzcuNDY3MzggMS44NDE2MSA3Ljg5MTMxIDEuNjY2MDIgOC4zMzMzMyAxLjY2NjAySDExLjY2NjdDMTIuMTA4NyAxLjY2NjAyIDEyLjUzMjYgMS44NDE2MSAxMi44NDUyIDIuMTU0MTdDMTMuMTU3NyAyLjQ2NjczIDEzLjMzMzMgMi44OTA2NSAxMy4zMzMzIDMuMzMyNjhWNC45OTkzNU04LjMzMzMzIDkuMTY2MDJWMTQuMTY2TTExLjY2NjcgOS4xNjYwMlYxNC4xNjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInF1ZXN0aW9uLmdldCgnZGlzYWJsZVJ1bkFJJyk/LnZhbHVlID8gJyNEMEQ1REQnIDogJyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB4LTBcIiAqbmdJZj1cIkNoZWNrbGlzdEZvcm0uZ2V0KCdzZWN0aW9ucycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1jYXJkIHB5LTcgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiYWRkTmV3UXVlc3Rpb24oc2VjdGlvbkluZGV4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGxcIiBjbGFzcz1cIm10LTIgYnRuLXNlYyBwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk5OSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY2NiA5Ljk5OTM1SDE1LjgzMzNcIiBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gQWRkIE5ldyBRdWVzdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcGwtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtY2FyZCBweS03IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImFkZE5ld1NlY3Rpb24oKVwiIGNsYXNzPVwibXQtMiBweC0wIGJ0bi1zZWMgcG9pbnRlclwiPiA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTk5IDQuMTY2MDJWMTUuODMyN000LjE2NjY2IDkuOTk5MzVIMTUuODMzM1wiIHN0cm9rZT1cIiMzNDQwNTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBBZGQgTmV3IFNlY3Rpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|