@tsi-developpement/tsi-shared-ui 1.10.21 → 1.10.23

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.
@@ -375,8 +375,8 @@ export class TsiCalenderComponent {
375
375
  if (this.calendar) {
376
376
  const calendarApi = this.calendar.getApi();
377
377
  this.dateRangeChange.emit({
378
- start: new Date(calendarApi.view.currentStart.setDate(calendarApi.view.currentStart.getDate() + 1)),
379
- end: new Date(calendarApi.view.currentEnd.setDate(calendarApi.view.currentEnd.getDate() + 1)),
378
+ start: calendarApi.view.currentStart,
379
+ end: calendarApi.view.currentEnd,
380
380
  viewType: calendarApi.view.type
381
381
  });
382
382
  const newViewType = calendarApi.view.type;
@@ -433,4 +433,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
433
433
  }], entityInfo: [{
434
434
  type: Input
435
435
  }] } });
436
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWNhbGVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBYSxNQUFNLEVBQThCLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHeE0sT0FBTyxpQkFBeUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLGFBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLGNBQWMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLFVBQVUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLGdCQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixJQUFhLFVBQVUsQ0FBQyxLQUFZO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQWtCRCxZQUNVLGVBQWtDLEVBQ2xDLGlCQUFtQyxFQUNuQyxlQUF1QyxFQUN2QyxTQUFtQixFQUNuQixhQUEyQixFQUMzQixRQUFt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QkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNBLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDVSxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDTyxVQUFVO3NCQUF0QixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBcUNFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckFwaSwgQ2FsZW5kYXJPcHRpb25zLCBEYXRlU2VsZWN0QXJnLCBFdmVudEFwaSwgRXZlbnRDbGlja0FyZywgRXZlbnRJbnB1dCB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHByaW1lTmcgZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCBpbnRlcmFjdGlvblBsdWdpbiwgeyBFdmVudFJlc2l6ZURvbmVBcmcgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IGRheUdyaWRQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9kYXlncmlkJztcclxuaW1wb3J0IHRpbWVHcmlkUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvdGltZWdyaWQnO1xyXG5pbXBvcnQgbGlzdFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2xpc3QnO1xyXG5pbXBvcnQgbXVsdGlNb250aFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL211bHRpbW9udGgnO1xyXG5pbXBvcnQgeyBGdWxsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRfTW9kZXMsIE1vZGVzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sb2NhbGl6ZS5waXBlJztcclxuaW1wb3J0IHsgQ3J1ZEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS9jcnVkLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vdHNpLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRTY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tbW9uL2V2ZW50LXNjaGVtYSc7XHJcbmltcG9ydCB7IEVudGl0eUluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFwaURhdGVUaW1lRm9ybWF0IH0gZnJvbSAnLi4vLi4vY29uc3RzL3RzaS1jb25zdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0c2ktY2FsZW5kZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktY2FsZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1jYWxlbmRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lDYWxlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgY3VycmVudENvbnRleHRNZW51RXZlbnQ6IGFueTtcclxuICBAVmlld0NoaWxkKENvbnRleHRNZW51Q29tcG9uZW50KSBjb250ZXh0TWVudTogQ29udGV4dE1lbnVDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXI6IHByaW1lTmcuQ2FsZW5kYXIgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhcjogRnVsbENhbGVuZGFyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVGVtcGxhdGUnKSBkcm9wZG93blRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBjcnVkU2VydmljZT86IENydWRCYXNlU2VydmljZTxhbnksIGFueSwgYW55LCBhbnk+O1xyXG4gIEBJbnB1dCgpIHNjaGVtYTogRXZlbnRTY2hlbWEgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IGV2ZW50c0RhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLm1hcERhdGFUb0V2ZW50cyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxhc3RFdmVudHNEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgY3VycmVudFZpZXdUeXBlOiBzdHJpbmcgPSAnZGF5R3JpZE1vbnRoJztcclxuICBASW5wdXQoKSBzaG93SW5mb0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dEb3dubG9hZEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dVcGxvYWRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Tm90ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWx0ZXJTdGFydERhdGU/OiBEYXRlO1xyXG4gIEBJbnB1dCgpIGZpbHRlckVuZERhdGU/OiBEYXRlO1xyXG5cclxuICBAT3V0cHV0KCkgZXZlbnRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0ZVJhbmdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSB2aWV3VHlwZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgZGlzcGxheU1vZGVPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogVHNpTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgX2xvY2FsaXplUGlwZTogTG9jYWxpemVQaXBlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlNb2RlT3B0aW9ucyA9IFtcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkTW9udGgnKSwgdmFsdWU6ICdkYXlHcmlkTW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aFllYXInKSwgdmFsdWU6ICdtdWx0aU1vbnRoWWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkWWVhcicpLCB2YWx1ZTogJ2RheUdyaWRZZWFyJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RheUdyaWRXZWVrJyksIHZhbHVlOiAnZGF5R3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfZGF5R3JpZERheScpLCB2YWx1ZTogJ2RheUdyaWREYXknIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfdGltZUdyaWREYXknKSwgdmFsdWU6ICd0aW1lR3JpZERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZFdlZWsnKSwgdmFsdWU6ICd0aW1lR3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFllYXInKSwgdmFsdWU6ICdsaXN0WWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0TW9udGgnKSwgdmFsdWU6ICdsaXN0TW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFdlZWsnKSwgdmFsdWU6ICdsaXN0V2VlaycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0RGF5JyksIHZhbHVlOiAnbGlzdERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkRmlsdGVyUmFuZ2UnKSwgdmFsdWU6ICdkYXlHcmlkRmlsdGVyUmFuZ2UnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aEZpbHRlclJhbmdlJyksIHZhbHVlOiAnbXVsdGlNb250aEZpbHRlclJhbmdlJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2xpc3RGaWx0ZXJSYW5nZScpLCB2YWx1ZTogJ2xpc3RGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZEZpbHRlclJhbmdlJyksIHZhbHVlOiAndGltZUdyaWRGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgLy9wcmVtaXVtXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBhbm7DqWUnLCB2YWx1ZTogJ3RpbWVsaW5lWWVhcicgfSxcclxuICAgICAgLy8geyBsYWJlbDogJ3Z1ZSBjaHJvbm9sb2dpcXVlIG1vaXMnLCB2YWx1ZTogJ3RpbWVsaW5lTW9udGgnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBzZW1haW5lJywgdmFsdWU6ICd0aW1lbGluZVdlZWsnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBqb3VyJywgdmFsdWU6ICd0aW1lbGluZURheScgfSxcclxuICAgIF1cclxuXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBlbnRpdHlJbmZvPzogRW50aXR5SW5mbztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCFjaGFuZ2VzWydmaWx0ZXJTdGFydERhdGUnXSAmJiAhY2hhbmdlc1snZmlsdGVyRW5kRGF0ZSddKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNhbGVuZGFyQXBpID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBjb25zdCB2aWV3VHlwZSA9IGNhbGVuZGFyQXBpPy52aWV3LnR5cGU7XHJcbiAgICBpZiAodmlld1R5cGUgJiYgdGhpcy5pc0ZpbHRlclJhbmdlVmlldyh2aWV3VHlwZSkpIHtcclxuICAgICAgY2FsZW5kYXJBcGkhLmNoYW5nZVZpZXcodmlld1R5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgY29uc3QgaWNvbkZvckNhbGVuZGFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWljb24tQ2FsZW5kYXInKTtcclxuICAgIGlmIChpY29uRm9yQ2FsZW5kYXIpIHtcclxuICAgICAgaWNvbkZvckNhbGVuZGFyLmNsYXNzTGlzdC52YWx1ZSA9IFwicGkgcGktY2FsZW5kYXJcIlxyXG4gICAgfVxyXG4gICAgY29uc3QgaWNvbkZvclNlYXJjaEZpbHRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mYy1pY29uLVNlYXJjaEZpbHRlcicpO1xyXG4gICAgaWYgKGljb25Gb3JTZWFyY2hGaWx0ZXIpIHtcclxuICAgICAgaWNvbkZvclNlYXJjaEZpbHRlci5jbGFzc0xpc3QudmFsdWUgPSBcInBpIHBpLXNlYXJjaFwiXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZHJvcGRvd25FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWRpc3BsYXlNb2RlT3B0aW9ucy1idXR0b24nKTtcclxuICAgIGlmIChkcm9wZG93bkVsZW1lbnQpIHtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmlubmVySFRNTCA9ICcnOyAvLyBDbGVhciBhbnkgZGVmYXVsdCBjb250ZW50XHJcbiAgICAgIC8vIENyZWF0ZSBhbiBlbWJlZGRlZCB2aWV3IGZyb20gdGhlIHRlbXBsYXRlXHJcbiAgICAgIGNvbnN0IGVtYmVkZGVkVmlldyA9IHRoaXMuZHJvcGRvd25UZW1wbGF0ZSEuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpO1xyXG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmluc2VydChlbWJlZGRlZFZpZXcpO1xyXG4gICAgICAvLyBBcHBlbmQgdGhlIGRyb3Bkb3duIHRvIHRoZSB0b29sYmFyXHJcbiAgICAgIGVtYmVkZGVkVmlldyEucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkcm9wZG93bkVsZW1lbnQsIG5vZGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmNsYXNzTGlzdC52YWx1ZSA9ICdkaXNwbGF5TW9kZU9wdGlvbnMnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsZW5kYXJPcHRpb25zID0gc2lnbmFsPENhbGVuZGFyT3B0aW9ucz4oe1xyXG4gICAgcGx1Z2luczogW1xyXG4gICAgICBpbnRlcmFjdGlvblBsdWdpbixcclxuICAgICAgZGF5R3JpZFBsdWdpbixcclxuICAgICAgdGltZUdyaWRQbHVnaW4sXHJcbiAgICAgIGxpc3RQbHVnaW4sXHJcbiAgICAgIG11bHRpTW9udGhQbHVnaW4sXHJcbiAgICBdLFxyXG4gICAgaGVhZGVyVG9vbGJhcjoge1xyXG4gICAgICBsZWZ0OiAncHJldlllYXIscHJldixkYXRlUGlja2VyTmF2aWdhdG9yLHNlYXJjaEZpbHRlcixuZXh0LG5leHRZZWFyLHRvZGF5JyxcclxuICAgICAgY2VudGVyOiAndGl0bGUnLFxyXG4gICAgICByaWdodDogJ2Rpc3BsYXlNb2RlT3B0aW9ucycsXHJcbiAgICB9LFxyXG4gICAgYnV0dG9uVGV4dDoge1xyXG4gICAgICB0b2RheTogXCJBdWpvdXJkJ2h1aVwiLFxyXG4gICAgfSxcclxuICAgIHZpZXdzOiB7XHJcbiAgICAgIGRheUdyaWRZZWFyOiB7XHJcbiAgICAgICAgdHlwZTogJ2RheUdyaWQnLFxyXG4gICAgICAgIGR1cmF0aW9uOiB7IHllYXJzOiAxIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGRheUdyaWRGaWx0ZXJSYW5nZToge1xyXG4gICAgICAgIHR5cGU6ICdkYXlHcmlkJyxcclxuICAgICAgICB2aXNpYmxlUmFuZ2U6IHRoaXMuZ2V0RmlsdGVyUmFuZ2VWaXNpYmxlUmFuZ2UuYmluZCh0aGlzKSxcclxuICAgICAgfSxcclxuICAgICAgbXVsdGlNb250aEZpbHRlclJhbmdlOiB7XHJcbiAgICAgICAgdHlwZTogJ211bHRpTW9udGgnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0RmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAnbGlzdCcsXHJcbiAgICAgICAgdmlzaWJsZVJhbmdlOiB0aGlzLmdldEZpbHRlclJhbmdlVmlzaWJsZVJhbmdlLmJpbmQodGhpcyksXHJcbiAgICAgIH0sXHJcbiAgICAgIHRpbWVHcmlkRmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAndGltZUdyaWQnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGN1c3RvbUJ1dHRvbnM6IHtcclxuICAgICAgZGF0ZVBpY2tlck5hdmlnYXRvcjoge1xyXG4gICAgICAgIGljb246IFwiQ2FsZW5kYXJcIixcclxuICAgICAgICBoaW50OiBcIlwiLFxyXG4gICAgICAgIGNsaWNrOiB0aGlzLmhhbmRsZURhdGVQaWNrZXJOYXZpZ2F0b3JDbGljay5iaW5kKHRoaXMpXHJcbiAgICAgIH0sXHJcbiAgICAgIHNlYXJjaEZpbHRlcjoge1xyXG4gICAgICAgIGljb246IFwiU2VhcmNoRmlsdGVyXCIsXHJcbiAgICAgICAgaGludDogXCJcIixcclxuICAgICAgICBjbGljazogdGhpcy5oYW5kbGVTZWFyY2hGaWx0ZXIuYmluZCh0aGlzKVxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGluaXRpYWxWaWV3OiAnZGF5R3JpZE1vbnRoJyxcclxuICAgIGxvY2FsZTogXCJmclwiLFxyXG4gICAgZXZlbnRzOiB0aGlzLmV2ZW50c0RhdGEsXHJcbiAgICB3ZWVrZW5kczogdHJ1ZSxcclxuICAgIHNlbGVjdGFibGU6IHRydWUsXHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIGV2ZW50UmVzaXphYmxlRnJvbVN0YXJ0OiB0cnVlLFxyXG4gICAgZXZlbnRTdGFydEVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREdXJhdGlvbkVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREaXNwbGF5OiAnYmxvY2snLFxyXG4gICAgc2VsZWN0TWlycm9yOiB0cnVlLFxyXG4gICAgZGF5TWF4RXZlbnRzOiB0cnVlLFxyXG4gICAgc2VsZWN0OiB0aGlzLmhhbmRsZURhdGVTZWxlY3QuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50Q2xpY2s6IHRoaXMuaGFuZGxlRXZlbnRDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRzU2V0OiB0aGlzLmhhbmRsZUV2ZW50cy5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnREcm9wOiB0aGlzLmhhbmRsZUV2ZW50RHJvcC5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRSZXNpemU6IHRoaXMuaGFuZGxlRXZlbnRSZXNpemUuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuaGFuZGxlRXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxyXG4gICAgZGF0ZXNTZXQ6IHRoaXMuZ2V0Q3VycmVudERhdGVzLmJpbmQodGhpcyksXHJcbiAgICBldmVudENvbnRlbnQ6IChhcmcpID0+IHtcclxuICAgICAgY29uc3Qgbm9tYnJlQXR0YWNoZW1lbnQgPSBhcmcuZXZlbnQuZXh0ZW5kZWRQcm9wcz8uWydub21icmVBdHRhY2hlbWVudCddIHx8IDA7XHJcbiAgICAgIGNvbnN0IGF0dGFjaG1lbnRIdG1sID0gbm9tYnJlQXR0YWNoZW1lbnQgPiAwXHJcbiAgICAgICAgPyBgPHNwYW4gY2xhc3M9XCJhdHRhY2htZW50LWluZm9cIj48aSBjbGFzcz1cInBpIHBpLXBhcGVyY2xpcFwiPjwvaT4gWyR7bm9tYnJlQXR0YWNoZW1lbnR9XTwvc3Bhbj5gXHJcbiAgICAgICAgOiAnJztcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaHRtbDogYFxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldmVudC10aXRsZVwiPiR7YXJnLmV2ZW50LnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgJHthdHRhY2htZW50SHRtbH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIGAsXHJcbiAgICAgIH07XHJcbiAgICB9LFxyXG4gIH0pO1xyXG4gIGN1cnJlbnRFdmVudHMgPSBzaWduYWw8RXZlbnRBcGlbXT4oW10pO1xyXG5cclxuICBtYXBEYXRhVG9FdmVudHModmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLmxhc3RFdmVudHNEYXRhID0gdmFsdWU7XHJcbiAgICBjb25zdCBmb3JjZUFsbERheSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcbiAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy51cGRhdGUoKG9sZENhbGVuZGVyT3B0czogQ2FsZW5kYXJPcHRpb25zKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5zY2hlbWEpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgIH1cclxuICAgICAgbGV0IGV2dHMgPSB2YWx1ZS5tYXAoaXRlbSA9PiB7XHJcbiAgICAgICAgbGV0IHRpdGxlOiBzdHJpbmcgPSB0aGlzLnNjaGVtYSEudGl0bGVcclxuICAgICAgICAgIC5tYXAoKGNvbHVtbk5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPVxyXG4gICAgICAgICAgICAgIGNvbHVtbk5hbWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBjb2x1bW5OYW1lLnNsaWNlKDEpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIChpdGVtW3Byb3BlcnR5TmFtZV0gPz8gaXRlbVtjb2x1bW5OYW1lXSA/PyAnJykudG9TdHJpbmcoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgICAgICAuam9pbignIC0gJyk7XHJcbiAgICAgICAgbGV0IGV2ZW50OiBFdmVudElucHV0ID0ge1xyXG4gICAgICAgICAgaWQ6IGl0ZW1bdGhpcy5zY2hlbWEhLmlkXSxcclxuICAgICAgICAgIHN0YXJ0OiBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0sXHJcbiAgICAgICAgICBlbmQ6IGZvcmNlQWxsRGF5ICYmIGl0ZW1bdGhpcy5zY2hlbWEhLmVuZF1cclxuICAgICAgICAgICAgPyB0aGlzLmFkZERheXMobmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSksIDEpXHJcbiAgICAgICAgICAgIDogaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSxcclxuICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yLFxyXG4gICAgICAgICAgYWxsRGF5OiBmb3JjZUFsbERheSxcclxuICAgICAgICAgIGV4dGVuZGVkUHJvcHM6IHtcclxuICAgICAgICAgICAgbm9tYnJlQXR0YWNoZW1lbnQ6IGl0ZW0ubm9tYnJlQXR0YWNoZW1lbnQsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgb2xkQ2FsZW5kZXJPcHRzLmV2ZW50cyA9IGV2dHM7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4ub2xkQ2FsZW5kZXJPcHRzLFxyXG4gICAgICAgIGV2ZW50czogZXZ0c1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRmlsdGVyUmFuZ2VWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2aWV3VHlwZSA9PT0gJ2RheUdyaWRGaWx0ZXJSYW5nZScgfHwgdmlld1R5cGUgPT09ICdtdWx0aU1vbnRoRmlsdGVyUmFuZ2UnIHx8IHZpZXdUeXBlID09PSAnbGlzdEZpbHRlclJhbmdlJyB8fCB2aWV3VHlwZSA9PT0gJ3RpbWVHcmlkRmlsdGVyUmFuZ2UnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZShjdXJyZW50RGF0ZTogRGF0ZSk6IHsgc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSB9IHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5maWx0ZXJTdGFydERhdGUgPz8gY3VycmVudERhdGU7XHJcbiAgICBjb25zdCBlbmQgPSB0aGlzLmZpbHRlckVuZERhdGUgPz8gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgMjQgKiA2MCAqIDYwICogMTAwMCk7XHJcbiAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRGF5R3JpZEZhbWlseVZpZXcodmlld1R5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZpZXdUeXBlLnN0YXJ0c1dpdGgoJ2RheUdyaWQnKSB8fCB2aWV3VHlwZS5zdGFydHNXaXRoKCdtdWx0aU1vbnRoJykgfHwgdmlld1R5cGUuc3RhcnRzV2l0aCgnbGlzdCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseURhdGVQYXJ0KG5ld0RhdGU6IERhdGUsIHJlZmVyZW5jZURhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBEYXRlKHJlZmVyZW5jZURhdGUpO1xyXG4gICAgbWVyZ2VkLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSwgbmV3RGF0ZS5nZXRNb250aCgpLCBuZXdEYXRlLmdldERhdGUoKSk7XHJcbiAgICByZXR1cm4gbWVyZ2VkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGREYXlzKGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXREYXRlKHJlc3VsdC5nZXREYXRlKCkgKyBhbW91bnQpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbmhhbmRsZURhdGVTZWxlY3Qoc2VsZWN0SW5mbzogRGF0ZVNlbGVjdEFyZykge1xyXG5cclxuICBpZiAoIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJTdGFydERhdGVDb2x1bW4gfHwgIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJFbmREYXRlQ29sdW1uKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBzdGFydENvbHVtbiA9IHRoaXMuZW50aXR5SW5mby5jYWxlbmRhclN0YXJ0RGF0ZUNvbHVtbjtcclxuICBjb25zdCBlbmRDb2x1bW4gPSB0aGlzLmVudGl0eUluZm8uY2FsZW5kYXJFbmREYXRlQ29sdW1uO1xyXG4gIGxldCBmb3JtYXR0ZWRTdGFydERhdGUgPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0oc2VsZWN0SW5mby5zdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/ICcnO1xyXG5cclxuICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ1JFQVRFLFxyXG4gICAgW3N0YXJ0Q29sdW1uXTogZm9ybWF0dGVkU3RhcnREYXRlLFxyXG4gICAgW2VuZENvbHVtbl06IHNlbGVjdEluZm8uZW5kIFxyXG4gIH0pO1xyXG59XHJcbiAgaGFuZGxlRXZlbnRDbGljayhjbGlja0luZm86IEV2ZW50Q2xpY2tBcmcpIHtcclxuICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHtcclxuICAgICAgbW9kZTogQ29tcG9uZW50X01vZGVzLkVESVQsXHJcbiAgICAgIGlkOiBjbGlja0luZm8uZXZlbnQuaWRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRzKGV2ZW50czogRXZlbnRBcGlbXSkge1xyXG4gICAgdGhpcy5jdXJyZW50RXZlbnRzLnNldChldmVudHMpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAvLyB3b3JrYXJvdW5kIGZvciBwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRSZXNpemUoaW5mbzogRXZlbnRSZXNpemVEb25lQXJnKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUV2ZW50KGluZm8pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnREcm9wKGluZm86IGFueSkge1xyXG4gICAgdGhpcy51cGRhdGVFdmVudChpbmZvKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUV2ZW50KGluZm86IGFueSkge1xyXG4gICAgY29uc3QgbmV3U3RhcnQgPSBpbmZvLmV2ZW50LnN0YXJ0O1xyXG4gICAgY29uc3QgbmV3RW5kID0gaW5mby5ldmVudC5lbmQ7XHJcbiAgICBjb25zdCBpZCA9IGluZm8uZXZlbnQuaWQ7XHJcbiAgICBjb25zdCBwcmVzZXJ2ZU9yaWdpbmFsVGltZSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3J1ZFNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jcnVkU2VydmljZS5nZXRCeUlkKGlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnNjaGVtYSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHJlcztcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkU3RhcnQgPSBwcmVzZXJ2ZU9yaWdpbmFsVGltZVxyXG4gICAgICAgICAgICA/IHRoaXMuYXBwbHlEYXRlUGFydChuZXdTdGFydCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuc3RhcnRdKSlcclxuICAgICAgICAgICAgOiBuZXdTdGFydDtcclxuICAgICAgICAgIGNvbnN0IGluY2x1c2l2ZUVuZCA9IHByZXNlcnZlT3JpZ2luYWxUaW1lICYmIG5ld0VuZFxyXG4gICAgICAgICAgICA/IHRoaXMuYWRkRGF5cyhuZXdFbmQsIC0xKVxyXG4gICAgICAgICAgICA6IG5ld0VuZDtcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkRW5kID0gaW5jbHVzaXZlRW5kXHJcbiAgICAgICAgICAgID8gKHByZXNlcnZlT3JpZ2luYWxUaW1lID8gdGhpcy5hcHBseURhdGVQYXJ0KGluY2x1c2l2ZUVuZCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSkpIDogaW5jbHVzaXZlRW5kKVxyXG4gICAgICAgICAgICA6IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0gPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0ocmVzb2x2ZWRTdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5lbmRdID0gdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKHJlc29sdmVkRW5kLCBBcGlEYXRlVGltZUZvcm1hdCkgPz8gcmVzb2x2ZWRFbmQ7XHJcbiAgICAgICAgICB0aGlzLmNydWRTZXJ2aWNlPy51cGRhdGUoaXRlbSwgaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfcmVwb3J0aW5nX3N1Y2Nlc3NfdXBkYXRlZFwiKSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUubG9nKGVycilcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4gY29uc29sZS5sb2coXCJDYW4gbm90IHVwZGF0ZSBpdGVtIDpcIiwgZXJyKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0ZVBpY2tlck5hdmlnYXRvckNsaWNrKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBoYW5kbGVTZWFyY2hGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudENsaWNrLmVtaXQoe1xyXG4gICAgICBtb2RlOiBcIlNFQVJDSFwiXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RhdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBmdWxsQ2FsZW5kYXI/LmdvdG9EYXRlKGV2ZW50KTtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFdmVudERpZE1vdW50KGFyZzogYW55KSB7XHJcbiAgICAvL0F0dGFjaCByaWdodC1jbGljayBldmVudCB0byBlYWNoIGV2ZW50IGNlbGxcclxuICAgIGFyZy5lbC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAvL1ByZXZlbnQgdGhlIGRlZmF1bHQgY29udGV4dCBtZW51IGZyb20gYXBwZWFyaW5nXHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQgPSBhcmcuZXZlbnQ7XHJcbiAgICAgIHRoaXMuY29udGV4dE1lbnU/Lm9wZW5NZW51KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RlZEFjdGlvbihhY3Rpb246IGFueSk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChhY3Rpb24uc2VsZWN0ZWRBY3Rpb24pIHtcclxuICAgICAgY2FzZSBNb2Rlcy5kZWxldGU6XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQpIHtcclxuICAgICAgICAgIHRoaXMuY3J1ZFNlcnZpY2U/LmRlbGV0ZSh0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICAgICAgICAgICAgZnVsbENhbGVuZGFyPy5nZXRFdmVudEJ5SWQodGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCk/LnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RlbGV0ZV9pdGVtX3N1Y2Nlc3NcIilcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVycm9yKGVyci5lcnJvci5lcnJvcnNbNTQ3XSA/IFwic2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kZWxldGVfaXRlbV9mYWlsZWRcIiA6IGVyci5lcnJvci5kZXRhaWwpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuY29uc3VsdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ09OU1VMVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuZWRpdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuRURJVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHsgbW9kZTogJ2luZm8nLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAndXBsb2FkJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdub3Rlcyc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnbm90ZXMnLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0FjdGlvbkVSUCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnQWN0aW9uRVJQJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EaXNwbGF5TW9kZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnZpZXdUeXBlQ2hhbmdlLmVtaXQoZXZlbnQudmFsdWUpO1xyXG4gICAgY29uc3QgY2FsZW5kYXJBcGkgPSB0aGlzLmNhbGVuZGFyPy5nZXRBcGkoKTtcclxuICAgIGNhbGVuZGFyQXBpPy5jaGFuZ2VWaWV3KGV2ZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlcygpIHtcclxuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7XHJcbiAgICAgIGNvbnN0IGNhbGVuZGFyQXBpOiBDYWxlbmRhckFwaSA9IHRoaXMuY2FsZW5kYXIuZ2V0QXBpKCk7XHJcbiAgICAgIHRoaXMuZGF0ZVJhbmdlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIHN0YXJ0OiBuZXcgRGF0ZShjYWxlbmRhckFwaS52aWV3LmN1cnJlbnRTdGFydC5zZXREYXRlKGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudFN0YXJ0LmdldERhdGUoKSArIDEpKSxcclxuICAgICAgICBlbmQ6IG5ldyBEYXRlKGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudEVuZC5zZXREYXRlKGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudEVuZC5nZXREYXRlKCkgKyAxKSksXHJcbiAgICAgICAgdmlld1R5cGU6IGNhbGVuZGFyQXBpLnZpZXcudHlwZVxyXG4gICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgbmV3Vmlld1R5cGUgPSBjYWxlbmRhckFwaS52aWV3LnR5cGU7XHJcbiAgICAgIGlmIChuZXdWaWV3VHlwZSAhPT0gdGhpcy5jdXJyZW50Vmlld1R5cGUpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3VHlwZSA9IG5ld1ZpZXdUeXBlO1xyXG4gICAgICAgIHRoaXMubWFwRGF0YVRvRXZlbnRzKHRoaXMubGFzdEV2ZW50c0RhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8cC1jYWxlbmRhciAjZGF0ZVBpY2tlciBjbGFzcz1cImhpZGRlbi1jYWxlbmRhclwiIChvblNlbGVjdCk9XCJuYXZpZ2F0ZVRvRGF0ZSgkZXZlbnQpXCIvPlxyXG48ZnVsbC1jYWxlbmRhciAjY2FsZW5kYXIgW29wdGlvbnNdPSdjYWxlbmRhck9wdGlvbnMoKSc+XHJcbiAgICA8bmctdGVtcGxhdGUgIGxldC1hcmc+XHJcblxyXG4gICAgPGkgW25nU3R5bGVdPVwiYXJnLmV2ZW50LmNvbG9yICYmIGFyZy5ldmVudC5jb2xvciAhPT0gJycgPyB7J2JhY2tncm91bmQtY29sb3InOiBhcmcuZXZlbnQuY29sb3J9IDoge31cIiA+XHJcbiAgICAgICAgXHJcbiAgICAgICAge3sgYXJnLmV2ZW50LnRpdGxlIH19PC9pPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9mdWxsLWNhbGVuZGFyPlxyXG48YXBwLWNvbnRleHQtbWVudSBcclxuICBbc2hvd0luZm9CdXR0b25dPVwic2hvd0luZm9CdXR0b25cIlxyXG4gIFtzaG93VXBsb2FkQnV0dG9uXT1cInNob3dVcGxvYWRCdXR0b25cIlxyXG4gIFtzaG93Tm90ZUJ1dHRvbl09XCJzaG93Tm90ZUJ1dHRvblwiXHJcbiAgW3Nob3dBY3Rpb25CdXR0b25dPVwic2hvd0FjdGlvbkJ1dHRvblwiXHJcbiAgKGFjdGlvblNlbGVjdGVkKT1cImhhbmRsZVNlbGVjdGVkQWN0aW9uKCRldmVudClcIj5cclxuPC9hcHAtY29udGV4dC1tZW51PlxyXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duVGVtcGxhdGU+XHJcbiAgICA8cC1kcm9wZG93biBbc3R5bGVdPVwieyd3aWR0aCcgOiAnMjAwcHgnLCdib3JkZXItcmFkaXVzJzogJzVweCd9XCIgW29wdGlvbnNdPVwiZGlzcGxheU1vZGVPcHRpb25zXCIgKG9uQ2hhbmdlKT1cIm9uRGlzcGxheU1vZGVDaGFuZ2UoJGV2ZW50KVwiPjwvcC1kcm9wZG93bj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
436
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWNhbGVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBYSxNQUFNLEVBQThCLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHeE0sT0FBTyxpQkFBeUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLGFBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLGNBQWMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLFVBQVUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLGdCQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixJQUFhLFVBQVUsQ0FBQyxLQUFZO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQWtCRCxZQUNVLGVBQWtDLEVBQ2xDLGlCQUFtQyxFQUNuQyxlQUF1QyxFQUN2QyxTQUFtQixFQUNuQixhQUEyQixFQUMzQixRQUFtQjtRQUxuQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBdEJyQixtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQUMzQixvQkFBZSxHQUFXLGNBQWMsQ0FBQztRQUN4QyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUlqQyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEQsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM3RCxtQkFBYyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTVFLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQTRFL0Isb0JBQWUsR0FBRyxNQUFNLENBQWtCO1lBQ3hDLE9BQU8sRUFBRTtnQkFDUCxpQkFBaUI7Z0JBQ2pCLGFBQWE7Z0JBQ2IsY0FBYztnQkFDZCxVQUFVO2dCQUNWLGdCQUFnQjthQUNqQjtZQUNELGFBQWEsRUFBRTtnQkFDYixJQUFJLEVBQUUsb0VBQW9FO2dCQUMxRSxNQUFNLEVBQUUsT0FBTztnQkFDZixLQUFLLEVBQUUsb0JBQW9CO2FBQzVCO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxhQUFhO2FBQ3JCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRTtvQkFDWCxJQUFJLEVBQUUsU0FBUztvQkFDZixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO2lCQUN2QjtnQkFDRCxrQkFBa0IsRUFBRTtvQkFDbEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsWUFBWSxFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUN6RDtnQkFDRCxxQkFBcUIsRUFBRTtvQkFDckIsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDekQ7Z0JBQ0QsZUFBZSxFQUFFO29CQUNmLElBQUksRUFBRSxNQUFNO29CQUNaLFlBQVksRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDekQ7Z0JBQ0QsbUJBQW1CLEVBQUU7b0JBQ25CLElBQUksRUFBRSxVQUFVO29CQUNoQixZQUFZLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ3pEO2FBQ0Y7WUFDRCxhQUFhLEVBQUU7Z0JBQ2IsbUJBQW1CLEVBQUU7b0JBQ25CLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUsRUFBRTtvQkFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ3REO2dCQUNELFlBQVksRUFBRTtvQkFDWixJQUFJLEVBQUUsY0FBYztvQkFDcEIsSUFBSSxFQUFFLEVBQUU7b0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUMxQzthQUNGO1lBQ0QsV0FBVyxFQUFFLGNBQWM7WUFDM0IsTUFBTSxFQUFFLElBQUk7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDdkIsUUFBUSxFQUFFLElBQUk7WUFDZCxVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUUsSUFBSTtZQUNkLHVCQUF1QixFQUFFLElBQUk7WUFDN0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixxQkFBcUIsRUFBRSxJQUFJO1lBQzNCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN4QyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzFDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5QyxhQUFhLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbEQsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN6QyxZQUFZLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDcEIsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5RSxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsR0FBRyxDQUFDO29CQUMxQyxDQUFDLENBQUMsa0VBQWtFLGlCQUFpQixVQUFVO29CQUMvRixDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUVQLE9BQU87b0JBQ0wsSUFBSSxFQUFFOzt3Q0FFMEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLO2NBQ3pDLGNBQWM7O1NBRW5CO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsa0JBQWEsR0FBRyxNQUFNLENBQWEsRUFBRSxDQUFDLENBQUM7UUF2SnJDLElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN4QixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxpREFBaUQsQ0FBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDakgsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsbURBQW1ELENBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7WUFDckgsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsZ0RBQWdELENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1lBQy9HLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGdEQUFnRCxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtZQUMvRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7WUFDN0csRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsZ0RBQWdELENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1lBQy9HLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGlEQUFpRCxDQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRTtZQUNqSCxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyw2Q0FBNkMsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDekcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsOENBQThDLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO1lBQzNHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLDZDQUE2QyxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUN6RyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDdkcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsdURBQXVELENBQUMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7WUFDN0gsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsMERBQTBELENBQUMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7WUFDbkksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsb0RBQW9ELENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7WUFDdkgsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsd0RBQXdELENBQUMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUU7WUFDL0gsU0FBUztZQUNULCtEQUErRDtZQUMvRCwrREFBK0Q7WUFDL0QsaUVBQWlFO1lBQ2pFLDZEQUE2RDtTQUM5RCxDQUFBO0lBRUgsQ0FBQztJQUlELFFBQVE7SUFFUixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzdELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFFBQVEsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN4QyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxXQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFBO1FBQ3BELENBQUM7UUFDRCxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM1RSxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUE7UUFDdEQsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNoRixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLGVBQWUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsNEJBQTRCO1lBQzVELDRDQUE0QztZQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM1QyxxQ0FBcUM7WUFDckMsWUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBeUZELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFnQyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1lBQzlDLENBQUM7WUFDRCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMxQixJQUFJLEtBQUssR0FBVyxJQUFJLENBQUMsTUFBTyxDQUFDLEtBQUs7cUJBQ25DLEdBQUcsQ0FBQyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtvQkFDMUIsTUFBTSxZQUFZLEdBQ2hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFM0QsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25FLENBQUMsQ0FBQztxQkFDRCxNQUFNLENBQUMsT0FBTyxDQUFDO3FCQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDZixJQUFJLEtBQUssR0FBZTtvQkFDdEIsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLEVBQUUsQ0FBQztvQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLEtBQUssQ0FBQztvQkFDL0IsR0FBRyxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxHQUFHLENBQUM7d0JBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsR0FBRyxDQUFDO29CQUMxQixLQUFLLEVBQUUsS0FBSztvQkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2pCLE1BQU0sRUFBRSxXQUFXO29CQUNuQixhQUFhLEVBQUU7d0JBQ2IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtxQkFDMUM7aUJBQ0YsQ0FBQztnQkFDRixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1lBRUgsZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDOUIsT0FBTztnQkFDTCxHQUFHLGVBQWU7Z0JBQ2xCLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFFBQWdCO1FBQ3hDLE9BQU8sUUFBUSxLQUFLLG9CQUFvQixJQUFJLFFBQVEsS0FBSyx1QkFBdUIsSUFBSSxRQUFRLEtBQUssaUJBQWlCLElBQUksUUFBUSxLQUFLLHFCQUFxQixDQUFDO0lBQzNKLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxXQUFpQjtRQUNsRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLFdBQVcsQ0FBQztRQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRixPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxRQUFnQjtRQUMxQyxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBYSxFQUFFLGFBQW1CO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sT0FBTyxDQUFDLElBQVUsRUFBRSxNQUFjO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDSCxnQkFBZ0IsQ0FBQyxVQUF5QjtRQUV4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSx1QkFBdUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztZQUN6RixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUM7UUFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztRQUN4RCxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxNQUFNO1lBQzVCLENBQUMsV0FBVyxDQUFDLEVBQUUsa0JBQWtCO1lBQ2pDLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUc7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNDLGdCQUFnQixDQUFDLFNBQXdCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtZQUMxQixFQUFFLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBa0I7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLDJEQUEyRDtJQUNuRyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBd0I7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVM7UUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDOUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDckMsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtvQkFDOUMsQ0FBQztvQkFDRCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7b0JBQ2YsTUFBTSxhQUFhLEdBQUcsb0JBQW9CO3dCQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDbEUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztvQkFDYixNQUFNLFlBQVksR0FBRyxvQkFBb0IsSUFBSSxNQUFNO3dCQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUM7b0JBQ1gsTUFBTSxXQUFXLEdBQUcsWUFBWTt3QkFDOUIsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO3dCQUM1RyxDQUFDLENBQUMsYUFBYSxDQUFDO29CQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxhQUFhLENBQUM7b0JBQ3ZHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLFdBQVcsQ0FBQztvQkFDakcsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDM0MsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDO3dCQUM1RSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO3FCQUNqQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztnQkFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDO2FBQzFELENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBVTtRQUN2QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztZQUN2RSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDN0MsWUFBWSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztZQUN2RSxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFRO1FBQzFCLDZDQUE2QztRQUM3QyxHQUFHLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUMzRCxpREFBaUQ7WUFDakQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQVc7UUFDOUIsUUFBUSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDOUIsS0FBSyxLQUFLLENBQUMsTUFBTTtnQkFDZixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO3dCQUNsRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTs0QkFDWixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDOzRCQUM3QyxZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQzs0QkFDdEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsd0RBQXdELENBQUMsQ0FBQTt3QkFDeEYsQ0FBQzt3QkFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7cUJBQy9JLENBQUMsQ0FBQTtnQkFDSixDQUFDO2dCQUNELE1BQU07WUFDUixLQUFLLEtBQUssQ0FBQyxPQUFPO2dCQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztvQkFDbkIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxPQUFPO29CQUM3QixFQUFFLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7aUJBQ3BDLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBQ1IsS0FBSyxLQUFLLENBQUMsSUFBSTtnQkFDYixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztvQkFDbkIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO29CQUMxQixFQUFFLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7aUJBQ3BDLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVFLE1BQU07WUFFUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDOUUsTUFBTTtZQUVSLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RSxNQUFNO1lBRVIsS0FBSyxXQUFXO2dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pGLE1BQU07UUFFVixDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDNUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLFdBQVcsR0FBZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDeEIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWTtnQkFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFDaEMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSTthQUNoQyxDQUFDLENBQUE7WUFFRixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMxQyxJQUFJLFdBQVcsS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBeGFVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDBqQkFHcEIsb0JBQW9CLDhWQzNCakMsazNCQW1CQTs7NEZES2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7b09BT1MsV0FBVztzQkFBM0MsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ04sVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNBLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDVSxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDTyxVQUFVO3NCQUF0QixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBcUNFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckFwaSwgQ2FsZW5kYXJPcHRpb25zLCBEYXRlU2VsZWN0QXJnLCBFdmVudEFwaSwgRXZlbnRDbGlja0FyZywgRXZlbnRJbnB1dCB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHByaW1lTmcgZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCBpbnRlcmFjdGlvblBsdWdpbiwgeyBFdmVudFJlc2l6ZURvbmVBcmcgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IGRheUdyaWRQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9kYXlncmlkJztcclxuaW1wb3J0IHRpbWVHcmlkUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvdGltZWdyaWQnO1xyXG5pbXBvcnQgbGlzdFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2xpc3QnO1xyXG5pbXBvcnQgbXVsdGlNb250aFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL211bHRpbW9udGgnO1xyXG5pbXBvcnQgeyBGdWxsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRfTW9kZXMsIE1vZGVzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sb2NhbGl6ZS5waXBlJztcclxuaW1wb3J0IHsgQ3J1ZEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS9jcnVkLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vdHNpLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRTY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tbW9uL2V2ZW50LXNjaGVtYSc7XHJcbmltcG9ydCB7IEVudGl0eUluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFwaURhdGVUaW1lRm9ybWF0IH0gZnJvbSAnLi4vLi4vY29uc3RzL3RzaS1jb25zdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0c2ktY2FsZW5kZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktY2FsZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1jYWxlbmRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lDYWxlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgY3VycmVudENvbnRleHRNZW51RXZlbnQ6IGFueTtcclxuICBAVmlld0NoaWxkKENvbnRleHRNZW51Q29tcG9uZW50KSBjb250ZXh0TWVudTogQ29udGV4dE1lbnVDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXI6IHByaW1lTmcuQ2FsZW5kYXIgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhcjogRnVsbENhbGVuZGFyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVGVtcGxhdGUnKSBkcm9wZG93blRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBjcnVkU2VydmljZT86IENydWRCYXNlU2VydmljZTxhbnksIGFueSwgYW55LCBhbnk+O1xyXG4gIEBJbnB1dCgpIHNjaGVtYTogRXZlbnRTY2hlbWEgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IGV2ZW50c0RhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLm1hcERhdGFUb0V2ZW50cyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxhc3RFdmVudHNEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgY3VycmVudFZpZXdUeXBlOiBzdHJpbmcgPSAnZGF5R3JpZE1vbnRoJztcclxuICBASW5wdXQoKSBzaG93SW5mb0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dEb3dubG9hZEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dVcGxvYWRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Tm90ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWx0ZXJTdGFydERhdGU/OiBEYXRlO1xyXG4gIEBJbnB1dCgpIGZpbHRlckVuZERhdGU/OiBEYXRlO1xyXG5cclxuICBAT3V0cHV0KCkgZXZlbnRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0ZVJhbmdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSB2aWV3VHlwZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgZGlzcGxheU1vZGVPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogVHNpTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgX2xvY2FsaXplUGlwZTogTG9jYWxpemVQaXBlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlNb2RlT3B0aW9ucyA9IFtcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkTW9udGgnKSwgdmFsdWU6ICdkYXlHcmlkTW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aFllYXInKSwgdmFsdWU6ICdtdWx0aU1vbnRoWWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkWWVhcicpLCB2YWx1ZTogJ2RheUdyaWRZZWFyJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RheUdyaWRXZWVrJyksIHZhbHVlOiAnZGF5R3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfZGF5R3JpZERheScpLCB2YWx1ZTogJ2RheUdyaWREYXknIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfdGltZUdyaWREYXknKSwgdmFsdWU6ICd0aW1lR3JpZERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZFdlZWsnKSwgdmFsdWU6ICd0aW1lR3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFllYXInKSwgdmFsdWU6ICdsaXN0WWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0TW9udGgnKSwgdmFsdWU6ICdsaXN0TW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFdlZWsnKSwgdmFsdWU6ICdsaXN0V2VlaycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0RGF5JyksIHZhbHVlOiAnbGlzdERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkRmlsdGVyUmFuZ2UnKSwgdmFsdWU6ICdkYXlHcmlkRmlsdGVyUmFuZ2UnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aEZpbHRlclJhbmdlJyksIHZhbHVlOiAnbXVsdGlNb250aEZpbHRlclJhbmdlJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2xpc3RGaWx0ZXJSYW5nZScpLCB2YWx1ZTogJ2xpc3RGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZEZpbHRlclJhbmdlJyksIHZhbHVlOiAndGltZUdyaWRGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgLy9wcmVtaXVtXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBhbm7DqWUnLCB2YWx1ZTogJ3RpbWVsaW5lWWVhcicgfSxcclxuICAgICAgLy8geyBsYWJlbDogJ3Z1ZSBjaHJvbm9sb2dpcXVlIG1vaXMnLCB2YWx1ZTogJ3RpbWVsaW5lTW9udGgnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBzZW1haW5lJywgdmFsdWU6ICd0aW1lbGluZVdlZWsnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBqb3VyJywgdmFsdWU6ICd0aW1lbGluZURheScgfSxcclxuICAgIF1cclxuXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBlbnRpdHlJbmZvPzogRW50aXR5SW5mbztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCFjaGFuZ2VzWydmaWx0ZXJTdGFydERhdGUnXSAmJiAhY2hhbmdlc1snZmlsdGVyRW5kRGF0ZSddKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNhbGVuZGFyQXBpID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBjb25zdCB2aWV3VHlwZSA9IGNhbGVuZGFyQXBpPy52aWV3LnR5cGU7XHJcbiAgICBpZiAodmlld1R5cGUgJiYgdGhpcy5pc0ZpbHRlclJhbmdlVmlldyh2aWV3VHlwZSkpIHtcclxuICAgICAgY2FsZW5kYXJBcGkhLmNoYW5nZVZpZXcodmlld1R5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgY29uc3QgaWNvbkZvckNhbGVuZGFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWljb24tQ2FsZW5kYXInKTtcclxuICAgIGlmIChpY29uRm9yQ2FsZW5kYXIpIHtcclxuICAgICAgaWNvbkZvckNhbGVuZGFyLmNsYXNzTGlzdC52YWx1ZSA9IFwicGkgcGktY2FsZW5kYXJcIlxyXG4gICAgfVxyXG4gICAgY29uc3QgaWNvbkZvclNlYXJjaEZpbHRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mYy1pY29uLVNlYXJjaEZpbHRlcicpO1xyXG4gICAgaWYgKGljb25Gb3JTZWFyY2hGaWx0ZXIpIHtcclxuICAgICAgaWNvbkZvclNlYXJjaEZpbHRlci5jbGFzc0xpc3QudmFsdWUgPSBcInBpIHBpLXNlYXJjaFwiXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZHJvcGRvd25FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWRpc3BsYXlNb2RlT3B0aW9ucy1idXR0b24nKTtcclxuICAgIGlmIChkcm9wZG93bkVsZW1lbnQpIHtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmlubmVySFRNTCA9ICcnOyAvLyBDbGVhciBhbnkgZGVmYXVsdCBjb250ZW50XHJcbiAgICAgIC8vIENyZWF0ZSBhbiBlbWJlZGRlZCB2aWV3IGZyb20gdGhlIHRlbXBsYXRlXHJcbiAgICAgIGNvbnN0IGVtYmVkZGVkVmlldyA9IHRoaXMuZHJvcGRvd25UZW1wbGF0ZSEuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpO1xyXG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmluc2VydChlbWJlZGRlZFZpZXcpO1xyXG4gICAgICAvLyBBcHBlbmQgdGhlIGRyb3Bkb3duIHRvIHRoZSB0b29sYmFyXHJcbiAgICAgIGVtYmVkZGVkVmlldyEucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkcm9wZG93bkVsZW1lbnQsIG5vZGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmNsYXNzTGlzdC52YWx1ZSA9ICdkaXNwbGF5TW9kZU9wdGlvbnMnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsZW5kYXJPcHRpb25zID0gc2lnbmFsPENhbGVuZGFyT3B0aW9ucz4oe1xyXG4gICAgcGx1Z2luczogW1xyXG4gICAgICBpbnRlcmFjdGlvblBsdWdpbixcclxuICAgICAgZGF5R3JpZFBsdWdpbixcclxuICAgICAgdGltZUdyaWRQbHVnaW4sXHJcbiAgICAgIGxpc3RQbHVnaW4sXHJcbiAgICAgIG11bHRpTW9udGhQbHVnaW4sXHJcbiAgICBdLFxyXG4gICAgaGVhZGVyVG9vbGJhcjoge1xyXG4gICAgICBsZWZ0OiAncHJldlllYXIscHJldixkYXRlUGlja2VyTmF2aWdhdG9yLHNlYXJjaEZpbHRlcixuZXh0LG5leHRZZWFyLHRvZGF5JyxcclxuICAgICAgY2VudGVyOiAndGl0bGUnLFxyXG4gICAgICByaWdodDogJ2Rpc3BsYXlNb2RlT3B0aW9ucycsXHJcbiAgICB9LFxyXG4gICAgYnV0dG9uVGV4dDoge1xyXG4gICAgICB0b2RheTogXCJBdWpvdXJkJ2h1aVwiLFxyXG4gICAgfSxcclxuICAgIHZpZXdzOiB7XHJcbiAgICAgIGRheUdyaWRZZWFyOiB7XHJcbiAgICAgICAgdHlwZTogJ2RheUdyaWQnLFxyXG4gICAgICAgIGR1cmF0aW9uOiB7IHllYXJzOiAxIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGRheUdyaWRGaWx0ZXJSYW5nZToge1xyXG4gICAgICAgIHR5cGU6ICdkYXlHcmlkJyxcclxuICAgICAgICB2aXNpYmxlUmFuZ2U6IHRoaXMuZ2V0RmlsdGVyUmFuZ2VWaXNpYmxlUmFuZ2UuYmluZCh0aGlzKSxcclxuICAgICAgfSxcclxuICAgICAgbXVsdGlNb250aEZpbHRlclJhbmdlOiB7XHJcbiAgICAgICAgdHlwZTogJ211bHRpTW9udGgnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0RmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAnbGlzdCcsXHJcbiAgICAgICAgdmlzaWJsZVJhbmdlOiB0aGlzLmdldEZpbHRlclJhbmdlVmlzaWJsZVJhbmdlLmJpbmQodGhpcyksXHJcbiAgICAgIH0sXHJcbiAgICAgIHRpbWVHcmlkRmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAndGltZUdyaWQnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGN1c3RvbUJ1dHRvbnM6IHtcclxuICAgICAgZGF0ZVBpY2tlck5hdmlnYXRvcjoge1xyXG4gICAgICAgIGljb246IFwiQ2FsZW5kYXJcIixcclxuICAgICAgICBoaW50OiBcIlwiLFxyXG4gICAgICAgIGNsaWNrOiB0aGlzLmhhbmRsZURhdGVQaWNrZXJOYXZpZ2F0b3JDbGljay5iaW5kKHRoaXMpXHJcbiAgICAgIH0sXHJcbiAgICAgIHNlYXJjaEZpbHRlcjoge1xyXG4gICAgICAgIGljb246IFwiU2VhcmNoRmlsdGVyXCIsXHJcbiAgICAgICAgaGludDogXCJcIixcclxuICAgICAgICBjbGljazogdGhpcy5oYW5kbGVTZWFyY2hGaWx0ZXIuYmluZCh0aGlzKVxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGluaXRpYWxWaWV3OiAnZGF5R3JpZE1vbnRoJyxcclxuICAgIGxvY2FsZTogXCJmclwiLFxyXG4gICAgZXZlbnRzOiB0aGlzLmV2ZW50c0RhdGEsXHJcbiAgICB3ZWVrZW5kczogdHJ1ZSxcclxuICAgIHNlbGVjdGFibGU6IHRydWUsXHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIGV2ZW50UmVzaXphYmxlRnJvbVN0YXJ0OiB0cnVlLFxyXG4gICAgZXZlbnRTdGFydEVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREdXJhdGlvbkVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREaXNwbGF5OiAnYmxvY2snLFxyXG4gICAgc2VsZWN0TWlycm9yOiB0cnVlLFxyXG4gICAgZGF5TWF4RXZlbnRzOiB0cnVlLFxyXG4gICAgc2VsZWN0OiB0aGlzLmhhbmRsZURhdGVTZWxlY3QuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50Q2xpY2s6IHRoaXMuaGFuZGxlRXZlbnRDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRzU2V0OiB0aGlzLmhhbmRsZUV2ZW50cy5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnREcm9wOiB0aGlzLmhhbmRsZUV2ZW50RHJvcC5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRSZXNpemU6IHRoaXMuaGFuZGxlRXZlbnRSZXNpemUuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuaGFuZGxlRXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxyXG4gICAgZGF0ZXNTZXQ6IHRoaXMuZ2V0Q3VycmVudERhdGVzLmJpbmQodGhpcyksXHJcbiAgICBldmVudENvbnRlbnQ6IChhcmcpID0+IHtcclxuICAgICAgY29uc3Qgbm9tYnJlQXR0YWNoZW1lbnQgPSBhcmcuZXZlbnQuZXh0ZW5kZWRQcm9wcz8uWydub21icmVBdHRhY2hlbWVudCddIHx8IDA7XHJcbiAgICAgIGNvbnN0IGF0dGFjaG1lbnRIdG1sID0gbm9tYnJlQXR0YWNoZW1lbnQgPiAwXHJcbiAgICAgICAgPyBgPHNwYW4gY2xhc3M9XCJhdHRhY2htZW50LWluZm9cIj48aSBjbGFzcz1cInBpIHBpLXBhcGVyY2xpcFwiPjwvaT4gWyR7bm9tYnJlQXR0YWNoZW1lbnR9XTwvc3Bhbj5gXHJcbiAgICAgICAgOiAnJztcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaHRtbDogYFxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldmVudC10aXRsZVwiPiR7YXJnLmV2ZW50LnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgJHthdHRhY2htZW50SHRtbH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIGAsXHJcbiAgICAgIH07XHJcbiAgICB9LFxyXG4gIH0pO1xyXG4gIGN1cnJlbnRFdmVudHMgPSBzaWduYWw8RXZlbnRBcGlbXT4oW10pO1xyXG5cclxuICBtYXBEYXRhVG9FdmVudHModmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLmxhc3RFdmVudHNEYXRhID0gdmFsdWU7XHJcbiAgICBjb25zdCBmb3JjZUFsbERheSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcbiAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy51cGRhdGUoKG9sZENhbGVuZGVyT3B0czogQ2FsZW5kYXJPcHRpb25zKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5zY2hlbWEpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgIH1cclxuICAgICAgbGV0IGV2dHMgPSB2YWx1ZS5tYXAoaXRlbSA9PiB7XHJcbiAgICAgICAgbGV0IHRpdGxlOiBzdHJpbmcgPSB0aGlzLnNjaGVtYSEudGl0bGVcclxuICAgICAgICAgIC5tYXAoKGNvbHVtbk5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPVxyXG4gICAgICAgICAgICAgIGNvbHVtbk5hbWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBjb2x1bW5OYW1lLnNsaWNlKDEpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIChpdGVtW3Byb3BlcnR5TmFtZV0gPz8gaXRlbVtjb2x1bW5OYW1lXSA/PyAnJykudG9TdHJpbmcoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgICAgICAuam9pbignIC0gJyk7XHJcbiAgICAgICAgbGV0IGV2ZW50OiBFdmVudElucHV0ID0ge1xyXG4gICAgICAgICAgaWQ6IGl0ZW1bdGhpcy5zY2hlbWEhLmlkXSxcclxuICAgICAgICAgIHN0YXJ0OiBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0sXHJcbiAgICAgICAgICBlbmQ6IGZvcmNlQWxsRGF5ICYmIGl0ZW1bdGhpcy5zY2hlbWEhLmVuZF1cclxuICAgICAgICAgICAgPyB0aGlzLmFkZERheXMobmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSksIDEpXHJcbiAgICAgICAgICAgIDogaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSxcclxuICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yLFxyXG4gICAgICAgICAgYWxsRGF5OiBmb3JjZUFsbERheSxcclxuICAgICAgICAgIGV4dGVuZGVkUHJvcHM6IHtcclxuICAgICAgICAgICAgbm9tYnJlQXR0YWNoZW1lbnQ6IGl0ZW0ubm9tYnJlQXR0YWNoZW1lbnQsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgb2xkQ2FsZW5kZXJPcHRzLmV2ZW50cyA9IGV2dHM7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4ub2xkQ2FsZW5kZXJPcHRzLFxyXG4gICAgICAgIGV2ZW50czogZXZ0c1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRmlsdGVyUmFuZ2VWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2aWV3VHlwZSA9PT0gJ2RheUdyaWRGaWx0ZXJSYW5nZScgfHwgdmlld1R5cGUgPT09ICdtdWx0aU1vbnRoRmlsdGVyUmFuZ2UnIHx8IHZpZXdUeXBlID09PSAnbGlzdEZpbHRlclJhbmdlJyB8fCB2aWV3VHlwZSA9PT0gJ3RpbWVHcmlkRmlsdGVyUmFuZ2UnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZShjdXJyZW50RGF0ZTogRGF0ZSk6IHsgc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSB9IHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5maWx0ZXJTdGFydERhdGUgPz8gY3VycmVudERhdGU7XHJcbiAgICBjb25zdCBlbmQgPSB0aGlzLmZpbHRlckVuZERhdGUgPz8gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgMjQgKiA2MCAqIDYwICogMTAwMCk7XHJcbiAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRGF5R3JpZEZhbWlseVZpZXcodmlld1R5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZpZXdUeXBlLnN0YXJ0c1dpdGgoJ2RheUdyaWQnKSB8fCB2aWV3VHlwZS5zdGFydHNXaXRoKCdtdWx0aU1vbnRoJykgfHwgdmlld1R5cGUuc3RhcnRzV2l0aCgnbGlzdCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseURhdGVQYXJ0KG5ld0RhdGU6IERhdGUsIHJlZmVyZW5jZURhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBEYXRlKHJlZmVyZW5jZURhdGUpO1xyXG4gICAgbWVyZ2VkLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSwgbmV3RGF0ZS5nZXRNb250aCgpLCBuZXdEYXRlLmdldERhdGUoKSk7XHJcbiAgICByZXR1cm4gbWVyZ2VkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGREYXlzKGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXREYXRlKHJlc3VsdC5nZXREYXRlKCkgKyBhbW91bnQpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbmhhbmRsZURhdGVTZWxlY3Qoc2VsZWN0SW5mbzogRGF0ZVNlbGVjdEFyZykge1xyXG5cclxuICBpZiAoIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJTdGFydERhdGVDb2x1bW4gfHwgIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJFbmREYXRlQ29sdW1uKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBzdGFydENvbHVtbiA9IHRoaXMuZW50aXR5SW5mby5jYWxlbmRhclN0YXJ0RGF0ZUNvbHVtbjtcclxuICBjb25zdCBlbmRDb2x1bW4gPSB0aGlzLmVudGl0eUluZm8uY2FsZW5kYXJFbmREYXRlQ29sdW1uO1xyXG4gIGxldCBmb3JtYXR0ZWRTdGFydERhdGUgPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0oc2VsZWN0SW5mby5zdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/ICcnO1xyXG5cclxuICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ1JFQVRFLFxyXG4gICAgW3N0YXJ0Q29sdW1uXTogZm9ybWF0dGVkU3RhcnREYXRlLFxyXG4gICAgW2VuZENvbHVtbl06IHNlbGVjdEluZm8uZW5kIFxyXG4gIH0pO1xyXG59XHJcbiAgaGFuZGxlRXZlbnRDbGljayhjbGlja0luZm86IEV2ZW50Q2xpY2tBcmcpIHtcclxuICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHtcclxuICAgICAgbW9kZTogQ29tcG9uZW50X01vZGVzLkVESVQsXHJcbiAgICAgIGlkOiBjbGlja0luZm8uZXZlbnQuaWRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRzKGV2ZW50czogRXZlbnRBcGlbXSkge1xyXG4gICAgdGhpcy5jdXJyZW50RXZlbnRzLnNldChldmVudHMpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAvLyB3b3JrYXJvdW5kIGZvciBwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRSZXNpemUoaW5mbzogRXZlbnRSZXNpemVEb25lQXJnKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUV2ZW50KGluZm8pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnREcm9wKGluZm86IGFueSkge1xyXG4gICAgdGhpcy51cGRhdGVFdmVudChpbmZvKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUV2ZW50KGluZm86IGFueSkge1xyXG4gICAgY29uc3QgbmV3U3RhcnQgPSBpbmZvLmV2ZW50LnN0YXJ0O1xyXG4gICAgY29uc3QgbmV3RW5kID0gaW5mby5ldmVudC5lbmQ7XHJcbiAgICBjb25zdCBpZCA9IGluZm8uZXZlbnQuaWQ7XHJcbiAgICBjb25zdCBwcmVzZXJ2ZU9yaWdpbmFsVGltZSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3J1ZFNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jcnVkU2VydmljZS5nZXRCeUlkKGlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnNjaGVtYSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHJlcztcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkU3RhcnQgPSBwcmVzZXJ2ZU9yaWdpbmFsVGltZVxyXG4gICAgICAgICAgICA/IHRoaXMuYXBwbHlEYXRlUGFydChuZXdTdGFydCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuc3RhcnRdKSlcclxuICAgICAgICAgICAgOiBuZXdTdGFydDtcclxuICAgICAgICAgIGNvbnN0IGluY2x1c2l2ZUVuZCA9IHByZXNlcnZlT3JpZ2luYWxUaW1lICYmIG5ld0VuZFxyXG4gICAgICAgICAgICA/IHRoaXMuYWRkRGF5cyhuZXdFbmQsIC0xKVxyXG4gICAgICAgICAgICA6IG5ld0VuZDtcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkRW5kID0gaW5jbHVzaXZlRW5kXHJcbiAgICAgICAgICAgID8gKHByZXNlcnZlT3JpZ2luYWxUaW1lID8gdGhpcy5hcHBseURhdGVQYXJ0KGluY2x1c2l2ZUVuZCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSkpIDogaW5jbHVzaXZlRW5kKVxyXG4gICAgICAgICAgICA6IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0gPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0ocmVzb2x2ZWRTdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5lbmRdID0gdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKHJlc29sdmVkRW5kLCBBcGlEYXRlVGltZUZvcm1hdCkgPz8gcmVzb2x2ZWRFbmQ7XHJcbiAgICAgICAgICB0aGlzLmNydWRTZXJ2aWNlPy51cGRhdGUoaXRlbSwgaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfcmVwb3J0aW5nX3N1Y2Nlc3NfdXBkYXRlZFwiKSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUubG9nKGVycilcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4gY29uc29sZS5sb2coXCJDYW4gbm90IHVwZGF0ZSBpdGVtIDpcIiwgZXJyKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0ZVBpY2tlck5hdmlnYXRvckNsaWNrKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBoYW5kbGVTZWFyY2hGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudENsaWNrLmVtaXQoe1xyXG4gICAgICBtb2RlOiBcIlNFQVJDSFwiXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RhdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBmdWxsQ2FsZW5kYXI/LmdvdG9EYXRlKGV2ZW50KTtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFdmVudERpZE1vdW50KGFyZzogYW55KSB7XHJcbiAgICAvL0F0dGFjaCByaWdodC1jbGljayBldmVudCB0byBlYWNoIGV2ZW50IGNlbGxcclxuICAgIGFyZy5lbC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAvL1ByZXZlbnQgdGhlIGRlZmF1bHQgY29udGV4dCBtZW51IGZyb20gYXBwZWFyaW5nXHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQgPSBhcmcuZXZlbnQ7XHJcbiAgICAgIHRoaXMuY29udGV4dE1lbnU/Lm9wZW5NZW51KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RlZEFjdGlvbihhY3Rpb246IGFueSk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChhY3Rpb24uc2VsZWN0ZWRBY3Rpb24pIHtcclxuICAgICAgY2FzZSBNb2Rlcy5kZWxldGU6XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQpIHtcclxuICAgICAgICAgIHRoaXMuY3J1ZFNlcnZpY2U/LmRlbGV0ZSh0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICAgICAgICAgICAgZnVsbENhbGVuZGFyPy5nZXRFdmVudEJ5SWQodGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCk/LnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RlbGV0ZV9pdGVtX3N1Y2Nlc3NcIilcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVycm9yKGVyci5lcnJvci5lcnJvcnNbNTQ3XSA/IFwic2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kZWxldGVfaXRlbV9mYWlsZWRcIiA6IGVyci5lcnJvci5kZXRhaWwpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuY29uc3VsdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ09OU1VMVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuZWRpdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuRURJVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHsgbW9kZTogJ2luZm8nLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAndXBsb2FkJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdub3Rlcyc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnbm90ZXMnLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0FjdGlvbkVSUCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnQWN0aW9uRVJQJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EaXNwbGF5TW9kZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnZpZXdUeXBlQ2hhbmdlLmVtaXQoZXZlbnQudmFsdWUpO1xyXG4gICAgY29uc3QgY2FsZW5kYXJBcGkgPSB0aGlzLmNhbGVuZGFyPy5nZXRBcGkoKTtcclxuICAgIGNhbGVuZGFyQXBpPy5jaGFuZ2VWaWV3KGV2ZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlcygpIHtcclxuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7XHJcbiAgICAgIGNvbnN0IGNhbGVuZGFyQXBpOiBDYWxlbmRhckFwaSA9IHRoaXMuY2FsZW5kYXIuZ2V0QXBpKCk7XHJcbiAgICAgIHRoaXMuZGF0ZVJhbmdlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIHN0YXJ0OiBjYWxlbmRhckFwaS52aWV3LmN1cnJlbnRTdGFydCxcclxuICAgICAgICBlbmQ6IGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudEVuZCxcclxuICAgICAgICB2aWV3VHlwZTogY2FsZW5kYXJBcGkudmlldy50eXBlXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICBjb25zdCBuZXdWaWV3VHlwZSA9IGNhbGVuZGFyQXBpLnZpZXcudHlwZTtcclxuICAgICAgaWYgKG5ld1ZpZXdUeXBlICE9PSB0aGlzLmN1cnJlbnRWaWV3VHlwZSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdUeXBlID0gbmV3Vmlld1R5cGU7XHJcbiAgICAgICAgdGhpcy5tYXBEYXRhVG9FdmVudHModGhpcy5sYXN0RXZlbnRzRGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxwLWNhbGVuZGFyICNkYXRlUGlja2VyIGNsYXNzPVwiaGlkZGVuLWNhbGVuZGFyXCIgKG9uU2VsZWN0KT1cIm5hdmlnYXRlVG9EYXRlKCRldmVudClcIi8+XHJcbjxmdWxsLWNhbGVuZGFyICNjYWxlbmRhciBbb3B0aW9uc109J2NhbGVuZGFyT3B0aW9ucygpJz5cclxuICAgIDxuZy10ZW1wbGF0ZSAgbGV0LWFyZz5cclxuXHJcbiAgICA8aSBbbmdTdHlsZV09XCJhcmcuZXZlbnQuY29sb3IgJiYgYXJnLmV2ZW50LmNvbG9yICE9PSAnJyA/IHsnYmFja2dyb3VuZC1jb2xvcic6IGFyZy5ldmVudC5jb2xvcn0gOiB7fVwiID5cclxuICAgICAgICBcclxuICAgICAgICB7eyBhcmcuZXZlbnQudGl0bGUgfX08L2k+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Z1bGwtY2FsZW5kYXI+XHJcbjxhcHAtY29udGV4dC1tZW51IFxyXG4gIFtzaG93SW5mb0J1dHRvbl09XCJzaG93SW5mb0J1dHRvblwiXHJcbiAgW3Nob3dVcGxvYWRCdXR0b25dPVwic2hvd1VwbG9hZEJ1dHRvblwiXHJcbiAgW3Nob3dOb3RlQnV0dG9uXT1cInNob3dOb3RlQnV0dG9uXCJcclxuICBbc2hvd0FjdGlvbkJ1dHRvbl09XCJzaG93QWN0aW9uQnV0dG9uXCJcclxuICAoYWN0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0ZWRBY3Rpb24oJGV2ZW50KVwiPlxyXG48L2FwcC1jb250ZXh0LW1lbnU+XHJcbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25UZW1wbGF0ZT5cclxuICAgIDxwLWRyb3Bkb3duIFtzdHlsZV09XCJ7J3dpZHRoJyA6ICcyMDBweCcsJ2JvcmRlci1yYWRpdXMnOiAnNXB4J31cIiBbb3B0aW9uc109XCJkaXNwbGF5TW9kZU9wdGlvbnNcIiAob25DaGFuZ2UpPVwib25EaXNwbGF5TW9kZUNoYW5nZSgkZXZlbnQpXCI+PC9wLWRyb3Bkb3duPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -189,12 +189,12 @@ export class TsiUploadFicheComponent extends TsiFormComponentBaseComponent {
189
189
  reader.readAsArrayBuffer(file);
190
190
  }
191
191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiUploadFicheComponent, deps: [{ token: i1.FichierService }, { token: i2.ErrorResponseManagerService }, { token: i3.DynamicDialogRef }, { token: i3.DynamicDialogConfig }, { token: i2.TsiNotificationService }, { token: i2.TsiConfirmationService }, { token: i2.DialogDataService }], target: i0.ɵɵFactoryTarget.Component }); }
192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiUploadFicheComponent, selector: "app-tsi-upload-fiche", outputs: { onSave: "onSave" }, providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'upload_fichier' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TypeFichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [listSourceUrl]=\"typeFichierListUrl\" [(bind)]=\"fichier.typeFichier\"\r\n id-field=\"uid\" [isFiltered]=\"true\" label-field=\"libelle\" \r\n [elementSourceUrl]=\"administrationEndpoints.getTypeFichierMinimal\"\r\n [businessClass]=\"businessClassNames.TypeFichier\"\r\n >\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TableLiee'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'tableLiee'\" [(inputField)]=\"fichier.tableLiee\"\r\n [disabled]=\"isDisable\"></Tsi-Text-Box>\r\n <!-- <Tsi-Search-Combo\r\n class=\"col-6\"\r\n [(bind)]=\"fichier.tableLiee\"\r\n id-field=\"id\"\r\n label-field=\"value\"\r\n (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Nom'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'nom'\" [(inputField)]=\"fichier.nom\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_DateFichier'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-8\" [inputName]=\"'dateFichier'\"\r\n [(inputField)]=\"fichier.dateFichier\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Version'\"></Tsi-Label>\r\n <Tsi-Integer class=\"col-8\" [inputName]=\"'version'\" [(inputField)]=\"fichier.version\"\r\n [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Objet'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-10\" [inputName]=\"'Objet'\" [(inputField)]=\"fichier.objet\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Description'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'description'\" [(inputField)]=\"fichier.description\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n\r\n <Tsi-Label for=\"isFileStorage\" class=\"col-1\" [labelValue]=\"'parambase_param_fichier_isFileStorage'\"></Tsi-Label>\r\n <Tsi-CheckBox id=\"isFileStorage\" class=\"col-5\" [isBinary]=\"true\"\r\n [inputName]=\"'isFileStorage'\" [disabled]=\"true\" [inputField]=\"fichier.isFileStorage\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <div class=\"col-11\">\r\n <Tsi-File-Manager \r\n [showFileUpload]=\"true\" \r\n [(inputField)]=\"fichier.contenu\"\r\n [(fileName)]=\"fichier.nomFichierComplet\" \r\n name=\"fileFichier\" \r\n id=\"fileUploading\" \r\n inputName=\"contenu\" \r\n accept=\"\"\r\n [maxFileSize]=\"10485760\" \r\n [multiple]=\"false\" \r\n [disabled]=\"isEditMode()\"\r\n [showDownloadButton]=\"true\"\r\n [showCancelButton]=\"false\"\r\n [showUploadButton]=\"false\" \r\n [exploreOnDownload]=\"true\"\r\n (onSelectFileManager)=\"onFileSelected($event)\"\r\n ></Tsi-File-Manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n <!-- <p-fileUpload #fileUploadFichier name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\" [showUploadButton]=\"false\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload> -->\r\n\r\n\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "component", type: i4.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i5.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i6.TsiDatePickerComponent, selector: "Tsi-Date-Picker", inputs: ["required", "showTime", "showButtonBar"], outputs: ["inputFieldChange"] }, { kind: "component", type: i7.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i9.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i10.TsiFileManagerComponent, selector: "Tsi-File-Manager", inputs: ["fileName", "name", "id", "accept", "maxFileSize", "multiple", "exploreOnDownload", "showUploadButton", "showCancelButton", "showDownloadButton", "chooseIcon", "chooseLabel", "showSelectButton", "showFileUpload", "showPreviewButton", "contentHeight"], outputs: ["onSelectFileManager", "onClear", "onRemove", "inputFieldChange", "fileNameChange"] }, { kind: "component", type: i11.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i12.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i13.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i14.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "showManageWorkflowButton", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "openWorkflow", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i15.LocalizePipe, name: "localize" }] }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiUploadFicheComponent, selector: "app-tsi-upload-fiche", outputs: { onSave: "onSave" }, providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'upload_fichier' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TypeFichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [listSourceUrl]=\"typeFichierListUrl\" [(bind)]=\"fichier.typeFichier\"\r\n id-field=\"uid\" [isFiltered]=\"true\" label-field=\"libelle\" \r\n [elementSourceUrl]=\"administrationEndpoints.getTypeFichierMinimal\"\r\n [businessClass]=\"businessClassNames.TypeFichier\"\r\n >\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TableLiee'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'tableLiee'\" [(inputField)]=\"fichier.tableLiee\"\r\n [disabled]=\"isDisable\"></Tsi-Text-Box>\r\n <!-- <Tsi-Search-Combo\r\n class=\"col-6\"\r\n [(bind)]=\"fichier.tableLiee\"\r\n id-field=\"id\"\r\n label-field=\"value\"\r\n (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Nom'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'nom'\" [(inputField)]=\"fichier.nom\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_DateFichier'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-8\" [inputName]=\"'dateFichier'\"\r\n [(inputField)]=\"fichier.dateFichier\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Version'\"></Tsi-Label>\r\n <Tsi-Integer class=\"col-8\" [inputName]=\"'version'\" [(inputField)]=\"fichier.version\"\r\n [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Objet'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-10\" [inputName]=\"'Objet'\" [(inputField)]=\"fichier.objet\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Description'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'description'\" [(inputField)]=\"fichier.description\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n\r\n <Tsi-Label for=\"isFileStorage\" class=\"col-1\" [labelValue]=\"'parambase_param_fichier_isFileStorage'\"></Tsi-Label>\r\n <Tsi-CheckBox id=\"isFileStorage\" class=\"col-5\" [isBinary]=\"true\"\r\n [inputName]=\"'isFileStorage'\" [disabled]=\"true\" [inputField]=\"fichier.isFileStorage\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <div class=\"col-11\">\r\n <Tsi-File-Manager \r\n [showFileUpload]=\"true\" \r\n [(inputField)]=\"fichier.contenu\"\r\n [(fileName)]=\"fichier.nomFichierComplet\" \r\n name=\"fileFichier\" \r\n id=\"fileUploading\" \r\n inputName=\"contenu\" \r\n accept=\"\"\r\n [maxFileSize]=\"10485760\" \r\n [multiple]=\"false\" \r\n [disabled]=\"isDeleteMode() || isConsultMode()\"\r\n [showDownloadButton]=\"true\"\r\n [showCancelButton]=\"true\"\r\n [showUploadButton]=\"false\" \r\n [exploreOnDownload]=\"true\"\r\n [showRemoveButton]=\"isEditMode()\"\r\n (onSelectFileManager)=\"onFileSelected($event)\"\r\n ></Tsi-File-Manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n <!-- <p-fileUpload #fileUploadFichier name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\" [showUploadButton]=\"false\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload> -->\r\n\r\n\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "component", type: i4.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i5.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i6.TsiDatePickerComponent, selector: "Tsi-Date-Picker", inputs: ["required", "showTime", "showButtonBar"], outputs: ["inputFieldChange"] }, { kind: "component", type: i7.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i9.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i10.TsiFileManagerComponent, selector: "Tsi-File-Manager", inputs: ["fileName", "name", "id", "accept", "maxFileSize", "multiple", "exploreOnDownload", "showUploadButton", "showCancelButton", "showDownloadButton", "chooseIcon", "chooseLabel", "showSelectButton", "showFileUpload", "showPreviewButton", "contentHeight", "showRemoveButton"], outputs: ["onSelectFileManager", "onClear", "onRemove", "inputFieldChange", "fileNameChange", "onDeleteFile"] }, { kind: "component", type: i11.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i12.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i13.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i14.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "showManageWorkflowButton", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "openWorkflow", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i15.LocalizePipe, name: "localize" }] }); }
193
193
  }
194
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiUploadFicheComponent, decorators: [{
195
195
  type: Component,
196
- args: [{ selector: 'app-tsi-upload-fiche', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'upload_fichier' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TypeFichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [listSourceUrl]=\"typeFichierListUrl\" [(bind)]=\"fichier.typeFichier\"\r\n id-field=\"uid\" [isFiltered]=\"true\" label-field=\"libelle\" \r\n [elementSourceUrl]=\"administrationEndpoints.getTypeFichierMinimal\"\r\n [businessClass]=\"businessClassNames.TypeFichier\"\r\n >\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TableLiee'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'tableLiee'\" [(inputField)]=\"fichier.tableLiee\"\r\n [disabled]=\"isDisable\"></Tsi-Text-Box>\r\n <!-- <Tsi-Search-Combo\r\n class=\"col-6\"\r\n [(bind)]=\"fichier.tableLiee\"\r\n id-field=\"id\"\r\n label-field=\"value\"\r\n (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Nom'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'nom'\" [(inputField)]=\"fichier.nom\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_DateFichier'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-8\" [inputName]=\"'dateFichier'\"\r\n [(inputField)]=\"fichier.dateFichier\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Version'\"></Tsi-Label>\r\n <Tsi-Integer class=\"col-8\" [inputName]=\"'version'\" [(inputField)]=\"fichier.version\"\r\n [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Objet'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-10\" [inputName]=\"'Objet'\" [(inputField)]=\"fichier.objet\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Description'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'description'\" [(inputField)]=\"fichier.description\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n\r\n <Tsi-Label for=\"isFileStorage\" class=\"col-1\" [labelValue]=\"'parambase_param_fichier_isFileStorage'\"></Tsi-Label>\r\n <Tsi-CheckBox id=\"isFileStorage\" class=\"col-5\" [isBinary]=\"true\"\r\n [inputName]=\"'isFileStorage'\" [disabled]=\"true\" [inputField]=\"fichier.isFileStorage\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <div class=\"col-11\">\r\n <Tsi-File-Manager \r\n [showFileUpload]=\"true\" \r\n [(inputField)]=\"fichier.contenu\"\r\n [(fileName)]=\"fichier.nomFichierComplet\" \r\n name=\"fileFichier\" \r\n id=\"fileUploading\" \r\n inputName=\"contenu\" \r\n accept=\"\"\r\n [maxFileSize]=\"10485760\" \r\n [multiple]=\"false\" \r\n [disabled]=\"isEditMode()\"\r\n [showDownloadButton]=\"true\"\r\n [showCancelButton]=\"false\"\r\n [showUploadButton]=\"false\" \r\n [exploreOnDownload]=\"true\"\r\n (onSelectFileManager)=\"onFileSelected($event)\"\r\n ></Tsi-File-Manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n <!-- <p-fileUpload #fileUploadFichier name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\" [showUploadButton]=\"false\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload> -->\r\n\r\n\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>" }]
196
+ args: [{ selector: 'app-tsi-upload-fiche', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'upload_fichier' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TypeFichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [listSourceUrl]=\"typeFichierListUrl\" [(bind)]=\"fichier.typeFichier\"\r\n id-field=\"uid\" [isFiltered]=\"true\" label-field=\"libelle\" \r\n [elementSourceUrl]=\"administrationEndpoints.getTypeFichierMinimal\"\r\n [businessClass]=\"businessClassNames.TypeFichier\"\r\n >\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TableLiee'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'tableLiee'\" [(inputField)]=\"fichier.tableLiee\"\r\n [disabled]=\"isDisable\"></Tsi-Text-Box>\r\n <!-- <Tsi-Search-Combo\r\n class=\"col-6\"\r\n [(bind)]=\"fichier.tableLiee\"\r\n id-field=\"id\"\r\n label-field=\"value\"\r\n (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Nom'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'nom'\" [(inputField)]=\"fichier.nom\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_DateFichier'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-8\" [inputName]=\"'dateFichier'\"\r\n [(inputField)]=\"fichier.dateFichier\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Version'\"></Tsi-Label>\r\n <Tsi-Integer class=\"col-8\" [inputName]=\"'version'\" [(inputField)]=\"fichier.version\"\r\n [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Objet'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-10\" [inputName]=\"'Objet'\" [(inputField)]=\"fichier.objet\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Description'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'description'\" [(inputField)]=\"fichier.description\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n\r\n <Tsi-Label for=\"isFileStorage\" class=\"col-1\" [labelValue]=\"'parambase_param_fichier_isFileStorage'\"></Tsi-Label>\r\n <Tsi-CheckBox id=\"isFileStorage\" class=\"col-5\" [isBinary]=\"true\"\r\n [inputName]=\"'isFileStorage'\" [disabled]=\"true\" [inputField]=\"fichier.isFileStorage\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <div class=\"col-11\">\r\n <Tsi-File-Manager \r\n [showFileUpload]=\"true\" \r\n [(inputField)]=\"fichier.contenu\"\r\n [(fileName)]=\"fichier.nomFichierComplet\" \r\n name=\"fileFichier\" \r\n id=\"fileUploading\" \r\n inputName=\"contenu\" \r\n accept=\"\"\r\n [maxFileSize]=\"10485760\" \r\n [multiple]=\"false\" \r\n [disabled]=\"isDeleteMode() || isConsultMode()\"\r\n [showDownloadButton]=\"true\"\r\n [showCancelButton]=\"true\"\r\n [showUploadButton]=\"false\" \r\n [exploreOnDownload]=\"true\"\r\n [showRemoveButton]=\"isEditMode()\"\r\n (onSelectFileManager)=\"onFileSelected($event)\"\r\n ></Tsi-File-Manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n <!-- <p-fileUpload #fileUploadFichier name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\" [showUploadButton]=\"false\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload> -->\r\n\r\n\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>" }]
197
197
  }], ctorParameters: () => [{ type: i1.FichierService }, { type: i2.ErrorResponseManagerService }, { type: i3.DynamicDialogRef }, { type: i3.DynamicDialogConfig }, { type: i2.TsiNotificationService }, { type: i2.TsiConfirmationService }, { type: i2.DialogDataService }], propDecorators: { onSave: [{
198
198
  type: Output
199
199
  }] } });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXVwbG9hZC1maWNoZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvdHNpLXVwbG9hZC1maWNoZS90c2ktdXBsb2FkLWZpY2hlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktdXBsb2FkLWZpY2hlL3RzaS11cGxvYWQtZmljaGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUVoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXZFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw2QkFBNkI7SUFrQnhFLFlBQ1MsZUFBK0IsRUFDOUIsNEJBQXlELEVBQ2pELEdBQXFCLEVBQ3JCLE1BQTJCLEVBQ25DLG9CQUE0QyxFQUM1QyxvQkFBNEMsRUFDNUMsaUJBQW9DO1FBRTVDLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFSWixvQkFBZSxHQUFmLGVB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QyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFVO1FBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDbkIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQXFCLENBQUM7WUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFOUMsMEJBQTBCO1lBQzFCLE1BQU0sU0FBUyxHQUFlLFNBQVMsQ0FBQztZQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZCLGtDQUFrQztRQUNwQyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0FyTVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsOEVBRnZCLENBQUMsR0FBRyxZQUFZLENBQUMsaURDakI5QixzMU5BeUlXOzs0RkR0SEUsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQixDQUFDLEdBQUcsWUFBWSxDQUFDO3dTQWtCVCxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uS2V5cyB9IGZyb20gJy4uLy4uL2NvbnN0cy9sb2NhbGl6YXRpb24ta2V5JztcclxuaW1wb3J0IHsgTW9kZXMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IEZpY2hpZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlTWFuYWdlclNlcnZpY2UsIFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsIFRzaUNvbmZpcm1hdGlvblNlcnZpY2UsIERpYWxvZ0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWZvcm0tYmFzZS90c2ktZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpY2hpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmljaGllci9maWNoaWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcHBQcm92aWRlcnMgfSBmcm9tICcuLi8uLi9jb25zdHMvYXBwLXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzIH0gZnJvbSAnLi4vLi4vZW5kLXBvaW50cy9lbmRwb2ludHMnO1xyXG5pbXBvcnQgeyBCdXNpbmVzc0NsYXNzTmFtZXMgfSBmcm9tICcuLi8uLi9jb25zdHMvYnVzaW5lc3MtY2xhc3MtbmFtZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdHNpLXVwbG9hZC1maWNoZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS11cGxvYWQtZmljaGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS11cGxvYWQtZmljaGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFsuLi5hcHBQcm92aWRlcnNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lVcGxvYWRGaWNoZUNvbXBvbmVudCBleHRlbmRzIFRzaUZvcm1Db21wb25lbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgZmljaGllciA9IG5ldyBGaWNoaWVyKCk7XHJcbiAgLy8gcGFyYW1CYXNlRW5kcG9pbnRzID0gUGFyYW1CYXNlRW5kcG9pbnRzO1xyXG5cclxuICBvdmVycmlkZSBzYXZpbmcgPSBmYWxzZTtcclxuICB0b1VwbG9hZEZpbGVEYXRhOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgYmFzZTY0U3RyaW5nOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBpc0Rpc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIG1vZGVSZWYgPSBNb2RlcztcclxuXHJcbiAgdHlwZUZpY2hpZXJMaXN0VXJsOiBzdHJpbmcgPSAnJztcclxuICBhZG1pbmlzdHJhdGlvbkVuZHBvaW50cyA9IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzXHJcbiAgYnVzaW5lc3NDbGFzc05hbWVzID0gQnVzaW5lc3NDbGFzc05hbWVzXHJcblxyXG4gIEBPdXRwdXQoKSBvdmVycmlkZSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgX2ZpY2hpZXJTZXJ2aWNlOiBGaWNoaWVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZTogRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlZjogRHluYW1pY0RpYWxvZ1JlZixcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25TZXJ2aWNlOiBUc2lOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uU2VydmljZTogVHNpQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nRGF0YVNlcnZpY2U6IERpYWxvZ0RhdGFTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmljaGllci5ub21GaWNoaWVyQ29tcGxldCA9IFwiXCI7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5idXNpbmVzc0NsYXNzID0gQnVzaW5lc3NDbGFzc05hbWVzLkZpY2hpZXI7XHJcblxyXG4gICAgY29uc3QgY3R4ID0gdGhpcy5kaWFsb2dEYXRhU2VydmljZS5nZXREYXRhKCk7XHJcbiAgICBjb25zdCBjdXJyZW50Q2xhc3NlID0gY3R4Py5jbGFzcztcclxuICAgIGlmIChjdHg/LmlkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5maWNoaWVyLnRhYmxlTGllZSA9IGN0eC5jbGFzcztcclxuICAgICAgdGhpcy5maWNoaWVyLnBrZXkgPSBjdHguaWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoY3VycmVudENsYXNzZSkge1xyXG4gICAgICB0aGlzLnR5cGVGaWNoaWVyTGlzdFVybCA9IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbFR5cGVGaWNoaWVyTWluaW1hbEJ5Q2xhc3NlKGN1cnJlbnRDbGFzc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgKHRoaXMubW9kZSA9PSBNb2Rlcy5lZGl0IHx8IHRoaXMubW9kZSA9PSBNb2Rlcy5kZWxldGUgfHwgdGhpcy5tb2RlID09IE1vZGVzLmNvbnN1bHQpICYmXHJcbiAgICAgIHRoaXMuaWQgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMuaWQgIT0gbnVsbFxyXG4gICAgKSB7XHJcblxyXG4gICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2ZpY2hpZXJTZXJ2aWNlLmdldEJ5SWQodGhpcy5pZCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWNoaWVyID0gZGF0YTtcclxuICAgICAgICBpZiAodGhpcy5maWNoaWVyLnRhYmxlTGllZSkge1xyXG4gICAgICAgICAgdGhpcy50eXBlRmljaGllckxpc3RVcmwgPSBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxUeXBlRmljaGllck1pbmltYWxCeUNsYXNzZSh0aGlzLmZpY2hpZXIudGFibGVMaWVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBzYXZlKCk6IHZvaWQge1xyXG4gICAgc3VwZXIuc2F2ZSgpXHJcbiAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09IE1vZGVzLmNyZWF0ZSkge1xyXG4gICAgICB0aGlzLl9maWNoaWVyU2VydmljZS5jcmVhdGUodGhpcy5maWNoaWVyKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChhcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5pbmZvKHRoaXMubChMb2NhbGl6YXRpb25LZXlzLnNhdmVkU3VjY2Vzc2Z1bGx5KSk7XHJcbiAgICAgICAgICB0aGlzLnJlc29sdmVGaWNoZSh0cnVlLCBhcGlSZXNwb25zZSk7XHJcbiAgICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5tb2RlID09IE1vZGVzLmVkaXQgJiZcclxuICAgICAgdGhpcy5pZCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuaWQgIT0gdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9maWNoaWVyU2VydmljZS51cGRhdGUodGhpcy5maWNoaWVyLCB0aGlzLmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuaW5mbyh0aGlzLmwoTG9jYWxpemF0aW9uS2V5cy51cGRhdGVkU3VjY2Vzc2Z1bGx5KSk7XHJcbiAgICAgICAgICB0aGlzLnJlc29sdmVGaWNoZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09IE1vZGVzLmRlbGV0ZSkge1xyXG4gICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2NvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybShcclxuICAgICAgICBMb2NhbGl6YXRpb25LZXlzLmNvbmZpcm1EZWxldGUsXHJcbiAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgIChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgcmVzdWx0ICYmXHJcbiAgICAgICAgICAgIHRoaXMuaWQgIT0gbnVsbCAmJlxyXG4gICAgICAgICAgICB0aGlzLmlkICE9IHVuZGVmaW5lZFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZpY2hpZXJTZXJ2aWNlLmRlbGV0ZSh0aGlzLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2Vzcyh0aGlzLmwoTG9jYWxpemF0aW9uS2V5cy5kZWxldGVkU3VjY2Vzc2Z1bGx5KSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlRmljaGUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5vblNhdmUuZW1pdCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC5jdXJyZW50RmlsZXNbMF07XHJcbiAgICAvL3RoaXMudG9VcGxvYWRGaWxlRGF0YSA9IGZpbGU7XHJcbiAgICAvL3RoaXMucmVhZEZpbGUoZmlsZSk7XHJcbiAgICAvL3RoaXMucmVhZEZpbGVBc0J5dGVBcnJheShmaWxlKTtcclxuICAgIC8vY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtmaWxlXSwgeyB0eXBlOiBmaWxlLnR5cGUgfSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgLy90aGlzLmZpY2hpZXIuY29udGVudSA9IHRoaXMuYmFzZTY0U3RyaW5nO1xyXG4gICAgICAvL3RoaXMuZmljaGllci5ub21GaWNoaWVyQ29tcGxldCA9IGV2ZW50LmN1cnJlbnRGaWxlc1swXS5uYW1lO1xyXG4gICAgICB0aGlzLmZpY2hpZXIucGtleSA9IHRoaXMuZGlhbG9nRGF0YVNlcnZpY2UuZ2V0RGF0YSgpLmlkO1xyXG4gICAgICB0aGlzLmZpY2hpZXIudGFibGVMaWVlID0gdGhpcy5kaWFsb2dEYXRhU2VydmljZS5nZXREYXRhKCkuY2xhc3M7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIC8qICB0aGlzLnJlcG9ydGluZ1NlcnZpY2UudXBsb2FkUmVwb3J0RmlsZSh0aGlzLnRvVXBsb2FkRmlsZURhdGEpXHJcbiAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICB7XHJcbiAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNoUmVwb3J0cygpO1xyXG4gICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoJ3NoYXJlZF9yZXBvcnRpbmdfcmVwb3J0X3VwbG9hZGVkX3N1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkPy5jbGVhcigpO1xyXG4gICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcih0aGlzLmVycm9yTWVzc2FnZUtleSk7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9KTsgKi9cclxuICB9XHJcblxyXG4gIC8vY2FuY2VsIGJ1dHRvbiBjbGlja1xyXG4gIG9uQ2xlYXIoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50b1VwbG9hZEZpbGVEYXRhID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLy9jYW5jZWwgYnV0dG9uIGNsaWNrXHJcbiAgb25SZW1vdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50b1VwbG9hZEZpbGVEYXRhID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcmVhZEZpbGUoZmlsZTogRmlsZSkge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuYmFzZTY0U3RyaW5nID0gKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzFdO1xyXG4gICAgICAvLyBVc2UgdGhpcy5iYXNlNjRTdHJpbmcgYXMgbmVlZGVkXHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRmlsZSByZWFkaW5nIGVycm9yOicsIGVycm9yKTtcclxuICAgIH07XHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICB9XHJcblxyXG4gIHJlYWRGaWxlQXNCeXRlQXJyYXkoZmlsZTogRmlsZSkge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gcmVhZGVyLnJlc3VsdCBhcyBBcnJheUJ1ZmZlcjtcclxuICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xyXG5cclxuICAgICAgLy8gVXNlIGJ5dGVBcnJheSBhcyBuZWVkZWRcclxuICAgICAgY29uc3QgYnl0ZUNvbnN0OiBVaW50OEFycmF5ID0gYnl0ZUFycmF5O1xyXG4gICAgICBjb25zb2xlLmxvZyhieXRlQ29uc3QpO1xyXG4gICAgICAvL3RoaXMuZmljaGllci5jb250ZW51ID0gYnl0ZUNvbnN0XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRmlsZSByZWFkaW5nIGVycm9yOicsIGVycm9yKTtcclxuICAgIH07XHJcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbiAgfVxyXG59XHJcbiIsIjx0c2ktZm9ybSBjbGFzcz1cImZvcm0taG9yaXpvbnRhbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChvblN1Ym1pdCk9XCJzYXZlKClcIiBbaXNMb2FkaW5nXT1cImlzbG9hZGluZ1wiPlxyXG4gIDxUc2ktTW9kYWwtSGVhZGVyIFtpbnB1dFRpdGxlXT1cIid1cGxvYWRfZmljaGllcicgfCBsb2NhbGl6ZSBcIiAob25DbG9zZUNsaWNrKT1cImhpZGUoKVwiPlxyXG4gIDwvVHNpLU1vZGFsLUhlYWRlcj5cclxuICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cImlzRGVsZXRlTW9kZSgpIHx8IGlzQ29uc3VsdE1vZGUoKSBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4XCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidwYXJhbWJhc2VfcGFyYW1fZmljaGllcl9UeXBlRmljaGllcidcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gY2xhc3M9XCJjb2wtOFwiIFtsaXN0U291cmNlVXJsXT1cInR5cGVGaWNoaWVyTGlzdFVybFwiIFsoYmluZCldPVwiZmljaGllci50eXBlRmljaGllclwiXHJcbiAgICAgICAgICAgICAgaWQtZmllbGQ9XCJ1aWRcIiBbaXNGaWx0ZXJlZF09XCJ0cnVlXCIgbGFiZWwtZmllbGQ9XCJsaWJlbGxlXCIgXHJcbiAgICAgICAgICAgICAgW2VsZW1lbnRTb3VyY2VVcmxdPVwiYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0VHlwZUZpY2hpZXJNaW5pbWFsXCJcclxuICAgICAgICAgICAgICBbYnVzaW5lc3NDbGFzc109XCJidXNpbmVzc0NsYXNzTmFtZXMuVHlwZUZpY2hpZXJcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4XCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidwYXJhbWJhc2VfcGFyYW1fZmljaGllcl9UYWJsZUxpZWUnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggY2xhc3M9XCJjb2wtOFwiIFtpbnB1dE5hbWVdPVwiJ3RhYmxlTGllZSdcIiBbKGlucHV0RmllbGQpXT1cImZpY2hpZXIudGFibGVMaWVlXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwhLS0gPFRzaS1TZWFyY2gtQ29tYm9cclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC02XCJcclxuICAgICAgICAgICAgICBbKGJpbmQpXT1cImZpY2hpZXIudGFibGVMaWVlXCJcclxuICAgICAgICAgICAgICBpZC1maWVsZD1cImlkXCJcclxuICAgICAgICAgICAgICBsYWJlbC1maWVsZD1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAoZGF0YXNvdXJjZS1sb2FkZWQpPVwib25EYXRhTG9hZGVkKClcIj5cclxuICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0yXCIgW2xhYmVsVmFsdWVdPVwiJ3BhcmFtYmFzZV9wYXJhbV9maWNoaWVyX05vbSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBjbGFzcz1cImNvbC04XCIgW2lucHV0TmFtZV09XCInbm9tJ1wiIFsoaW5wdXRGaWVsZCldPVwiZmljaGllci5ub21cIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleFwiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTJcIiBbbGFiZWxWYWx1ZV09XCIncGFyYW1iYXNlX3BhcmFtX2ZpY2hpZXJfRGF0ZUZpY2hpZXInXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktRGF0ZS1QaWNrZXIgY2xhc3M9XCJjb2wtOFwiIFtpbnB1dE5hbWVdPVwiJ2RhdGVGaWNoaWVyJ1wiXHJcbiAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJmaWNoaWVyLmRhdGVGaWNoaWVyXCI+PC9Uc2ktRGF0ZS1QaWNrZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleFwiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTJcIiBbbGFiZWxWYWx1ZV09XCIncGFyYW1iYXNlX3BhcmFtX2ZpY2hpZXJfVmVyc2lvbidcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1JbnRlZ2VyIGNsYXNzPVwiY29sLThcIiBbaW5wdXROYW1lXT1cIid2ZXJzaW9uJ1wiIFsoaW5wdXRGaWVsZCldPVwiZmljaGllci52ZXJzaW9uXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvVHNpLUludGVnZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0xXCIgW2xhYmVsVmFsdWVdPVwiJ3BhcmFtYmFzZV9wYXJhbV9maWNoaWVyX09iamV0J1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVRleHQtQm94IGNsYXNzPVwiY29sLTEwXCIgW2lucHV0TmFtZV09XCInT2JqZXQnXCIgWyhpbnB1dEZpZWxkKV09XCJmaWNoaWVyLm9iamV0XCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0xXCIgW2xhYmVsVmFsdWVdPVwiJ3BhcmFtYmFzZV9wYXJhbV9maWNoaWVyX0Rlc2NyaXB0aW9uJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVRleHQtQXJlYSBjbGFzcz1cImNvbC0xMFwiIFtpbnB1dE5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiIFsoaW5wdXRGaWVsZCldPVwiZmljaGllci5kZXNjcmlwdGlvblwiIFtyb3dzXT1cIjVcIlxyXG4gICAgICAgICAgICAgIFtjb2xzXT1cIjVcIj48L1RzaS1UZXh0LUFyZWE+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuXHJcbiAgICAgICAgPFRzaS1MYWJlbCBmb3I9XCJpc0ZpbGVTdG9yYWdlXCIgY2xhc3M9XCJjb2wtMVwiIFtsYWJlbFZhbHVlXT1cIidwYXJhbWJhc2VfcGFyYW1fZmljaGllcl9pc0ZpbGVTdG9yYWdlJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgPFRzaS1DaGVja0JveCBpZD1cImlzRmlsZVN0b3JhZ2VcIiBjbGFzcz1cImNvbC01XCIgW2lzQmluYXJ5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ2lzRmlsZVN0b3JhZ2UnXCIgW2Rpc2FibGVkXT1cInRydWVcIiBbaW5wdXRGaWVsZF09XCJmaWNoaWVyLmlzRmlsZVN0b3JhZ2VcIj5cclxuICAgICAgICAgIDwvVHNpLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTExXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUZpbGUtTWFuYWdlciBcclxuICAgICAgICAgICAgICAgICAgW3Nob3dGaWxlVXBsb2FkXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJmaWNoaWVyLmNvbnRlbnVcIlxyXG4gICAgICAgICAgICAgICAgICBbKGZpbGVOYW1lKV09XCJmaWNoaWVyLm5vbUZpY2hpZXJDb21wbGV0XCIgXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlRmljaGllclwiIFxyXG4gICAgICAgICAgICAgICAgICBpZD1cImZpbGVVcGxvYWRpbmdcIiBcclxuICAgICAgICAgICAgICAgICAgaW5wdXROYW1lPVwiY29udGVudVwiIFxyXG4gICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF4RmlsZVNpemVdPVwiMTA0ODU3NjBcIiBcclxuICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0VkaXRNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0Rvd25sb2FkQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93VXBsb2FkQnV0dG9uXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtleHBsb3JlT25Eb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0RmlsZU1hbmFnZXIpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgID48L1RzaS1GaWxlLU1hbmFnZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBcclxuICAgICAgPCEtLSAgPHAtZmlsZVVwbG9hZCAjZmlsZVVwbG9hZEZpY2hpZXIgbmFtZT1cImRlbW9bXVwiIChvbkJlZm9yZVVwbG9hZCk9XCJvbkltcG9ydEZpbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAob25TZWxlY3QpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIChvbkNsZWFyKT1cIm9uQ2xlYXIoJGV2ZW50KVwiIChvblJlbW92ZSk9XCJvblJlbW92ZSgkZXZlbnQpXCIgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICBbbWF4RmlsZVNpemVdPVwiMTAwMDAwMFwiXHJcbiAgICAgICAgICBbaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfc2l6ZV9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2ludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfc2l6ZV9tZXNzYWdlX2RldGFpbCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfdHlwZV9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2ludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX2xpbWl0X21lc3NhZ2VfZGV0YWlsJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFtpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnldPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfbGltaXRfbWVzc2FnZV9zdW1tYXJ5JyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFtpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsXT1cIidzaGFyZWRfZmlsZV91cGxvYWRfaW52YWxpZF9maWxlX3R5cGVfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2Nob29zZUljb25dPVwiJ3BpIHBpLXBhcGVyY2xpcCdcIiBjYW5jZWxTdHlsZUNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5XCIgdXBsb2FkU3R5bGVDbGFzcz1cInAtYnV0dG9uLWhlbHBcIlxyXG4gICAgICAgICAgcmVtb3ZlU3R5bGVDbGFzcz1cInAtYnV0dG9uLWRhbmdlclwiIFtjaG9vc2VMYWJlbF09XCInc2hhcmVkX3JlcG9ydGluZ19jaG9vc2VfcmVwb3J0X2ZpbGUnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW3VwbG9hZExhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2ltcG9ydF9yZXBvcnQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2NhbmNlbExhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2NhbmNlbF9jaG9vc2VfcmVwb3J0X2ZpbGUnIHwgbG9jYWxpemVcIiBbc2hvd1VwbG9hZEJ1dHRvbl09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidG9VcGxvYWRGaWxlRGF0YVwiIHBUZW1wbGF0ZT1cImZpbGV1cGxvYWQtY29udGVudFwiPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3AtZmlsZVVwbG9hZD4gICAtLT5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9maWVsZHNldD5cclxuICA8VHNpLU1vZGFsLUZvb3RlciBbY2FuY2VsRGlzYWJsZWRdPVwic2F2aW5nXCIgW3NhdmVEaXNhYmxlZF09XCJpc1N1Ym1pdERpc2FibGVkKClcIlxyXG4gICAgKG9uQ2FuY2VsQ2xpY2spPVwiaGlkZSgpXCI+PC9Uc2ktTW9kYWwtRm9vdGVyPlxyXG48L3RzaS1mb3JtPiJdfQ==
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXVwbG9hZC1maWNoZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvdHNpLXVwbG9hZC1maWNoZS90c2ktdXBsb2FkLWZpY2hlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktdXBsb2FkLWZpY2hlL3RzaS11cGxvYWQtZmljaGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUVoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXZFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw2QkFBNkI7SUFrQnhFLFlBQ1MsZUFBK0IsRUFDOUIsNEJBQXlELEVBQ2pELEdBQXFCLEVBQ3JCLE1BQTJCLEVBQ25DLG9CQUE0QyxFQUM1QyxvQkFBNEMsRUFDNUMsaUJBQW9DO1FBRTVDLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFSWixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDOUIsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE2QjtRQUNqRCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUNuQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXdCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFDNUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXZCOUMsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEIsMkNBQTJDO1FBRWxDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDeEIscUJBQWdCLEdBQVEsU0FBUyxDQUFDO1FBQ2xDLGlCQUFZLEdBQWdDLElBQUksQ0FBQztRQUVqRCxjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLDRCQUF1QixHQUFHLHVCQUF1QixDQUFBO1FBQ2pELHVCQUFrQixHQUFHLGtCQUFrQixDQUFBO1FBRXBCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBWXBELENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDcEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1FBRWhELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ2pDLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHVCQUF1QixDQUFDLGdDQUFnQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFFRCxJQUNFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDcEYsSUFBSSxDQUFDLEVBQUUsSUFBSSxTQUFTO1lBQ3BCLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxFQUNmLENBQUM7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3RyxDQUFDO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFUSxJQUFJO1FBQ1gsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNsRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztvQkFDM0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsUUFBMkIsRUFBRSxFQUFFO29CQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMvRCxDQUFDO2dCQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFDRSxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJO1lBQ3ZCLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSTtZQUNmLElBQUksQ0FBQyxFQUFFLElBQUksU0FBUyxFQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUMzRCxJQUFJLEVBQUUsR0FBRyxFQUFFO29CQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7b0JBQzdFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLFFBQTJCLEVBQUUsRUFBRTtvQkFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7Z0JBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDYixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQy9CLGdCQUFnQixDQUFDLGFBQWEsRUFDOUIsU0FBUyxFQUNULENBQUMsTUFBZSxFQUFFLEVBQUU7Z0JBQ2xCLElBQ0UsTUFBTTtvQkFDTixJQUFJLENBQUMsRUFBRSxJQUFJLElBQUk7b0JBQ2YsSUFBSSxDQUFDLEVBQUUsSUFBSSxTQUFTLEVBQ3BCLENBQUM7b0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7d0JBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7d0JBQ2hGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN6QixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLDRDQUE0QztRQUM1QywrQkFBK0I7UUFDL0Isc0JBQXNCO1FBQ3RCLGlDQUFpQztRQUNqQyxxREFBcUQ7UUFDckQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLDJDQUEyQztZQUMzQyw4REFBOEQ7WUFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2xFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQjs7Ozs7Ozs7Ozs7bUJBV1c7SUFDYixDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVTtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUksTUFBTSxDQUFDLE1BQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELGtDQUFrQztRQUNwQyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFVO1FBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDbkIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQXFCLENBQUM7WUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFOUMsMEJBQTBCO1lBQzFCLE1BQU0sU0FBUyxHQUFlLFNBQVMsQ0FBQztZQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZCLGtDQUFrQztRQUNwQyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0FyTVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsOEVBRnZCLENBQUMsR0FBRyxZQUFZLENBQUMsaURDakI5QixtNk5BMElXOzs0RkR2SEUsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQixDQUFDLEdBQUcsWUFBWSxDQUFDO3dTQWtCVCxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uS2V5cyB9IGZyb20gJy4uLy4uL2NvbnN0cy9sb2NhbGl6YXRpb24ta2V5JztcclxuaW1wb3J0IHsgTW9kZXMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IEZpY2hpZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlTWFuYWdlclNlcnZpY2UsIFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsIFRzaUNvbmZpcm1hdGlvblNlcnZpY2UsIERpYWxvZ0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWZvcm0tYmFzZS90c2ktZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpY2hpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmljaGllci9maWNoaWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcHBQcm92aWRlcnMgfSBmcm9tICcuLi8uLi9jb25zdHMvYXBwLXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzIH0gZnJvbSAnLi4vLi4vZW5kLXBvaW50cy9lbmRwb2ludHMnO1xyXG5pbXBvcnQgeyBCdXNpbmVzc0NsYXNzTmFtZXMgfSBmcm9tICcuLi8uLi9jb25zdHMvYnVzaW5lc3MtY2xhc3MtbmFtZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdHNpLXVwbG9hZC1maWNoZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS11cGxvYWQtZmljaGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS11cGxvYWQtZmljaGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFsuLi5hcHBQcm92aWRlcnNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lVcGxvYWRGaWNoZUNvbXBvbmVudCBleHRlbmRzIFRzaUZvcm1Db21wb25lbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgZmljaGllciA9IG5ldyBGaWNoaWVyKCk7XHJcbiAgLy8gcGFyYW1CYXNlRW5kcG9pbnRzID0gUGFyYW1CYXNlRW5kcG9pbnRzO1xyXG5cclxuICBvdmVycmlkZSBzYXZpbmcgPSBmYWxzZTtcclxuICB0b1VwbG9hZEZpbGVEYXRhOiBhbnkgPSB1bmRlZmluZWQ7XHJcbiAgYmFzZTY0U3RyaW5nOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBpc0Rpc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIG1vZGVSZWYgPSBNb2RlcztcclxuXHJcbiAgdHlwZUZpY2hpZXJMaXN0VXJsOiBzdHJpbmcgPSAnJztcclxuICBhZG1pbmlzdHJhdGlvbkVuZHBvaW50cyA9IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzXHJcbiAgYnVzaW5lc3NDbGFzc05hbWVzID0gQnVzaW5lc3NDbGFzc05hbWVzXHJcblxyXG4gIEBPdXRwdXQoKSBvdmVycmlkZSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgX2ZpY2hpZXJTZXJ2aWNlOiBGaWNoaWVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZTogRXJyb3JSZXNwb25zZU1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlZjogRHluYW1pY0RpYWxvZ1JlZixcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25TZXJ2aWNlOiBUc2lOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uU2VydmljZTogVHNpQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nRGF0YVNlcnZpY2U6IERpYWxvZ0RhdGFTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmljaGllci5ub21GaWNoaWVyQ29tcGxldCA9IFwiXCI7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5idXNpbmVzc0NsYXNzID0gQnVzaW5lc3NDbGFzc05hbWVzLkZpY2hpZXI7XHJcblxyXG4gICAgY29uc3QgY3R4ID0gdGhpcy5kaWFsb2dEYXRhU2VydmljZS5nZXREYXRhKCk7XHJcbiAgICBjb25zdCBjdXJyZW50Q2xhc3NlID0gY3R4Py5jbGFzcztcclxuICAgIGlmIChjdHg/LmlkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5maWNoaWVyLnRhYmxlTGllZSA9IGN0eC5jbGFzcztcclxuICAgICAgdGhpcy5maWNoaWVyLnBrZXkgPSBjdHguaWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoY3VycmVudENsYXNzZSkge1xyXG4gICAgICB0aGlzLnR5cGVGaWNoaWVyTGlzdFVybCA9IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbFR5cGVGaWNoaWVyTWluaW1hbEJ5Q2xhc3NlKGN1cnJlbnRDbGFzc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgKHRoaXMubW9kZSA9PSBNb2Rlcy5lZGl0IHx8IHRoaXMubW9kZSA9PSBNb2Rlcy5kZWxldGUgfHwgdGhpcy5tb2RlID09IE1vZGVzLmNvbnN1bHQpICYmXHJcbiAgICAgIHRoaXMuaWQgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMuaWQgIT0gbnVsbFxyXG4gICAgKSB7XHJcblxyXG4gICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2ZpY2hpZXJTZXJ2aWNlLmdldEJ5SWQodGhpcy5pZCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWNoaWVyID0gZGF0YTtcclxuICAgICAgICBpZiAodGhpcy5maWNoaWVyLnRhYmxlTGllZSkge1xyXG4gICAgICAgICAgdGhpcy50eXBlRmljaGllckxpc3RVcmwgPSBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxUeXBlRmljaGllck1pbmltYWxCeUNsYXNzZSh0aGlzLmZpY2hpZXIudGFibGVMaWVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBzYXZlKCk6IHZvaWQge1xyXG4gICAgc3VwZXIuc2F2ZSgpXHJcbiAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09IE1vZGVzLmNyZWF0ZSkge1xyXG4gICAgICB0aGlzLl9maWNoaWVyU2VydmljZS5jcmVhdGUodGhpcy5maWNoaWVyKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChhcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5pbmZvKHRoaXMubChMb2NhbGl6YXRpb25LZXlzLnNhdmVkU3VjY2Vzc2Z1bGx5KSk7XHJcbiAgICAgICAgICB0aGlzLnJlc29sdmVGaWNoZSh0cnVlLCBhcGlSZXNwb25zZSk7XHJcbiAgICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5tb2RlID09IE1vZGVzLmVkaXQgJiZcclxuICAgICAgdGhpcy5pZCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuaWQgIT0gdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9maWNoaWVyU2VydmljZS51cGRhdGUodGhpcy5maWNoaWVyLCB0aGlzLmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuaW5mbyh0aGlzLmwoTG9jYWxpemF0aW9uS2V5cy51cGRhdGVkU3VjY2Vzc2Z1bGx5KSk7XHJcbiAgICAgICAgICB0aGlzLnJlc29sdmVGaWNoZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcclxuICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2Vycm9yUmVzcG9uc2VNYW5hZ2VyU2VydmljZS5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09IE1vZGVzLmRlbGV0ZSkge1xyXG4gICAgICB0aGlzLmlzbG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2NvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybShcclxuICAgICAgICBMb2NhbGl6YXRpb25LZXlzLmNvbmZpcm1EZWxldGUsXHJcbiAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgIChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgcmVzdWx0ICYmXHJcbiAgICAgICAgICAgIHRoaXMuaWQgIT0gbnVsbCAmJlxyXG4gICAgICAgICAgICB0aGlzLmlkICE9IHVuZGVmaW5lZFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZpY2hpZXJTZXJ2aWNlLmRlbGV0ZSh0aGlzLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2Vzcyh0aGlzLmwoTG9jYWxpemF0aW9uS2V5cy5kZWxldGVkU3VjY2Vzc2Z1bGx5KSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlRmljaGUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5vblNhdmUuZW1pdCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC5jdXJyZW50RmlsZXNbMF07XHJcbiAgICAvL3RoaXMudG9VcGxvYWRGaWxlRGF0YSA9IGZpbGU7XHJcbiAgICAvL3RoaXMucmVhZEZpbGUoZmlsZSk7XHJcbiAgICAvL3RoaXMucmVhZEZpbGVBc0J5dGVBcnJheShmaWxlKTtcclxuICAgIC8vY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtmaWxlXSwgeyB0eXBlOiBmaWxlLnR5cGUgfSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgLy90aGlzLmZpY2hpZXIuY29udGVudSA9IHRoaXMuYmFzZTY0U3RyaW5nO1xyXG4gICAgICAvL3RoaXMuZmljaGllci5ub21GaWNoaWVyQ29tcGxldCA9IGV2ZW50LmN1cnJlbnRGaWxlc1swXS5uYW1lO1xyXG4gICAgICB0aGlzLmZpY2hpZXIucGtleSA9IHRoaXMuZGlhbG9nRGF0YVNlcnZpY2UuZ2V0RGF0YSgpLmlkO1xyXG4gICAgICB0aGlzLmZpY2hpZXIudGFibGVMaWVlID0gdGhpcy5kaWFsb2dEYXRhU2VydmljZS5nZXREYXRhKCkuY2xhc3M7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgb25JbXBvcnRGaWxlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIC8qICB0aGlzLnJlcG9ydGluZ1NlcnZpY2UudXBsb2FkUmVwb3J0RmlsZSh0aGlzLnRvVXBsb2FkRmlsZURhdGEpXHJcbiAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICB7XHJcbiAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICB0aGlzLl9yZWZyZXNoUmVwb3J0cygpO1xyXG4gICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoJ3NoYXJlZF9yZXBvcnRpbmdfcmVwb3J0X3VwbG9hZGVkX3N1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkPy5jbGVhcigpO1xyXG4gICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcih0aGlzLmVycm9yTWVzc2FnZUtleSk7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9KTsgKi9cclxuICB9XHJcblxyXG4gIC8vY2FuY2VsIGJ1dHRvbiBjbGlja1xyXG4gIG9uQ2xlYXIoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50b1VwbG9hZEZpbGVEYXRhID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLy9jYW5jZWwgYnV0dG9uIGNsaWNrXHJcbiAgb25SZW1vdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50b1VwbG9hZEZpbGVEYXRhID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcmVhZEZpbGUoZmlsZTogRmlsZSkge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuYmFzZTY0U3RyaW5nID0gKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzFdO1xyXG4gICAgICAvLyBVc2UgdGhpcy5iYXNlNjRTdHJpbmcgYXMgbmVlZGVkXHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRmlsZSByZWFkaW5nIGVycm9yOicsIGVycm9yKTtcclxuICAgIH07XHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICB9XHJcblxyXG4gIHJlYWRGaWxlQXNCeXRlQXJyYXkoZmlsZTogRmlsZSkge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gcmVhZGVyLnJlc3VsdCBhcyBBcnJheUJ1ZmZlcjtcclxuICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xyXG5cclxuICAgICAgLy8gVXNlIGJ5dGVBcnJheSBhcyBuZWVkZWRcclxuICAgICAgY29uc3QgYnl0ZUNvbnN0OiBVaW50OEFycmF5ID0gYnl0ZUFycmF5O1xyXG4gICAgICBjb25zb2xlLmxvZyhieXRlQ29uc3QpO1xyXG4gICAgICAvL3RoaXMuZmljaGllci5jb250ZW51ID0gYnl0ZUNvbnN0XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRmlsZSByZWFkaW5nIGVycm9yOicsIGVycm9yKTtcclxuICAgIH07XHJcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbiAgfVxyXG59XHJcbiIsIjx0c2ktZm9ybSBjbGFzcz1cImZvcm0taG9yaXpvbnRhbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChvblN1Ym1pdCk9XCJzYXZlKClcIiBbaXNMb2FkaW5nXT1cImlzbG9hZGluZ1wiPlxyXG4gIDxUc2ktTW9kYWwtSGVhZGVyIFtpbnB1dFRpdGxlXT1cIid1cGxvYWRfZmljaGllcicgfCBsb2NhbGl6ZSBcIiAob25DbG9zZUNsaWNrKT1cImhpZGUoKVwiPlxyXG4gIDwvVHNpLU1vZGFsLUhlYWRlcj5cclxuICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cImlzRGVsZXRlTW9kZSgpIHx8IGlzQ29uc3VsdE1vZGUoKSBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4XCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidwYXJhbWJhc2VfcGFyYW1fZmljaGllcl9UeXBlRmljaGllcidcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gY2xhc3M9XCJjb2wtOFwiIFtsaXN0U291cmNlVXJsXT1cInR5cGVGaWNoaWVyTGlzdFVybFwiIFsoYmluZCldPVwiZmljaGllci50eXBlRmljaGllclwiXHJcbiAgICAgICAgICAgICAgaWQtZmllbGQ9XCJ1aWRcIiBbaXNGaWx0ZXJlZF09XCJ0cnVlXCIgbGFiZWwtZmllbGQ9XCJsaWJlbGxlXCIgXHJcbiAgICAgICAgICAgICAgW2VsZW1lbnRTb3VyY2VVcmxdPVwiYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0VHlwZUZpY2hpZXJNaW5pbWFsXCJcclxuICAgICAgICAgICAgICBbYnVzaW5lc3NDbGFzc109XCJidXNpbmVzc0NsYXNzTmFtZXMuVHlwZUZpY2hpZXJcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBmbGV4XCI+XHJcbiAgICAgICAgICAgIDxUc2ktTGFiZWwgY2xhc3M9XCJjb2wtMlwiIFtsYWJlbFZhbHVlXT1cIidwYXJhbWJhc2VfcGFyYW1fZmljaGllcl9UYWJsZUxpZWUnXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggY2xhc3M9XCJjb2wtOFwiIFtpbnB1dE5hbWVdPVwiJ3RhYmxlTGllZSdcIiBbKGlucHV0RmllbGQpXT1cImZpY2hpZXIudGFibGVMaWVlXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwhLS0gPFRzaS1TZWFyY2gtQ29tYm9cclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC02XCJcclxuICAgICAgICAgICAgICBbKGJpbmQpXT1cImZpY2hpZXIudGFibGVMaWVlXCJcclxuICAgICAgICAgICAgICBpZC1maWVsZD1cImlkXCJcclxuICAgICAgICAgICAgICBsYWJlbC1maWVsZD1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAoZGF0YXNvdXJjZS1sb2FkZWQpPVwib25EYXRhTG9hZGVkKClcIj5cclxuICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0yXCIgW2xhYmVsVmFsdWVdPVwiJ3BhcmFtYmFzZV9wYXJhbV9maWNoaWVyX05vbSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBjbGFzcz1cImNvbC04XCIgW2lucHV0TmFtZV09XCInbm9tJ1wiIFsoaW5wdXRGaWVsZCldPVwiZmljaGllci5ub21cIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleFwiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTJcIiBbbGFiZWxWYWx1ZV09XCIncGFyYW1iYXNlX3BhcmFtX2ZpY2hpZXJfRGF0ZUZpY2hpZXInXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDxUc2ktRGF0ZS1QaWNrZXIgY2xhc3M9XCJjb2wtOFwiIFtpbnB1dE5hbWVdPVwiJ2RhdGVGaWNoaWVyJ1wiXHJcbiAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJmaWNoaWVyLmRhdGVGaWNoaWVyXCI+PC9Uc2ktRGF0ZS1QaWNrZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZmxleFwiPlxyXG4gICAgICAgICAgICA8VHNpLUxhYmVsIGNsYXNzPVwiY29sLTJcIiBbbGFiZWxWYWx1ZV09XCIncGFyYW1iYXNlX3BhcmFtX2ZpY2hpZXJfVmVyc2lvbidcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPFRzaS1JbnRlZ2VyIGNsYXNzPVwiY29sLThcIiBbaW5wdXROYW1lXT1cIid2ZXJzaW9uJ1wiIFsoaW5wdXRGaWVsZCldPVwiZmljaGllci52ZXJzaW9uXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvVHNpLUludGVnZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0xXCIgW2xhYmVsVmFsdWVdPVwiJ3BhcmFtYmFzZV9wYXJhbV9maWNoaWVyX09iamV0J1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVRleHQtQm94IGNsYXNzPVwiY29sLTEwXCIgW2lucHV0TmFtZV09XCInT2JqZXQnXCIgWyhpbnB1dEZpZWxkKV09XCJmaWNoaWVyLm9iamV0XCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgPFRzaS1MYWJlbCBjbGFzcz1cImNvbC0xXCIgW2xhYmVsVmFsdWVdPVwiJ3BhcmFtYmFzZV9wYXJhbV9maWNoaWVyX0Rlc2NyaXB0aW9uJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8VHNpLVRleHQtQXJlYSBjbGFzcz1cImNvbC0xMFwiIFtpbnB1dE5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiIFsoaW5wdXRGaWVsZCldPVwiZmljaGllci5kZXNjcmlwdGlvblwiIFtyb3dzXT1cIjVcIlxyXG4gICAgICAgICAgICAgIFtjb2xzXT1cIjVcIj48L1RzaS1UZXh0LUFyZWE+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuXHJcbiAgICAgICAgPFRzaS1MYWJlbCBmb3I9XCJpc0ZpbGVTdG9yYWdlXCIgY2xhc3M9XCJjb2wtMVwiIFtsYWJlbFZhbHVlXT1cIidwYXJhbWJhc2VfcGFyYW1fZmljaGllcl9pc0ZpbGVTdG9yYWdlJ1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgPFRzaS1DaGVja0JveCBpZD1cImlzRmlsZVN0b3JhZ2VcIiBjbGFzcz1cImNvbC01XCIgW2lzQmluYXJ5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtpbnB1dE5hbWVdPVwiJ2lzRmlsZVN0b3JhZ2UnXCIgW2Rpc2FibGVkXT1cInRydWVcIiBbaW5wdXRGaWVsZF09XCJmaWNoaWVyLmlzRmlsZVN0b3JhZ2VcIj5cclxuICAgICAgICAgIDwvVHNpLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZsZXhcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTExXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUZpbGUtTWFuYWdlciBcclxuICAgICAgICAgICAgICAgICAgW3Nob3dGaWxlVXBsb2FkXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJmaWNoaWVyLmNvbnRlbnVcIlxyXG4gICAgICAgICAgICAgICAgICBbKGZpbGVOYW1lKV09XCJmaWNoaWVyLm5vbUZpY2hpZXJDb21wbGV0XCIgXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWxlRmljaGllclwiIFxyXG4gICAgICAgICAgICAgICAgICBpZD1cImZpbGVVcGxvYWRpbmdcIiBcclxuICAgICAgICAgICAgICAgICAgaW5wdXROYW1lPVwiY29udGVudVwiIFxyXG4gICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF4RmlsZVNpemVdPVwiMTA0ODU3NjBcIiBcclxuICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0RlbGV0ZU1vZGUoKSB8fCBpc0NvbnN1bHRNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0Rvd25sb2FkQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dVcGxvYWRCdXR0b25dPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgICAgW2V4cGxvcmVPbkRvd25sb2FkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd1JlbW92ZUJ1dHRvbl09XCJpc0VkaXRNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICAob25TZWxlY3RGaWxlTWFuYWdlcik9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgPjwvVHNpLUZpbGUtTWFuYWdlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIFxyXG4gICAgICA8IS0tICA8cC1maWxlVXBsb2FkICNmaWxlVXBsb2FkRmljaGllciBuYW1lPVwiZGVtb1tdXCIgKG9uQmVmb3JlVXBsb2FkKT1cIm9uSW1wb3J0RmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChvblNlbGVjdCk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgKG9uQ2xlYXIpPVwib25DbGVhcigkZXZlbnQpXCIgKG9uUmVtb3ZlKT1cIm9uUmVtb3ZlKCRldmVudClcIiBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgIFttYXhGaWxlU2l6ZV09XCIxMDAwMDAwXCJcclxuICAgICAgICAgIFtpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9zaXplX21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbF09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9zaXplX21lc3NhZ2VfZGV0YWlsJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFtpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV90eXBlX21lc3NhZ2Vfc3VtbWFyeScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfbGltaXRfbWVzc2FnZV9kZXRhaWwnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2ludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeV09XCInc2hhcmVkX2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZV9saW1pdF9tZXNzYWdlX3N1bW1hcnknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW2ludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWxdPVwiJ3NoYXJlZF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGVfdHlwZV9tZXNzYWdlX2RldGFpbCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbY2hvb3NlSWNvbl09XCIncGkgcGktcGFwZXJjbGlwJ1wiIGNhbmNlbFN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIiB1cGxvYWRTdHlsZUNsYXNzPVwicC1idXR0b24taGVscFwiXHJcbiAgICAgICAgICByZW1vdmVTdHlsZUNsYXNzPVwicC1idXR0b24tZGFuZ2VyXCIgW2Nob29zZUxhYmVsXT1cIidzaGFyZWRfcmVwb3J0aW5nX2Nob29zZV9yZXBvcnRfZmlsZScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbdXBsb2FkTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfaW1wb3J0X3JlcG9ydCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbY2FuY2VsTGFiZWxdPVwiJ3NoYXJlZF9yZXBvcnRpbmdfY2FuY2VsX2Nob29zZV9yZXBvcnRfZmlsZScgfCBsb2NhbGl6ZVwiIFtzaG93VXBsb2FkQnV0dG9uXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0b1VwbG9hZEZpbGVEYXRhXCIgcFRlbXBsYXRlPVwiZmlsZXVwbG9hZC1jb250ZW50XCI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvcC1maWxlVXBsb2FkPiAgIC0tPlxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2ZpZWxkc2V0PlxyXG4gIDxUc2ktTW9kYWwtRm9vdGVyIFtjYW5jZWxEaXNhYmxlZF09XCJzYXZpbmdcIiBbc2F2ZURpc2FibGVkXT1cImlzU3VibWl0RGlzYWJsZWQoKVwiXHJcbiAgICAob25DYW5jZWxDbGljayk9XCJoaWRlKClcIj48L1RzaS1Nb2RhbC1Gb290ZXI+XHJcbjwvdHNpLWZvcm0+Il19