@smarterplan/ngx-smarterplan-admin 0.1.38 → 0.1.40

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.
@@ -65,8 +65,8 @@ export class FormMissionComponent {
65
65
  return this.missionForm.get("role");
66
66
  }
67
67
  async initFormForEdit() {
68
- let startDate = '';
69
- let endDate = '';
68
+ let startDate = null;
69
+ let endDate = null;
70
70
  const m = this.missionToEdit;
71
71
  if (m.startDateTime) {
72
72
  const date = DateTime.fromISO(m.startDateTime);
@@ -124,8 +124,8 @@ export class FormMissionComponent {
124
124
  description: ["", [textValidator(), noEmptyValidator()]],
125
125
  domains: [null],
126
126
  locale: [this.currentLocale],
127
- startDate: ['', [floatValidator()]],
128
- endDate: ['', [floatValidator()]],
127
+ startDate: [null, [floatValidator()]],
128
+ endDate: [null, [floatValidator()]],
129
129
  });
130
130
  }
131
131
  onHashtagClick(hashtag) {
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
210
210
  }], addedMissionInput: [{
211
211
  type: Output
212
212
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1taXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1hZG1pbi9zcmMvbGliL3VzZXIvZm9ybS1taXNzaW9uL2Zvcm0tbWlzc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tYWRtaW4vc3JjL2xpYi91c2VyL2Zvcm0tbWlzc2lvbi9mb3JtLW1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBRUgsV0FBVyxFQUFVLE1BQU0sRUFDTyxXQUFXLEVBQUUsV0FBVyxFQUNKLGtCQUFrQixFQUMzRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBcUIsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBUXZILE1BQU0sT0FBTyxvQkFBb0I7SUE0QzdCLFlBQ1ksRUFBZSxFQUNmLFlBQTBCLEVBQzFCLFdBQTRCLEVBQzVCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxXQUF3QixFQUN4QixjQUE4QixFQUM5QixhQUE0QixFQUM3QixpQkFBb0M7UUFSbkMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hD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RyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksU0FBUyxDQUFDLEtBQUssRUFBRTtZQUNqQixZQUFZLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDMUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztpSEE3UFEsb0JBQW9CO3FHQUFwQixvQkFBb0IsbVRDbEJqQyxtbVpBNk5NOzJGRDNNTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksa0JBQWtCOzRVQU1uQixhQUFhO3NCQUFyQixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFNSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICAgIFpvbmUsIE1pc3Npb24sIE9yZ2FuaXNhdGlvbiwgU3BhY2UsIFJvbGVTdGF0dXMsXHJcbiAgICBMZXZlbFN0YXR1cywgRG9tYWluLCBMb2NhbGUsIEJhc2VVc2VyU2VydmljZSwgRG9tYWluU2VydmljZSxcclxuICAgIE9yZ2FuaXNhdGlvblNlcnZpY2UsIFpvbmVTZXJ2aWNlLCBlbnVtVG9BcnJheSwgRW1haWxTdGF0dXMsXHJcbiAgICBIYXNodGFnLCBTcGFjZVNlcnZpY2UsIExvY2FsZVNlcnZpY2UsIEhhc2h0YWdTZXJ2aWNlLCBzdHJpbmdMb2NhbGVUb0VudW1cclxufSBmcm9tICdAc21hcnRlcnBsYW4vbmd4LXNtYXJ0ZXJwbGFuLWNvcmUnO1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSwgdGV4dFZhbGlkYXRvciwgbm9FbXB0eVZhbGlkYXRvciwgZmxvYXRWYWxpZGF0b3IgfSBmcm9tIFwiQHNtYXJ0ZXJwbGFuL25neC1zbWFydGVycGxhbi1jb3JlXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1mb3JtLW1pc3Npb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbWlzc2lvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLW1pc3Npb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybU1pc3Npb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIG1pc3Npb25Ub0VkaXQ6IE1pc3Npb247XHJcblxyXG4gICAgQElucHV0KCkgb3JnYW5pc2F0aW9uRm9yTWlzc2lvbjogT3JnYW5pc2F0aW9uO1xyXG5cclxuICAgIEBJbnB1dCgpIGlzU1A6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KCkgdXNlckZvck1pc3Npb25JRDogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIGN1cnJlbnRVc2VyT3JnYW5pc2F0aW9uOiBPcmdhbmlzYXRpb247XHJcblxyXG4gICAgbWlzc2lvbkZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICBhdmFpbGFibGVTcGFjZXM6IFNwYWNlW107XHJcblxyXG4gICAgQE91dHB1dCgpIGFkZGVkTWlzc2lvbklucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxNaXNzaW9uPigpO1xyXG5cclxuICAgIGF2YWlsYWJsZVJvbGVzOiBSb2xlU3RhdHVzW107XHJcblxyXG4gICAgYXZhaWxhYmxlTGV2ZWxzOiBMZXZlbFN0YXR1c1tdO1xyXG5cclxuICAgIGF2YWlsYWJsZUhhc2h0YWdzOiBIYXNodGFnW10gPSBbXTtcclxuXHJcbiAgICBkb21haW5zOiBEb21haW5bXTtcclxuXHJcbiAgICBhbGxPcmdzOiBPcmdhbmlzYXRpb25bXTtcclxuXHJcbiAgICBpc0d1aWRlID0gZmFsc2U7XHJcblxyXG4gICAgem9uZXNGb3JTcGFjZTogWm9uZVtdO1xyXG5cclxuICAgIGRlZmF1bHRab25lOiBab25lO1xyXG5cclxuICAgIG1pc3Npb25UaW1lU3RhcnQ6IG51bWJlciA9IDEyICogNjAgKiA2MDAwMDsgLy8gbWlkZGF5IGluIG1pbGxpc2Vjb25kc1xyXG5cclxuICAgIG1pc3Npb25UaW1lRW5kOiBudW1iZXIgPSAxMiAqIDYwICogNjAwMDA7XHJcblxyXG4gICAgYWRkZWRIYXNodGFnczogSGFzaHRhZ1tdID0gW107XHJcblxyXG4gICAgY3VycmVudExvY2FsZTogTG9jYWxlO1xyXG5cclxuICAgIGxvY2FsZXM6IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgc3BhY2VTZXJ2aWNlOiBTcGFjZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZG9tYWluU2VydmljZTogRG9tYWluU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG9yZ2FuaXNhdGlvblNlcnZpY2U6IE9yZ2FuaXNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB6b25lU2VydmljZTogWm9uZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBoYXNodGFnU2VydmljZTogSGFzaHRhZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyB2YWxpZGF0b3JzU2VydmljZTogVmFsaWRhdG9yc1NlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVVc2VySW5mbygpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0RG9tYWlucygpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzU1ApIHtcclxuICAgICAgICAgICAgdGhpcy5hbGxPcmdzID0gYXdhaXQgdGhpcy5vcmdhbmlzYXRpb25TZXJ2aWNlLmxpc3RPcmdhbmlzYXRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VycmVudExvY2FsZSA9IHN0cmluZ0xvY2FsZVRvRW51bSh0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlKCkpOyAvLyB0byBtYXRjaCBlbnVtIExvY2FsZVxyXG4gICAgICAgIHRoaXMubG9jYWxlcyA9IGVudW1Ub0FycmF5KExvY2FsZSk7XHJcbiAgICAgICAgaWYgKHRoaXMubWlzc2lvblRvRWRpdCkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtRm9yRWRpdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdEVtcHR5Rm9ybSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySW5mbygpIHtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZVJvbGVzID1cclxuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRBdmFpbGFibGVSb2xlc0ZvckN1cnJlbnRVc2VyKCk7XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMZXZlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEF2YWxhYmxlTGV2ZWxzRm9yQ3VycmVudFVzZXIoKTtcclxuICAgICAgICB0aGlzLmlzR3VpZGUgPSB0aGlzLnVzZXJTZXJ2aWNlLmlzR3VpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzZXREb21haW5zKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0d1aWRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRvbWFpbnMgPVxyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kb21haW5TZXJ2aWNlLmdldERvbWFpbnNGb3JNaXNzaW9uc0Zvck9yZyhcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRVc2VyT3JnYW5pc2F0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5kb21haW5zID0gZG9tYWlucztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2V0SGFzaHRhZ3Moc3BhY2VJRDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVIYXNodGFncyA9IGF3YWl0IHRoaXMuaGFzaHRhZ1NlcnZpY2UuZ2V0SGFzaHRhZ3NGb3JTcGFjZShcclxuICAgICAgICAgICAgc3BhY2VJRCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzcGFjZUlEKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWlzc2lvbkZvcm0uZ2V0KFwic3BhY2VcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJvbGUoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5taXNzaW9uRm9ybS5nZXQoXCJyb2xlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluaXRGb3JtRm9yRWRpdCgpIHtcclxuICAgICAgICBsZXQgc3RhcnREYXRlOiBhbnkgPSAnJztcclxuICAgICAgICBsZXQgZW5kRGF0ZTogYW55ID0gJyc7XHJcblxyXG4gICAgICAgIGNvbnN0IG0gPSB0aGlzLm1pc3Npb25Ub0VkaXQ7XHJcblxyXG4gICAgICAgIGlmIChtLnN0YXJ0RGF0ZVRpbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IERhdGVUaW1lLmZyb21JU08obS5zdGFydERhdGVUaW1lKTtcclxuICAgICAgICAgICAgdGhpcy5taXNzaW9uVGltZVN0YXJ0ID0gKGRhdGUuaG91ciAqIDYwICsgZGF0ZS5taW51dGUpICogNjAgKiAxMDAwO1xyXG4gICAgICAgICAgICBzdGFydERhdGUgPSBkYXRlLnRvTWlsbGlzKCkgLSB0aGlzLm1pc3Npb25UaW1lU3RhcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtLmVuZERhdGVUaW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBEYXRlVGltZS5mcm9tSVNPKG0uZW5kRGF0ZVRpbWUpO1xyXG4gICAgICAgICAgICB0aGlzLm1pc3Npb25UaW1lRW5kID0gKGRhdGUuaG91ciAqIDYwICsgZGF0ZS5taW51dGUpICogNjAgKiAxMDAwO1xyXG4gICAgICAgICAgICBlbmREYXRlID0gZGF0ZS50b01pbGxpcygpIC0gdGhpcy5taXNzaW9uVGltZUVuZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXNlckZvck1pc3Npb25JRCA9IG0udXNlcklEO1xyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlU3BhY2VzID0gYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuZ2V0QWxsb3dlZFNwYWNlc0Zvck9yZyhcclxuICAgICAgICAgICAgdGhpcy5taXNzaW9uVG9FZGl0Lm9yZ2FuaXNhdGlvbklELFxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRVc2VyT3JnYW5pc2F0aW9uLmlkLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXRIYXNodGFncyhtLnNwYWNlSUQpO1xyXG4gICAgICAgIHRoaXMubWlzc2lvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgaWQ6IG0uaWQsXHJcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbjogW3sgdmFsdWU6IG0ub3JnYW5pc2F0aW9uLm5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICBvcmdhbmlzYXRpb25JRDogbS5vcmdhbmlzYXRpb25JRCxcclxuICAgICAgICAgICAgb3JkZXJlZE9yZ2FuaXNhdGlvbklEOiBtLm9yZGVyZWRPcmdhbmlzYXRpb25JRCxcclxuICAgICAgICAgICAgcm9sZTogW20ucm9sZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIGxldmVsOiBbbS5sZXZlbF0sXHJcbiAgICAgICAgICAgIHNwYWNlOiBbbS5zcGFjZUlELCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFttLmRlc2NyaXB0aW9uLFt0ZXh0VmFsaWRhdG9yKCksIG5vRW1wdHlWYWxpZGF0b3IoKV0gXSxcclxuICAgICAgICAgICAgZG9tYWluczogW20uZG9tYWluc10sXHJcbiAgICAgICAgICAgIHpvbmU6IFttLnpvbmVJRF0sXHJcbiAgICAgICAgICAgIGxvY2FsZTogW20ubG9jYWxlXSxcclxuICAgICAgICAgICAgc3RhcnREYXRlOiBbc3RhcnREYXRlLCBbZmxvYXRWYWxpZGF0b3IoKV1dLFxyXG4gICAgICAgICAgICBlbmREYXRlOiBbZW5kRGF0ZSwgW2Zsb2F0VmFsaWRhdG9yKCldXSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAobS5oYXNodGFncyAmJiBtLmhhc2h0YWdzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRlZEhhc2h0YWdzID0gdGhpcy5hdmFpbGFibGVIYXNodGFncy5maWx0ZXIoKGhhc2h0YWcpID0+XHJcbiAgICAgICAgICAgICAgICBtLmhhc2h0YWdzLmluY2x1ZGVzKGhhc2h0YWcuaWQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5vblNwYWNlQ2xpY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvblNwYWNlQ2xpY2soKSB7XHJcbiAgICAgICAgY29uc3Qgem9uZXMgPSBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLmdldFpvbmVzQnlTcGFjZShcclxuICAgICAgICAgICAgdGhpcy5zcGFjZUlELnZhbHVlLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Wm9uZSA9IHpvbmVzLmZpbmQoKHpvbmUpID0+ICF6b25lLnBhcmVudElEKTtcclxuICAgICAgICBjb25zdCBpbmRleE9mRGVmYXVsdFpvbmUgPSB6b25lcy5pbmRleE9mKHRoaXMuZGVmYXVsdFpvbmUpO1xyXG4gICAgICAgIHpvbmVzLnNwbGljZShpbmRleE9mRGVmYXVsdFpvbmUsIDEpO1xyXG4gICAgICAgIHRoaXMuem9uZXNGb3JTcGFjZSA9IHpvbmVzO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0SGFzaHRhZ3ModGhpcy5zcGFjZUlELnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbml0RW1wdHlGb3JtKCkge1xyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlU3BhY2VzID0gYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuZ2V0QWxsb3dlZFNwYWNlc0Zvck9yZyhcclxuICAgICAgICAgICAgdGhpcy5vcmdhbmlzYXRpb25Gb3JNaXNzaW9uLmlkLFxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRVc2VyT3JnYW5pc2F0aW9uLmlkLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5taXNzaW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICByb2xlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBsZXZlbDogW0xldmVsU3RhdHVzLk1JTklNVU1dLFxyXG4gICAgICAgICAgICBvcmdhbmlzYXRpb246IFtcclxuICAgICAgICAgICAgICAgIHsgdmFsdWU6IHRoaXMub3JnYW5pc2F0aW9uRm9yTWlzc2lvbi5uYW1lLCBkaXNhYmxlZDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBvcmdhbmlzYXRpb25JRDogdGhpcy5vcmdhbmlzYXRpb25Gb3JNaXNzaW9uLmlkLFxyXG4gICAgICAgICAgICBvcmRlcmVkT3JnYW5pc2F0aW9uSUQ6IHRoaXMuY3VycmVudFVzZXJPcmdhbmlzYXRpb24uaWQsXHJcbiAgICAgICAgICAgIHNwYWNlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICB6b25lOiBbJyddLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogW1wiXCIsIFt0ZXh0VmFsaWRhdG9yKCksIG5vRW1wdHlWYWxpZGF0b3IoKV1dLFxyXG4gICAgICAgICAgICBkb21haW5zOiBbbnVsbF0sXHJcbiAgICAgICAgICAgIGxvY2FsZTogW3RoaXMuY3VycmVudExvY2FsZV0sXHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogWycnLCBbZmxvYXRWYWxpZGF0b3IoKV1dLFxyXG4gICAgICAgICAgICBlbmREYXRlOiBbJycsIFtmbG9hdFZhbGlkYXRvcigpXV0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25IYXNodGFnQ2xpY2soaGFzaHRhZzogSGFzaHRhZykge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNodGFnQWRkZWQoaGFzaHRhZykpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRlZEhhc2h0YWdzLnB1c2goaGFzaHRhZyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRlZEhhc2h0YWdzLnNwbGljZSh0aGlzLmFkZGVkSGFzaHRhZ3MuaW5kZXhPZihoYXNodGFnKSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhc2h0YWdBZGRlZChoYXNodGFnOiBIYXNodGFnKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5hZGRlZEhhc2h0YWdzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoX2hhc2h0YWcpID0+IF9oYXNodGFnLmlkID09PSBoYXNodGFnLmlkLFxyXG4gICAgICAgICAgICApICE9PSB1bmRlZmluZWRcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUhhc2h0YWcoaGFzaHRhZzogSGFzaHRhZykge1xyXG4gICAgICAgIHRoaXMuYWRkZWRIYXNodGFncy5zcGxpY2UodGhpcy5hZGRlZEhhc2h0YWdzLmluZGV4T2YoaGFzaHRhZyksIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3VibWl0KCkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMubWlzc2lvbkZvcm0udmFsdWU7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1pc3Npb25Gb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMgc2hvd3MgZXJyb3JzIGluIHRoZSBmb3JtXHJcbiAgICAgICAgICAgIHRoaXMubWlzc2lvbkZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdGFydERhdGVTdHJpbmc6IHN0cmluZztcclxuICAgICAgICBsZXQgZW5kRGF0ZVN0cmluZzogc3RyaW5nO1xyXG4gICAgICAgIGlmIChmb3JtVmFsdWUuc3RhcnREYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGVIb3VyU3RhcnROdW1iZXIgPSBmb3JtVmFsdWUuc3RhcnREYXRlICsgdGhpcy5taXNzaW9uVGltZVN0YXJ0O1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydERhdGUgPSBEYXRlVGltZS5mcm9tTWlsbGlzKGRhdGVIb3VyU3RhcnROdW1iZXIpO1xyXG4gICAgICAgICAgICBzdGFydERhdGVTdHJpbmcgPSBzdGFydERhdGUudG9JU08oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZvcm1WYWx1ZS5lbmREYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGVIb3VyRW5kTnVtYmVyID0gZm9ybVZhbHVlLmVuZERhdGUgKyB0aGlzLm1pc3Npb25UaW1lRW5kO1xyXG4gICAgICAgICAgICBjb25zdCBlbmREYXRlID0gRGF0ZVRpbWUuZnJvbU1pbGxpcyhkYXRlSG91ckVuZE51bWJlcik7XHJcbiAgICAgICAgICAgIGVuZERhdGVTdHJpbmcgPSBlbmREYXRlLnRvSVNPKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG1pc3Npb25JbnB1dDogTWlzc2lvbiA9IHtcclxuICAgICAgICAgICAgb3JnYW5pc2F0aW9uSUQ6IGZvcm1WYWx1ZS5vcmdhbmlzYXRpb25JRCxcclxuICAgICAgICAgICAgb3JkZXJlZE9yZ2FuaXNhdGlvbklEOiBmb3JtVmFsdWUub3JkZXJlZE9yZ2FuaXNhdGlvbklELFxyXG4gICAgICAgICAgICBsZXZlbDogZm9ybVZhbHVlLmxldmVsLFxyXG4gICAgICAgICAgICByb2xlOiBmb3JtVmFsdWUucm9sZSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGZvcm1WYWx1ZS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgc3RhcnREYXRlVGltZTogc3RhcnREYXRlU3RyaW5nLFxyXG4gICAgICAgICAgICBlbmREYXRlVGltZTogZW5kRGF0ZVN0cmluZyxcclxuICAgICAgICAgICAgZG9tYWluczogZm9ybVZhbHVlLmRvbWFpbnMsXHJcbiAgICAgICAgICAgIHVzZXJJRDogdGhpcy51c2VyRm9yTWlzc2lvbklELFxyXG4gICAgICAgICAgICBlbWFpbFN0YXR1czogdGhpcy5taXNzaW9uVG9FZGl0XHJcbiAgICAgICAgICAgICAgICA/IHRoaXMubWlzc2lvblRvRWRpdC5lbWFpbFN0YXR1c1xyXG4gICAgICAgICAgICAgICAgOiBFbWFpbFN0YXR1cy5DUkVBVElPTl9UT19ERUxJVkVSLFxyXG4gICAgICAgICAgICBsb2NhbGU6IGZvcm1WYWx1ZS5sb2NhbGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBtaXNzaW9uSW5wdXQuaGFzaHRhZ3MgPSB0aGlzLmFkZGVkSGFzaHRhZ3MubWFwKChoKSA9PiBoLmlkKTtcclxuICAgICAgICBpZiAoZm9ybVZhbHVlLnNwYWNlKSB7XHJcbiAgICAgICAgICAgIG1pc3Npb25JbnB1dC5zcGFjZUlEID0gZm9ybVZhbHVlLnNwYWNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZm9ybVZhbHVlLnpvbmUpIHtcclxuICAgICAgICAgICAgbWlzc2lvbklucHV0LnpvbmVJRCA9IGZvcm1WYWx1ZS56b25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5taXNzaW9uVG9FZGl0KSB7XHJcbiAgICAgICAgICAgIG1pc3Npb25JbnB1dC5pZCA9IHRoaXMubWlzc2lvblRvRWRpdC5pZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hZGRlZE1pc3Npb25JbnB1dC5lbWl0KG1pc3Npb25JbnB1dCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5hZGRlZE1pc3Npb25JbnB1dC5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1jb250YWludGVyXCIgKm5nSWY9XCJtaXNzaW9uRm9ybVwiPlxyXG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCI+XHJcbiAgICAgICAgPGg0Pnt7ICdNaXNzaW9uIGRldGFpbHMnIHwgdHJhbnNsYXRlIH19PC9oND5cclxuICAgIDwvZGl2PlxyXG4gICAgPGZvcm0gKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBbZm9ybUdyb3VwXT1cIm1pc3Npb25Gb3JtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snT3JnYW5pc2F0aW9uJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAgZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tb3JnYW5pc2F0aW9uXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJvcmdhbmlzYXRpb25cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiICpuZ0lmPVwiaXNTUFwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdPcmRlcmVkIGJ5JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJlcXVpcmVkIGZvcm1Db250cm9sTmFtZT1cIm9yZGVyZWRPcmdhbmlzYXRpb25JRFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9yZyBvZiBhbGxPcmdzXCIgW25nVmFsdWVdPVwib3JnLmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9yZy5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7J0Rlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIHJvd3M9XCIxMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwidmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1kZXNjcmlwdGlvblwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtdGVzdGlkPVwiZm9ybS1taXNzaW9uLWRlc2NyaXB0aW9uLWludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNsYXRlXT1cInZhbGlkYXRvcnNTZXJ2aWNlLmdldEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydkZXNjcmlwdGlvbiddKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIHZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydkZXNjcmlwdGlvbiddKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snUm9sZScgfCB0cmFuc2xhdGV9fSo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJyb2xlXCIgZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tcm9sZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwidmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ3JvbGUnXSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCByIG9mIGF2YWlsYWJsZVJvbGVzXCIgW25nVmFsdWVdPVwiclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyByIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tcm9sZS1pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZV09XCJ2YWxpZGF0b3JzU2VydmljZS5nZXRFcnJvcihtaXNzaW9uRm9ybS5jb250cm9sc1sncm9sZSddKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIHZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydyb2xlJ10pXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIm1pc3Npb25Gb3JtLmdldCgncm9sZScpLnZhbHVlICE9PSAnVklTSVRPUl9NVVNFVU0nICYmIG1pc3Npb25Gb3JtLmdldCgncm9sZScpLnZhbHVlICE9PSAnR1VJREVfTVVTRVVNJ1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7J0RvbWFpbnMnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIiAqbmdJZj1cImRvbWFpbnNcIj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtdWx0aXBsZSBmb3JtQ29udHJvbE5hbWU9XCJkb21haW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgZG9tYWluIG9mIGRvbWFpbnNcIiBbbmdWYWx1ZV09XCJkb21haW4uaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZG9tYWluLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snQWNjZXNzIGxldmVsJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcmVxdWlyZWQgZm9ybUNvbnRyb2xOYW1lPVwibGV2ZWxcIiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1sZXZlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxldmVsIG9mIGF2YWlsYWJsZUxldmVsc1wiIFtuZ1ZhbHVlXT1cImxldmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxldmVsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdBdXRob3JpemVkIGxvY2F0aW9uJyB8IHRyYW5zbGF0ZSB9fSo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIiAqbmdJZj1cImF2YWlsYWJsZVNwYWNlc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJlcXVpcmVkIGZvcm1Db250cm9sTmFtZT1cInNwYWNlXCIgKGNoYW5nZSk9XCJvblNwYWNlQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tc3BhY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cInZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydzcGFjZSddKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNwYWNlIG9mIGF2YWlsYWJsZVNwYWNlc1wiIFtuZ1ZhbHVlXT1cInNwYWNlLmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNwYWNlLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1zcGFjZS1pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZV09XCJ2YWxpZGF0b3JzU2VydmljZS5nZXRFcnJvcihtaXNzaW9uRm9ybS5jb250cm9sc1snc3BhY2UnXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiB2YWxpZGF0b3JzU2VydmljZS5pc0NvbnRyb2xFcnJvcihtaXNzaW9uRm9ybS5jb250cm9sc1snc3BhY2UnXSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiICpuZ0lmPVwiIWF2YWlsYWJsZVNwYWNlc1wiPlxyXG4gICAgICAgICAgICAgICAge3sgJ05vIGxvY2F0aW9ucyBhdmFpbGFibGUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdBdXRob3JpemVkIHpvbmUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCIgKm5nSWY9XCJ6b25lc0ZvclNwYWNlOyBlbHNlIG5vU3BhY2VcIj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ6b25lXCIgZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tem9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiZGVmYXVsdFpvbmUuaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0FsbCB6b25lcycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB6b25lIG9mIHpvbmVzRm9yU3BhY2VcIiBbbmdWYWx1ZV09XCJ6b25lLmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHpvbmUubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vU3BhY2U+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTggaGludC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImhpbnQga2V5d29yZHNSdWxlc1wiPnt7J1lvdSBuZWVkIHRvIGNob29zZSB0aGUgbG9jYXRpb24gZmlyc3QnIHwgdHJhbnNsYXRlfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snTGFuZ3VhZ2UnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJsb2NhbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj57eydOb3QgYXBwbGljYWJsZScgfCB0cmFuc2xhdGV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvY2FsZSBvZiBsb2NhbGVzXCIgW25nVmFsdWVdPVwibG9jYWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gSGFzaHRhZ3MgYXJlIGF2YWlsYWJsZSBhZnRlciBTcGFjZSBpcyBzZXQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snSGFzaHRhZ3MnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIiAqbmdJZj1cInNwYWNlSUQudmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwia2V5d29yZHNSdWxlc1wiICpuZ0lmPVwiYXZhaWxhYmxlSGFzaHRhZ3MubGVuZ3RoID4gMFwiPnt7J0F2YWlsYWJsZSBoYXNodGFncycgfCB0cmFuc2xhdGV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImtleXdvcmRzUnVsZXNcIiAqbmdJZj1cImF2YWlsYWJsZUhhc2h0YWdzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J05vIGhhc2h0YWdzIGNyZWF0ZWQgZm9yIHRoaXMgbG9jYXRpb24nIHwgdHJhbnNsYXRlfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF2YWlsYWJsZUhhc2h0YWdzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJrZXl3b3Jkc0Rpc3BsYXkgbm8tYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrZXl3b3Jkc2Rpc3BsYXlDb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaGFzaHRhZyBvZiBhdmFpbGFibGVIYXNodGFnc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImhhc2h0YWdBZGRlZChoYXNodGFnKSA/ICdrZXl3b3Jkc0l0ZW0gYWRkZWQnIDogJ2tleXdvcmRzSXRlbSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkhhc2h0YWdDbGljayhoYXNodGFnKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7aGFzaHRhZ0FkZGVkKGhhc2h0YWcpID8gKCdSZW1vdmUnfHRyYW5zbGF0ZSkgOiAoJ0FkZCd8dHJhbnNsYXRlKSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aGFzaHRhZy5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJrZXl3b3Jkc1J1bGVzXCI+e3snQWRkZWQgaGFzaHRhZ3MnIHwgdHJhbnNsYXRlfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImtleXdvcmRzRGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2V5d29yZHNkaXNwbGF5Q29udGFpbmVyXCIgKm5nSWY9XCJhZGRlZEhhc2h0YWdzLmxlbmd0aD4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwia2V5d29yZHNJdGVtXCIgKm5nRm9yPVwibGV0IGhhc2h0YWcgb2YgYWRkZWRIYXNodGFnc1wiPnt7IGhhc2h0YWcubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlQnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZUhhc2h0YWcoaGFzaHRhZylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcm9zc0l0ZW1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04IGhpbnQtY29udGFpbmVyXCIgKm5nSWY9XCIhc3BhY2VJRC52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJoaW50IGtleXdvcmRzUnVsZXNcIj57eydZb3UgbmVlZCB0byBjaG9vc2UgdGhlIGxvY2F0aW9uIGZpcnN0JyB8IHRyYW5zbGF0ZX19IDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7J01pc3Npb24gU3RhcnQgRGF0ZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBjb2wtc20tOFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJkZC9tbS95eXl5XCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnREYXRlXCIgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICNkMT1cIm5nYkRhdGVwaWNrZXJcIiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1zdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cInZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydzdGFydERhdGUnXSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjYWxlbmRhclwiIChjbGljayk9XCJkMS50b2dnbGUoKVwiIHR5cGU9XCJidXR0b25cIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1zdGFydERhdGUtaW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVdPVwidmFsaWRhdG9yc1NlcnZpY2UuZ2V0RXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIHZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydzdGFydERhdGUnXSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7J01pc3Npb24gU3RhcnQgVGltZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBjb2wtc20tOCB0aW1lWm9uZUNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nYi10aW1lcGlja2VyIFsobmdNb2RlbCldPVwibWlzc2lvblRpbWVTdGFydFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj48L25nYi10aW1lcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7J01pc3Npb24gRW5kIERhdGUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgY29sLXNtLThcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiZGQvbW0veXl5eVwiIG5nYkRhdGVwaWNrZXIgI2QyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiIGRhdGEtdGVzdGlkPVwiZm9ybS1taXNzaW9uLWVuZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cInZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydlbmREYXRlJ10pXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgY2FsZW5kYXJcIiAoY2xpY2spPVwiZDIudG9nZ2xlKClcIiB0eXBlPVwiYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tZW5kRGF0ZS1pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZV09XCJ2YWxpZGF0b3JzU2VydmljZS5nZXRFcnJvcihtaXNzaW9uRm9ybS5jb250cm9sc1snZW5kRGF0ZSddKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIHZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydlbmREYXRlJ10pXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29sLWZvcm0tbGFiZWxcIj57eydNaXNzaW9uIEVuZCBUaW1lJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGNvbC1zbS04IHRpbWVab25lQ29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmdiLXRpbWVwaWNrZXIgWyhuZ01vZGVsKV09XCJtaXNzaW9uVGltZUVuZFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj48L25nYi10aW1lcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jb250cm9sLWRpdiBhY3Rpb24tYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwibWlzc2lvbkZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtcGlsbCBtci0zIGFjdGlvbi1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tc3VibWl0LWJ0blwiPnt7J1NhdmUnIHxcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNhbmNlbCgpXCIgZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tY2FuY2VsLWJ0blwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtcGlsbCBhY3Rpb24tYnV0dG9uXCI+e3snQ2FuY2VsJyB8XHJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG48L2Rpdj4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1taXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1hZG1pbi9zcmMvbGliL3VzZXIvZm9ybS1taXNzaW9uL2Zvcm0tbWlzc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tYWRtaW4vc3JjL2xpYi91c2VyL2Zvcm0tbWlzc2lvbi9mb3JtLW1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBRUgsV0FBVyxFQUFVLE1BQU0sRUFDTyxXQUFXLEVBQUUsV0FBVyxFQUNKLGtCQUFrQixFQUMzRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBcUIsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBUXZILE1BQU0sT0FBTyxvQkFBb0I7SUE0QzdCLFlBQ1ksRUFBZSxFQUNmLFlBQTBCLEVBQzFCLFdBQTRCLEVBQzVCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxXQUF3QixFQUN4QixjQUE4QixFQUM5QixhQUE0QixFQUM3QixpQkFBb0M7UUFSbkMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNyQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTTFELHNCQUFpQixHQUFjLEVBQUUsQ0FBQztRQU1sQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBTWhCLHFCQUFnQixHQUFXLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMseUJBQXlCO1FBRXJFLG1CQUFjLEdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFekMsa0JBQWEsR0FBYyxFQUFFLENBQUM7SUFnQjFCLENBQUM7SUFFTCxLQUFLLENBQUMsUUFBUTtRQUNWLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDckU7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtRQUNoRyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxjQUFjO1lBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQywrQkFBK0IsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsK0JBQStCLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixNQUFNLE9BQU8sR0FDVCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQ2hELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQ2xDLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDbEUsT0FBTyxDQUNWLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDakIsSUFBSSxTQUFTLEdBQVEsSUFBSSxDQUFDO1FBQzFCLElBQUksT0FBTyxHQUFRLElBQUksQ0FBQztRQUV4QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRTdCLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRTtZQUNqQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztZQUNuRSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUN2RDtRQUNELElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUNmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztZQUNqRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDbkQ7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQ2pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQ2xDLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1IsWUFBWSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzlELGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYztZQUNoQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMscUJBQXFCO1lBQzlDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2hCLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFFO1lBQ25FLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNoQixNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztTQUN6QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzNELENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FDbEMsQ0FBQztTQUNMO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWTtRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQ2pFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEVBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQ2xDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9CLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFDNUIsWUFBWSxFQUFFO2dCQUNWLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTthQUM5RDtZQUNELGNBQWMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUM5QyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUN0RCxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDVixXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUM1QixTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFnQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckU7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWdCO1FBQ3pCLE9BQU8sQ0FDSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbkIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FDM0MsS0FBSyxTQUFTLENBQ2xCLENBQUM7SUFDTixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3pCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsT0FBTztTQUNWO1FBQ0QsSUFBSSxlQUF1QixDQUFDO1FBQzVCLElBQUksYUFBcUIsQ0FBQztRQUMxQixJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4RSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDM0QsZUFBZSxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN2QztRQUNELElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUNuQixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdkQsYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNuQztRQUNELE1BQU0sWUFBWSxHQUFZO1lBQzFCLGNBQWMsRUFBRSxTQUFTLENBQUMsY0FBYztZQUN4QyxxQkFBcUIsRUFBRSxTQUFTLENBQUMscUJBQXFCO1lBQ3RELEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztZQUN0QixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXO1lBQ2xDLGFBQWEsRUFBRSxlQUFlO1lBQzlCLFdBQVcsRUFBRSxhQUFhO1lBQzFCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztZQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVc7Z0JBQ2hDLENBQUMsQ0FBQyxXQUFXLENBQUMsbUJBQW1CO1lBQ3JDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtTQUMzQixDQUFDO1FBQ0YsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksU0FBUyxDQUFDLEtBQUssRUFBRTtZQUNqQixZQUFZLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDMUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztpSEE3UFEsb0JBQW9CO3FHQUFwQixvQkFBb0IsbVRDbEJqQyxtbVpBNk5NOzJGRDNNTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksa0JBQWtCOzRVQU1uQixhQUFhO3NCQUFyQixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFNSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICAgIFpvbmUsIE1pc3Npb24sIE9yZ2FuaXNhdGlvbiwgU3BhY2UsIFJvbGVTdGF0dXMsXHJcbiAgICBMZXZlbFN0YXR1cywgRG9tYWluLCBMb2NhbGUsIEJhc2VVc2VyU2VydmljZSwgRG9tYWluU2VydmljZSxcclxuICAgIE9yZ2FuaXNhdGlvblNlcnZpY2UsIFpvbmVTZXJ2aWNlLCBlbnVtVG9BcnJheSwgRW1haWxTdGF0dXMsXHJcbiAgICBIYXNodGFnLCBTcGFjZVNlcnZpY2UsIExvY2FsZVNlcnZpY2UsIEhhc2h0YWdTZXJ2aWNlLCBzdHJpbmdMb2NhbGVUb0VudW1cclxufSBmcm9tICdAc21hcnRlcnBsYW4vbmd4LXNtYXJ0ZXJwbGFuLWNvcmUnO1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSwgdGV4dFZhbGlkYXRvciwgbm9FbXB0eVZhbGlkYXRvciwgZmxvYXRWYWxpZGF0b3IgfSBmcm9tIFwiQHNtYXJ0ZXJwbGFuL25neC1zbWFydGVycGxhbi1jb3JlXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1mb3JtLW1pc3Npb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbWlzc2lvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLW1pc3Npb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybU1pc3Npb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIG1pc3Npb25Ub0VkaXQ6IE1pc3Npb247XHJcblxyXG4gICAgQElucHV0KCkgb3JnYW5pc2F0aW9uRm9yTWlzc2lvbjogT3JnYW5pc2F0aW9uO1xyXG5cclxuICAgIEBJbnB1dCgpIGlzU1A6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KCkgdXNlckZvck1pc3Npb25JRDogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIGN1cnJlbnRVc2VyT3JnYW5pc2F0aW9uOiBPcmdhbmlzYXRpb247XHJcblxyXG4gICAgbWlzc2lvbkZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICBhdmFpbGFibGVTcGFjZXM6IFNwYWNlW107XHJcblxyXG4gICAgQE91dHB1dCgpIGFkZGVkTWlzc2lvbklucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxNaXNzaW9uPigpO1xyXG5cclxuICAgIGF2YWlsYWJsZVJvbGVzOiBSb2xlU3RhdHVzW107XHJcblxyXG4gICAgYXZhaWxhYmxlTGV2ZWxzOiBMZXZlbFN0YXR1c1tdO1xyXG5cclxuICAgIGF2YWlsYWJsZUhhc2h0YWdzOiBIYXNodGFnW10gPSBbXTtcclxuXHJcbiAgICBkb21haW5zOiBEb21haW5bXTtcclxuXHJcbiAgICBhbGxPcmdzOiBPcmdhbmlzYXRpb25bXTtcclxuXHJcbiAgICBpc0d1aWRlID0gZmFsc2U7XHJcblxyXG4gICAgem9uZXNGb3JTcGFjZTogWm9uZVtdO1xyXG5cclxuICAgIGRlZmF1bHRab25lOiBab25lO1xyXG5cclxuICAgIG1pc3Npb25UaW1lU3RhcnQ6IG51bWJlciA9IDEyICogNjAgKiA2MDAwMDsgLy8gbWlkZGF5IGluIG1pbGxpc2Vjb25kc1xyXG5cclxuICAgIG1pc3Npb25UaW1lRW5kOiBudW1iZXIgPSAxMiAqIDYwICogNjAwMDA7XHJcblxyXG4gICAgYWRkZWRIYXNodGFnczogSGFzaHRhZ1tdID0gW107XHJcblxyXG4gICAgY3VycmVudExvY2FsZTogTG9jYWxlO1xyXG5cclxuICAgIGxvY2FsZXM6IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgc3BhY2VTZXJ2aWNlOiBTcGFjZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZG9tYWluU2VydmljZTogRG9tYWluU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG9yZ2FuaXNhdGlvblNlcnZpY2U6IE9yZ2FuaXNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB6b25lU2VydmljZTogWm9uZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBoYXNodGFnU2VydmljZTogSGFzaHRhZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyB2YWxpZGF0b3JzU2VydmljZTogVmFsaWRhdG9yc1NlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVVc2VySW5mbygpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0RG9tYWlucygpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzU1ApIHtcclxuICAgICAgICAgICAgdGhpcy5hbGxPcmdzID0gYXdhaXQgdGhpcy5vcmdhbmlzYXRpb25TZXJ2aWNlLmxpc3RPcmdhbmlzYXRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VycmVudExvY2FsZSA9IHN0cmluZ0xvY2FsZVRvRW51bSh0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlKCkpOyAvLyB0byBtYXRjaCBlbnVtIExvY2FsZVxyXG4gICAgICAgIHRoaXMubG9jYWxlcyA9IGVudW1Ub0FycmF5KExvY2FsZSk7XHJcbiAgICAgICAgaWYgKHRoaXMubWlzc2lvblRvRWRpdCkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtRm9yRWRpdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdEVtcHR5Rm9ybSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySW5mbygpIHtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZVJvbGVzID1cclxuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRBdmFpbGFibGVSb2xlc0ZvckN1cnJlbnRVc2VyKCk7XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMZXZlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEF2YWxhYmxlTGV2ZWxzRm9yQ3VycmVudFVzZXIoKTtcclxuICAgICAgICB0aGlzLmlzR3VpZGUgPSB0aGlzLnVzZXJTZXJ2aWNlLmlzR3VpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzZXREb21haW5zKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0d1aWRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRvbWFpbnMgPVxyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kb21haW5TZXJ2aWNlLmdldERvbWFpbnNGb3JNaXNzaW9uc0Zvck9yZyhcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRVc2VyT3JnYW5pc2F0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5kb21haW5zID0gZG9tYWlucztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2V0SGFzaHRhZ3Moc3BhY2VJRDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVIYXNodGFncyA9IGF3YWl0IHRoaXMuaGFzaHRhZ1NlcnZpY2UuZ2V0SGFzaHRhZ3NGb3JTcGFjZShcclxuICAgICAgICAgICAgc3BhY2VJRCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzcGFjZUlEKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWlzc2lvbkZvcm0uZ2V0KFwic3BhY2VcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJvbGUoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5taXNzaW9uRm9ybS5nZXQoXCJyb2xlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluaXRGb3JtRm9yRWRpdCgpIHtcclxuICAgICAgICBsZXQgc3RhcnREYXRlOiBhbnkgPSBudWxsO1xyXG4gICAgICAgIGxldCBlbmREYXRlOiBhbnkgPSBudWxsO1xyXG5cclxuICAgICAgICBjb25zdCBtID0gdGhpcy5taXNzaW9uVG9FZGl0O1xyXG5cclxuICAgICAgICBpZiAobS5zdGFydERhdGVUaW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBEYXRlVGltZS5mcm9tSVNPKG0uc3RhcnREYXRlVGltZSk7XHJcbiAgICAgICAgICAgIHRoaXMubWlzc2lvblRpbWVTdGFydCA9IChkYXRlLmhvdXIgKiA2MCArIGRhdGUubWludXRlKSAqIDYwICogMTAwMDtcclxuICAgICAgICAgICAgc3RhcnREYXRlID0gZGF0ZS50b01pbGxpcygpIC0gdGhpcy5taXNzaW9uVGltZVN0YXJ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobS5lbmREYXRlVGltZSkge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlID0gRGF0ZVRpbWUuZnJvbUlTTyhtLmVuZERhdGVUaW1lKTtcclxuICAgICAgICAgICAgdGhpcy5taXNzaW9uVGltZUVuZCA9IChkYXRlLmhvdXIgKiA2MCArIGRhdGUubWludXRlKSAqIDYwICogMTAwMDtcclxuICAgICAgICAgICAgZW5kRGF0ZSA9IGRhdGUudG9NaWxsaXMoKSAtIHRoaXMubWlzc2lvblRpbWVFbmQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVzZXJGb3JNaXNzaW9uSUQgPSBtLnVzZXJJRDtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZVNwYWNlcyA9IGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmdldEFsbG93ZWRTcGFjZXNGb3JPcmcoXHJcbiAgICAgICAgICAgIHRoaXMubWlzc2lvblRvRWRpdC5vcmdhbmlzYXRpb25JRCxcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VXNlck9yZ2FuaXNhdGlvbi5pZCxcclxuICAgICAgICApO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0SGFzaHRhZ3MobS5zcGFjZUlEKTtcclxuICAgICAgICB0aGlzLm1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIGlkOiBtLmlkLFxyXG4gICAgICAgICAgICBvcmdhbmlzYXRpb246IFt7IHZhbHVlOiBtLm9yZ2FuaXNhdGlvbi5uYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgb3JnYW5pc2F0aW9uSUQ6IG0ub3JnYW5pc2F0aW9uSUQsXHJcbiAgICAgICAgICAgIG9yZGVyZWRPcmdhbmlzYXRpb25JRDogbS5vcmRlcmVkT3JnYW5pc2F0aW9uSUQsXHJcbiAgICAgICAgICAgIHJvbGU6IFttLnJvbGUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBsZXZlbDogW20ubGV2ZWxdLFxyXG4gICAgICAgICAgICBzcGFjZTogW20uc3BhY2VJRCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbbS5kZXNjcmlwdGlvbixbdGV4dFZhbGlkYXRvcigpLCBub0VtcHR5VmFsaWRhdG9yKCldIF0sXHJcbiAgICAgICAgICAgIGRvbWFpbnM6IFttLmRvbWFpbnNdLFxyXG4gICAgICAgICAgICB6b25lOiBbbS56b25lSURdLFxyXG4gICAgICAgICAgICBsb2NhbGU6IFttLmxvY2FsZV0sXHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogW3N0YXJ0RGF0ZSwgW2Zsb2F0VmFsaWRhdG9yKCldXSxcclxuICAgICAgICAgICAgZW5kRGF0ZTogW2VuZERhdGUsIFtmbG9hdFZhbGlkYXRvcigpXV0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKG0uaGFzaHRhZ3MgJiYgbS5oYXNodGFncy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkZWRIYXNodGFncyA9IHRoaXMuYXZhaWxhYmxlSGFzaHRhZ3MuZmlsdGVyKChoYXNodGFnKSA9PlxyXG4gICAgICAgICAgICAgICAgbS5oYXNodGFncy5pbmNsdWRlcyhoYXNodGFnLmlkKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub25TcGFjZUNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25TcGFjZUNsaWNrKCkge1xyXG4gICAgICAgIGNvbnN0IHpvbmVzID0gYXdhaXQgdGhpcy56b25lU2VydmljZS5nZXRab25lc0J5U3BhY2UoXHJcbiAgICAgICAgICAgIHRoaXMuc3BhY2VJRC52YWx1ZSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFpvbmUgPSB6b25lcy5maW5kKCh6b25lKSA9PiAhem9uZS5wYXJlbnRJRCk7XHJcbiAgICAgICAgY29uc3QgaW5kZXhPZkRlZmF1bHRab25lID0gem9uZXMuaW5kZXhPZih0aGlzLmRlZmF1bHRab25lKTtcclxuICAgICAgICB6b25lcy5zcGxpY2UoaW5kZXhPZkRlZmF1bHRab25lLCAxKTtcclxuICAgICAgICB0aGlzLnpvbmVzRm9yU3BhY2UgPSB6b25lcztcclxuICAgICAgICBhd2FpdCB0aGlzLnNldEhhc2h0YWdzKHRoaXMuc3BhY2VJRC52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5pdEVtcHR5Rm9ybSgpIHtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZVNwYWNlcyA9IGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmdldEFsbG93ZWRTcGFjZXNGb3JPcmcoXHJcbiAgICAgICAgICAgIHRoaXMub3JnYW5pc2F0aW9uRm9yTWlzc2lvbi5pZCxcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VXNlck9yZ2FuaXNhdGlvbi5pZCxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubWlzc2lvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgcm9sZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgbGV2ZWw6IFtMZXZlbFN0YXR1cy5NSU5JTVVNXSxcclxuICAgICAgICAgICAgb3JnYW5pc2F0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiB0aGlzLm9yZ2FuaXNhdGlvbkZvck1pc3Npb24ubmFtZSwgZGlzYWJsZWQ6IHRydWUgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgb3JnYW5pc2F0aW9uSUQ6IHRoaXMub3JnYW5pc2F0aW9uRm9yTWlzc2lvbi5pZCxcclxuICAgICAgICAgICAgb3JkZXJlZE9yZ2FuaXNhdGlvbklEOiB0aGlzLmN1cnJlbnRVc2VyT3JnYW5pc2F0aW9uLmlkLFxyXG4gICAgICAgICAgICBzcGFjZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgem9uZTogWycnXSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFtcIlwiLCBbdGV4dFZhbGlkYXRvcigpLCBub0VtcHR5VmFsaWRhdG9yKCldXSxcclxuICAgICAgICAgICAgZG9tYWluczogW251bGxdLFxyXG4gICAgICAgICAgICBsb2NhbGU6IFt0aGlzLmN1cnJlbnRMb2NhbGVdLFxyXG4gICAgICAgICAgICBzdGFydERhdGU6IFtudWxsLCBbZmxvYXRWYWxpZGF0b3IoKV1dLFxyXG4gICAgICAgICAgICBlbmREYXRlOiBbbnVsbCwgW2Zsb2F0VmFsaWRhdG9yKCldXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkhhc2h0YWdDbGljayhoYXNodGFnOiBIYXNodGFnKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc2h0YWdBZGRlZChoYXNodGFnKSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZGVkSGFzaHRhZ3MucHVzaChoYXNodGFnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFkZGVkSGFzaHRhZ3Muc3BsaWNlKHRoaXMuYWRkZWRIYXNodGFncy5pbmRleE9mKGhhc2h0YWcpLCAxKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFzaHRhZ0FkZGVkKGhhc2h0YWc6IEhhc2h0YWcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmFkZGVkSGFzaHRhZ3MuZmluZChcclxuICAgICAgICAgICAgICAgIChfaGFzaHRhZykgPT4gX2hhc2h0YWcuaWQgPT09IGhhc2h0YWcuaWQsXHJcbiAgICAgICAgICAgICkgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlSGFzaHRhZyhoYXNodGFnOiBIYXNodGFnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRlZEhhc2h0YWdzLnNwbGljZSh0aGlzLmFkZGVkSGFzaHRhZ3MuaW5kZXhPZihoYXNodGFnKSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TdWJtaXQoKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5taXNzaW9uRm9ybS52YWx1ZTtcclxuICAgICAgICBpZiAoIXRoaXMubWlzc2lvbkZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgLy8gdGhpcyBzaG93cyBlcnJvcnMgaW4gdGhlIGZvcm1cclxuICAgICAgICAgICAgdGhpcy5taXNzaW9uRm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZVN0cmluZzogc3RyaW5nO1xyXG4gICAgICAgIGxldCBlbmREYXRlU3RyaW5nOiBzdHJpbmc7XHJcbiAgICAgICAgaWYgKGZvcm1WYWx1ZS5zdGFydERhdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZUhvdXJTdGFydE51bWJlciA9IGZvcm1WYWx1ZS5zdGFydERhdGUgKyB0aGlzLm1pc3Npb25UaW1lU3RhcnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IERhdGVUaW1lLmZyb21NaWxsaXMoZGF0ZUhvdXJTdGFydE51bWJlcik7XHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZVN0cmluZyA9IHN0YXJ0RGF0ZS50b0lTTygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZm9ybVZhbHVlLmVuZERhdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZUhvdXJFbmROdW1iZXIgPSBmb3JtVmFsdWUuZW5kRGF0ZSArIHRoaXMubWlzc2lvblRpbWVFbmQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBEYXRlVGltZS5mcm9tTWlsbGlzKGRhdGVIb3VyRW5kTnVtYmVyKTtcclxuICAgICAgICAgICAgZW5kRGF0ZVN0cmluZyA9IGVuZERhdGUudG9JU08oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbWlzc2lvbklucHV0OiBNaXNzaW9uID0ge1xyXG4gICAgICAgICAgICBvcmdhbmlzYXRpb25JRDogZm9ybVZhbHVlLm9yZ2FuaXNhdGlvbklELFxyXG4gICAgICAgICAgICBvcmRlcmVkT3JnYW5pc2F0aW9uSUQ6IGZvcm1WYWx1ZS5vcmRlcmVkT3JnYW5pc2F0aW9uSUQsXHJcbiAgICAgICAgICAgIGxldmVsOiBmb3JtVmFsdWUubGV2ZWwsXHJcbiAgICAgICAgICAgIHJvbGU6IGZvcm1WYWx1ZS5yb2xlLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogZm9ybVZhbHVlLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICBzdGFydERhdGVUaW1lOiBzdGFydERhdGVTdHJpbmcsXHJcbiAgICAgICAgICAgIGVuZERhdGVUaW1lOiBlbmREYXRlU3RyaW5nLFxyXG4gICAgICAgICAgICBkb21haW5zOiBmb3JtVmFsdWUuZG9tYWlucyxcclxuICAgICAgICAgICAgdXNlcklEOiB0aGlzLnVzZXJGb3JNaXNzaW9uSUQsXHJcbiAgICAgICAgICAgIGVtYWlsU3RhdHVzOiB0aGlzLm1pc3Npb25Ub0VkaXRcclxuICAgICAgICAgICAgICAgID8gdGhpcy5taXNzaW9uVG9FZGl0LmVtYWlsU3RhdHVzXHJcbiAgICAgICAgICAgICAgICA6IEVtYWlsU3RhdHVzLkNSRUFUSU9OX1RPX0RFTElWRVIsXHJcbiAgICAgICAgICAgIGxvY2FsZTogZm9ybVZhbHVlLmxvY2FsZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIG1pc3Npb25JbnB1dC5oYXNodGFncyA9IHRoaXMuYWRkZWRIYXNodGFncy5tYXAoKGgpID0+IGguaWQpO1xyXG4gICAgICAgIGlmIChmb3JtVmFsdWUuc3BhY2UpIHtcclxuICAgICAgICAgICAgbWlzc2lvbklucHV0LnNwYWNlSUQgPSBmb3JtVmFsdWUuc3BhY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtVmFsdWUuem9uZSkge1xyXG4gICAgICAgICAgICBtaXNzaW9uSW5wdXQuem9uZUlEID0gZm9ybVZhbHVlLnpvbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1pc3Npb25Ub0VkaXQpIHtcclxuICAgICAgICAgICAgbWlzc2lvbklucHV0LmlkID0gdGhpcy5taXNzaW9uVG9FZGl0LmlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFkZGVkTWlzc2lvbklucHV0LmVtaXQobWlzc2lvbklucHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLmFkZGVkTWlzc2lvbklucHV0LmVtaXQobnVsbCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWNvbnRhaW50ZXJcIiAqbmdJZj1cIm1pc3Npb25Gb3JtXCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbTtcIj5cclxuICAgICAgICA8aDQ+e3sgJ01pc3Npb24gZGV0YWlscycgfCB0cmFuc2xhdGUgfX08L2g0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Zm9ybSAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIFtmb3JtR3JvdXBdPVwibWlzc2lvbkZvcm1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29sLWZvcm0tbGFiZWxcIj57eydPcmdhbmlzYXRpb24nIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1vcmdhbmlzYXRpb25cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm9yZ2FuaXNhdGlvblwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCIgKm5nSWY9XCJpc1NQXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ09yZGVyZWQgYnknIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcmVxdWlyZWQgZm9ybUNvbnRyb2xOYW1lPVwib3JkZXJlZE9yZ2FuaXNhdGlvbklEXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3JnIG9mIGFsbE9yZ3NcIiBbbmdWYWx1ZV09XCJvcmcuaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JnLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cclxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgcm93cz1cIjEwXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJ2YWxpZGF0b3JzU2VydmljZS5pc0NvbnRyb2xFcnJvcihtaXNzaW9uRm9ybS5jb250cm9sc1snZGVzY3JpcHRpb24nXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZm9ybS1taXNzaW9uLWRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tZGVzY3JpcHRpb24taW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVdPVwidmFsaWRhdG9yc1NlcnZpY2UuZ2V0RXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIgdmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10pXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29sLWZvcm0tbGFiZWxcIj57eydSb2xlJyB8IHRyYW5zbGF0ZX19KjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJlcXVpcmVkIGZvcm1Db250cm9sTmFtZT1cInJvbGVcIiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1yb2xlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJ2YWxpZGF0b3JzU2VydmljZS5pc0NvbnRyb2xFcnJvcihtaXNzaW9uRm9ybS5jb250cm9sc1sncm9sZSddKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHIgb2YgYXZhaWxhYmxlUm9sZXNcIiBbbmdWYWx1ZV09XCJyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHIgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1yb2xlLWludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNsYXRlXT1cInZhbGlkYXRvcnNTZXJ2aWNlLmdldEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydyb2xlJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIgdmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ3JvbGUnXSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiXHJcbiAgICAgICAgICAgICpuZ0lmPVwibWlzc2lvbkZvcm0uZ2V0KCdyb2xlJykudmFsdWUgIT09ICdWSVNJVE9SX01VU0VVTScgJiYgbWlzc2lvbkZvcm0uZ2V0KCdyb2xlJykudmFsdWUgIT09ICdHVUlERV9NVVNFVU0nXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snRG9tYWlucycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiICpuZ0lmPVwiZG9tYWluc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG11bHRpcGxlIGZvcm1Db250cm9sTmFtZT1cImRvbWFpbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBkb21haW4gb2YgZG9tYWluc1wiIFtuZ1ZhbHVlXT1cImRvbWFpbi5pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkb21haW4ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29sLWZvcm0tbGFiZWxcIj57eydBY2Nlc3MgbGV2ZWwnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJsZXZlbFwiIGRhdGEtdGVzdGlkPVwiZm9ybS1taXNzaW9uLWxldmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbGV2ZWwgb2YgYXZhaWxhYmxlTGV2ZWxzXCIgW25nVmFsdWVdPVwibGV2ZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGV2ZWwgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ0F1dGhvcml6ZWQgbG9jYXRpb24nIHwgdHJhbnNsYXRlIH19KjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiICpuZ0lmPVwiYXZhaWxhYmxlU3BhY2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcmVxdWlyZWQgZm9ybUNvbnRyb2xOYW1lPVwic3BhY2VcIiAoY2hhbmdlKT1cIm9uU3BhY2VDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1zcGFjZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwidmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ3NwYWNlJ10pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc3BhY2Ugb2YgYXZhaWxhYmxlU3BhY2VzXCIgW25nVmFsdWVdPVwic3BhY2UuaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3BhY2UubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtdGVzdGlkPVwiZm9ybS1taXNzaW9uLXNwYWNlLWludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNsYXRlXT1cInZhbGlkYXRvcnNTZXJ2aWNlLmdldEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydzcGFjZSddKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIHZhbGlkYXRvcnNTZXJ2aWNlLmlzQ29udHJvbEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydzcGFjZSddKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCIgKm5nSWY9XCIhYXZhaWxhYmxlU3BhY2VzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnTm8gbG9jYXRpb25zIGF2YWlsYWJsZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ0F1dGhvcml6ZWQgem9uZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIiAqbmdJZj1cInpvbmVzRm9yU3BhY2U7IGVsc2Ugbm9TcGFjZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInpvbmVcIiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi16b25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJkZWZhdWx0Wm9uZS5pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnQWxsIHpvbmVzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHpvbmUgb2Ygem9uZXNGb3JTcGFjZVwiIFtuZ1ZhbHVlXT1cInpvbmUuaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgem9uZS5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9TcGFjZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOCBoaW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaGludCBrZXl3b3Jkc1J1bGVzXCI+e3snWW91IG5lZWQgdG8gY2hvb3NlIHRoZSBsb2NhdGlvbiBmaXJzdCcgfCB0cmFuc2xhdGV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29sLWZvcm0tbGFiZWxcIj57eydMYW5ndWFnZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImxvY2FsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiPnt7J05vdCBhcHBsaWNhYmxlJyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG9jYWxlIG9mIGxvY2FsZXNcIiBbbmdWYWx1ZV09XCJsb2NhbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSBIYXNodGFncyBhcmUgYXZhaWxhYmxlIGFmdGVyIFNwYWNlIGlzIHNldCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTQgY29sLWZvcm0tbGFiZWxcIj57eydIYXNodGFncycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiICpuZ0lmPVwic3BhY2VJRC52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJrZXl3b3Jkc1J1bGVzXCIgKm5nSWY9XCJhdmFpbGFibGVIYXNodGFncy5sZW5ndGggPiAwXCI+e3snQXZhaWxhYmxlIGhhc2h0YWdzJyB8IHRyYW5zbGF0ZX19IDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwia2V5d29yZHNSdWxlc1wiICpuZ0lmPVwiYXZhaWxhYmxlSGFzaHRhZ3MubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snTm8gaGFzaHRhZ3MgY3JlYXRlZCBmb3IgdGhpcyBsb2NhdGlvbicgfCB0cmFuc2xhdGV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXZhaWxhYmxlSGFzaHRhZ3MubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImtleXdvcmRzRGlzcGxheSBuby1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImtleXdvcmRzZGlzcGxheUNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBoYXNodGFnIG9mIGF2YWlsYWJsZUhhc2h0YWdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiaGFzaHRhZ0FkZGVkKGhhc2h0YWcpID8gJ2tleXdvcmRzSXRlbSBhZGRlZCcgOiAna2V5d29yZHNJdGVtJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSGFzaHRhZ0NsaWNrKGhhc2h0YWcpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3toYXNodGFnQWRkZWQoaGFzaHRhZykgPyAoJ1JlbW92ZSd8dHJhbnNsYXRlKSA6ICgnQWRkJ3x0cmFuc2xhdGUpIH19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3toYXNodGFnLm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImtleXdvcmRzUnVsZXNcIj57eydBZGRlZCBoYXNodGFncycgfCB0cmFuc2xhdGV9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwia2V5d29yZHNEaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrZXl3b3Jkc2Rpc3BsYXlDb250YWluZXJcIiAqbmdJZj1cImFkZGVkSGFzaHRhZ3MubGVuZ3RoPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJrZXl3b3Jkc0l0ZW1cIiAqbmdGb3I9XCJsZXQgaGFzaHRhZyBvZiBhZGRlZEhhc2h0YWdzXCI+e3sgaGFzaHRhZy5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VCdXR0b25cIiAoY2xpY2spPVwicmVtb3ZlSGFzaHRhZyhoYXNodGFnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNyb3NzSXRlbVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTggaGludC1jb250YWluZXJcIiAqbmdJZj1cIiFzcGFjZUlELnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImhpbnQga2V5d29yZHNSdWxlc1wiPnt7J1lvdSBuZWVkIHRvIGNob29zZSB0aGUgbG9jYXRpb24gZmlyc3QnIHwgdHJhbnNsYXRlfX0gPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snTWlzc2lvbiBTdGFydCBEYXRlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cImRkL21tL3l5eXlcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIiBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgICAgI2QxPVwibmdiRGF0ZXBpY2tlclwiIGRhdGEtdGVzdGlkPVwiZm9ybS1taXNzaW9uLXN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwidmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGNhbGVuZGFyXCIgKGNsaWNrKT1cImQxLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtdGVzdGlkPVwiZm9ybS1taXNzaW9uLXN0YXJ0RGF0ZS1pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZV09XCJ2YWxpZGF0b3JzU2VydmljZS5nZXRFcnJvcihtaXNzaW9uRm9ybS5jb250cm9sc1snc3RhcnREYXRlJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIgdmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snTWlzc2lvbiBTdGFydCBUaW1lJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGNvbC1zbS04IHRpbWVab25lQ29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmdiLXRpbWVwaWNrZXIgWyhuZ01vZGVsKV09XCJtaXNzaW9uVGltZVN0YXJ0XCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPjwvbmdiLXRpbWVwaWNrZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS00IGNvbC1mb3JtLWxhYmVsXCI+e3snTWlzc2lvbiBFbmQgRGF0ZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBjb2wtc20tOFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJkZC9tbS95eXl5XCIgbmdiRGF0ZXBpY2tlciAjZDI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmREYXRlXCIgZGF0YS10ZXN0aWQ9XCJmb3JtLW1pc3Npb24tZW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwidmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ2VuZERhdGUnXSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjYWxlbmRhclwiIChjbGljayk9XCJkMi50b2dnbGUoKVwiIHR5cGU9XCJidXR0b25cIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1lbmREYXRlLWludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNsYXRlXT1cInZhbGlkYXRvcnNTZXJ2aWNlLmdldEVycm9yKG1pc3Npb25Gb3JtLmNvbnRyb2xzWydlbmREYXRlJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIgdmFsaWRhdG9yc1NlcnZpY2UuaXNDb250cm9sRXJyb3IobWlzc2lvbkZvcm0uY29udHJvbHNbJ2VuZERhdGUnXSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tNCBjb2wtZm9ybS1sYWJlbFwiPnt7J01pc3Npb24gRW5kIFRpbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgY29sLXNtLTggdGltZVpvbmVDb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZ2ItdGltZXBpY2tlciBbKG5nTW9kZWwpXT1cIm1pc3Npb25UaW1lRW5kXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPjwvbmdiLXRpbWVwaWNrZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWNvbnRyb2wtZGl2IGFjdGlvbi1idXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJtaXNzaW9uRm9ybS5pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1yLTMgYWN0aW9uLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1zdWJtaXQtYnRuXCI+e3snU2F2ZScgfFxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIiBkYXRhLXRlc3RpZD1cImZvcm0tbWlzc2lvbi1jYW5jZWwtYnRuXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIGFjdGlvbi1idXR0b25cIj57eydDYW5jZWwnIHxcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbjwvZGl2PiJdfQ==