@bnsights/bbsf-admin-portal 1.0.73 → 1.0.75

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.
@@ -38,7 +38,6 @@ export class PreviewComponent extends AppBaseComponent {
38
38
  this.breadCrumb = [];
39
39
  this.breadCrumb.push(new BreadCrumb(this.l("Home"), false, "/"), new BreadCrumb(this.l("Survey_Details"), false, `../../../../info/${this.surveyID}`), new BreadCrumb(this.l("Preview_Details"), true));
40
40
  this.pageHeaderOptions = new PageHeaderOptions();
41
- this.pageHeaderOptions.TitleValue = this.l("Preview_Details");
42
41
  this.pageHeaderOptions.SearchTextBox.Active = false;
43
42
  this.pageHeaderOptions.BreadCrumb.Active = true;
44
43
  this.pageHeaderOptions.BreadCrumb.BreadCrumbItems = this.breadCrumb;
@@ -56,6 +55,7 @@ export class PreviewComponent extends AppBaseComponent {
56
55
  this.previewSurveyOptions.OnSuccessHandler = this.onSuccessDeleteHandler;
57
56
  this.previewSurveyOptions.DisableSuccessNotification = true;
58
57
  this.surveyInfo = res;
58
+ this.pageHeaderOptions.TitleValue = this.surveyInfo.title.current_FailOver;
59
59
  if (this.surveyInfo.declaration.english || this.surveyInfo.declaration.arabic) {
60
60
  this.declarationCheckBoxForm = new CheckBoxOptions();
61
61
  this.declarationCheckBoxForm.Name = "declaration";
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
138
138
  type: ViewChild,
139
139
  args: ['PreviewQuestionModal', { static: false }]
140
140
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFvQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBbUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcFEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFJeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUt2RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBb0JwRCxZQUFvQixRQUFrQixFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFDbEgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdC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R0FBaEIsZ0JBQWdCLHdNQ2I3Qixvc0VBeUNBOzRGRDVCYSxnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFdBQVcsRUFBRSwwQkFBMEI7aUJBQ3hDO3dKQVF1RCxvQkFBb0I7c0JBQXpFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50LCBCcmVhZENydW1iLCBDaGVja0JveE9wdGlvbnMsIENvbnRyb2xMYXlvdXQsIERyb3Bkb3duT3B0aW9ucywgRm9yY2VEaXJlY3Rpb24sIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdlSGVhZGVyT3B0aW9ucywgUmFkaW9CdXR0b25PcHRpb25zLCBUZXh0QXJlYU9wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1PcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktZm9ybS1vcHRpb25zJztcclxuaW1wb3J0IHsgU3VydmV5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3N1cnZleS1mb3JtL3N1cnZleS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1cnZleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9TZXJ2aWNlcy9zdXJ2ZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXVkaWVuY2VUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vRW51bXMvRW51bXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcmV2aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlldy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByZXZpZXdDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwYWdlSGVhZGVyT3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcbiAgYnJlYWRDcnVtYjogQnJlYWRDcnVtYltdO1xyXG4gIHByZXZpZXdGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc3VydmV5SUQ6IGFueTtcclxuICBzdXJ2ZXlGb3JtRmllbGQ6IFN1cnZleUZvcm1PcHRpb25zO1xyXG4gIGlzRGF0ZUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ1ByZXZpZXdRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByZXZpZXdRdWVzdGlvbk1vZGFsOiBTdXJ2ZXlGb3JtQ29tcG9uZW50O1xyXG4gIHByZXZpZXdTdXJ2ZXlPcHRpb25zOiBhbnk7XHJcbiAgc3VydmV5SW5mbzogYW55O1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIGF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uOiBSYWRpb0J1dHRvbk9wdGlvbnM7XHJcbiAgYXVkaWVuY2VUeXBlSUQ6IHN0cmluZztcclxuICBzaG93QXVkaWVuY2VUeXBlOiBib29sZWFuID0gZmFsc2VcclxuICBzaG93SW50ZXJuYWw6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHNob3dFeHRlcm5hbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgbmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgZW1haWw6IFRleHRCb3hPcHRpb25zO1xyXG4gIGRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtOiBDaGVja0JveE9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIHN1cnZleVNlcnZpY2U6IFN1cnZleVNlcnZpY2UsIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLnN1cnZleUlEID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJpZFwiXTtcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlSUQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1tcImF1ZGllbmNlSURcIl07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnJlYWRDcnVtYiA9IFtdO1xyXG4gICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5X0RldGFpbHNcIiksIGZhbHNlLCBgLi4vLi4vLi4vLi4vaW5mby8ke3RoaXMuc3VydmV5SUR9YCksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlByZXZpZXdfRGV0YWlsc1wiKSwgdHJ1ZSkpO1xyXG5cclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuVGl0bGVWYWx1ZSA9dGhpcy5sKFwiUHJldmlld19EZXRhaWxzXCIpO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5TZWFyY2hUZXh0Qm94LkFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkFjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQnJlYWRDcnVtYkl0ZW1zID0gdGhpcy5icmVhZENydW1iO1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5hdWRpZW5jZVR5cGVSYWRpb0J1dHRvbiA9IG5ldyBSYWRpb0J1dHRvbk9wdGlvbnMoKTtcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlUmFkaW9CdXR0b24uTmFtZSA9IFwiQXVkaWVuY2VUeXBlXCJcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlUmFkaW9CdXR0b24uVmFsdWUgPUF1ZGllbmNlVHlwZS5JbnRlcm5hbCBhcyBhbnlcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlUmFkaW9CdXR0b24uSXRlbXMgPSBbeyBUZXh0OiB0aGlzLmwoJ0ludGVybmFsVXNlcnMnKSwgVmFsdWU6IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCB9LCB7IFRleHQ6IHRoaXMubCgnRXh0ZXJuYWxVc2VycycpLCBWYWx1ZTogQXVkaWVuY2VUeXBlLkV4dGVybmFsIH1dXHJcblxyXG4gICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcblxyXG5cclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5wcmV2aWV3KHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnByZXZpZXdGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgICB0aGlzLnByZXZpZXdTdXJ2ZXlPcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5wcmV2aWV3Rm9ybTtcclxuICAgICAgdGhpcy5wcmV2aWV3U3VydmV5T3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRQcmV2aWV3TW9kZWw7XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRQcmV2aWV3RnVuY3Rpb247XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25TdWNjZXNzRGVsZXRlSGFuZGxlcjtcclxuICAgICAgdGhpcy5wcmV2aWV3U3VydmV5T3B0aW9ucy5EaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLnN1cnZleUluZm8gPSByZXMgYXMgYW55XHJcblxyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmVuZ2xpc2ggfHwgdGhpcy5zdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmFyYWJpYykge1xyXG4gICAgICAgIHRoaXMuZGVjbGFyYXRpb25DaGVja0JveEZvcm0gPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbkNoZWNrQm94Rm9ybS5OYW1lID0gXCJkZWNsYXJhdGlvblwiO1xyXG4gICAgICAgIHRoaXMuZGVjbGFyYXRpb25DaGVja0JveEZvcm0uTGFiZWxWYWx1ZSA9IHRoaXMuRU4gPyB0aGlzLnN1cnZleUluZm8uZGVjbGFyYXRpb24uZW5nbGlzaCA6IHRoaXMuc3VydmV5SW5mby5kZWNsYXJhdGlvbi5hcmFiaWM7XHJcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbkNoZWNrQm94Rm9ybS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQgPSBuZXcgU3VydmV5Rm9ybU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuTmFtZSA9IFwiU3VydmV5RmllbGRzXCI7XHJcbiAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5hdWRpZW5jZVR5cGVJRCkge1xyXG4gICAgICAgIGNhc2UgQXVkaWVuY2VUeXBlLkJvdGg6XHJcbiAgICAgICAgICB0aGlzLnNob3dBdWRpZW5jZVR5cGUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUXVlc3Rpb25MaXN0ID0gdGhpcy5zdXJ2ZXlJbmZvLnF1ZXN0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCB8fCBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0V4dGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEF1ZGllbmNlVHlwZS5JbnRlcm5hbDpcclxuICAgICAgICAgIHRoaXMuc2hvd0F1ZGllbmNlVHlwZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93SW50ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdCA9IHRoaXMuc3VydmV5SW5mby5xdWVzdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuSW50ZXJuYWwgfHwgaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuQm90aCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEF1ZGllbmNlVHlwZS5FeHRlcm5hbDpcclxuICAgICAgICAgIHRoaXMuc2hvd0F1ZGllbmNlVHlwZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93SW50ZXJuYWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0V4dGVybmFsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZEV4dGVybmFsQ29udHJvbHMoKVxyXG4gICAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUXVlc3Rpb25MaXN0ID0gdGhpcy5zdXJ2ZXlJbmZvLnF1ZXN0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5FeHRlcm5hbCB8fCBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlzRGF0ZUxvYWRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFByZXZpZXdNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5wcmV2aWV3Rm9ybS52YWx1ZTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChyZXN1bHRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcbiAgZ2V0UHJldmlld0Z1bmN0aW9uID0gKG1vZGFsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdClcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBDaGFuZ2VBdWRpZW5jZVR5cGVWYWx1ZSh2YWx1ZSkge1xyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlIEF1ZGllbmNlVHlwZS5JbnRlcm5hbDpcclxuICAgICAgICB0aGlzLnNob3dJbnRlcm5hbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QgPSB0aGlzLnN1cnZleUluZm8ucXVlc3Rpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkludGVybmFsIHx8IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIEF1ZGllbmNlVHlwZS5FeHRlcm5hbDpcclxuICAgICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dFeHRlcm5hbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRFeHRlcm5hbENvbnRyb2xzKClcclxuICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdCA9IHRoaXMuc3VydmV5SW5mby5xdWVzdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuRXh0ZXJuYWwgfHwgaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuQm90aCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEV4dGVybmFsQ29udHJvbHMoKVxyXG4gIHtcclxuICAgIHRoaXMubmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5uYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMubmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCJcclxuICAgIHRoaXMubmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIlxyXG4gICAgdGhpcy5uYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5uYW1lLk1heExlbmd0aCA9IDEwMDtcclxuICAgIHRoaXMubmFtZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWxcclxuXHJcbiAgICB0aGlzLmVtYWlsID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLmVtYWlsLk5hbWUgPSBcIkVtYWlsXCJcclxuICAgIHRoaXMuZW1haWwuTGFiZWxLZXkgPSBcIkVtYWlsXCJcclxuICAgIHRoaXMuZW1haWwuVHlwZSA9IElucHV0VHlwZS5FbWFpbFxyXG4gICAgdGhpcy5lbWFpbC5Jc1JlcXVpcmVkID0gdHJ1ZVxyXG4gICAgdGhpcy5lbWFpbC5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWxcclxuICAgIHRoaXMuZW1haWwuRm9yY2VEaXJlY3Rpb24gPSBGb3JjZURpcmVjdGlvbi5FbmdsaXNoXHJcbiAgICB0aGlzLmVtYWlsLk1heExlbmd0aCA9IDEwMDtcclxuICB9XHJcbn1cclxuIiwiPGJic2YtcGFnZS1oZWFkZXItY29tcG9uZW50IFtvcHRpb25zXT1cInBhZ2VIZWFkZXJPcHRpb25zXCIgPjwvYmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQ+XHJcbjwhLS1lbmQgdG9vbGJhci0tPlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLXh4bFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRhaW5lclwiICpuZ0lmPVwiaXNEYXRlTG9hZGVkXCI+XHJcbiAgICA8cCBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb24gbXQtMCBtYi02XCI+XHJcbiAgICAgIHt7RU4/c3VydmV5SW5mby5kZXNjcmlwdGlvbi5lbmdsaXNoOnN1cnZleUluZm8uZGVzY3JpcHRpb24uYXJhYmljfX1cclxuICAgIDwvcD5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJwcmV2aWV3U3VydmV5T3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICA8QkJTRi1SYWRpb0J1dHRvbiAqbmdJZj1cInNob3dBdWRpZW5jZVR5cGVcIiBbb3B0aW9uc109XCJhdWRpZW5jZVR5cGVSYWRpb0J1dHRvblwiIChPbkNoYW5nZSk9XCJDaGFuZ2VBdWRpZW5jZVR5cGVWYWx1ZSgkZXZlbnQpXCIgW2dyb3VwXT1cInByZXZpZXdGb3JtXCI+PC9CQlNGLVJhZGlvQnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzdXJ2ZXktZm9ybSAqbmdJZj1cInNob3dJbnRlcm5hbFwiICNwcmV2aWV3UXVlc3Rpb25Nb2RhbCBbb3B0aW9uc109XCJzdXJ2ZXlGb3JtRmllbGRcIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj48L3N1cnZleS1mb3JtPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHRlcm5hbC1mb3JtXCIgKm5nSWY9XCJzaG93RXh0ZXJuYWxcIj5cclxuICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibmFtZVwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVtYWlsXCIgW2dyb3VwXT1cInByZXZpZXdGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHN1cnZleS1mb3JtICpuZ0lmPVwic2hvd0V4dGVybmFsXCIgI3ByZXZpZXdRdWVzdGlvbk1vZGFsIFtvcHRpb25zXT1cInN1cnZleUZvcm1GaWVsZFwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPjwvc3VydmV5LWZvcm0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3XCIgKm5nSWY9XCJzdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmVuZ2xpc2h8fHN1cnZleUluZm8uZGVjbGFyYXRpb24uYXJhYmljXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXByZXZpZXctZGF0YVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXN0aW9uLW51bWJlclwiIG5nYlRvb2x0aXA9XCJRdWVzdGlvbiBOdW1iZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcHJldmlldy1xdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJkZWNsYXJhdGlvbkNoZWNrQm94Rm9ybVwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPjwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQgbWUtM1wiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vLi4vLi4vaW5mbycsc3VydmV5SURdXCI+XHJcbiAgICAgICAgICAgIHt7bChcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWJyYW5kIFwiPnt7bChcIlN1Ym1pdFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFvQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBbUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcFEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFJeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUt2RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBb0JwRCxZQUFvQixRQUFrQixFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFDbEgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdC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QWdCO2tHQUFoQixnQkFBZ0Isd01DYjdCLG9zRUF5Q0E7NEZENUJhLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLDBCQUEwQjtpQkFDeEM7d0pBUXVELG9CQUFvQjtzQkFBekUsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQsIEJyZWFkQ3J1bWIsIENoZWNrQm94T3B0aW9ucywgQ29udHJvbExheW91dCwgRHJvcGRvd25PcHRpb25zLCBGb3JjZURpcmVjdGlvbiwgRm9ybU9wdGlvbnMsIElucHV0VHlwZSwgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsIFBhZ2VIZWFkZXJPcHRpb25zLCBSYWRpb0J1dHRvbk9wdGlvbnMsIFRleHRBcmVhT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3VydmV5Rm9ybU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS1mb3JtLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc3VydmV5LWZvcm0vc3VydmV5LWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VydmV5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdWRpZW5jZVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9FbnVtcy9FbnVtcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXByZXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJldmlld0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHBhZ2VIZWFkZXJPcHRpb25zOiBQYWdlSGVhZGVyT3B0aW9ucztcclxuICBicmVhZENydW1iOiBCcmVhZENydW1iW107XHJcbiAgcHJldmlld0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBzdXJ2ZXlJRDogYW55O1xyXG4gIHN1cnZleUZvcm1GaWVsZDogU3VydmV5Rm9ybU9wdGlvbnM7XHJcbiAgaXNEYXRlTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnUHJldmlld1F1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJldmlld1F1ZXN0aW9uTW9kYWw6IFN1cnZleUZvcm1Db21wb25lbnQ7XHJcbiAgcHJldmlld1N1cnZleU9wdGlvbnM6IGFueTtcclxuICBzdXJ2ZXlJbmZvOiBhbnk7XHJcbiAgRU46IGJvb2xlYW47XHJcbiAgYXVkaWVuY2VUeXBlUmFkaW9CdXR0b246IFJhZGlvQnV0dG9uT3B0aW9ucztcclxuICBhdWRpZW5jZVR5cGVJRDogc3RyaW5nO1xyXG4gIHNob3dBdWRpZW5jZVR5cGU6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHNob3dJbnRlcm5hbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgc2hvd0V4dGVybmFsOiBib29sZWFuID0gZmFsc2VcclxuICBuYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucztcclxuICBlbWFpbDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZGVjbGFyYXRpb25DaGVja0JveEZvcm06IENoZWNrQm94T3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgc3VydmV5U2VydmljZTogU3VydmV5U2VydmljZSwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIHRoaXMuc3VydmV5SUQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1tcImlkXCJdO1xyXG4gICAgdGhpcy5hdWRpZW5jZVR5cGVJRCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zW1wiYXVkaWVuY2VJRFwiXTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5icmVhZENydW1iID0gW107XHJcbiAgICB0aGlzLmJyZWFkQ3J1bWIucHVzaChuZXcgQnJlYWRDcnVtYih0aGlzLmwoXCJIb21lXCIpLCBmYWxzZSwgXCIvXCIpLCBuZXcgQnJlYWRDcnVtYih0aGlzLmwoXCJTdXJ2ZXlfRGV0YWlsc1wiKSwgZmFsc2UsIGAuLi8uLi8uLi8uLi9pbmZvLyR7dGhpcy5zdXJ2ZXlJRH1gKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiUHJldmlld19EZXRhaWxzXCIpLCB0cnVlKSk7XHJcblxyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucyA9IG5ldyBQYWdlSGVhZGVyT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5TZWFyY2hUZXh0Qm94LkFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkFjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQnJlYWRDcnVtYkl0ZW1zID0gdGhpcy5icmVhZENydW1iO1xyXG5cclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlUmFkaW9CdXR0b24gPSBuZXcgUmFkaW9CdXR0b25PcHRpb25zKCk7XHJcbiAgICB0aGlzLmF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uLk5hbWUgPSBcIkF1ZGllbmNlVHlwZVwiXHJcbiAgICB0aGlzLmF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uLlZhbHVlID1BdWRpZW5jZVR5cGUuSW50ZXJuYWwgYXMgYW55XHJcbiAgICB0aGlzLmF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uLkl0ZW1zID0gW3sgVGV4dDogdGhpcy5sKCdJbnRlcm5hbFVzZXJzJyksIFZhbHVlOiBBdWRpZW5jZVR5cGUuSW50ZXJuYWwgfSwgeyBUZXh0OiB0aGlzLmwoJ0V4dGVybmFsVXNlcnMnKSwgVmFsdWU6IEF1ZGllbmNlVHlwZS5FeHRlcm5hbCB9XVxyXG5cclxuICAgIHRoaXMuRU4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlRW5nbGlzaCgpO1xyXG5cclxuXHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2UucHJldmlldyh0aGlzLnN1cnZleUlEKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cclxuICAgICAgdGhpcy5wcmV2aWV3Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgICAgdGhpcy5wcmV2aWV3U3VydmV5T3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnByZXZpZXdTdXJ2ZXlPcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMucHJldmlld0Zvcm07XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0UHJldmlld01vZGVsO1xyXG4gICAgICB0aGlzLnByZXZpZXdTdXJ2ZXlPcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0UHJldmlld0Z1bmN0aW9uO1xyXG4gICAgICB0aGlzLnByZXZpZXdTdXJ2ZXlPcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPSB0aGlzLm9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXI7XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuRGlzYWJsZVN1Y2Nlc3NOb3RpZmljYXRpb24gPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5zdXJ2ZXlJbmZvID0gcmVzIGFzIGFueVxyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLlRpdGxlVmFsdWUgPXRoaXMuc3VydmV5SW5mby50aXRsZS5jdXJyZW50X0ZhaWxPdmVyO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc3VydmV5SW5mby5kZWNsYXJhdGlvbi5lbmdsaXNoIHx8IHRoaXMuc3VydmV5SW5mby5kZWNsYXJhdGlvbi5hcmFiaWMpIHtcclxuICAgICAgICB0aGlzLmRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZGVjbGFyYXRpb25DaGVja0JveEZvcm0uTmFtZSA9IFwiZGVjbGFyYXRpb25cIjtcclxuICAgICAgICB0aGlzLmRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtLkxhYmVsVmFsdWUgPSB0aGlzLkVOID8gdGhpcy5zdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmVuZ2xpc2ggOiB0aGlzLnN1cnZleUluZm8uZGVjbGFyYXRpb24uYXJhYmljO1xyXG4gICAgICAgIHRoaXMuZGVjbGFyYXRpb25DaGVja0JveEZvcm0uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkID0gbmV3IFN1cnZleUZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLk5hbWUgPSBcIlN1cnZleUZpZWxkc1wiO1xyXG4gICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5SZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICBzd2l0Y2ggKHRoaXMuYXVkaWVuY2VUeXBlSUQpIHtcclxuICAgICAgICBjYXNlIEF1ZGllbmNlVHlwZS5Cb3RoOlxyXG4gICAgICAgICAgdGhpcy5zaG93QXVkaWVuY2VUeXBlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdCA9IHRoaXMuc3VydmV5SW5mby5xdWVzdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuSW50ZXJuYWwgfHwgaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuQm90aCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbnRlcm5hbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dFeHRlcm5hbCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuSW50ZXJuYWw6XHJcbiAgICAgICAgICB0aGlzLnNob3dBdWRpZW5jZVR5cGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0V4dGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QgPSB0aGlzLnN1cnZleUluZm8ucXVlc3Rpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkludGVybmFsIHx8IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuRXh0ZXJuYWw6XHJcbiAgICAgICAgICB0aGlzLnNob3dBdWRpZW5jZVR5cGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dFeHRlcm5hbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRFeHRlcm5hbENvbnRyb2xzKClcclxuICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdCA9IHRoaXMuc3VydmV5SW5mby5xdWVzdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuRXh0ZXJuYWwgfHwgaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuQm90aCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0RhdGVMb2FkZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aWV3TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCByZXN1bHRNb2RlbCA9IHRoaXMucHJldmlld0Zvcm0udmFsdWU7XHJcbiAgICBwYXJhbUFycmF5LnB1c2gocmVzdWx0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG4gIGdldFByZXZpZXdGdW5jdGlvbiA9IChtb2RhbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QpXHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgQ2hhbmdlQXVkaWVuY2VUeXBlVmFsdWUodmFsdWUpIHtcclxuICAgIHN3aXRjaCAodmFsdWUpIHtcclxuICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuSW50ZXJuYWw6XHJcbiAgICAgICAgdGhpcy5zaG93SW50ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvd0V4dGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUXVlc3Rpb25MaXN0ID0gdGhpcy5zdXJ2ZXlJbmZvLnF1ZXN0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCB8fCBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuRXh0ZXJuYWw6XHJcbiAgICAgICAgICB0aGlzLnNob3dJbnRlcm5hbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRXh0ZXJuYWxDb250cm9scygpXHJcbiAgICAgICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QgPSB0aGlzLnN1cnZleUluZm8ucXVlc3Rpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkV4dGVybmFsIHx8IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRFeHRlcm5hbENvbnRyb2xzKClcclxuICB7XHJcbiAgICB0aGlzLm5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMubmFtZS5OYW1lID0gXCJOYW1lXCI7XHJcbiAgICB0aGlzLm5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiXHJcbiAgICB0aGlzLm5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCJcclxuICAgIHRoaXMubmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubmFtZS5NYXhMZW5ndGggPSAxMDA7XHJcbiAgICB0aGlzLm5hbWUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcblxyXG4gICAgdGhpcy5lbWFpbCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5lbWFpbC5OYW1lID0gXCJFbWFpbFwiXHJcbiAgICB0aGlzLmVtYWlsLkxhYmVsS2V5ID0gXCJFbWFpbFwiXHJcbiAgICB0aGlzLmVtYWlsLlR5cGUgPSBJbnB1dFR5cGUuRW1haWxcclxuICAgIHRoaXMuZW1haWwuSXNSZXF1aXJlZCA9IHRydWVcclxuICAgIHRoaXMuZW1haWwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICB0aGlzLmVtYWlsLkZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uRW5nbGlzaFxyXG4gICAgdGhpcy5lbWFpbC5NYXhMZW5ndGggPSAxMDA7XHJcbiAgfVxyXG59XHJcbiIsIjxiYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudCBbb3B0aW9uc109XCJwYWdlSGVhZGVyT3B0aW9uc1wiID48L2Jic2YtcGFnZS1oZWFkZXItY29tcG9uZW50PlxyXG48IS0tZW5kIHRvb2xiYXItLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci14eGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXJcIiAqbmdJZj1cImlzRGF0ZUxvYWRlZFwiPlxyXG4gICAgPHAgY2xhc3M9XCJjYXJkLWRlc2NyaXB0aW9uIG10LTAgbWItNlwiPlxyXG4gICAgICB7e0VOP3N1cnZleUluZm8uZGVzY3JpcHRpb24uZW5nbGlzaDpzdXJ2ZXlJbmZvLmRlc2NyaXB0aW9uLmFyYWJpY319XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwicHJldmlld1N1cnZleU9wdGlvbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1xdWVzdGlvblwiPlxyXG4gICAgICAgICAgPEJCU0YtUmFkaW9CdXR0b24gKm5nSWY9XCJzaG93QXVkaWVuY2VUeXBlXCIgW29wdGlvbnNdPVwiYXVkaWVuY2VUeXBlUmFkaW9CdXR0b25cIiAoT25DaGFuZ2UpPVwiQ2hhbmdlQXVkaWVuY2VUeXBlVmFsdWUoJGV2ZW50KVwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPjwvQkJTRi1SYWRpb0J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3VydmV5LWZvcm0gKm5nSWY9XCJzaG93SW50ZXJuYWxcIiAjcHJldmlld1F1ZXN0aW9uTW9kYWwgW29wdGlvbnNdPVwic3VydmV5Rm9ybUZpZWxkXCIgW2dyb3VwXT1cInByZXZpZXdGb3JtXCI+PC9zdXJ2ZXktZm9ybT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXh0ZXJuYWwtZm9ybVwiICpuZ0lmPVwic2hvd0V4dGVybmFsXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm5hbWVcIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlbWFpbFwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzdXJ2ZXktZm9ybSAqbmdJZj1cInNob3dFeHRlcm5hbFwiICNwcmV2aWV3UXVlc3Rpb25Nb2RhbCBbb3B0aW9uc109XCJzdXJ2ZXlGb3JtRmllbGRcIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj48L3N1cnZleS1mb3JtPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcHJldmlld1wiICpuZ0lmPVwic3VydmV5SW5mby5kZWNsYXJhdGlvbi5lbmdsaXNofHxzdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmFyYWJpY1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3LWRhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVzdGlvbi1udW1iZXJcIiBuZ2JUb29sdGlwPVwiUXVlc3Rpb24gTnVtYmVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXByZXZpZXctcXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiZGVjbGFyYXRpb25DaGVja0JveEZvcm1cIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj48L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0IG1lLTNcIiBbcm91dGVyTGlua109XCJbJy4uLy4uLy4uLy4uL2luZm8nLHN1cnZleUlEXVwiPlxyXG4gICAgICAgICAgICB7e2woXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1icmFuZCBcIj57e2woXCJTdWJtaXRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -298,7 +298,10 @@ export class SurveyInfoComponent extends AppBaseComponent {
298
298
  this.pageHeaderOptions.BreadCrumb.Active = true;
299
299
  this.pageHeaderOptions.BreadCrumb.BreadCrumbItems = this.breadCrumb;
300
300
  this.pageHeaderOptions.DropDownActions.Active = true;
301
- this.pageHeaderOptions.DropDownActions.DropdownActionItems.push(new DropdownActionItem(this.l("Edit"), "/assets/images/Edit.svg", this.showEditModal), new DropdownActionItem(this.l("Delete"), '/assets/images/Trash.svg', this.showDeleteModal), new DropdownActionItem(this.l("Export"), '/assets/images/export.svg', this.export));
301
+ this.pageHeaderOptions.DropDownActions.DropdownActionItems.push(new DropdownActionItem(this.l("Delete"), '/assets/images/Trash.svg', this.showDeleteModal), new DropdownActionItem(this.l("Export"), '/assets/images/export.svg', this.export));
302
+ if (this.survey.statusItemID.toLocaleLowerCase() == this.SurveyStatusEnum.ScoringTypeEnum_Draft.toLocaleLowerCase()
303
+ || this.survey.statusItemID.toLocaleLowerCase() == this.SurveyStatusEnum.ScoringTypeEnum_Upcoming.toLocaleLowerCase())
304
+ this.pageHeaderOptions.DropDownActions.DropdownActionItems.push(new DropdownActionItem(this.l("Edit"), "/assets/images/Edit.svg", this.showEditModal));
302
305
  if (this.survey.totalQuestionCount > 0)
303
306
  this.pageHeaderOptions.DropDownActions.DropdownActionItems.push(new DropdownActionItem(this.l("Preview"), '/assets/images/views.svg', this.previewSurvey));
304
307
  if (this.survey.statusItemID.toLocaleLowerCase() == this.SurveyStatusEnum.ScoringTypeEnum_Published.toLocaleLowerCase())
@@ -495,4 +498,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
495
498
  type: ViewChild,
496
499
  args: ['pagingSubmissionViewElement', { static: false }]
497
500
  }] } });
498
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE0QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hPLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxrQkFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQU9yRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7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OlsiaW1wb3J0IHsgUHVibGlzaFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vcHVibGlzaC1zdXJ2ZXkvcHVibGlzaC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2FkZC1xdWVzdGlvbi9hZGQtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2RlbGV0ZS1xdWVzdGlvbi9kZWxldGUtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdFF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0LXF1ZXN0aW9uL2VkaXQtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vLi4vZWRpdC1zdXJ2ZXkvZWRpdC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVsZXRlU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi8uLi9kZWxldGUtc3VydmV5L2RlbGV0ZS1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE5nWm9uZSwgT25Jbml0LCBQTEFURk9STV9JRCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQsIEJyZWFkQ3J1bWIsIENvbnRyb2xMYXlvdXQsIERyb3Bkb3duQWN0aW9uSXRlbSwgRmlsdGVySXRlbSwgRmlsdGVyVHlwZSwgRm9yY2VEaXJlY3Rpb24sIElucHV0VHlwZSwgUGFnZUhlYWRlck9wdGlvbnMsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCAqIGFzIGFtNSBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNVwiO1xyXG5pbXBvcnQgKiBhcyBhbTV4eSBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNS94eVwiO1xyXG5pbXBvcnQgYW01dGhlbWVzX0FuaW1hdGVkIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1L3RoZW1lcy9BbmltYXRlZFwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWFzdGVyTGF5b3V0U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IFVuUHVibGlzaFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vdW5wdWJsaXNoLXN1cnZleS91bnB1Ymxpc2gtc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy9kZWxldGUtc3VibWlzc2lvbi9kZWxldGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VibWlzc2lvbnMvZWxpbWluYXRlLXN1Ym1pc3Npb24vZWxpbWluYXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVW5FbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VibWlzc2lvbnMvdW5lbGltaW5hdGUtc3VibWlzc2lvbi91bmVsaW1pbmF0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1ZGllbmNlVHlwZSwgU3VydmV5T3B0aW9uVHlwZSwgU3VydmV5U3RhdHVzRW51bSB9IGZyb20gJy4uLy4uLy4uL0VudW1zL0VudW1zJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EVE8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS1xdWVzdGlvbic7XHJcbmltcG9ydCB7IFN1cnZleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy9zdXJ2ZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS1xdWVzdGlvbi5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zdXJ2ZXktaW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N1cnZleS1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdXJ2ZXktaW5mby5jb21wb25lbnQuY3NzJ11cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlJbmZvQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcGFnZUhlYWRlck9wdGlvbnM6IFBhZ2VIZWFkZXJPcHRpb25zO1xyXG4gIGJyZWFkQ3J1bWI6IEJyZWFkQ3J1bWJbXTtcclxuICBzdXJ2ZXlGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgQFZpZXdDaGlsZCgnZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRGVsZXRlU3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0TW9kYWw6IEVkaXRTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdFF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdFF1ZXN0aW9uTW9kYWw6IEVkaXRRdWVzdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkZWxldGVRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRlbGV0ZVF1ZXN0aW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVRdWVzdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhZGRRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIEFkZFF1ZXN0aW9uQ29tcG9uZW50OiBBZGRRdWVzdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhZGRQdWJsaXNoTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWRkUHVibGlzaE1vZGFsOiBQdWJsaXNoU3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFVuUHVibGlzaE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFkZFVuUHVibGlzaE1vZGFsOiBVblB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZGVsZXRlU3VibWlzc2lvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRlbGV0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2w6IERlbGV0ZVN1Ym1pc3Npb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWxpbWluYXRlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRWxpbWluYXRlU3VibWlzc2lvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd1bkVsaW1pbmF0ZU1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHVuRWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogVW5FbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50O1xyXG5cclxuICBUZXh0Qm94V2l0aEV4dGVybmFsVVJMOiBUZXh0Qm94T3B0aW9ucztcclxuICBUZXh0Qm94V2l0aEludGVybmFsVVJMOiBUZXh0Qm94T3B0aW9ucztcclxuICB1cmxGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgU2VhcmNoVGV4dEJveCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIFNlYXJjaFRleHRCb3hPcHRpb25zOiBUZXh0Qm94T3B0aW9ucztcclxuICBwcml2YXRlIHJvb3QhOiBhbTUuUm9vdDtcclxuICBzdXJ2ZXlJRDogYW55O1xyXG4gIHN1cnZleTogYW55O1xyXG4gIGxvYWRJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIFN1cnZleVN0YXR1c0VudW0gPSBTdXJ2ZXlTdGF0dXNFbnVtO1xyXG4gIHB1YmxpYyBBdWRpZW5jZVR5cGVFbnVtID0gQXVkaWVuY2VUeXBlO1xyXG4gIHN1cnZleVF1ZXN0aW9uczogU3VydmV5UXVlc3Rpb25EVE9bXSA9IFtdO1xyXG4gIGFwaVF1ZXN0aW9uVVJMID0gdGhpcy5zdXJ2ZXlRdWVzdGlvblNlcnZpY2UuYXBpVVJMO1xyXG4gIGZpbHRlcnNRdWVzdGlvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBjYW5UYWtlU3VydmV5OiBib29sZWFuID0gZmFsc2VcclxuICAvL1F1ZXN0aW9ucyBTZWN0aW9uXHJcbiAgQFZpZXdDaGlsZCgncGFnaW5nUXVlc3Rpb25WaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdRdWVzdGlvbkVsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG4gIHBhZ2luZ1F1ZXN0aW9uUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIHBhZ2luZ1F1ZXN0aW9uT3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICBzaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW47XHJcbiAgY2FuRWRpdFF1ZXN0aW9uOiBib29sZWFuO1xyXG4gIGNhbkFkZFF1ZXN0aW9uOiBib29sZWFuO1xyXG4gIGNhbkRlbGV0ZVF1ZXN0aW9uOiBib29sZWFuO1xyXG4gIHNlYXJjaFF1ZXN0aW9uVGV4dEZpbHRlcjogYW55O1xyXG4gIFN1cnZleUlET3B0aW9uczogYW55O1xyXG4gIHNlYXJjaFN1cnZleUlERmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG5cclxuXHJcbiAgLy9TdWJtaXNzaW9uIFNlY3Rpb25cclxuICBmaWx0ZXJzU3VibWlzc2lvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBAVmlld0NoaWxkKCdwYWdpbmdTdWJtaXNzaW9uVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nU3VibWlzc2lvbkVsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG4gIHBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQ6IGFueVtdID0gW107XHJcbiAgcGFnaW5nU3VibWlzc2lvbk9wdGlvbnM6IFBhZ2luZ09wdGlvbnM7XHJcbiAgc2hvd1N1Ym1pc3Npb25QYWdlQ29udGVudDogYm9vbGVhbjtcclxuICBzZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBzZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgcXVlc3Rpb25PdmVydmlld1Jlc3VsdDogYW55O1xyXG4gIHBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWw6IGFueTtcclxuICBzaG93T3ZlcnZpZXc6IGJvb2xlYW47XHJcbiAgc2hvd05hdjogYm9vbGVhblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQsIHByaXZhdGUgem9uZTogTmdab25lLCBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgICAsIHByaXZhdGUgbWFzdGVyTGF5b3V0U2VydmljZTogTWFzdGVyTGF5b3V0U2VydmljZSwgcHJpdmF0ZSBzdXJ2ZXlTZXJ2aWNlOiBTdXJ2ZXlTZXJ2aWNlLCBwcml2YXRlIHN1cnZleVF1ZXN0aW9uU2VydmljZTogU3VydmV5UXVlc3Rpb25TZXJ2aWNlLCBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgdGhpcy5yb3V0ZXIucm91dGVSZXVzZVN0cmF0ZWd5LnNob3VsZFJldXNlUm91dGUgPSAoKSA9PiBmYWxzZTtcclxuICAgIHRoaXMuc3VydmV5SUQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1tcImlkXCJdO1xyXG4gIH1cclxuICAvLyBSdW4gdGhlIGZ1bmN0aW9uIG9ubHkgaW4gdGhlIGJyb3dzZXJcclxuICBicm93c2VyT25seShmOiAoKSA9PiB2b2lkKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgIGYoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbWF5YmVEaXNwb3NlUm9vdChkaXZJZCkge1xyXG4gICAgYW01LmFycmF5LmVhY2goYW01LnJlZ2lzdHJ5LnJvb3RFbGVtZW50cywgKHJvb3QpID0+IHtcclxuICAgICAgaWYgKHJvb3QpIHtcclxuICAgICAgICBpZiAocm9vdC5kb20uaWQgPT0gZGl2SWQpIHtcclxuICAgICAgICAgIHJvb3QuZGlzcG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH07XHJcblxyXG4gIGxvYWRDaGFydChpdGVtKSB7XHJcblxyXG4gICAgLy8gQ2hhcnQgY29kZSBnb2VzIGluIGhlcmVcclxuICAgIHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG4gICAgICBsZXQgbmFtZSA9IGBjaGFydGRpdmA7XHJcbiAgICAgIHRoaXMubWF5YmVEaXNwb3NlUm9vdChuYW1lKVxyXG4gICAgICBsZXQgcm9vdCA9IGFtNS5Sb290Lm5ldyhuYW1lKTtcclxuICAgICAgcm9vdC5zZXRUaGVtZXMoW2FtNXRoZW1lc19BbmltYXRlZC5uZXcocm9vdCldKTtcclxuXHJcbiAgICAgIGxldCBjaGFydCA9IHJvb3QuY29udGFpbmVyLmNoaWxkcmVuLnB1c2goXHJcbiAgICAgICAgYW01eHkuWFlDaGFydC5uZXcocm9vdCwge1xyXG4gICAgICAgICAgcGFuWDogZmFsc2UsXHJcbiAgICAgICAgICBwYW5ZOiBmYWxzZSxcclxuICAgICAgICAgIHdoZWVsWDogJ25vbmUnLFxyXG4gICAgICAgICAgd2hlZWxZOiAnbm9uZScsXHJcbiAgICAgICAgICBwYWRkaW5nQm90dG9tOiA1MCxcclxuICAgICAgICAgIHBhZGRpbmdUb3A6IDQwLFxyXG4gICAgICAgICAgbGF5b3V0OiByb290LnZlcnRpY2FsTGF5b3V0LFxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gRGVmaW5lIGRhdGFcclxuICAgICAgbGV0IGRhdGEgPSBpdGVtLm9wdGlvbnMubWFwKHZhbHVlID0+IHsgcmV0dXJuIHsgJ25hbWUnOiB2YWx1ZS5sb2NhbGl6ZWRUaXRsZSwgJ3ZhbHVlJzogdmFsdWUubnVtYmVyT2ZTZWxlY3RlZFRpbWUgfSB9KVxyXG4gICAgICAvLyBDcmVhdGUgWS1heGlzXHJcbiAgICAgIGxldCB5QXhpcyA9IGNoYXJ0LnlBeGVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuVmFsdWVBeGlzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICBiYXNlVmFsdWU6IDAsXHJcbiAgICAgICAgICBtYXhQcmVjaXNpb246IDAsXHJcbiAgICAgICAgICBleHRyYVRvb2x0aXBQcmVjaXNpb246IDEwMCxcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJZLm5ldyhyb290LCB7fSlcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIFgtQXhpc1xyXG4gICAgICBsZXQgeEF4aXMgPSBjaGFydC54QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LkNhdGVnb3J5QXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgcmVuZGVyZXI6IGFtNXh5LkF4aXNSZW5kZXJlclgubmV3KHJvb3QsIHt9KSxcclxuICAgICAgICAgIGNhdGVnb3J5RmllbGQ6IFwibmFtZVwiXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgeEF4aXMuZGF0YS5zZXRBbGwoZGF0YSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgc2VyaWVzXHJcbiAgICAgIGxldCBzZXJpZXMxID0gY2hhcnQuc2VyaWVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuQ29sdW1uU2VyaWVzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICBuYW1lOiBcIlF1ZXN0aW9uIE9wdGlvbnNcIixcclxuICAgICAgICAgIHhBeGlzOiB4QXhpcyxcclxuICAgICAgICAgIHlBeGlzOiB5QXhpcyxcclxuICAgICAgICAgIHZhbHVlWUZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgICBjYXRlZ29yeVhGaWVsZDogXCJuYW1lXCIsXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgXHJcblxyXG4gICAgICBzZXJpZXMxLmRhdGEuc2V0QWxsKGRhdGEpO1xyXG4gICAgICBzZXJpZXMxLnNldChcImZpbGxcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIHNlcmllczEuc2V0KFwic3Ryb2tlXCIsIGFtNS5jb2xvcihcIiNiNjhhMzVcIikpOyAvLyBzZXQgU2VyaWVzIGNvbG9yIHRvIHJlZFxyXG5cclxuICAgICAgLy8gQWRkIGxlZ2VuZFxyXG4gICAgICBsZXQgbGVnZW5kID0gY2hhcnQuY2hpbGRyZW4ucHVzaChhbTUuTGVnZW5kLm5ldyhyb290LCB7fSkpO1xyXG4gICAgICBsZWdlbmQuZGF0YS5wdXNoKHNlcmllczEpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLkVOKSB7XHJcbiAgICAgICAgbGVnZW5kLmxhYmVscy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxyXG4gICAgICAgICAgeDogNTAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGVnZW5kLnZhbHVlTGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgIHRleHRBbGlnbjpcInJpZ2h0XCIsXHJcbiAgICAgICAgIHBhZGRpbmdSaWdodDoxNVxyXG4gICAgICAgIH0pO1xyXG4gICAgICBsZWdlbmQuaXRlbUNvbnRhaW5lcnMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICByZXZlcnNlQ2hpbGRyZW46IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm9vdCA9IHJvb3Q7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLy9jaGFydCBvdmVydmlld1xyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lT3ZlclZpZXcgPSBgY2hhcnRPdmVydmlld2A7XHJcbiAgICAgIHRoaXMubWF5YmVEaXNwb3NlUm9vdChuYW1lT3ZlclZpZXcpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWVPdmVyVmlldyk7XHJcblxyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5ZOiBmYWxzZSxcclxuICAgICAgICAgIGxheW91dDogcm9vdC52ZXJ0aWNhbExheW91dFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG5cclxuICAgICAgLy8gRGVmaW5lIGRhdGFcclxuXHJcbiAgICAgIGxldCBkYXRhID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGl0ZW0ucmVzdWx0cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbS5yZXN1bHRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW0ucmVzdWx0c1trZXldO1xyXG4gICAgICAgICAgbGV0IG9iamVjdCA9IHtcclxuICAgICAgICAgICAgY2F0ZWdvcnk6IFwiPj1cIiArIGtleSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhLnB1c2gob2JqZWN0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ3JlYXRlIFktYXhpc1xyXG4gICAgICBsZXQgeUF4aXMgPSBjaGFydC55QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlZhbHVlQXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgYmFzZVZhbHVlOiAwLFxyXG4gICAgICAgICAgbWF4UHJlY2lzaW9uOiAwLFxyXG4gICAgICAgICAgZXh0cmFUb29sdGlwUHJlY2lzaW9uOiAxMDAsXHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBYLUF4aXNcclxuICAgICAgbGV0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcbiAgICAgICAgICBjYXRlZ29yeUZpZWxkOiBcImNhdGVnb3J5XCJcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB4QXhpcy5kYXRhLnNldEFsbChkYXRhKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBzZXJpZXNcclxuICAgICAgbGV0IHNlcmllczEgPSBjaGFydC5zZXJpZXMucHVzaChcclxuICAgICAgICBhbTV4eS5Db2x1bW5TZXJpZXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIG5hbWU6IFwiU2NvcmVcIixcclxuICAgICAgICAgIHhBeGlzOiB4QXhpcyxcclxuICAgICAgICAgIHlBeGlzOiB5QXhpcyxcclxuICAgICAgICAgIHZhbHVlWUZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgICBjYXRlZ29yeVhGaWVsZDogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHNlcmllczEuZGF0YS5zZXRBbGwoZGF0YSk7XHJcbiAgICAgIHNlcmllczEuc2V0KFwiZmlsbFwiLCBhbTUuY29sb3IoXCIjYjY4YTM1XCIpKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuICAgICAgc2VyaWVzMS5zZXQoXCJzdHJva2VcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIC8vIEFkZCBsZWdlbmRcclxuICAgICAgbGV0IGxlZ2VuZCA9IGNoYXJ0LmNoaWxkcmVuLnB1c2goYW01LkxlZ2VuZC5uZXcocm9vdCwge30pKTtcclxuICAgICAgbGVnZW5kLmRhdGEuc2V0QWxsKGNoYXJ0LnNlcmllcy52YWx1ZXMpO1xyXG4gICAgICBpZiAoIXRoaXMuRU4pIHtcclxuICAgICAgICBsZWdlbmQubGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXHJcbiAgICAgICAgICB4OiA1MCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBsZWdlbmQudmFsdWVMYWJlbHMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICAgdGV4dEFsaWduOlwicmlnaHRcIixcclxuICAgICAgICAgcGFkZGluZ1JpZ2h0OjE1XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGxlZ2VuZC5pdGVtQ29udGFpbmVycy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgIHJldmVyc2VDaGlsZHJlbjogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yb290ID0gcm9vdDtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBDbGVhbiB1cCByb290IGVsZW1lbnQgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbW92ZWRcclxuICAgIHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5yb290KSB7XHJcbiAgICAgICAgdGhpcy5yb290LmRpc3Bvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRJbmZvKHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN1cnZleSA9IHJlc3VsdDtcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5MYWJlbEtleSA9IFwiRXh0ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuZXh0ZXJuYWxVUkxcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhJbnRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5MYWJlbEtleSA9IFwiSW50ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuaW50ZXJuYWxVUkxcclxuXHJcblxyXG4gICAgICB0aGlzLmJyZWFkQ3J1bWIgPSBbXTtcclxuICAgICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5c19IZWFkZXJcIiksIGZhbHNlLCAnLi4vLi4vJyksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlN1cnZleV9EZXRhaWxzXCIpLCB0cnVlKSk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5UaXRsZVZhbHVlID10aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5TZWFyY2hUZXh0Qm94LkFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkJyZWFkQ3J1bWJJdGVtcyA9IHRoaXMuYnJlYWRDcnVtYjtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRWRpdFwiKSwgXCIvYXNzZXRzL2ltYWdlcy9FZGl0LnN2Z1wiLCB0aGlzLnNob3dFZGl0TW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRGVsZXRlXCIpLCAnL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJywgdGhpcy5zaG93RGVsZXRlTW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRXhwb3J0XCIpLCAnL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZycsIHRoaXMuZXhwb3J0KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXkudG90YWxRdWVzdGlvbkNvdW50ID4gMClcclxuICAgICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zLnB1c2goXHJcbiAgICAgICAgICBuZXcgRHJvcGRvd25BY3Rpb25JdGVtKCB0aGlzLmwoXCJQcmV2aWV3XCIpLCAnL2Fzc2V0cy9pbWFnZXMvdmlld3Muc3ZnJywgdGhpcy5wcmV2aWV3U3VydmV5KSk7XHJcbiAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1B1Ymxpc2hlZC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG4gICAgICAgIHRoaXMuY2FuVGFrZVN1cnZleSA9IHRydWVcclxuXHJcbiAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKClcclxuICAgICAgICB8fCB0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0Nsb3NlZC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIlB1Ymxpc2hcIiksICcvYXNzZXRzL2ltYWdlcy9TdWJtaXQuc3ZnJywgdGhpcy5zaG93UHVibGlzaE1vZGFsKSlcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIlVuUHVibGlzaFwiKSwgJy9hc3NldHMvaW1hZ2VzL3VubGluay5zdmcnLCB0aGlzLnNob3dVblB1Ymxpc2hNb2RhbCksKVxyXG5cclxuICAgICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcbiAgICAgIHRoaXMubG9hZFF1ZXN0aW9uU2VjdGlvbigpO1xyXG4gICAgICB0aGlzLmxvYWRTdWJtaXNzaW9uU2VjdGlvbigpO1xyXG4gICAgICB0aGlzLnBhZ2VUaXRsZSA9IHRoaXMuc3VydmV5LmxvY2FsaXplZFRpdGxlXHJcbiAgICAgIHRoaXMudXBkYXRlUGFnZVRpdGxlKHRoaXMuc3VydmV5LmxvY2FsaXplZFRpdGxlKTtcclxuICAgICAgdGhpcy5sb2FkSW5mbyA9IHRydWU7XHJcblxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICBzaG93RWRpdE1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5lZGl0TW9kYWwuc2hvd0VkaXRNb2RhbCh0aGlzLnN1cnZleUlEKTtcclxuICB9XHJcbiAgc2hvd0RlbGV0ZU1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0RlbGV0ZU1vZGFsKHRoaXMuc3VydmV5SUQpO1xyXG5cclxuICB9XHJcbiAgc2hvd0VkaXRRdWVzdGlvbk1vZGFsKGlkLGlzVmlld09ubHkpIHtcclxuICAgIHRoaXMuZWRpdFF1ZXN0aW9uTW9kYWwuZWRpdE1vZGFsKGlkLCB0aGlzLnN1cnZleS5hdWRpZW5jZUl0ZW1JRCxpc1ZpZXdPbmx5KTtcclxuXHJcbiAgfVxyXG4gIHNob3dBZGRRdWVzdGlvbk1vZGFsKCkge1xyXG4gICAgdGhpcy5BZGRRdWVzdGlvbkNvbXBvbmVudC5hZGRNb2RhbCh0aGlzLnN1cnZleUlELCB0aGlzLnN1cnZleS5hdWRpZW5jZUl0ZW1JRCk7XHJcblxyXG4gIH1cclxuICBzaG93RGVsZXRlUXVlc3Rpb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVRdWVzdGlvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwoaWQpO1xyXG5cclxuICB9XHJcbiAgc2hvd1B1Ymxpc2hNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuYWRkUHVibGlzaE1vZGFsLnB1Ymxpc2hNb2RhbCh0aGlzLnN1cnZleUlELCB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0KTtcclxuXHJcbiAgfVxyXG4gIHNob3dVblB1Ymxpc2hNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuYWRkVW5QdWJsaXNoTW9kYWwuc2hvd0NvbmZpcm1hdGlvbk1vZGFsKHRoaXMuc3VydmV5SUQpO1xyXG5cclxuICB9XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0W2luZGV4XS5kaXNwbGF5T3JkZXIgPSBpbmRleCArIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS51cGRhdGVEaXNwbGF5T3JkZXIodGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJldmlld1N1cnZleSA9ICgpID0+IHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vLi4vaW5mby9wcmV2aWV3JywgdGhpcy5zdXJ2ZXlJRCwgdGhpcy5zdXJ2ZXkuYXVkaWVuY2VJdGVtSURdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gIH1cclxuICB0YWtlU3VydmV5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8uLi9pbmZvL3N1Ym1pc3Npb24nLCB0aGlzLnN1cnZleUlEXSwge3JlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1cyhzdGF0dXMpIHtcclxuICAgIHZhciBTdGF0dXNlcyA9ICcnO1xyXG4gICAgc3dpdGNoIChzdGF0dXMudG9Mb2NhbGVMb3dlckNhc2UoKSkge1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fRHJhZnQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1zZWNvbmRhcnknO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0Nsb3NlZC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLWRhbmdlcic7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fUHVibGlzaGVkLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fVXBjb21pbmcudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1zdWNjZXNzJztcclxuICAgICAgICB0aGlzLmNhbkVkaXRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFN0YXR1c2VzO1xyXG4gIH1cclxuXHJcbiAgbG9hZFF1ZXN0aW9uU2VjdGlvbigpIHtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZSA9IFwiU2VhcmNoVGV4dEJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlRyaW1UZXh0T25DaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5QbGFjZWhvbGRlciA9IHRoaXMubChcIlNlYXJjaFwiKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuRXh0cmFDbGFzc2VzID0gXCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtIGZvcm0tY29udHJvbC1zb2xpZCBzZWFyY2gtYm94XCI7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkljb24gPSBcIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvc2VhcmNoLnN2Z1wiXHJcblxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5WYWx1ZSA9IHRoaXMuc3VydmV5SUQ7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuUGFnZVNpemUgPSAxMDAwO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuRGlzYWJsZUJsb2NrVUkgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuQWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpUXVlc3Rpb25VUkwgKyAnR2V0QWxsUXVlc3Rpb25zJztcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLkZpbHRlcnMgPSBbdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlcl07XHJcblxyXG5cclxuXHJcbiAgfVxyXG4gIHNldFF1ZXN0aW9uTGlzdGluZ1Jlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBsZXQgb3ZlcnZpZXdRdWVzdGlvbnMgPSB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwuZmlsdGVyKGl0ZW0gPT4gaXRlbS5xdWVzdGlvblR5cGVJdGVtSUQgPT0gU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbiB8fCBpdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCA9PSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdCB8fCBpdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCA9PSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0KVxyXG4gICAgaWYgKG92ZXJ2aWV3UXVlc3Rpb25zLmxlbmd0aCA+IDApXHJcbiAgICAgIHRoaXMubG9hZFN1cnZleU92ZXJ2aWV3KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25TdWNjZXNzSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkVXBkYXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzRGVsZXRlSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkRGVsZXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiLi4vLi4vXCJdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzQWRkUXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRBZGRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuICBvblN1Y2Nlc3NFZGl0UXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRVcGRhdGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLm1hc3RlckxheW91dFNlcnZpY2UucmVsb2FkQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3NEZWxldGVRdWVzdGlvbkhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZERlbGV0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc2hvd0RlbGV0ZVN1Ym1pc3Npb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dEZWxldGVNb2RhbChpZCk7XHJcblxyXG4gIH1cclxuICBzaG93RWxpbWluYXRlU3VibWlzc2lvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLmVsaW1pbmF0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0VsaW1pbmF0ZU1vZGFsKGlkKTtcclxuICB9XHJcbiAgc2hvd1VuRWxpbWluYXRlU3VibWlzc2lvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLnVuRWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93VW5FbGltaW5hdGVNb2RhbChpZCk7XHJcbiAgfVxyXG4gIG9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXJTdWJtaXNzaW9uID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmREZWxldGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLmxvYWRTdWJtaXNzaW9uU2VjdGlvbigpO1xyXG4gIH1cclxuICBsb2FkU3VibWlzc2lvblNlY3Rpb24oKSB7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWUgPSBcIlNlYXJjaFRleHRCb3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UcmltVGV4dE9uQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuUGxhY2Vob2xkZXIgPSB0aGlzLmwoXCJTZWFyY2hcIik7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkV4dHJhQ2xhc3NlcyA9IFwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2wtc29saWQgc2VhcmNoLWJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5JY29uID0gXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3NlYXJjaC5zdmdcIlxyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcIlNlYXJjaFRleHRcIjtcclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG5cclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuVmFsdWUgPSB0aGlzLnN1cnZleUlEO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLlBhZ2VTaXplID0gMTA7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkRpc2FibGVCbG9ja1VJID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMuQWN0aW9uUG9zdFVSTCA9IHRoaXMuc3VydmV5U2VydmljZS5hcGlVUkwgKyAnR2V0QWxsU3VydmV5U3VibWlzc2lvbic7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW3RoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZV07XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkZpbHRlcnMgPSBbdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIsIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXJdO1xyXG5cclxuXHJcblxyXG4gIH1cclxuICBzZXRTdWJtaXNzaW9uTGlzdGluZ1Jlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvblJlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMuc2hvd1N1Ym1pc3Npb25QYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG4gIGxvYWRTdXJ2ZXlPdmVydmlldygpIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRTdXJ2ZXlPdmVydmlldyh0aGlzLnN1cnZleUlEKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHQgPSByZXMgYXMgYW55XHJcbiAgICAgIHRoaXMuc2hvd092ZXJ2aWV3ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5sb2FkQ2hhcnQodGhpcy5xdWVzdGlvbk92ZXJ2aWV3UmVzdWx0WzBdKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBleHBvcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2VcclxuICAgICAgLmV4cG9ydCh0aGlzLnN1cnZleUlEKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmRvd25sb2FkKChyZXN1bHQgYXMgYW55KSBhcyBCbG9iLCB0aGlzLnBhZ2VUaXRsZSArIFwiLnhsc3hcIik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoSW5RdWVzdGlvbkxpc3QodmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSlcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCA9IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxvY2FsaXplZFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKSlcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCA9IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbDtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS10b29sYmFyLS0+XHJcbjxkaXYgKm5nSWY9XCJsb2FkSW5mb1wiPlxyXG4gIDxiYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudCBbb3B0aW9uc109XCJwYWdlSGVhZGVyT3B0aW9uc1wiPjwvYmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQ+XHJcbjwvZGl2PlxyXG48IS0tZW5kIHRvb2xiYXItLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci14eGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXJcIiAqbmdJZj1cImxvYWRJbmZvXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1tYXJnaW4tYm90dG9tXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZlcnktZGF0ZSBib3JkZXItMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYm94ZXMgYWxpZ24taXRlbXMtYmFzZWxpbmVcIj5cclxuICAgICAgICAgICAgPGRpdiBuZ2JUb29sdGlwPVwie3tsKCdEYXRlJyl9fVwiIGNsYXNzPVwiaWNvbi1ib3hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9jYWxlbmRhci5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCIgKm5nSWY9XCJzdXJ2ZXkuc3RhcnREYXRlPT1udWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e2woJ05vdFN0YXJ0ZWRZZXQnKX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWNvdW50ZXItdGl0bGUgZC1mbGV4IGZsZXgtc3RhY2tcIiAqbmdJZj1cInN1cnZleS5zdGFydERhdGUhPW51bGxcIj5cclxuICAgICAgICAgICAgICAgIHt7c3VydmV5LnN0YXJ0RGF0ZSB8c3VydmV5RGF0ZX19IC0ge3tzdXJ2ZXkuZW5kRGF0ZSE9bnVsbD8oc3VydmV5LmVuZERhdGV8c3VydmV5RGF0ZSk6XCJcIn19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCIgKm5nSWY9XCJzdXJ2ZXkuZW5kRGF0ZT09bnVsbFwiPnt7bCgnSGFzTm9FbmQnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiIFtuZ0NsYXNzXT1cImdldFN0YXR1cyhzdXJ2ZXkuc3RhdHVzSXRlbUlEKVwiPnt7c3VydmV5LmxvY2FsaXplZFN0YXR1c319PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gbmdiVG9vbHRpcD1cInt7bCgnQXVkaWVuY2UnKX19XCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBteC0yXCI+e3tzdXJ2ZXkubG9jYWxpemVkQXVkaWVuY2V9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2FyZC1kYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94ICpuZ0lmPVwiY2FuVGFrZVN1cnZleSYmIChzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uSW50ZXJuYWx8fHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5Cb3RoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIlRleHRCb3hXaXRoSW50ZXJuYWxVUkxcIiBbZ3JvdXBdPVwidXJsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggKm5nSWY9XCJjYW5UYWtlU3VydmV5JiYgKHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5FeHRlcm5hbHx8c3VydmV5LmF1ZGllbmNlSXRlbUlEPT1BdWRpZW5jZVR5cGVFbnVtLkJvdGgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiIFtncm91cF09XCJ1cmxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8cCBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIiAqbmdJZj1cInN1cnZleS5sb2NhbGl6ZWREZXNjXCI+XHJcbiAgICAgICAge3tzdXJ2ZXkubG9jYWxpemVkRGVzY319XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbWFyZ2luLWJvdHRvbVwiPlxyXG4gICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1jdXN0b21cIj5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIG5nYk5hdkxpbms+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICB7e2woJ1F1ZXN0aW9ucycpfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMtc2VhcmNoIHBhZ2Utc3ViaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlNlYXJjaFRleHRCb3hPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNRdWVzdGlvbkZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT25DaGFuZ2UpPVwic2VhcmNoSW5RdWVzdGlvbkxpc3QoJGV2ZW50KVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTdXJ2ZXlJRE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1F1ZXN0aW9uRm9ybVwiIGhpZGRlbj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiY2FuQWRkUXVlc3Rpb25cIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FkZFF1ZXN0aW9uTW9kYWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2woJ0FkZCcpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09XCJwYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JOYXZDb250ZW50IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbi1pbmZvXCIgW2Nka0RyYWdEaXNhYmxlZF09XCJjYW5UYWtlU3VydmV5XCIgY2RrRHJhZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1F1ZXN0aW9uUmVzdWx0OyBsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTI1cHggbWUtNFwiIGNka0RyYWdIYW5kbGUgKm5nSWY9XCIhY2FuVGFrZVN1cnZleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzeW1ib2wtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi03XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvcmVvcmRlci5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWxpc3RpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ1R5cGUnKX19XCI+e3tpdGVtLmxvY2FsaXplZFF1ZXN0aW9uVHlwZUl0ZW19fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0IG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ0F1ZGllbmNlJyl9fVwiPnt7aXRlbS5sb2NhbGl6ZWRBdWRpZW5jZVR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWJyYW5kLWxpZ2h0IG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXCI+e3tsKCdMaW5rZWQnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQgbXgtMlwiICpuZ0lmPVwiIWl0ZW0uaXNWaXNpYmxlXCIgbmdiVG9vbHRpcD1cInt7bCgnTm90VmlzaWJsZScpfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bChcIk5vdFZpc2libGVcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImRyb3Bkb3duLWN1c3RvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cIkVOID8gJ2JvdHRvbS1yaWdodCcgOiAnYm90dG9tLWxlZnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZS1jdXN0b20gYnRuIGJ0bi1jbGVhclwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9jYXJkLWRyb3Bkb3duLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudS1jdXN0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiEoY2FuRWRpdFF1ZXN0aW9uJiZjYW5EZWxldGVRdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdFF1ZXN0aW9uTW9kYWwoaXRlbS5pRF9HVUlELHRydWUpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2luZm8uc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJEZXRhaWxzXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY2FuRWRpdFF1ZXN0aW9uXCIgKGNsaWNrKT1cInNob3dFZGl0UXVlc3Rpb25Nb2RhbChpdGVtLmlEX0dVSUQsZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgdHlwZT1cImJ1dHRvblwiIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL0VkaXQuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJFZGl0XCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiY2FuRGVsZXRlUXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlUXVlc3Rpb25Nb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9UcmFzaC5zdmcnXCI+PC9zcGFuPiB7e2woXCJEZWxldGVcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWNvdW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCI+e3tpdGVtLmxvY2FsaXplZFRleHR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWJyYW5kIGJhZGdlLXNxdWFyZSBtcy0yIG1lLTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ1Njb3JlJyl9fVwiPnt7aXRlbS50b3RhbFNjb3JlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFF1ZXN0aW9uTGlzdGluZ1Jlc3VsdCgkZXZlbnQpXCIgW29wdGlvbnNdPVwicGFnaW5nUXVlc3Rpb25PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwiZmlsdGVyc1F1ZXN0aW9uRm9ybVwiICNwYWdpbmdRdWVzdGlvblZpZXdFbGVtZW50PjwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW5vLXJlc3VsdHMgKm5nSWY9XCJwYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGggPT0gMFwiPjwvYXBwLW5vLXJlc3VsdHM+XHJcblxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW1cIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgbmdiTmF2TGluaz5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7bCgnU3VibWlzc2lvbnMnKX19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMtc2VhcmNoIHBhZ2Utc3ViaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlNlYXJjaFRleHRCb3hPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTdXJ2ZXlJRE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1N1Ym1pc3Npb25Gb3JtXCIgaGlkZGVuPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRhaW5lclwiIFtoaWRkZW5dPVwicGFnaW5nU3VibWlzc2lvblJlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtY3VzdG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4ge3tsKCdOYW1lJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ0VtYWlsJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ1R5cGUnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7bCgnQ3JlYXRlZCcpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdTY29yZScpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1hY3Rpb25cIj57e2woXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwidGFibGUtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQ7IGxldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmUtY2xhbXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmxvY2FsaXplZE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1kYW5nZXIgbXgtMlwiICpuZ0lmPVwiaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woJ0VsaW1pbmF0ZWQnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmVtYWlsfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmlzSW50ZXJuYWxVc2VyPyBsKCdJbnRlcm5hbFVzZXJzJyk6bCgnRXh0ZXJuYWxVc2VycycpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbS5jcmVhdGVkfHN1cnZleURhdGV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0udG90YWxTY29yZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGFibGUtYWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiVG9vbHRpcD1cInt7bCgnUHJldmlldycpfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLi8uLi9pbmZvL3Jlc3VsdCcsIGl0ZW0uaURfR1VJRF1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvYW5zd2Vycy5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFpdGVtLmlzRWxpbWluYXRlZCYmaXRlbS5hbGxvd0VsaW1pbmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e3RoaXMubCgnRWxpbWluYXRlSGludCcpfX1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiAoY2xpY2spPVwic2hvd0VsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbChpdGVtLmlEX0dVSUQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHByZXZlbnRkb3VibGVjbGlja1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvdW5saW5rLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3t0aGlzLmwoJ1VuRWxpbWluYXRlJyl9fVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIChjbGljayk9XCJzaG93VW5FbGltaW5hdGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvbGluay5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JUb29sdGlwPVwie3tsKCdEZWxldGUnKX19XCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgKGNsaWNrKT1cInNob3dEZWxldGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0U3VibWlzc2lvbkxpc3RpbmdSZXN1bHQoJGV2ZW50KVwiIFtvcHRpb25zXT1cInBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiICNwYWdpbmdTdWJtaXNzaW9uVmlld0VsZW1lbnQ+PC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tcmVzdWx0cyAqbmdJZj1cInBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQubGVuZ3RoID09IDBcIj48L2FwcC1uby1yZXN1bHRzPlxyXG5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJzaG93T3ZlcnZpZXdcIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgbmdiTmF2TGluayAoY2xpY2spPVwibG9hZFN1cnZleU92ZXJ2aWV3KClcIj5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7bChcIk92ZXJ2aWV3XCIpIH19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiIG5nYk5hdkNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LXRpdGxlXCI+IHt7bChcIlF1ZXN0aW9uc1wiKSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2LXBpbGxzIGN1c3RvbS1uYXZzXCIgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW09XCJ7e2l0ZW0ubG9jYWxpemVkVGl0bGV9fVwiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHRcIiAoY2xpY2spPVwibG9hZENoYXJ0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+e3tpdGVtLmxvY2FsaXplZFRpdGxlfX08L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LXRpdGxlXCI+e3tsKFwiT3ZlcnZpZXdcIikgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2hhcnRkaXZcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwMHB4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGUtbG9nb1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC10aXRsZVwiPnt7bChcIlNjb3JlXCIpIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaGFydE92ZXJ2aWV3XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MDBweFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLWxvZ29cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcblxyXG5cclxuICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuICA8YXBwLWVkaXQtc3VydmV5ICNlZGl0TW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIj48L2FwcC1lZGl0LXN1cnZleT5cclxuICA8YXBwLWRlbGV0ZS1zdXJ2ZXkgI2RlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzRGVsZXRlSGFuZGxlclwiPjwvYXBwLWRlbGV0ZS1zdXJ2ZXk+XHJcbiAgPGFwcC1hZGQtcXVlc3Rpb24gI2FkZFF1ZXN0aW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nUXVlc3Rpb25FbGVtZW50XCIgW29uU3VjY2Vzc0FkZEhhbmRsZXJdPVwib25TdWNjZXNzQWRkUXVlc3Rpb25IYW5kbGVyXCI+PC9hcHAtYWRkLXF1ZXN0aW9uPlxyXG4gIDxhcHAtZWRpdC1xdWVzdGlvbiAjZWRpdFF1ZXN0aW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nUXVlc3Rpb25FbGVtZW50XCIgW29uU3VjY2Vzc0VkaXRIYW5kbGVyXT1cIm9uU3VjY2Vzc0VkaXRRdWVzdGlvbkhhbmRsZXJcIj48L2FwcC1lZGl0LXF1ZXN0aW9uPlxyXG4gIDxhcHAtZGVsZXRlLXF1ZXN0aW9uICNkZWxldGVRdWVzdGlvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1F1ZXN0aW9uRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0RlbGV0ZVF1ZXN0aW9uSGFuZGxlclwiPjwvYXBwLWRlbGV0ZS1xdWVzdGlvbj5cclxuICA8YXBwLXB1Ymxpc2gtc3VydmV5ICNhZGRQdWJsaXNoTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIiAqbmdJZj1cImxvYWRJbmZvXCIgW3Nob3dUb2dnbGVdPVwic3VydmV5LmlzU2hvd1RvZ2dsZU9mU2NvcmVSZXN1bHRBZnRlclN1Ym1pc3Npb25cIj5cclxuICA8L2FwcC1wdWJsaXNoLXN1cnZleT5cclxuICA8YXBwLXVucHVibGlzaC1zdXJ2ZXkgI2FkZFVuUHVibGlzaE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+XHJcbiAgPC9hcHAtdW5wdWJsaXNoLXN1cnZleT5cclxuICA8YXBwLWRlbGV0ZS1zdWJtaXNzaW9uICNkZWxldGVTdWJtaXNzaW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nU3VibWlzc2lvbkVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzRGVsZXRlSGFuZGxlclN1Ym1pc3Npb25cIj48L2FwcC1kZWxldGUtc3VibWlzc2lvbj5cclxuICA8YXBwLWVsaW1pbmF0ZS1zdWJtaXNzaW9uICNlbGltaW5hdGVNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdTdWJtaXNzaW9uRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+PC9hcHAtZWxpbWluYXRlLXN1Ym1pc3Npb24+XHJcbiAgPGFwcC11bkVsaW1pbmF0ZS1zdWJtaXNzaW9uICN1bkVsaW1pbmF0ZU1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1N1Ym1pc3Npb25FbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPjwvYXBwLXVuRWxpbWluYXRlLXN1Ym1pc3Npb24+XHJcbiJdfQ==
501
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE0QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hPLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxrQkFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQU9yRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7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QUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDSSw2Q0FBNkM7c0JBQTlGLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQW1CVyxxQkFBcUI7c0JBQS9FLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWNJLHVCQUF1QjtzQkFBbkYsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdWJsaXNoU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9wdWJsaXNoLXN1cnZleS9wdWJsaXNoLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYWRkLXF1ZXN0aW9uL2FkZC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLXF1ZXN0aW9uL2RlbGV0ZS1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0UXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2VkaXQtcXVlc3Rpb24vZWRpdC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0U3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi8uLi9lZGl0LXN1cnZleS9lZGl0LXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLy4uL2RlbGV0ZS1zdXJ2ZXkvZGVsZXRlLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgTmdab25lLCBPbkluaXQsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCwgQnJlYWRDcnVtYiwgQ29udHJvbExheW91dCwgRHJvcGRvd25BY3Rpb25JdGVtLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JjZURpcmVjdGlvbiwgSW5wdXRUeXBlLCBQYWdlSGVhZGVyT3B0aW9ucywgUGFnaW5nQ29tcG9uZW50LCBQYWdpbmdPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0ICogYXMgYW01IGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1XCI7XHJcbmltcG9ydCAqIGFzIGFtNXh5IGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1L3h5XCI7XHJcbmltcG9ydCBhbTV0aGVtZXNfQW5pbWF0ZWQgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czUvdGhlbWVzL0FuaW1hdGVkXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgVW5QdWJsaXNoU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi91bnB1Ymxpc2gtc3VydmV5L3VucHVibGlzaC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4uL3N1Ym1pc3Npb25zL2RlbGV0ZS1zdWJtaXNzaW9uL2RlbGV0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy9lbGltaW5hdGUtc3VibWlzc2lvbi9lbGltaW5hdGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy91bmVsaW1pbmF0ZS1zdWJtaXNzaW9uL3VuZWxpbWluYXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXVkaWVuY2VUeXBlLCBTdXJ2ZXlPcHRpb25UeXBlLCBTdXJ2ZXlTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkRUTyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9TdXJ2ZXlNb2RlbHMvc3VydmV5LXF1ZXN0aW9uJztcclxuaW1wb3J0IHsgU3VydmV5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvc3VydmV5LXF1ZXN0aW9uLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXN1cnZleS1pbmZvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N1cnZleS1pbmZvLmNvbXBvbmVudC5jc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUluZm9Db21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwYWdlSGVhZGVyT3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcbiAgYnJlYWRDcnVtYjogQnJlYWRDcnVtYltdO1xyXG4gIHN1cnZleUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBAVmlld0NoaWxkKCdwYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdFbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuICBAVmlld0NoaWxkKCdkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRNb2RhbDogRWRpdFN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlZGl0UXVlc3Rpb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0UXVlc3Rpb25Nb2RhbDogRWRpdFF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2RlbGV0ZVF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlUXVlc3Rpb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2w6IERlbGV0ZVF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgQWRkUXVlc3Rpb25Db21wb25lbnQ6IEFkZFF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFB1Ymxpc2hNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZGRQdWJsaXNoTW9kYWw6IFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYWRkVW5QdWJsaXNoTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWRkVW5QdWJsaXNoTW9kYWw6IFVuUHVibGlzaFN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkZWxldGVTdWJtaXNzaW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlbGltaW5hdGVNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBFbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3VuRWxpbWluYXRlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgdW5FbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQ7XHJcblxyXG4gIFRleHRCb3hXaXRoRXh0ZXJuYWxVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRCb3hXaXRoSW50ZXJuYWxVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIHVybEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBTZWFyY2hUZXh0Qm94ID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRU46IGJvb2xlYW47XHJcbiAgU2VhcmNoVGV4dEJveE9wdGlvbnM6IFRleHRCb3hPcHRpb25zO1xyXG4gIHByaXZhdGUgcm9vdCE6IGFtNS5Sb290O1xyXG4gIHN1cnZleUlEOiBhbnk7XHJcbiAgc3VydmV5OiBhbnk7XHJcbiAgbG9hZEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgU3VydmV5U3RhdHVzRW51bSA9IFN1cnZleVN0YXR1c0VudW07XHJcbiAgcHVibGljIEF1ZGllbmNlVHlwZUVudW0gPSBBdWRpZW5jZVR5cGU7XHJcbiAgc3VydmV5UXVlc3Rpb25zOiBTdXJ2ZXlRdWVzdGlvbkRUT1tdID0gW107XHJcbiAgYXBpUXVlc3Rpb25VUkwgPSB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS5hcGlVUkw7XHJcbiAgZmlsdGVyc1F1ZXN0aW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGNhblRha2VTdXJ2ZXk6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIC8vUXVlc3Rpb25zIFNlY3Rpb25cclxuICBAVmlld0NoaWxkKCdwYWdpbmdRdWVzdGlvblZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ1F1ZXN0aW9uRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgcGFnaW5nUXVlc3Rpb25SZXN1bHQ6IGFueVtdID0gW107XHJcbiAgcGFnaW5nUXVlc3Rpb25PcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG4gIHNob3dQYWdlQ29udGVudDogYm9vbGVhbjtcclxuICBjYW5FZGl0UXVlc3Rpb246IGJvb2xlYW47XHJcbiAgY2FuQWRkUXVlc3Rpb246IGJvb2xlYW47XHJcbiAgY2FuRGVsZXRlUXVlc3Rpb246IGJvb2xlYW47XHJcbiAgc2VhcmNoUXVlc3Rpb25UZXh0RmlsdGVyOiBhbnk7XHJcbiAgU3VydmV5SURPcHRpb25zOiBhbnk7XHJcbiAgc2VhcmNoU3VydmV5SURGaWx0ZXI6IEZpbHRlckl0ZW07XHJcblxyXG5cclxuICAvL1N1Ym1pc3Npb24gU2VjdGlvblxyXG4gIGZpbHRlcnNTdWJtaXNzaW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luZ1N1Ym1pc3Npb25WaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdTdWJtaXNzaW9uRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgcGFnaW5nU3VibWlzc2lvblJlc3VsdDogYW55W10gPSBbXTtcclxuICBwYWdpbmdTdWJtaXNzaW9uT3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICBzaG93U3VibWlzc2lvblBhZ2VDb250ZW50OiBib29sZWFuO1xyXG4gIHNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlcjogRmlsdGVySXRlbTtcclxuICBxdWVzdGlvbk92ZXJ2aWV3UmVzdWx0OiBhbnk7XHJcbiAgcGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbDogYW55O1xyXG4gIHNob3dPdmVydmlldzogYm9vbGVhbjtcclxuICBzaG93TmF2OiBib29sZWFuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZCwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICAgICwgcHJpdmF0ZSBtYXN0ZXJMYXlvdXRTZXJ2aWNlOiBNYXN0ZXJMYXlvdXRTZXJ2aWNlLCBwcml2YXRlIHN1cnZleVNlcnZpY2U6IFN1cnZleVNlcnZpY2UsIHByaXZhdGUgc3VydmV5UXVlc3Rpb25TZXJ2aWNlOiBTdXJ2ZXlRdWVzdGlvblNlcnZpY2UsIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9ICgpID0+IGZhbHNlO1xyXG4gICAgdGhpcy5zdXJ2ZXlJRCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zW1wiaWRcIl07XHJcbiAgfVxyXG4gIC8vIFJ1biB0aGUgZnVuY3Rpb24gb25seSBpbiB0aGUgYnJvd3NlclxyXG4gIGJyb3dzZXJPbmx5KGY6ICgpID0+IHZvaWQpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgZigpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBtYXliZURpc3Bvc2VSb290KGRpdklkKSB7XHJcbiAgICBhbTUuYXJyYXkuZWFjaChhbTUucmVnaXN0cnkucm9vdEVsZW1lbnRzLCAocm9vdCkgPT4ge1xyXG4gICAgICBpZiAocm9vdCkge1xyXG4gICAgICAgIGlmIChyb290LmRvbS5pZCA9PSBkaXZJZCkge1xyXG4gICAgICAgICAgcm9vdC5kaXNwb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfTtcclxuXHJcbiAgbG9hZENoYXJ0KGl0ZW0pIHtcclxuXHJcbiAgICAvLyBDaGFydCBjb2RlIGdvZXMgaW4gaGVyZVxyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lID0gYGNoYXJ0ZGl2YDtcclxuICAgICAgdGhpcy5tYXliZURpc3Bvc2VSb290KG5hbWUpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWUpO1xyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5YOiBmYWxzZSxcclxuICAgICAgICAgIHBhblk6IGZhbHNlLFxyXG4gICAgICAgICAgd2hlZWxYOiAnbm9uZScsXHJcbiAgICAgICAgICB3aGVlbFk6ICdub25lJyxcclxuICAgICAgICAgIHBhZGRpbmdCb3R0b206IDUwLFxyXG4gICAgICAgICAgcGFkZGluZ1RvcDogNDAsXHJcbiAgICAgICAgICBsYXlvdXQ6IHJvb3QudmVydGljYWxMYXlvdXQsXHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBEZWZpbmUgZGF0YVxyXG4gICAgICBsZXQgZGF0YSA9IGl0ZW0ub3B0aW9ucy5tYXAodmFsdWUgPT4geyByZXR1cm4geyAnbmFtZSc6IHZhbHVlLmxvY2FsaXplZFRpdGxlLCAndmFsdWUnOiB2YWx1ZS5udW1iZXJPZlNlbGVjdGVkVGltZSB9IH0pXHJcbiAgICAgIC8vIENyZWF0ZSBZLWF4aXNcclxuICAgICAgbGV0IHlBeGlzID0gY2hhcnQueUF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5WYWx1ZUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIGJhc2VWYWx1ZTogMCxcclxuICAgICAgICAgIG1heFByZWNpc2lvbjogMCxcclxuICAgICAgICAgIGV4dHJhVG9vbHRpcFByZWNpc2lvbjogMTAwLFxyXG4gICAgICAgICAgcmVuZGVyZXI6IGFtNXh5LkF4aXNSZW5kZXJlclkubmV3KHJvb3QsIHt9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgWC1BeGlzXHJcbiAgICAgIGxldCB4QXhpcyA9IGNoYXJ0LnhBeGVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuQ2F0ZWdvcnlBeGlzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWC5uZXcocm9vdCwge30pLFxyXG4gICAgICAgICAgY2F0ZWdvcnlGaWVsZDogXCJuYW1lXCJcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB4QXhpcy5kYXRhLnNldEFsbChkYXRhKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBzZXJpZXNcclxuICAgICAgbGV0IHNlcmllczEgPSBjaGFydC5zZXJpZXMucHVzaChcclxuICAgICAgICBhbTV4eS5Db2x1bW5TZXJpZXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIG5hbWU6IFwiUXVlc3Rpb24gT3B0aW9uc1wiLFxyXG4gICAgICAgICAgeEF4aXM6IHhBeGlzLFxyXG4gICAgICAgICAgeUF4aXM6IHlBeGlzLFxyXG4gICAgICAgICAgdmFsdWVZRmllbGQ6IFwidmFsdWVcIixcclxuICAgICAgICAgIGNhdGVnb3J5WEZpZWxkOiBcIm5hbWVcIixcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcblxyXG4gICAgICBzZXJpZXMxLmRhdGEuc2V0QWxsKGRhdGEpO1xyXG4gICAgICBzZXJpZXMxLnNldChcImZpbGxcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIHNlcmllczEuc2V0KFwic3Ryb2tlXCIsIGFtNS5jb2xvcihcIiNiNjhhMzVcIikpOyAvLyBzZXQgU2VyaWVzIGNvbG9yIHRvIHJlZFxyXG5cclxuICAgICAgLy8gQWRkIGxlZ2VuZFxyXG4gICAgICBsZXQgbGVnZW5kID0gY2hhcnQuY2hpbGRyZW4ucHVzaChhbTUuTGVnZW5kLm5ldyhyb290LCB7fSkpO1xyXG4gICAgICBsZWdlbmQuZGF0YS5wdXNoKHNlcmllczEpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLkVOKSB7XHJcbiAgICAgICAgbGVnZW5kLmxhYmVscy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxyXG4gICAgICAgICAgeDogNTAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGVnZW5kLnZhbHVlTGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgIHRleHRBbGlnbjpcInJpZ2h0XCIsXHJcbiAgICAgICAgIHBhZGRpbmdSaWdodDoxNVxyXG4gICAgICAgIH0pO1xyXG4gICAgICBsZWdlbmQuaXRlbUNvbnRhaW5lcnMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICByZXZlcnNlQ2hpbGRyZW46IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm9vdCA9IHJvb3Q7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLy9jaGFydCBvdmVydmlld1xyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lT3ZlclZpZXcgPSBgY2hhcnRPdmVydmlld2A7XHJcbiAgICAgIHRoaXMubWF5YmVEaXNwb3NlUm9vdChuYW1lT3ZlclZpZXcpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWVPdmVyVmlldyk7XHJcblxyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5ZOiBmYWxzZSxcclxuICAgICAgICAgIGxheW91dDogcm9vdC52ZXJ0aWNhbExheW91dFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG5cclxuICAgICAgLy8gRGVmaW5lIGRhdGFcclxuXHJcbiAgICAgIGxldCBkYXRhID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGl0ZW0ucmVzdWx0cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbS5yZXN1bHRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW0ucmVzdWx0c1trZXldO1xyXG4gICAgICAgICAgbGV0IG9iamVjdCA9IHtcclxuICAgICAgICAgICAgY2F0ZWdvcnk6IFwiPj1cIiArIGtleSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhLnB1c2gob2JqZWN0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ3JlYXRlIFktYXhpc1xyXG4gICAgICBsZXQgeUF4aXMgPSBjaGFydC55QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlZhbHVlQXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgYmFzZVZhbHVlOiAwLFxyXG4gICAgICAgICAgbWF4UHJlY2lzaW9uOiAwLFxyXG4gICAgICAgICAgZXh0cmFUb29sdGlwUHJlY2lzaW9uOiAxMDAsXHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBYLUF4aXNcclxuICAgICAgbGV0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcbiAgICAgICAgICBjYXRlZ29yeUZpZWxkOiBcImNhdGVnb3J5XCJcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB4QXhpcy5kYXRhLnNldEFsbChkYXRhKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBzZXJpZXNcclxuICAgICAgbGV0IHNlcmllczEgPSBjaGFydC5zZXJpZXMucHVzaChcclxuICAgICAgICBhbTV4eS5Db2x1bW5TZXJpZXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIG5hbWU6IFwiU2NvcmVcIixcclxuICAgICAgICAgIHhBeGlzOiB4QXhpcyxcclxuICAgICAgICAgIHlBeGlzOiB5QXhpcyxcclxuICAgICAgICAgIHZhbHVlWUZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgICBjYXRlZ29yeVhGaWVsZDogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHNlcmllczEuZGF0YS5zZXRBbGwoZGF0YSk7XHJcbiAgICAgIHNlcmllczEuc2V0KFwiZmlsbFwiLCBhbTUuY29sb3IoXCIjYjY4YTM1XCIpKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuICAgICAgc2VyaWVzMS5zZXQoXCJzdHJva2VcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIC8vIEFkZCBsZWdlbmRcclxuICAgICAgbGV0IGxlZ2VuZCA9IGNoYXJ0LmNoaWxkcmVuLnB1c2goYW01LkxlZ2VuZC5uZXcocm9vdCwge30pKTtcclxuICAgICAgbGVnZW5kLmRhdGEuc2V0QWxsKGNoYXJ0LnNlcmllcy52YWx1ZXMpO1xyXG4gICAgICBpZiAoIXRoaXMuRU4pIHtcclxuICAgICAgICBsZWdlbmQubGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXHJcbiAgICAgICAgICB4OiA1MCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBsZWdlbmQudmFsdWVMYWJlbHMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICAgdGV4dEFsaWduOlwicmlnaHRcIixcclxuICAgICAgICAgcGFkZGluZ1JpZ2h0OjE1XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGxlZ2VuZC5pdGVtQ29udGFpbmVycy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgIHJldmVyc2VDaGlsZHJlbjogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yb290ID0gcm9vdDtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBDbGVhbiB1cCByb290IGVsZW1lbnQgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbW92ZWRcclxuICAgIHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5yb290KSB7XHJcbiAgICAgICAgdGhpcy5yb290LmRpc3Bvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRJbmZvKHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN1cnZleSA9IHJlc3VsdDtcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5MYWJlbEtleSA9IFwiRXh0ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuZXh0ZXJuYWxVUkxcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhJbnRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5MYWJlbEtleSA9IFwiSW50ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuaW50ZXJuYWxVUkxcclxuXHJcblxyXG4gICAgICB0aGlzLmJyZWFkQ3J1bWIgPSBbXTtcclxuICAgICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5c19IZWFkZXJcIiksIGZhbHNlLCAnLi4vLi4vJyksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlN1cnZleV9EZXRhaWxzXCIpLCB0cnVlKSk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5UaXRsZVZhbHVlID10aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5TZWFyY2hUZXh0Qm94LkFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkJyZWFkQ3J1bWJJdGVtcyA9IHRoaXMuYnJlYWRDcnVtYjtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRGVsZXRlXCIpLCAnL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJywgdGhpcy5zaG93RGVsZXRlTW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRXhwb3J0XCIpLCAnL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZycsIHRoaXMuZXhwb3J0KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKClcclxuICAgICAgICB8fCB0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1VwY29taW5nLnRvTG9jYWxlTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRWRpdFwiKSwgXCIvYXNzZXRzL2ltYWdlcy9FZGl0LnN2Z1wiLCB0aGlzLnNob3dFZGl0TW9kYWwpKVxyXG5cclxuICAgICAgaWYgKHRoaXMuc3VydmV5LnRvdGFsUXVlc3Rpb25Db3VudCA+IDApXHJcbiAgICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKFxyXG4gICAgICAgICAgbmV3IERyb3Bkb3duQWN0aW9uSXRlbSggdGhpcy5sKFwiUHJldmlld1wiKSwgJy9hc3NldHMvaW1hZ2VzL3ZpZXdzLnN2ZycsIHRoaXMucHJldmlld1N1cnZleSkpO1xyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9QdWJsaXNoZWQudG9Mb2NhbGVMb3dlckNhc2UoKSlcclxuICAgICAgICB0aGlzLmNhblRha2VTdXJ2ZXkgPSB0cnVlXHJcblxyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9EcmFmdC50b0xvY2FsZUxvd2VyQ2FzZSgpXHJcbiAgICAgICAgfHwgdGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKSlcclxuICAgICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zLnB1c2gobmV3IERyb3Bkb3duQWN0aW9uSXRlbSh0aGlzLmwoXCJQdWJsaXNoXCIpLCAnL2Fzc2V0cy9pbWFnZXMvU3VibWl0LnN2ZycsIHRoaXMuc2hvd1B1Ymxpc2hNb2RhbCkpXHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zLnB1c2gobmV3IERyb3Bkb3duQWN0aW9uSXRlbSh0aGlzLmwoXCJVblB1Ymxpc2hcIiksICcvYXNzZXRzL2ltYWdlcy91bmxpbmsuc3ZnJywgdGhpcy5zaG93VW5QdWJsaXNoTW9kYWwpLClcclxuXHJcbiAgICAgIHRoaXMuRU4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlRW5nbGlzaCgpO1xyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvblNlY3Rpb24oKTtcclxuICAgICAgdGhpcy5sb2FkU3VibWlzc2lvblNlY3Rpb24oKTtcclxuICAgICAgdGhpcy5wYWdlVGl0bGUgPSB0aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZVxyXG4gICAgICB0aGlzLnVwZGF0ZVBhZ2VUaXRsZSh0aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZSk7XHJcbiAgICAgIHRoaXMubG9hZEluZm8gPSB0cnVlO1xyXG5cclxuXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2hvd0VkaXRNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuZWRpdE1vZGFsLnNob3dFZGl0TW9kYWwodGhpcy5zdXJ2ZXlJRCk7XHJcbiAgfVxyXG4gIHNob3dEZWxldGVNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dEZWxldGVNb2RhbCh0aGlzLnN1cnZleUlEKTtcclxuXHJcbiAgfVxyXG4gIHNob3dFZGl0UXVlc3Rpb25Nb2RhbChpZCxpc1ZpZXdPbmx5KSB7XHJcbiAgICB0aGlzLmVkaXRRdWVzdGlvbk1vZGFsLmVkaXRNb2RhbChpZCwgdGhpcy5zdXJ2ZXkuYXVkaWVuY2VJdGVtSUQsaXNWaWV3T25seSk7XHJcblxyXG4gIH1cclxuICBzaG93QWRkUXVlc3Rpb25Nb2RhbCgpIHtcclxuICAgIHRoaXMuQWRkUXVlc3Rpb25Db21wb25lbnQuYWRkTW9kYWwodGhpcy5zdXJ2ZXlJRCwgdGhpcy5zdXJ2ZXkuYXVkaWVuY2VJdGVtSUQpO1xyXG5cclxuICB9XHJcbiAgc2hvd0RlbGV0ZVF1ZXN0aW9uTW9kYWwgPSAoaWQpID0+IHtcclxuICAgIHRoaXMuZGVsZXRlUXVlc3Rpb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0RlbGV0ZU1vZGFsKGlkKTtcclxuXHJcbiAgfVxyXG4gIHNob3dQdWJsaXNoTW9kYWwgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmFkZFB1Ymxpc2hNb2RhbC5wdWJsaXNoTW9kYWwodGhpcy5zdXJ2ZXlJRCwgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCk7XHJcblxyXG4gIH1cclxuICBzaG93VW5QdWJsaXNoTW9kYWwgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmFkZFVuUHVibGlzaE1vZGFsLnNob3dDb25maXJtYXRpb25Nb2RhbCh0aGlzLnN1cnZleUlEKTtcclxuXHJcbiAgfVxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdFtpbmRleF0uZGlzcGxheU9yZGVyID0gaW5kZXggKyAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvblNlcnZpY2UudXBkYXRlRGlzcGxheU9yZGVyKHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByZXZpZXdTdXJ2ZXkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLy4uL2luZm8vcHJldmlldycsIHRoaXMuc3VydmV5SUQsIHRoaXMuc3VydmV5LmF1ZGllbmNlSXRlbUlEXSwge3JlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICB9XHJcbiAgdGFrZVN1cnZleSA9ICgpID0+IHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vLi4vaW5mby9zdWJtaXNzaW9uJywgdGhpcy5zdXJ2ZXlJRF0sIHtyZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXMoc3RhdHVzKSB7XHJcbiAgICB2YXIgU3RhdHVzZXMgPSAnJztcclxuICAgIHN3aXRjaCAoc3RhdHVzLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc2Vjb25kYXJ5JztcclxuICAgICAgICB0aGlzLmNhbkVkaXRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1kYW5nZXInO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1B1Ymxpc2hlZC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXN1Y2Nlc3MnO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuQWRkUXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1VwY29taW5nLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuRGVsZXRlUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuQWRkUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBTdGF0dXNlcztcclxuICB9XHJcblxyXG4gIGxvYWRRdWVzdGlvblNlY3Rpb24oKSB7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWUgPSBcIlNlYXJjaFRleHRCb3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UcmltVGV4dE9uQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuUGxhY2Vob2xkZXIgPSB0aGlzLmwoXCJTZWFyY2hcIik7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkV4dHJhQ2xhc3NlcyA9IFwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2wtc29saWQgc2VhcmNoLWJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5JY29uID0gXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3NlYXJjaC5zdmdcIlxyXG5cclxuXHJcblxyXG5cclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuVmFsdWUgPSB0aGlzLnN1cnZleUlEO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveDtcclxuXHJcblxyXG5cclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLlBhZ2VTaXplID0gMTAwMDtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLkRpc2FibGVCbG9ja1VJID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLkFjdGlvblBvc3RVUkwgPSB0aGlzLmFwaVF1ZXN0aW9uVVJMICsgJ0dldEFsbFF1ZXN0aW9ucyc7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uT3B0aW9ucy5GaWx0ZXJzID0gW3RoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXJdO1xyXG5cclxuXHJcblxyXG4gIH1cclxuICBzZXRRdWVzdGlvbkxpc3RpbmdSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdE9yaWdpbmFsID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgbGV0IG92ZXJ2aWV3UXVlc3Rpb25zID0gdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdE9yaWdpbmFsLmZpbHRlcihpdGVtID0+IGl0ZW0ucXVlc3Rpb25UeXBlSXRlbUlEID09IFN1cnZleU9wdGlvblR5cGUuUmFkaW9CdXR0b24gfHwgaXRlbS5xdWVzdGlvblR5cGVJdGVtSUQgPT0gU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3QgfHwgaXRlbS5xdWVzdGlvblR5cGVJdGVtSUQgPT0gU3VydmV5T3B0aW9uVHlwZS5NdWx0aXBsZVNlbGVjdClcclxuICAgIGlmIChvdmVydmlld1F1ZXN0aW9ucy5sZW5ndGggPiAwKVxyXG4gICAgICB0aGlzLmxvYWRTdXJ2ZXlPdmVydmlldygpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uU3VjY2Vzc0hhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZFVwZGF0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIG9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZERlbGV0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi4uLy4uL1wiXSwge3JlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICB9XHJcblxyXG4gIG9uU3VjY2Vzc0FkZFF1ZXN0aW9uSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkQWRkZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcbiAgb25TdWNjZXNzRWRpdFF1ZXN0aW9uSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkVXBkYXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzRGVsZXRlUXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmREZWxldGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLm1hc3RlckxheW91dFNlcnZpY2UucmVsb2FkQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHNob3dEZWxldGVTdWJtaXNzaW9uTW9kYWwgPSAoaWQpID0+IHtcclxuICAgIHRoaXMuZGVsZXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwoaWQpO1xyXG5cclxuICB9XHJcbiAgc2hvd0VsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5lbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dFbGltaW5hdGVNb2RhbChpZCk7XHJcbiAgfVxyXG4gIHNob3dVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy51bkVsaW1pbmF0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd1VuRWxpbWluYXRlTW9kYWwoaWQpO1xyXG4gIH1cclxuICBvblN1Y2Nlc3NEZWxldGVIYW5kbGVyU3VibWlzc2lvbiA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkRGVsZXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5sb2FkU3VibWlzc2lvblNlY3Rpb24oKTtcclxuICB9XHJcbiAgbG9hZFN1Ym1pc3Npb25TZWN0aW9uKCkge1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lID0gXCJTZWFyY2hUZXh0Qm94XCI7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHJpbVRleHRPbkNoYW5nZSA9IHRydWU7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlBsYWNlaG9sZGVyID0gdGhpcy5sKFwiU2VhcmNoXCIpO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5FeHRyYUNsYXNzZXMgPSBcImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20gZm9ybS1jb250cm9sLXNvbGlkIHNlYXJjaC1ib3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuSWNvbiA9IFwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9zZWFyY2guc3ZnXCJcclxuXHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJTZWFyY2hUZXh0XCI7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuTmFtZSA9IFwiU3VydmV5SURcIjtcclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zLlZhbHVlID0gdGhpcy5zdXJ2ZXlJRDtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiU3VydmV5SURcIjtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveDtcclxuXHJcblxyXG5cclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5QYWdlU2l6ZSA9IDEwO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5EaXNhYmxlQmxvY2tVSSA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkFjdGlvblBvc3RVUkwgPSB0aGlzLnN1cnZleVNlcnZpY2UuYXBpVVJMICsgJ0dldEFsbFN1cnZleVN1Ym1pc3Npb24nO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFt0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWVdO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5GaWx0ZXJzID0gW3RoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLCB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyXTtcclxuXHJcblxyXG5cclxuICB9XHJcbiAgc2V0U3VibWlzc2lvbkxpc3RpbmdSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnNob3dTdWJtaXNzaW9uUGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuICBsb2FkU3VydmV5T3ZlcnZpZXcoKSB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2UuZ2V0U3VydmV5T3ZlcnZpZXcodGhpcy5zdXJ2ZXlJRCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5xdWVzdGlvbk92ZXJ2aWV3UmVzdWx0ID0gcmVzIGFzIGFueVxyXG4gICAgICB0aGlzLnNob3dPdmVydmlldyA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9hZENoYXJ0KHRoaXMucXVlc3Rpb25PdmVydmlld1Jlc3VsdFswXSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdXJ2ZXlTZXJ2aWNlXHJcbiAgICAgIC5leHBvcnQodGhpcy5zdXJ2ZXlJRClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZCgocmVzdWx0IGFzIGFueSkgYXMgQmxvYiwgdGhpcy5wYWdlVGl0bGUgKyBcIi54bHN4XCIpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEluUXVlc3Rpb25MaXN0KHZhbHVlKSB7XHJcbiAgICBpZiAodmFsdWUpXHJcbiAgICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQgPSB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwuZmlsdGVyKGl0ZW0gPT4gaXRlbS5sb2NhbGl6ZWRUZXh0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSkpXHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQgPSB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWw7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tdG9vbGJhci0tPlxyXG48ZGl2ICpuZ0lmPVwibG9hZEluZm9cIj5cclxuICA8YmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQgW29wdGlvbnNdPVwicGFnZUhlYWRlck9wdGlvbnNcIj48L2Jic2YtcGFnZS1oZWFkZXItY29tcG9uZW50PlxyXG48L2Rpdj5cclxuPCEtLWVuZCB0b29sYmFyLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXIteHhsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyXCIgKm5nSWY9XCJsb2FkSW5mb1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbWFyZ2luLWJvdHRvbVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXJ5LWRhdGUgYm9yZGVyLTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJveGVzIGFsaWduLWl0ZW1zLWJhc2VsaW5lXCI+XHJcbiAgICAgICAgICAgIDxkaXYgbmdiVG9vbHRpcD1cInt7bCgnRGF0ZScpfX1cIiBjbGFzcz1cImljb24tYm94XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzeW1ib2wtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY2FsZW5kYXIuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktY291bnRlci10aXRsZVwiICpuZ0lmPVwic3VydmV5LnN0YXJ0RGF0ZT09bnVsbFwiPlxyXG4gICAgICAgICAgICAgICAge3tsKCdOb3RTdGFydGVkWWV0Jyl9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlIGQtZmxleCBmbGV4LXN0YWNrXCIgKm5nSWY9XCJzdXJ2ZXkuc3RhcnREYXRlIT1udWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e3N1cnZleS5zdGFydERhdGUgfHN1cnZleURhdGV9fSAtIHt7c3VydmV5LmVuZERhdGUhPW51bGw/KHN1cnZleS5lbmREYXRlfHN1cnZleURhdGUpOlwiXCJ9fVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiICpuZ0lmPVwic3VydmV5LmVuZERhdGU9PW51bGxcIj57e2woJ0hhc05vRW5kJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIiBbbmdDbGFzc109XCJnZXRTdGF0dXMoc3VydmV5LnN0YXR1c0l0ZW1JRClcIj57e3N1cnZleS5sb2NhbGl6ZWRTdGF0dXN9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIG5nYlRvb2x0aXA9XCJ7e2woJ0F1ZGllbmNlJyl9fVwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQgbXgtMlwiPnt7c3VydmV5LmxvY2FsaXplZEF1ZGllbmNlfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGNhcmQtZGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cImNhblRha2VTdXJ2ZXkmJiAoc3VydmV5LmF1ZGllbmNlSXRlbUlEPT1BdWRpZW5jZVR5cGVFbnVtLkludGVybmFsfHxzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uQm90aClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJUZXh0Qm94V2l0aEludGVybmFsVVJMXCIgW2dyb3VwXT1cInVybEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94ICpuZ0lmPVwiY2FuVGFrZVN1cnZleSYmIChzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uRXh0ZXJuYWx8fHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5Cb3RoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIlRleHRCb3hXaXRoRXh0ZXJuYWxVUkxcIiBbZ3JvdXBdPVwidXJsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHAgY2xhc3M9XCJjYXJkLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJzdXJ2ZXkubG9jYWxpemVkRGVzY1wiPlxyXG4gICAgICAgIHt7c3VydmV5LmxvY2FsaXplZERlc2N9fVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLW1hcmdpbi1ib3R0b21cIj5cclxuICAgICAgPHVsIG5nYk5hdiAjbmF2PVwibmdiTmF2XCIgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtY3VzdG9tXCI+XHJcbiAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbVwiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBuZ2JOYXZMaW5rPlxyXG4gICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAge3tsKCdRdWVzdGlvbnMnKX19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzLXNlYXJjaCBwYWdlLXN1YmhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTZWFyY2hUZXh0Qm94T3B0aW9uc1wiIFtncm91cF09XCJmaWx0ZXJzUXVlc3Rpb25Gb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE9uQ2hhbmdlKT1cInNlYXJjaEluUXVlc3Rpb25MaXN0KCRldmVudClcIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiU3VydmV5SURPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNRdWVzdGlvbkZvcm1cIiBoaWRkZW4+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImNhbkFkZFF1ZXN0aW9uXCIgY2xhc3M9XCJidG4gYnRuLWJyYW5kIGJ0bi1zbSBzdWJoZWFkZXItYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dBZGRRdWVzdGlvbk1vZGFsKClcIj5cclxuICAgICAgICAgICAgICAgICAge3tsKCdBZGQnKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IFtoaWRkZW5dPVwicGFnaW5nUXVlc3Rpb25SZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiTmF2Q29udGVudCBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb24taW5mb1wiIFtjZGtEcmFnRGlzYWJsZWRdPVwiY2FuVGFrZVN1cnZleVwiIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdpbmdRdWVzdGlvblJlc3VsdDsgbGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC0yNXB4IG1lLTRcIiBjZGtEcmFnSGFuZGxlICpuZ0lmPVwiIWNhblRha2VTdXJ2ZXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tN1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL3Jlb3JkZXIuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1saXN0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3tsKCdUeXBlJyl9fVwiPnt7aXRlbS5sb2NhbGl6ZWRRdWVzdGlvblR5cGVJdGVtfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3tsKCdBdWRpZW5jZScpfX1cIj57e2l0ZW0ubG9jYWxpemVkQXVkaWVuY2VUeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1icmFuZC1saWdodCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblwiPnt7bCgnTGlua2VkJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0IG14LTJcIiAqbmdJZj1cIiFpdGVtLmlzVmlzaWJsZVwiIG5nYlRvb2x0aXA9XCJ7e2woJ05vdFZpc2libGUnKX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJOb3RWaXNpYmxlXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkcm9wZG93bi1jdXN0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCJFTiA/ICdib3R0b20tcmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUtY3VzdG9tIGJ0biBidG4tY2xlYXJcIiBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY2FyZC1kcm9wZG93bi5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnUtY3VzdG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhKGNhbkVkaXRRdWVzdGlvbiYmY2FuRGVsZXRlUXVlc3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0VkaXRRdWVzdGlvbk1vZGFsKGl0ZW0uaURfR1VJRCx0cnVlKVwiIGFwcHByZXZlbnRkb3VibGVjbGljayB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9pbmZvLnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsKFwiRGV0YWlsc1wiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbkVkaXRRdWVzdGlvblwiIChjbGljayk9XCJzaG93RWRpdFF1ZXN0aW9uTW9kYWwoaXRlbS5pRF9HVUlELGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9FZGl0LnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsKFwiRWRpdFwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImNhbkRlbGV0ZVF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZVF1ZXN0aW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiIGFwcHByZXZlbnRkb3VibGVjbGljayBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJ1wiPjwvc3Bhbj4ge3tsKFwiRGVsZXRlXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1jb3VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktY291bnRlci10aXRsZVwiPnt7aXRlbS5sb2NhbGl6ZWRUZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1icmFuZCBiYWRnZS1zcXVhcmUgbXMtMiBtZS0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3tsKCdTY29yZScpfX1cIj57e2l0ZW0udG90YWxTY29yZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRRdWVzdGlvbkxpc3RpbmdSZXN1bHQoJGV2ZW50KVwiIFtvcHRpb25zXT1cInBhZ2luZ1F1ZXN0aW9uT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImZpbHRlcnNRdWVzdGlvbkZvcm1cIiAjcGFnaW5nUXVlc3Rpb25WaWV3RWxlbWVudD48L0JCU0YtUGFnaW5nPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1uby1yZXN1bHRzICpuZ0lmPVwicGFnaW5nUXVlc3Rpb25SZXN1bHQubGVuZ3RoID09IDBcIj48L2FwcC1uby1yZXN1bHRzPlxyXG5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIG5nYk5hdkxpbms+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICB7e2woJ1N1Ym1pc3Npb25zJyl9fVxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWluZm9cIiBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzLXNlYXJjaCBwYWdlLXN1YmhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTZWFyY2hUZXh0Qm94T3B0aW9uc1wiIFtncm91cF09XCJmaWx0ZXJzU3VibWlzc2lvbkZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiU3VydmV5SURPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiIGhpZGRlbj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXJcIiBbaGlkZGVuXT1cInBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWN1c3RvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+IHt7bCgnTmFtZScpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdFbWFpbCcpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdUeXBlJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ0NyZWF0ZWQnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7bCgnU2NvcmUnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGFibGUtYWN0aW9uXCI+e3tsKFwiQWN0aW9uXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keSBjbGFzcz1cInRhYmxlLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdpbmdTdWJtaXNzaW9uUmVzdWx0OyBsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLWNsYW1wLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5sb2NhbGl6ZWROYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtZGFuZ2VyIG14LTJcIiAqbmdJZj1cIml0ZW0uaXNFbGltaW5hdGVkJiZpdGVtLmFsbG93RWxpbWluYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsKCdFbGltaW5hdGVkJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5lbWFpbH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5pc0ludGVybmFsVXNlcj8gbCgnSW50ZXJuYWxVc2VycycpOmwoJ0V4dGVybmFsVXNlcnMnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0uY3JlYXRlZHxzdXJ2ZXlEYXRlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tpdGVtLnRvdGFsU2NvcmV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWFjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5nYlRvb2x0aXA9XCJ7e2woJ1ByZXZpZXcnKX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vaW5mby9yZXN1bHQnLCBpdGVtLmlEX0dVSURdXCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2Fuc3dlcnMuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3t0aGlzLmwoJ0VsaW1pbmF0ZUhpbnQnKX19XCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgKGNsaWNrKT1cInNob3dFbGltaW5hdGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL3VubGluay5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIml0ZW0uaXNFbGltaW5hdGVkJiZpdGVtLmFsbG93RWxpbWluYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7dGhpcy5sKCdVbkVsaW1pbmF0ZScpfX1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiAoY2xpY2spPVwic2hvd1VuRWxpbWluYXRlU3VibWlzc2lvbk1vZGFsKGl0ZW0uaURfR1VJRClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcHJldmVudGRvdWJsZWNsaWNrIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2xpbmsuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiVG9vbHRpcD1cInt7bCgnRGVsZXRlJyl9fVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIChjbGljayk9XCJzaG93RGVsZXRlU3VibWlzc2lvbk1vZGFsKGl0ZW0uaURfR1VJRClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcHJldmVudGRvdWJsZWNsaWNrIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL1RyYXNoLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFN1Ym1pc3Npb25MaXN0aW5nUmVzdWx0KCRldmVudClcIiBbb3B0aW9uc109XCJwYWdpbmdTdWJtaXNzaW9uT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJmaWx0ZXJzU3VibWlzc2lvbkZvcm1cIiAjcGFnaW5nU3VibWlzc2lvblZpZXdFbGVtZW50PjwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW5vLXJlc3VsdHMgKm5nSWY9XCJwYWdpbmdTdWJtaXNzaW9uUmVzdWx0Lmxlbmd0aCA9PSAwXCI+PC9hcHAtbm8tcmVzdWx0cz5cclxuXHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwic2hvd092ZXJ2aWV3XCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIG5nYk5hdkxpbmsgKGNsaWNrKT1cImxvYWRTdXJ2ZXlPdmVydmlldygpXCI+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICB7e2woXCJPdmVydmlld1wiKSB9fVxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWluZm9cIiBuZ2JOYXZDb250ZW50PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC10aXRsZVwiPiB7e2woXCJRdWVzdGlvbnNcIikgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdi1waWxscyBjdXN0b20tbmF2c1wiIG9yaWVudGF0aW9uPVwidmVydGljYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtPVwie3tpdGVtLmxvY2FsaXplZFRpdGxlfX1cIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbk92ZXJ2aWV3UmVzdWx0XCIgKGNsaWNrKT1cImxvYWRDaGFydChpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rPnt7aXRlbS5sb2NhbGl6ZWRUaXRsZX19PC9hPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC10aXRsZVwiPnt7bChcIk92ZXJ2aWV3XCIpIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImNoYXJ0ZGl2XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MDBweFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLWxvZ29cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtdGl0bGVcIj57e2woXCJTY29yZVwiKSB9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2hhcnRPdmVydmlld1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNDAwcHhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZS1sb2dvXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG5cclxuXHJcbiAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiAgPGFwcC1lZGl0LXN1cnZleSAjZWRpdE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+PC9hcHAtZWRpdC1zdXJ2ZXk+XHJcbiAgPGFwcC1kZWxldGUtc3VydmV5ICNkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXJcIj48L2FwcC1kZWxldGUtc3VydmV5PlxyXG4gIDxhcHAtYWRkLXF1ZXN0aW9uICNhZGRRdWVzdGlvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1F1ZXN0aW9uRWxlbWVudFwiIFtvblN1Y2Nlc3NBZGRIYW5kbGVyXT1cIm9uU3VjY2Vzc0FkZFF1ZXN0aW9uSGFuZGxlclwiPjwvYXBwLWFkZC1xdWVzdGlvbj5cclxuICA8YXBwLWVkaXQtcXVlc3Rpb24gI2VkaXRRdWVzdGlvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1F1ZXN0aW9uRWxlbWVudFwiIFtvblN1Y2Nlc3NFZGl0SGFuZGxlcl09XCJvblN1Y2Nlc3NFZGl0UXVlc3Rpb25IYW5kbGVyXCI+PC9hcHAtZWRpdC1xdWVzdGlvbj5cclxuICA8YXBwLWRlbGV0ZS1xdWVzdGlvbiAjZGVsZXRlUXVlc3Rpb25Nb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdRdWVzdGlvbkVsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NEZWxldGVRdWVzdGlvbkhhbmRsZXJcIj48L2FwcC1kZWxldGUtcXVlc3Rpb24+XHJcbiAgPGFwcC1wdWJsaXNoLXN1cnZleSAjYWRkUHVibGlzaE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCIgKm5nSWY9XCJsb2FkSW5mb1wiIFtzaG93VG9nZ2xlXT1cInN1cnZleS5pc1Nob3dUb2dnbGVPZlNjb3JlUmVzdWx0QWZ0ZXJTdWJtaXNzaW9uXCI+XHJcbiAgPC9hcHAtcHVibGlzaC1zdXJ2ZXk+XHJcbiAgPGFwcC11bnB1Ymxpc2gtc3VydmV5ICNhZGRVblB1Ymxpc2hNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCIgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPlxyXG4gIDwvYXBwLXVucHVibGlzaC1zdXJ2ZXk+XHJcbiAgPGFwcC1kZWxldGUtc3VibWlzc2lvbiAjZGVsZXRlU3VibWlzc2lvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1N1Ym1pc3Npb25FbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXJTdWJtaXNzaW9uXCI+PC9hcHAtZGVsZXRlLXN1Ym1pc3Npb24+XHJcbiAgPGFwcC1lbGltaW5hdGUtc3VibWlzc2lvbiAjZWxpbWluYXRlTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nU3VibWlzc2lvbkVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPjwvYXBwLWVsaW1pbmF0ZS1zdWJtaXNzaW9uPlxyXG4gIDxhcHAtdW5FbGltaW5hdGUtc3VibWlzc2lvbiAjdW5FbGltaW5hdGVNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdTdWJtaXNzaW9uRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIj48L2FwcC11bkVsaW1pbmF0ZS1zdWJtaXNzaW9uPlxyXG4iXX0=