ngx-histaff-alpha 3.6.0 → 3.6.2

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.
@@ -61,6 +61,7 @@ export class CoreCommonParamKitComponent extends BaseComponent {
61
61
  {
62
62
  flexSize: !this.hideGeneralSearch ? 3 : 10,
63
63
  name: 'statusIds',
64
+ width: 250,
64
65
  ngModel: statusIdsInitialValue,
65
66
  ngModelChange: this.onNgModelChange,
66
67
  value: null,
@@ -240,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
240
241
  }], onChange: [{
241
242
  type: Output
242
243
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbW1vbi1wYXJhbS1raXQvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7OztBQW1CekgsTUFBTSxPQUFPLDJCQUNYLFNBQVEsYUFBYTtJQTJCckIsWUFDa0IsR0FBeUIsRUFDakMs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LElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gseUJBQXlCO3FCQUMxQjtrSEFPUSxrREFBa0Q7c0JBQTFELEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUNoZWNrbGlzdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS1oZWFkZXItcGFyYW1zL2VudW0tYW5kLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZUNvbW1vblBhcmFtS2l0RXZlbnRFbWl0dGVyRGF0YSB7XHJcbiAgZmllbGQ6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtY29tbW9uLXBhcmFtLWtpdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDb21tb25QYXJhbUtpdENvbXBvbmVudFxyXG4gIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVycyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgc3RhdHVzSW5jbHVzaW9uRm9yITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5ITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzdGF0dXNPcHRpb25zQXBpITogYXBpO1xyXG4gIEBJbnB1dCgpIHNob3dPcmdQYXJhbSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZURhdGVQZXJpb2RDb21wYXJpc29uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlU3RhdHVzSW5jbHVzaW9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlR2VuZXJhbFNlYXJjaCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3RhdHVzT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+KFtdKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQ29tbW9uUGFyYW1LaXRFdmVudEVtaXR0ZXJEYXRhPigpO1xyXG5cclxuXHJcbiAgaXNFbXBsb3llZVN0YXR1c0Nhc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgb25OZ01vZGVsQ2hhbmdlID0gKG5nTW9kZWw6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcclxuICAgICAgZmllbGQ6IG5nTW9kZWwsXHJcbiAgICAgIHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcGFyYW1Sb3dzITogSUNvcmVQYXJhbUNvbnRyb2xbXVtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgY29uc3Qgc3RhdHVzSWRzSW5pdGlhbFZhbHVlOiBhbnlbXSA9IFtdO1xyXG4gICAgLy8gcHJlcGFyZSBzdGF0dXNJZHMgaW5pdGlhbCB2YWx1ZVxyXG4gICAgaWYgKHRoaXMuc3RhdHVzT3B0aW9ucyQudmFsdWUpIHtcclxuICAgICAgdGhpcy5zdGF0dXNPcHRpb25zJC52YWx1ZS5maWx0ZXIoeCA9PiB4LmNoZWNrZWQpLm1hcCh4ID0+IHtcclxuICAgICAgICBzdGF0dXNJZHNJbml0aWFsVmFsdWUucHVzaCh4LnZhbHVlKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoKHgpID0+ICh0aGlzLmxhbmcgPSB4KSkpO1xyXG5cclxuICAgIGlmICghIXRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uKSB7XHJcbiAgICAgIHRoaXMucGFyYW1Sb3dzID0gW1xyXG4gICAgICAgIFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdvcmdJZHMnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBbXSxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgbGFiZWw6IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fSFVfT1JHQU5JWkFUSU9OX0lEUyxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuU0VFS0VSLFxyXG4gICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLLFxyXG4gICAgICAgICAgICBoaWRkZW46ICF0aGlzLnNob3dPcmdQYXJhbSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAvLyAgIG5hbWU6ICdnZW5lcmFsU2VhcmNoJyxcclxuICAgICAgICAgIC8vICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAvLyAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgLy8gICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAvLyAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgLy8gICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgICAgLy8gICBoaWRkZW46IHRoaXMuaGlkZUdlbmVyYWxTZWFyY2hcclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAhdGhpcy5oaWRlR2VuZXJhbFNlYXJjaCA/IDMgOiAxMCxcclxuICAgICAgICAgICAgbmFtZTogJ3N0YXR1c0lkcycsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6IHN0YXR1c0lkc0luaXRpYWxWYWx1ZSxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZVN0YXR1c0luY2x1c2lvbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkNIRUNLTElTVCxcclxuICAgICAgICAgICAgY2hlY2tsaXN0T3B0aW9ucyQ6IHRoaXMuc3RhdHVzT3B0aW9ucyQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF1cclxuICAgICAgXVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYXJhbVJvd3MgPSBbXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmbGV4U2l6ZTogMCxcclxuICAgICAgICAgICAgd2lkdGg6IDMwMCxcclxuICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6ICcnLFxyXG4gICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9IVV9PUkdBTklaQVRJT05fSURTLFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5TRUVLRVIsXHJcbiAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUssXHJcbiAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuc2hvd09yZ1BhcmFtLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdnZW5lcmFsU2VhcmNoJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZUdlbmVyYWxTZWFyY2hcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAqL1xyXG5cclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgICAgICAgIG5hbWU6ICdkYXRlRnJvbScsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuREFURVBJQ0tFUixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgICAgICBuYW1lOiAnZGF0ZVRvJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5EQVRFUElDS0VSLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICAgICAgICAgIG5hbWU6ICdzdGF0dXNJZHMnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBzdGF0dXNJZHNJbml0aWFsVmFsdWUsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVTdGF0dXNJbmNsdXNpb24sXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5DSEVDS0xJU1QsXHJcbiAgICAgICAgICAgIGNoZWNrbGlzdE9wdGlvbnMkOiB0aGlzLnN0YXR1c09wdGlvbnMkLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICBdO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL2FsZXJ0KEpTT04uc3RyaW5naWZ5KHRoaXMucGFyYW1Sb3dzWzBdLmZpbHRlcih4ID0+IHgubmFtZSA9PT0gJ3N0YXR1c0lkcycpWzBdLm5nTW9kZWwsIG51bGwsIDIpKVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnN0YXR1c09wdGlvbnMkLnN1YnNjcmliZSh4cyA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuZXdTdGF0dXNWYWx1ZTogYW55W10gPSBbXTtcclxuICAgICAgICAgIHhzLmZpbHRlcih4ID0+ICEheC5jaGVja2VkKS5tYXAoeSA9PiB7XHJcbiAgICAgICAgICAgIG5ld1N0YXR1c1ZhbHVlLnB1c2goeS52YWx1ZSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5wYXJhbVJvd3NbMF0uZmlsdGVyKG0gPT4gbS5uYW1lID09PSAnc3RhdHVzSWRzJyk7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJbMF0ubmdNb2RlbCA9IG5ld1N0YXR1c1ZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgaWYgKCEhdGhpcy5zdGF0dXNPcHRpb25zQXBpKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLmFwcFNlcnZpY2UuZ2V0KHRoaXMuc3RhdHVzT3B0aW9uc0FwaSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keTtcclxuICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICBcclxuICAgICAgICAgICAgICAgIC8vIE7hur91IGzDoCB0cuG6oW5nIHRow6FpIG5ow6JuIHZpw6puLCBjaOG7iSBjaGVjayBt4bq3YyDEkeG7i25oIFwixJBhbmcgbMOgbSB2aeG7h2NcIlxyXG4gICAgICAgICAgICAgICAgLy8gVHLDoWkgbOG6oWkgdGjDrCBjaGVjayB04bqldFxyXG4gIFxyXG4gICAgICAgICAgICAgICAgXHJcbiAgXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYm9keS5pbm5lckJvZHkubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGkgPSBib2R5LmlubmVyQm9keVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAgIGlmIChpLnR5cGVDb2RlID09PSBcIkVNUF9TVEFUVVNcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdPcHRpb25zOiBJQ29yZUNoZWNrbGlzdE9wdGlvbltdID0gW1xyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy5tbHMudHJhbnMoRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX1BBUkFNU19DT01NT05fTlVMTF9TVEFUVVMsIHRoaXMubGFuZyksXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IGZhbHNlIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICB9XTtcclxuICBcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXR1c0lkczogKG51bWJlciB8IG51bGwpW10gPSAhIXRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPyBbXSA6IFtudWxsXTtcclxuICBcclxuICAgICAgICAgICAgICAgIGJvZHkuaW5uZXJCb2R5Lm1hcCgobTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIG5ld09wdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogbS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6ICEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IChtLmNvZGUgPT09IFwiRVNXXCIpIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgaWYgKCEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtLmNvZGUgPT09IFwiRVNXXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXR1c0lkcy5wdXNoKG0uaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBuZXdTdGF0dXNJZHMucHVzaChtLmlkKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1c09wdGlvbnMkLm5leHQobmV3T3B0aW9ucyk7XHJcbiAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmFtUm93cy5tYXAocm93ID0+IHtcclxuICAgICAgICAgICAgICAgICAgcm93Lm1hcChjb2x1bW4gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4ubmFtZSA9PT0gJ3N0YXR1c0lkcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5uZ01vZGVsID0gbmV3U3RhdHVzSWRzO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICBmaWVsZDogXCJzdGF0dXNJZHNcIixcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IG5ld1N0YXR1c0lkc1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtbDVcIj5cclxuICAgIDxjb3JlLWhlYWRlci1wYXJhbXMgW3Jvd3NdPVwicGFyYW1Sb3dzXCI+PC9jb3JlLWhlYWRlci1wYXJhbXM+XHJcbjwvZGl2PiJdfQ==
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbW1vbi1wYXJhbS1raXQvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7OztBQW1CekgsTUFBTSxPQUFPLDJCQUNYLFNBQVEsYUFBYTtJQTJCckIsWUFDa0IsR0FBeUIsRUFDakMs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QVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gseUJBQXlCO3FCQUMxQjtrSEFPUSxrREFBa0Q7c0JBQTFELEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUNoZWNrbGlzdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS1oZWFkZXItcGFyYW1zL2VudW0tYW5kLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZUNvbW1vblBhcmFtS2l0RXZlbnRFbWl0dGVyRGF0YSB7XHJcbiAgZmllbGQ6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtY29tbW9uLXBhcmFtLWtpdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDb21tb25QYXJhbUtpdENvbXBvbmVudFxyXG4gIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVycyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgc3RhdHVzSW5jbHVzaW9uRm9yITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5ITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzdGF0dXNPcHRpb25zQXBpITogYXBpO1xyXG4gIEBJbnB1dCgpIHNob3dPcmdQYXJhbSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZURhdGVQZXJpb2RDb21wYXJpc29uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlU3RhdHVzSW5jbHVzaW9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlR2VuZXJhbFNlYXJjaCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3RhdHVzT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+KFtdKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQ29tbW9uUGFyYW1LaXRFdmVudEVtaXR0ZXJEYXRhPigpO1xyXG5cclxuXHJcbiAgaXNFbXBsb3llZVN0YXR1c0Nhc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgb25OZ01vZGVsQ2hhbmdlID0gKG5nTW9kZWw6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcclxuICAgICAgZmllbGQ6IG5nTW9kZWwsXHJcbiAgICAgIHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcGFyYW1Sb3dzITogSUNvcmVQYXJhbUNvbnRyb2xbXVtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgY29uc3Qgc3RhdHVzSWRzSW5pdGlhbFZhbHVlOiBhbnlbXSA9IFtdO1xyXG4gICAgLy8gcHJlcGFyZSBzdGF0dXNJZHMgaW5pdGlhbCB2YWx1ZVxyXG4gICAgaWYgKHRoaXMuc3RhdHVzT3B0aW9ucyQudmFsdWUpIHtcclxuICAgICAgdGhpcy5zdGF0dXNPcHRpb25zJC52YWx1ZS5maWx0ZXIoeCA9PiB4LmNoZWNrZWQpLm1hcCh4ID0+IHtcclxuICAgICAgICBzdGF0dXNJZHNJbml0aWFsVmFsdWUucHVzaCh4LnZhbHVlKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoKHgpID0+ICh0aGlzLmxhbmcgPSB4KSkpO1xyXG5cclxuICAgIGlmICghIXRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uKSB7XHJcbiAgICAgIHRoaXMucGFyYW1Sb3dzID0gW1xyXG4gICAgICAgIFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdvcmdJZHMnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBbXSxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgbGFiZWw6IEVudW1UcmFuc2xhdGVLZXkuVUlfRU5USVRZX0ZJRUxEX0NBUFRJT05fSFVfT1JHQU5JWkFUSU9OX0lEUyxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuU0VFS0VSLFxyXG4gICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLLFxyXG4gICAgICAgICAgICBoaWRkZW46ICF0aGlzLnNob3dPcmdQYXJhbSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAvLyAgIG5hbWU6ICdnZW5lcmFsU2VhcmNoJyxcclxuICAgICAgICAgIC8vICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAvLyAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgLy8gICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAvLyAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgLy8gICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgICAgLy8gICBoaWRkZW46IHRoaXMuaGlkZUdlbmVyYWxTZWFyY2hcclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAhdGhpcy5oaWRlR2VuZXJhbFNlYXJjaCA/IDMgOiAxMCxcclxuICAgICAgICAgICAgbmFtZTogJ3N0YXR1c0lkcycsXHJcbiAgICAgICAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6IHN0YXR1c0lkc0luaXRpYWxWYWx1ZSxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZVN0YXR1c0luY2x1c2lvbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkNIRUNLTElTVCxcclxuICAgICAgICAgICAgY2hlY2tsaXN0T3B0aW9ucyQ6IHRoaXMuc3RhdHVzT3B0aW9ucyQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF1cclxuICAgICAgXVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYXJhbVJvd3MgPSBbXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmbGV4U2l6ZTogMCxcclxuICAgICAgICAgICAgd2lkdGg6IDMwMCxcclxuICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6ICcnLFxyXG4gICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9IVV9PUkdBTklaQVRJT05fSURTLFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5TRUVLRVIsXHJcbiAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUssXHJcbiAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuc2hvd09yZ1BhcmFtLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDMsXHJcbiAgICAgICAgICAgIG5hbWU6ICdnZW5lcmFsU2VhcmNoJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogJycsXHJcbiAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZUdlbmVyYWxTZWFyY2hcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAqL1xyXG5cclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgICAgICAgIG5hbWU6ICdkYXRlRnJvbScsXHJcbiAgICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuREFURVBJQ0tFUixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGZsZXhTaXplOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgICAgICBuYW1lOiAnZGF0ZVRvJyxcclxuICAgICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5EQVRFUElDS0VSLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmxleFNpemU6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICAgICAgICAgIG5hbWU6ICdzdGF0dXNJZHMnLFxyXG4gICAgICAgICAgICBuZ01vZGVsOiBzdGF0dXNJZHNJbml0aWFsVmFsdWUsXHJcbiAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVTdGF0dXNJbmNsdXNpb24sXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5DSEVDS0xJU1QsXHJcbiAgICAgICAgICAgIGNoZWNrbGlzdE9wdGlvbnMkOiB0aGlzLnN0YXR1c09wdGlvbnMkLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICBdO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL2FsZXJ0KEpTT04uc3RyaW5naWZ5KHRoaXMucGFyYW1Sb3dzWzBdLmZpbHRlcih4ID0+IHgubmFtZSA9PT0gJ3N0YXR1c0lkcycpWzBdLm5nTW9kZWwsIG51bGwsIDIpKVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnN0YXR1c09wdGlvbnMkLnN1YnNjcmliZSh4cyA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuZXdTdGF0dXNWYWx1ZTogYW55W10gPSBbXTtcclxuICAgICAgICAgIHhzLmZpbHRlcih4ID0+ICEheC5jaGVja2VkKS5tYXAoeSA9PiB7XHJcbiAgICAgICAgICAgIG5ld1N0YXR1c1ZhbHVlLnB1c2goeS52YWx1ZSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5wYXJhbVJvd3NbMF0uZmlsdGVyKG0gPT4gbS5uYW1lID09PSAnc3RhdHVzSWRzJyk7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJbMF0ubmdNb2RlbCA9IG5ld1N0YXR1c1ZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgaWYgKCEhdGhpcy5zdGF0dXNPcHRpb25zQXBpKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLmFwcFNlcnZpY2UuZ2V0KHRoaXMuc3RhdHVzT3B0aW9uc0FwaSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keTtcclxuICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICBcclxuICAgICAgICAgICAgICAgIC8vIE7hur91IGzDoCB0cuG6oW5nIHRow6FpIG5ow6JuIHZpw6puLCBjaOG7iSBjaGVjayBt4bq3YyDEkeG7i25oIFwixJBhbmcgbMOgbSB2aeG7h2NcIlxyXG4gICAgICAgICAgICAgICAgLy8gVHLDoWkgbOG6oWkgdGjDrCBjaGVjayB04bqldFxyXG4gIFxyXG4gICAgICAgICAgICAgICAgXHJcbiAgXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYm9keS5pbm5lckJvZHkubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGkgPSBib2R5LmlubmVyQm9keVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICAgIGlmIChpLnR5cGVDb2RlID09PSBcIkVNUF9TVEFUVVNcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdPcHRpb25zOiBJQ29yZUNoZWNrbGlzdE9wdGlvbltdID0gW1xyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy5tbHMudHJhbnMoRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX1BBUkFNU19DT01NT05fTlVMTF9TVEFUVVMsIHRoaXMubGFuZyksXHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IGZhbHNlIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICB9XTtcclxuICBcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXR1c0lkczogKG51bWJlciB8IG51bGwpW10gPSAhIXRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPyBbXSA6IFtudWxsXTtcclxuICBcclxuICAgICAgICAgICAgICAgIGJvZHkuaW5uZXJCb2R5Lm1hcCgobTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIG5ld09wdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogbS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6ICEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IChtLmNvZGUgPT09IFwiRVNXXCIpIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgaWYgKCEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtLmNvZGUgPT09IFwiRVNXXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXR1c0lkcy5wdXNoKG0uaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBuZXdTdGF0dXNJZHMucHVzaChtLmlkKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1c09wdGlvbnMkLm5leHQobmV3T3B0aW9ucyk7XHJcbiAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmFtUm93cy5tYXAocm93ID0+IHtcclxuICAgICAgICAgICAgICAgICAgcm93Lm1hcChjb2x1bW4gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4ubmFtZSA9PT0gJ3N0YXR1c0lkcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5uZ01vZGVsID0gbmV3U3RhdHVzSWRzO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICBmaWVsZDogXCJzdGF0dXNJZHNcIixcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IG5ld1N0YXR1c0lkc1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtbDVcIj5cclxuICAgIDxjb3JlLWhlYWRlci1wYXJhbXMgW3Jvd3NdPVwicGFyYW1Sb3dzXCI+PC9jb3JlLWhlYWRlci1wYXJhbXM+XHJcbjwvZGl2PiJdfQ==
@@ -22,6 +22,7 @@ export class CoreDropdownComponent extends CoreFormControlBaseComponent {
22
22
  this.injector = injector;
23
23
  this.mls = mls;
24
24
  this.placeholder = 'UI_COMMON_PLACE_HOLDER_SEARCH_HERE';
25
+ this.fitHeightWithItemCount = true;
25
26
  this.searchHeight = 38;
26
27
  this.subscriptions = [];
27
28
  }
@@ -141,7 +142,7 @@ export class CoreDropdownComponent extends CoreFormControlBaseComponent {
141
142
  multi: true,
142
143
  useExisting: CoreDropdownComponent,
143
144
  },
144
- ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-threedots *ngIf=\"loading\"></app-threedots>\r\n<div #container class=\"core-dropdown-container\" *ngIf=\"!loading\">\r\n <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\" />\r\n\r\n <div class=\"input-wrapper\">\r\n <input class=\"value\" [value]=\"value\" />\r\n <label type=\"text\" class=\"text form-control\" [class.form-control-disabled]=\"disabled\" (click)=\"toggleExpanded()\">\r\n <span [appTooltip]=\"text\">{{ !!loading ? \"...\" : (text | translate : lang) }}</span>\r\n <div class=\"icon\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </label>\r\n @if (!clearDisable) {\r\n <div class=\"clear-icon-wrapper\" [class.d-none]=\"!!disabled || !!!value\" (click)=\"onClickClear()\">\r\n <div class=\"flex-wrapper\" [appTooltip]=\"'UI.CORE_CONTOL_COMMON_CLEAR' | translate : lang\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"dropdown\" [class.form-control-disabled]=\"disabled\" *ngIf=\"!!expandState\">\r\n <input class=\"search\" type=\"text\" [placeholder]=\"placeholderText\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" />\r\n <core-scroll [localOptions]=\"localOptions\" [itemTemplate]=\"itemTemplateRef\" [itemCount]=\"localOptions.length\"\r\n [height]=\"fitHeightWithItemCount ? localOptions.length * itemHeight : 400 - searchHeight\" [childHeight]=\"itemHeight\"></core-scroll>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li (click)=\"onListItemClick(context)\" [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <label [ngStyle]=\"{\r\n width: '100%',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap'\r\n }\" [appTooltip]=\"context.text\">{{ context.text | translate : lang }}</label>\r\n </li>\r\n</ng-template>", styles: [".core-dropdown-container{position:relative;display:block;--indicator-height: 0px;--search-bg-color: white;--search-border-color: #D1D1D1;--search-item-hover-bg: #358ccb;--search-item-hover-color: white;--dropdown-bg: lightyellow;--arrow-color: #358ccb;--height: var(--size-form-control-height);--item-height: 50px;--max-z-index: 0;--search-height: 38px}.core-dropdown-container input.expand-state,.core-dropdown-container .value{display:none}.core-dropdown-container label.text{width:100%;height:var(--height);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between}.core-dropdown-container label.text span{width:calc(100% - var(--height));overflow-x:hidden;text-overflow:ellipsis;color:inherit}.core-dropdown-container .input-wrapper .clear-icon-wrapper{display:none;position:absolute;background-color:transparent;right:20px;top:-4px;width:44px;height:44px;border-radius:.375rem;cursor:pointer}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:24px}.core-dropdown-container .input-wrapper:hover>.clear-icon-wrapper{display:block}.core-dropdown-container label.text div.icon{display:flex;align-items:center;justify-content:center;position:absolute;right:3px;top:3px;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);background-color:#e9e9e9;border-radius:3px;cursor:pointer}.core-dropdown-container label.text div.icon i{width:28px;height:28px;font-size:28px;color:#848484}.core-dropdown-container .dropdown{display:block;position:absolute;width:100%;max-height:0px;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:.25s linear;z-index:calc(var(--max-z-index) + 1)}.core-dropdown-container .dropdown ul{padding-left:6px}.core-dropdown-container .dropdown ul>li{display:flex;align-items:center;cursor:pointer;padding:0px var(--size-scrollbar-width);transition:.25s linear}.core-dropdown-container .dropdown ul>li>label{width:100%}.core-dropdown-container .dropdown ul>li:hover{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container input.expand-state:checked~.dropdown{border:1px solid #ced4da;margin-top:2px;max-height:400px;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem;transition:.25s linear}.core-dropdown-container input.search{margin:0;width:100%;border:0;border-bottom:1px solid var(--search-border-color);background-color:var(--search-bg-color);position:sticky;top:0;height:38px;padding:6px 12px;font-size:15px}.core-dropdown-container input.search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CoreScrollComponent, selector: "core-scroll", inputs: ["localOptions", "itemTemplate", "itemCount", "height", "childHeight", "renderAhread"] }, { kind: "component", type: ThreedotsComponent, selector: "app-threedots" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
145
+ ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-threedots *ngIf=\"loading\"></app-threedots>\r\n<div #container class=\"core-dropdown-container\" *ngIf=\"!loading\">\r\n <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\" />\r\n\r\n <div class=\"input-wrapper\">\r\n <input class=\"value\" [value]=\"value\" />\r\n <label type=\"text\" class=\"text form-control\" [class.form-control-disabled]=\"disabled\" (click)=\"toggleExpanded()\">\r\n <span [appTooltip]=\"text\">{{ !!loading ? \"...\" : (text | translate : lang) }}</span>\r\n <div class=\"icon\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </label>\r\n @if (!clearDisable) {\r\n <div class=\"clear-icon-wrapper\" [class.d-none]=\"!!disabled || !!!value\" (click)=\"onClickClear()\">\r\n <div class=\"flex-wrapper\" [appTooltip]=\"'UI.CORE_CONTOL_COMMON_CLEAR' | translate : lang\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"dropdown\" [class.form-control-disabled]=\"disabled\" *ngIf=\"!!expandState\">\r\n <input class=\"search\" type=\"text\" [placeholder]=\"placeholderText\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" />\r\n <core-scroll [localOptions]=\"localOptions\" [itemTemplate]=\"itemTemplateRef\" [itemCount]=\"localOptions.length\"\r\n [height]=\"(fitHeightWithItemCount && localOptions.length * itemHeight < 400) ? localOptions.length * itemHeight : 400 - searchHeight\" [childHeight]=\"itemHeight\"></core-scroll>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li (click)=\"onListItemClick(context)\" [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <label [ngStyle]=\"{\r\n width: '100%',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap'\r\n }\" [appTooltip]=\"context.text\">{{ context.text | translate : lang }}</label>\r\n </li>\r\n</ng-template>", styles: [".core-dropdown-container{position:relative;display:block;--indicator-height: 0px;--search-bg-color: white;--search-border-color: #D1D1D1;--search-item-hover-bg: #358ccb;--search-item-hover-color: white;--dropdown-bg: lightyellow;--arrow-color: #358ccb;--height: var(--size-form-control-height);--item-height: 50px;--max-z-index: 0;--search-height: 38px}.core-dropdown-container input.expand-state,.core-dropdown-container .value{display:none}.core-dropdown-container label.text{width:100%;height:var(--height);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between}.core-dropdown-container label.text span{width:calc(100% - var(--height));overflow-x:hidden;text-overflow:ellipsis;color:inherit}.core-dropdown-container .input-wrapper .clear-icon-wrapper{display:none;position:absolute;background-color:transparent;right:20px;top:-4px;width:44px;height:44px;border-radius:.375rem;cursor:pointer}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:24px}.core-dropdown-container .input-wrapper:hover>.clear-icon-wrapper{display:block}.core-dropdown-container label.text div.icon{display:flex;align-items:center;justify-content:center;position:absolute;right:3px;top:3px;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);background-color:#e9e9e9;border-radius:3px;cursor:pointer}.core-dropdown-container label.text div.icon i{width:28px;height:28px;font-size:28px;color:#848484}.core-dropdown-container .dropdown{display:block;position:absolute;width:100%;max-height:0px;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:.25s linear;z-index:calc(var(--max-z-index) + 1)}.core-dropdown-container .dropdown ul{padding-left:6px}.core-dropdown-container .dropdown ul>li{display:flex;align-items:center;cursor:pointer;padding:0px var(--size-scrollbar-width);transition:.25s linear}.core-dropdown-container .dropdown ul>li>label{width:100%}.core-dropdown-container .dropdown ul>li:hover{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container input.expand-state:checked~.dropdown{border:1px solid #ced4da;margin-top:2px;max-height:400px;transition:.25s linear}.core-dropdown-container input.search{margin:0;width:100%;border:0;border-bottom:1px solid var(--search-border-color);background-color:var(--search-bg-color);position:sticky;top:0;height:38px;padding:6px 12px;font-size:15px}.core-dropdown-container input.search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CoreScrollComponent, selector: "core-scroll", inputs: ["localOptions", "itemTemplate", "itemCount", "height", "childHeight", "renderAhread"] }, { kind: "component", type: ThreedotsComponent, selector: "app-threedots" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
145
146
  }
146
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreDropdownComponent, decorators: [{
147
148
  type: Component,
@@ -159,7 +160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
159
160
  multi: true,
160
161
  useExisting: CoreDropdownComponent,
161
162
  },
162
- ], template: "<app-threedots *ngIf=\"loading\"></app-threedots>\r\n<div #container class=\"core-dropdown-container\" *ngIf=\"!loading\">\r\n <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\" />\r\n\r\n <div class=\"input-wrapper\">\r\n <input class=\"value\" [value]=\"value\" />\r\n <label type=\"text\" class=\"text form-control\" [class.form-control-disabled]=\"disabled\" (click)=\"toggleExpanded()\">\r\n <span [appTooltip]=\"text\">{{ !!loading ? \"...\" : (text | translate : lang) }}</span>\r\n <div class=\"icon\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </label>\r\n @if (!clearDisable) {\r\n <div class=\"clear-icon-wrapper\" [class.d-none]=\"!!disabled || !!!value\" (click)=\"onClickClear()\">\r\n <div class=\"flex-wrapper\" [appTooltip]=\"'UI.CORE_CONTOL_COMMON_CLEAR' | translate : lang\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"dropdown\" [class.form-control-disabled]=\"disabled\" *ngIf=\"!!expandState\">\r\n <input class=\"search\" type=\"text\" [placeholder]=\"placeholderText\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" />\r\n <core-scroll [localOptions]=\"localOptions\" [itemTemplate]=\"itemTemplateRef\" [itemCount]=\"localOptions.length\"\r\n [height]=\"fitHeightWithItemCount ? localOptions.length * itemHeight : 400 - searchHeight\" [childHeight]=\"itemHeight\"></core-scroll>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li (click)=\"onListItemClick(context)\" [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <label [ngStyle]=\"{\r\n width: '100%',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap'\r\n }\" [appTooltip]=\"context.text\">{{ context.text | translate : lang }}</label>\r\n </li>\r\n</ng-template>", styles: [".core-dropdown-container{position:relative;display:block;--indicator-height: 0px;--search-bg-color: white;--search-border-color: #D1D1D1;--search-item-hover-bg: #358ccb;--search-item-hover-color: white;--dropdown-bg: lightyellow;--arrow-color: #358ccb;--height: var(--size-form-control-height);--item-height: 50px;--max-z-index: 0;--search-height: 38px}.core-dropdown-container input.expand-state,.core-dropdown-container .value{display:none}.core-dropdown-container label.text{width:100%;height:var(--height);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between}.core-dropdown-container label.text span{width:calc(100% - var(--height));overflow-x:hidden;text-overflow:ellipsis;color:inherit}.core-dropdown-container .input-wrapper .clear-icon-wrapper{display:none;position:absolute;background-color:transparent;right:20px;top:-4px;width:44px;height:44px;border-radius:.375rem;cursor:pointer}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:24px}.core-dropdown-container .input-wrapper:hover>.clear-icon-wrapper{display:block}.core-dropdown-container label.text div.icon{display:flex;align-items:center;justify-content:center;position:absolute;right:3px;top:3px;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);background-color:#e9e9e9;border-radius:3px;cursor:pointer}.core-dropdown-container label.text div.icon i{width:28px;height:28px;font-size:28px;color:#848484}.core-dropdown-container .dropdown{display:block;position:absolute;width:100%;max-height:0px;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:.25s linear;z-index:calc(var(--max-z-index) + 1)}.core-dropdown-container .dropdown ul{padding-left:6px}.core-dropdown-container .dropdown ul>li{display:flex;align-items:center;cursor:pointer;padding:0px var(--size-scrollbar-width);transition:.25s linear}.core-dropdown-container .dropdown ul>li>label{width:100%}.core-dropdown-container .dropdown ul>li:hover{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container input.expand-state:checked~.dropdown{border:1px solid #ced4da;margin-top:2px;max-height:400px;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem;transition:.25s linear}.core-dropdown-container input.search{margin:0;width:100%;border:0;border-bottom:1px solid var(--search-border-color);background-color:var(--search-bg-color);position:sticky;top:0;height:38px;padding:6px 12px;font-size:15px}.core-dropdown-container input.search:focus{outline:none}\n"] }]
163
+ ], template: "<app-threedots *ngIf=\"loading\"></app-threedots>\r\n<div #container class=\"core-dropdown-container\" *ngIf=\"!loading\">\r\n <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\" />\r\n\r\n <div class=\"input-wrapper\">\r\n <input class=\"value\" [value]=\"value\" />\r\n <label type=\"text\" class=\"text form-control\" [class.form-control-disabled]=\"disabled\" (click)=\"toggleExpanded()\">\r\n <span [appTooltip]=\"text\">{{ !!loading ? \"...\" : (text | translate : lang) }}</span>\r\n <div class=\"icon\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </label>\r\n @if (!clearDisable) {\r\n <div class=\"clear-icon-wrapper\" [class.d-none]=\"!!disabled || !!!value\" (click)=\"onClickClear()\">\r\n <div class=\"flex-wrapper\" [appTooltip]=\"'UI.CORE_CONTOL_COMMON_CLEAR' | translate : lang\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"dropdown\" [class.form-control-disabled]=\"disabled\" *ngIf=\"!!expandState\">\r\n <input class=\"search\" type=\"text\" [placeholder]=\"placeholderText\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" />\r\n <core-scroll [localOptions]=\"localOptions\" [itemTemplate]=\"itemTemplateRef\" [itemCount]=\"localOptions.length\"\r\n [height]=\"(fitHeightWithItemCount && localOptions.length * itemHeight < 400) ? localOptions.length * itemHeight : 400 - searchHeight\" [childHeight]=\"itemHeight\"></core-scroll>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li (click)=\"onListItemClick(context)\" [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <label [ngStyle]=\"{\r\n width: '100%',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap'\r\n }\" [appTooltip]=\"context.text\">{{ context.text | translate : lang }}</label>\r\n </li>\r\n</ng-template>", styles: [".core-dropdown-container{position:relative;display:block;--indicator-height: 0px;--search-bg-color: white;--search-border-color: #D1D1D1;--search-item-hover-bg: #358ccb;--search-item-hover-color: white;--dropdown-bg: lightyellow;--arrow-color: #358ccb;--height: var(--size-form-control-height);--item-height: 50px;--max-z-index: 0;--search-height: 38px}.core-dropdown-container input.expand-state,.core-dropdown-container .value{display:none}.core-dropdown-container label.text{width:100%;height:var(--height);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between}.core-dropdown-container label.text span{width:calc(100% - var(--height));overflow-x:hidden;text-overflow:ellipsis;color:inherit}.core-dropdown-container .input-wrapper .clear-icon-wrapper{display:none;position:absolute;background-color:transparent;right:20px;top:-4px;width:44px;height:44px;border-radius:.375rem;cursor:pointer}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:24px}.core-dropdown-container .input-wrapper:hover>.clear-icon-wrapper{display:block}.core-dropdown-container label.text div.icon{display:flex;align-items:center;justify-content:center;position:absolute;right:3px;top:3px;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);background-color:#e9e9e9;border-radius:3px;cursor:pointer}.core-dropdown-container label.text div.icon i{width:28px;height:28px;font-size:28px;color:#848484}.core-dropdown-container .dropdown{display:block;position:absolute;width:100%;max-height:0px;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:.25s linear;z-index:calc(var(--max-z-index) + 1)}.core-dropdown-container .dropdown ul{padding-left:6px}.core-dropdown-container .dropdown ul>li{display:flex;align-items:center;cursor:pointer;padding:0px var(--size-scrollbar-width);transition:.25s linear}.core-dropdown-container .dropdown ul>li>label{width:100%}.core-dropdown-container .dropdown ul>li:hover{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container input.expand-state:checked~.dropdown{border:1px solid #ced4da;margin-top:2px;max-height:400px;transition:.25s linear}.core-dropdown-container input.search{margin:0;width:100%;border:0;border-bottom:1px solid var(--search-border-color);background-color:var(--search-bg-color);position:sticky;top:0;height:38px;padding:6px 12px;font-size:15px}.core-dropdown-container input.search:focus{outline:none}\n"] }]
163
164
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.DomService }, { type: i2.AlertService }, { type: i0.Injector }, { type: i3.MultiLanguageService }], propDecorators: { getByIdObject$: [{
164
165
  type: Input
165
166
  }], paramMode: [{
@@ -186,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
186
187
  type: ViewChild,
187
188
  args: ['container']
188
189
  }] } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1kcm9wZG93bi9jb3JlLWRyb3Bkb3duL2NvcmUtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtZHJvcGRvd24vY29yZS1kcm9wZG93bi9jb3JlLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUF3QixLQUFLLEVBQTBELFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBNEJsRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsNEJBQTRCO0lBZ0NyRSxZQUNVLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFFBQWtCLEVBQ2xCLEdBQXlCO1FBRWpDLEtBQUssRUFBRSxDQUFDO1FBTkEsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUE3QjFCLGdCQUFXLEdBQVcsb0NBQW9DLENBQUM7UUFtQnBFLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQVduQyxDQUFDO0lBRUQsUUFBUTtRQUVOLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUU3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlDLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FDckI7OztTQUdDLEVBQ0QsMEJBQTBCLENBQzNCLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyQixnQkFBZ0I7WUFDaEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUNyQjttRUFDeUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FDakYsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUNyQjt5Q0FDK0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFDdEQsMEJBQTBCLENBQzNCLENBQUM7YUFDSDtTQUNGO1FBRUQsNEJBQTRCO1FBRTVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLDhDQUE4QztZQUM5QyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFBO2lCQUN2RTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7YUFDaEI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM1RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBRUgsQ0FBQztJQUVELGVBQWU7UUFDYjs7V0FFRztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ3JFOztlQUVHO1lBQ0gsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUN6QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVRLFVBQVUsQ0FBQyxHQUEyQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDekQsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7U0FDOUQ7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFBO1NBQ2Y7SUFFSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBMkI7UUFDekMsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0IsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDdkQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FqTFUscUJBQXFCO2tHQUFyQixxQkFBcUIsOFhBUnJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLHFCQUFxQjthQUNuQztTQUNGLDhLQ3ZDSCxtZ0VBdUNjLDR5RkRqQlYsWUFBWSx1TkFDWixXQUFXLCt4QkFDWCxtQkFBbUIsK0JBQ25CLG1CQUFtQix3SkFDbkIsa0JBQWtCLDBEQUNsQixnQkFBZ0Isc0dBQ2hCLGFBQWE7OzJGQWFKLHFCQUFxQjtrQkF2QmpDLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixhQUFhO3FCQUNkLGlCQUdjLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyx1QkFBdUI7eUJBQ25DO3FCQUNGOzRMQUtRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgaXNEZXZNb2RlLCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBJQ29yZURyb3Bkb3duT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JQ29yZURyb3Bkb3duT3B0aW9uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29yZVNjcm9sbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtc2Nyb2xsL2NvcmUtc2Nyb2xsL2NvcmUtc2Nyb2xsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRocmVlZG90c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RocmVlZG90cy90aHJlZWRvdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1kcm9wZG93bicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlU2Nyb2xsQ29tcG9uZW50LFxyXG4gICAgVGhyZWVkb3RzQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBuZ0NvbnRyb2whOiBOZ0NvbnRyb2w7XHJcblxyXG4gIEBJbnB1dCgpIGdldEJ5SWRPYmplY3QkITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgQElucHV0KCkgcGFyYW1Nb2RlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93bkZyb20hOiBzdHJpbmc7IC8vIHRha2UgdGhpcyBmaWVsZCBmcm9tIEdldEJ5SWQgcmVzcG9uc2UgaW5uZXJCb2R5IHRvIGJpbmQgdG8gdGhlIHRleHRcclxuICBASW5wdXQoKSBvcHRpb25zJCE6IEJlaGF2aW9yU3ViamVjdDxJQ29yZURyb3Bkb3duT3B0aW9uW10+O1xyXG4gIEBJbnB1dCgpIGhlaWdodCE6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1VJX0NPTU1PTl9QTEFDRV9IT0xERVJfU0VBUkNIX0hFUkUnO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHdhcm5pbmdEaXNhYmxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjbGVhckRpc2FibGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZpdEhlaWdodFdpdGhJdGVtQ291bnQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGl0ZW1IZWlnaHQhOiBudW1iZXI7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgbGlzdGVuZXJGbiE6ICgpID0+IHZvaWQ7XHJcblxyXG4gIG9wdGlvbnMhOiBJQ29yZURyb3Bkb3duT3B0aW9uW107XHJcblxyXG4gIGxvY2FsT3B0aW9ucyE6IElDb3JlRHJvcGRvd25PcHRpb25bXTtcclxuICBvdmVycmlkZSB2YWx1ZSE6IHN0cmluZyB8IG51bWJlciB8IG51bGw7XHJcblxyXG4gIGxhbmchOiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXJUZXh0ITogc3RyaW5nO1xyXG4gIHRleHQhOiBzdHJpbmc7XHJcbiAgc2VhcmNoVGV4dCE6IHN0cmluZztcclxuICBzZWFyY2hIZWlnaHQ6IG51bWJlciA9IDM4O1xyXG4gIGV4cGFuZFN0YXRlITogYm9vbGVhbjtcclxuXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGRvbVNlcnZpY2U6IERvbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghISF0aGlzLml0ZW1IZWlnaHQpIHRoaXMuaXRlbUhlaWdodCA9IDQwO1xyXG5cclxuICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKTtcclxuXHJcbiAgICAvKiBTVEFSVDogQ0hFQ0sgSU5QVVQgRVJST1IgKi9cclxuICAgIGlmICghISF0aGlzLm9wdGlvbnMkICYmIGlzRGV2TW9kZSgpICYmICEhIXRoaXMud2FybmluZ0Rpc2FibGUpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgYFxyXG4gICAgICAgIENvcmVEcm9wZG93bkNvbXBvbmVudCByZXF1aXJlZCB0aGlzIGlucHV0OiBvcHRpb25zJCE6IEJlaGF2aW9yU3ViamVjdDxJQ29yZURyb3Bkb3duT3B0aW9uW10+O1xyXG4gICAgICAgIEFsc28sIGl0IG5lZWRzIHRvIHJlY2VpdmUgYSBuZXcgdmFsdWUgdGhhdCB1c3VhbGx5IGNvbWVzIGZyb20gYW5kIEFQSSBHZXRBbGwoKSBhY3Rpb25cclxuICAgICAgICBgLFxyXG4gICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghISF0aGlzLnBhcmFtTW9kZSkge1xyXG4gICAgICAvL2dldEJ5SWRPYmplY3QkXHJcbiAgICAgIGlmICghISF0aGlzLmdldEJ5SWRPYmplY3QkICYmIGlzRGV2TW9kZSgpICYmICEhIXRoaXMud2FybmluZ0Rpc2FibGUpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICAgIGBDb3JlRHJvcGRvd25Db21wb25lbnQgRXJyb3I6IFJlcXVpcmVkIGlucHV0czpcclxuICAgICAgICAgICAgICAgIGdldEJ5SWRPYmplY3QkOiBCZWhhdmlvclN1YmplY3QmbHQ7YW55Jmd0OyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghISF0aGlzLnNob3duRnJvbSAmJiBpc0Rldk1vZGUoKSAmJiAhISF0aGlzLndhcm5pbmdEaXNhYmxlKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICBgQ29yZURyb3Bkb3duQ29tcG9uZW50IEVycm9yOiBSZXF1aXJlZCBpbnB1dHM6XHJcbiAgICAgICAgICAgICAgc2hvd25Gcm9tOiBzdHJpbmc7IChmb3IgJyR7dGhpcy5uZ0NvbnRyb2wubmFtZX0nKWAsXHJcbiAgICAgICAgICBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogRU5EOiBDSEVDSyBJTlBVVCBFUlJPUiAqL1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm9wdGlvbnMkLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHg7XHJcbiAgICAgICAgdGhpcy5sb2NhbE9wdGlvbnMgPSB4O1xyXG4gICAgICAgIC8vIGluIHNjZW5hcmlvIHdoZW4gZ2V0QnlJZE9iamVjdCQgaGFzIG5vdCBydW5cclxuICAgICAgICBpZiAoISF0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLnRleHQgPSB0aGlzLm9wdGlvbnM/LmZpbHRlcihtID0+IG0udmFsdWUgPT09IHRoaXMudmFsdWUpWzBdPy50ZXh0XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuZ2V0QnlJZE9iamVjdCQ/LnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIGlmICghIXgpIHtcclxuICAgICAgICAgIHRoaXMudGV4dCA9IHhbdGhpcy5zaG93bkZyb21dO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRleHQgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIHRoaXMubGFuZyA9IHg7XHJcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlclRleHQgPSB0aGlzLm1scy50cmFucyh0aGlzLnBsYWNlaG9sZGVyLCB4KVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBldmVudHMgZ2V0IGNhbGxlZCBieSBhbGwgY2xpY2tzIG9uIHRoZSBwYWdlXHJcbiAgICAgKi9cclxuICAgIHRoaXMubGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcclxuICAgICAgLypcclxuICAgICAgICogaGFuZGxlIGNsaWNrIG91dHNpZGVcclxuICAgICAgICovXHJcbiAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhISF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcclxuICAgICAgICB0aGlzLmxvY2FsT3B0aW9ucyA9IHRoaXMub3B0aW9ucyQudmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IG1heFpJbmRleCA9IHRoaXMuZG9tU2VydmljZS5nZXRNYXhaSW5kZXgoKTtcclxuICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tbWF4LXotaW5kZXgnLCBtYXhaSW5kZXggKyAxKTtcclxuICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2VhcmNoLWhlaWdodCcsIHRoaXMuc2VhcmNoSGVpZ2h0ICsgJ3B4Jyk7XHJcbiAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWl0ZW0taGVpZ2h0JywgdGhpcy5pdGVtSGVpZ2h0ICsgJ3B4Jyk7XHJcbiAgICBpZiAoISF0aGlzLmhlaWdodCkgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1oZWlnaHQnLCB0aGlzLmhlaWdodCk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMub3B0aW9ucz8uZmlsdGVyKG0gPT4gbS52YWx1ZSA9PT0gb2JqKVxyXG4gICAgaWYgKCEhZmlsdGVyPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50ZXh0ID0gdGhpcy5vcHRpb25zLmZpbHRlcihtID0+IG0udmFsdWUgPT09IG9iailbMF0udGV4dFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZXh0ID0gXCJcIlxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoVGV4dENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmxvY2FsT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKHgpID0+IHgudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkgPj0gMCk7XHJcbiAgfVxyXG5cclxuICBvbkxpc3RJdGVtQ2xpY2sob3B0aW9uOiBJQ29yZURyb3Bkb3duT3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG9wdGlvbi52YWx1ZSlcclxuICAgIC8vIHRoaXMudGV4dCA9IG9wdGlvbi50ZXh0O1xyXG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7IC8vIGRvIHRoaXMgYmVmb3JlIG9uQ2hhbmdlXHJcbiAgICB0aGlzLm9uQ2hhbmdlKG9wdGlvbi52YWx1ZSk7XHJcbiAgICB0aGlzLmV4cGFuZFN0YXRlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFeHBhbmRlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcclxuICAgIHRoaXMuZXhwYW5kU3RhdGUgPSAhISF0aGlzLmV4cGFuZFN0YXRlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCEhIWNoYW5nZXNbJ29wdGlvbnMnXSkgcmV0dXJuO1xyXG4gICAgdGhpcy5sb2NhbE9wdGlvbnMgPSBjaGFuZ2VzWydvcHRpb25zJ10/LmN1cnJlbnRWYWx1ZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDbGVhcigpIHtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShudWxsKTtcclxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGlzdGVuZXJGbikgdGhpcy5saXN0ZW5lckZuKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKCh4KSA9PiB4Py51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC10aHJlZWRvdHMgKm5nSWY9XCJsb2FkaW5nXCI+PC9hcHAtdGhyZWVkb3RzPlxyXG48ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWRyb3Bkb3duLWNvbnRhaW5lclwiICpuZ0lmPVwiIWxvYWRpbmdcIj5cclxuICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJleHBhbmQtc3RhdGVcIiBbKG5nTW9kZWwpXT1cImV4cGFuZFN0YXRlXCIgLz5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cclxuICAgIDxpbnB1dCBjbGFzcz1cInZhbHVlXCIgW3ZhbHVlXT1cInZhbHVlXCIgLz5cclxuICAgIDxsYWJlbCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGV4dCBmb3JtLWNvbnRyb2xcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj5cclxuICAgICAgPHNwYW4gW2FwcFRvb2x0aXBdPVwidGV4dFwiPnt7ICEhbG9hZGluZyA/IFwiLi4uXCIgOiAodGV4dCB8IHRyYW5zbGF0ZSA6IGxhbmcpIH19PC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1jaGV2cm9uLWRvd25cIj48L2k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9sYWJlbD5cclxuICAgIEBpZiAoIWNsZWFyRGlzYWJsZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImNsZWFyLWljb24td3JhcHBlclwiIFtjbGFzcy5kLW5vbmVdPVwiISFkaXNhYmxlZCB8fCAhISF2YWx1ZVwiIChjbGljayk9XCJvbkNsaWNrQ2xlYXIoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCIgW2FwcFRvb2x0aXBdPVwiJ1VJLkNPUkVfQ09OVE9MX0NPTU1PTl9DTEVBUicgfCB0cmFuc2xhdGUgOiBsYW5nXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIj48L2k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiIFtjbGFzcy5mb3JtLWNvbnRyb2wtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAqbmdJZj1cIiEhZXhwYW5kU3RhdGVcIj5cclxuICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyVGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoVGV4dENoYW5nZSgkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgLz5cclxuICAgIDxjb3JlLXNjcm9sbCBbbG9jYWxPcHRpb25zXT1cImxvY2FsT3B0aW9uc1wiIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlUmVmXCIgW2l0ZW1Db3VudF09XCJsb2NhbE9wdGlvbnMubGVuZ3RoXCJcclxuICAgICAgW2hlaWdodF09XCJmaXRIZWlnaHRXaXRoSXRlbUNvdW50ID8gbG9jYWxPcHRpb25zLmxlbmd0aCAqIGl0ZW1IZWlnaHQgOiA0MDAgLSBzZWFyY2hIZWlnaHRcIiBbY2hpbGRIZWlnaHRdPVwiaXRlbUhlaWdodFwiPjwvY29yZS1zY3JvbGw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGVSZWYgbGV0LWNvbnRleHQ9XCJjb250ZXh0XCI+XHJcbiAgPGxpIChjbGljayk9XCJvbkxpc3RJdGVtQ2xpY2soY29udGV4dClcIiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaXRlbUhlaWdodCArICdweCcgfVwiPlxyXG4gICAgPGxhYmVsIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcclxuICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXHJcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCdcclxuICAgICAgfVwiIFthcHBUb29sdGlwXT1cImNvbnRleHQudGV4dFwiPnt7IGNvbnRleHQudGV4dCB8IHRyYW5zbGF0ZSA6IGxhbmcgfX08L2xhYmVsPlxyXG4gIDwvbGk+XHJcbjwvbmctdGVtcGxhdGU+Il19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1kcm9wZG93bi9jb3JlLWRyb3Bkb3duL2NvcmUtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtZHJvcGRvd24vY29yZS1kcm9wZG93bi9jb3JlLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUF3QixLQUFLLEVBQTBELFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBd0JsRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsNEJBQTRCO0lBZ0NyRSxZQUNVLFFBQW1CLEVBQ25C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QUFxQjthQUNuQztTQUNGLDhLQ25DSCwraUVBdUNjLHV1RkRyQlYsWUFBWSx1TkFDWixXQUFXLCt4QkFDWCxtQkFBbUIsK0JBQ25CLG1CQUFtQix3SkFDbkIsa0JBQWtCLDBEQUNsQixnQkFBZ0Isc0dBQ2hCLGFBQWE7OzJGQWFKLHFCQUFxQjtrQkF2QmpDLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixhQUFhO3FCQUNkLGlCQUdjLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyx1QkFBdUI7eUJBQ25DO3FCQUNGOzRMQUtRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgaXNEZXZNb2RlLCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBJQ29yZURyb3Bkb3duT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JQ29yZURyb3Bkb3duT3B0aW9uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29yZVNjcm9sbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtc2Nyb2xsL2NvcmUtc2Nyb2xsL2NvcmUtc2Nyb2xsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRocmVlZG90c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RocmVlZG90cy90aHJlZWRvdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWRyb3Bkb3duJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIENvcmVTY3JvbGxDb21wb25lbnQsXHJcbiAgICBUaHJlZWRvdHNDb21wb25lbnQsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ29yZURyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZURyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgQElucHV0KCkgZ2V0QnlJZE9iamVjdCQhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBASW5wdXQoKSBwYXJhbU1vZGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3duRnJvbSE6IHN0cmluZzsgLy8gdGFrZSB0aGlzIGZpZWxkIGZyb20gR2V0QnlJZCByZXNwb25zZSBpbm5lckJvZHkgdG8gYmluZCB0byB0aGUgdGV4dFxyXG4gIEBJbnB1dCgpIG9wdGlvbnMkITogQmVoYXZpb3JTdWJqZWN0PElDb3JlRHJvcGRvd25PcHRpb25bXT47XHJcbiAgQElucHV0KCkgaGVpZ2h0ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnVUlfQ09NTU9OX1BMQUNFX0hPTERFUl9TRUFSQ0hfSEVSRSc7XHJcbiAgQElucHV0KCkgbG9hZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgd2FybmluZ0Rpc2FibGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNsZWFyRGlzYWJsZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZml0SGVpZ2h0V2l0aEl0ZW1Db3VudDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgaXRlbUhlaWdodCE6IG51bWJlcjtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuXHJcbiAgb3B0aW9ucyE6IElDb3JlRHJvcGRvd25PcHRpb25bXTtcclxuXHJcbiAgbG9jYWxPcHRpb25zITogSUNvcmVEcm9wZG93bk9wdGlvbltdO1xyXG4gIG92ZXJyaWRlIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcclxuXHJcbiAgbGFuZyE6IHN0cmluZztcclxuICBwbGFjZWhvbGRlclRleHQhOiBzdHJpbmc7XHJcbiAgdGV4dCE6IHN0cmluZztcclxuICBzZWFyY2hUZXh0ITogc3RyaW5nO1xyXG4gIHNlYXJjaEhlaWdodDogbnVtYmVyID0gMzg7XHJcbiAgZXhwYW5kU3RhdGUhOiBib29sZWFuO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZG9tU2VydmljZTogRG9tU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCEhIXRoaXMuaXRlbUhlaWdodCkgdGhpcy5pdGVtSGVpZ2h0ID0gNDA7XHJcblxyXG4gICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpO1xyXG5cclxuICAgIC8qIFNUQVJUOiBDSEVDSyBJTlBVVCBFUlJPUiAqL1xyXG4gICAgaWYgKCEhIXRoaXMub3B0aW9ucyQgJiYgaXNEZXZNb2RlKCkgJiYgISEhdGhpcy53YXJuaW5nRGlzYWJsZSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICBgXHJcbiAgICAgICAgQ29yZURyb3Bkb3duQ29tcG9uZW50IHJlcXVpcmVkIHRoaXMgaW5wdXQ6IG9wdGlvbnMkITogQmVoYXZpb3JTdWJqZWN0PElDb3JlRHJvcGRvd25PcHRpb25bXT47XHJcbiAgICAgICAgQWxzbywgaXQgbmVlZHMgdG8gcmVjZWl2ZSBhIG5ldyB2YWx1ZSB0aGF0IHVzdWFsbHkgY29tZXMgZnJvbSBhbmQgQVBJIEdldEFsbCgpIGFjdGlvblxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCEhIXRoaXMucGFyYW1Nb2RlKSB7XHJcbiAgICAgIC8vZ2V0QnlJZE9iamVjdCRcclxuICAgICAgaWYgKCEhIXRoaXMuZ2V0QnlJZE9iamVjdCQgJiYgaXNEZXZNb2RlKCkgJiYgISEhdGhpcy53YXJuaW5nRGlzYWJsZSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgYENvcmVEcm9wZG93bkNvbXBvbmVudCBFcnJvcjogUmVxdWlyZWQgaW5wdXRzOlxyXG4gICAgICAgICAgICAgICAgZ2V0QnlJZE9iamVjdCQ6IEJlaGF2aW9yU3ViamVjdCZsdDthbnkmZ3Q7IChmb3IgJyR7dGhpcy5uZ0NvbnRyb2wubmFtZX0nKWAsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCEhIXRoaXMuc2hvd25Gcm9tICYmIGlzRGV2TW9kZSgpICYmICEhIXRoaXMud2FybmluZ0Rpc2FibGUpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICAgIGBDb3JlRHJvcGRvd25Db21wb25lbnQgRXJyb3I6IFJlcXVpcmVkIGlucHV0czpcclxuICAgICAgICAgICAgICBzaG93bkZyb206IHN0cmluZzsgKGZvciAnJHt0aGlzLm5nQ29udHJvbC5uYW1lfScpYCxcclxuICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiBFTkQ6IENIRUNLIElOUFVUIEVSUk9SICovXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMub3B0aW9ucyQuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0geDtcclxuICAgICAgICB0aGlzLmxvY2FsT3B0aW9ucyA9IHg7XHJcbiAgICAgICAgLy8gaW4gc2NlbmFyaW8gd2hlbiBnZXRCeUlkT2JqZWN0JCBoYXMgbm90IHJ1blxyXG4gICAgICAgIGlmICghIXRoaXMudmFsdWUpIHtcclxuICAgICAgICAgIGlmICghdGhpcy50ZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dCA9IHRoaXMub3B0aW9ucz8uZmlsdGVyKG0gPT4gbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSlbMF0/LnRleHRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5nZXRCeUlkT2JqZWN0JD8uc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgaWYgKCEheCkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0ID0geFt0aGlzLnNob3duRnJvbV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGV4dCA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5sYW5nID0geDtcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVGV4dCA9IHRoaXMubWxzLnRyYW5zKHRoaXMucGxhY2Vob2xkZXIsIHgpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGV2ZW50cyBnZXQgY2FsbGVkIGJ5IGFsbCBjbGlja3Mgb24gdGhlIHBhZ2VcclxuICAgICAqL1xyXG4gICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xyXG4gICAgICAvKlxyXG4gICAgICAgKiBoYW5kbGUgY2xpY2sgb3V0c2lkZVxyXG4gICAgICAgKi9cclxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmICEhIXRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xyXG4gICAgICAgIHRoaXMubG9jYWxPcHRpb25zID0gdGhpcy5vcHRpb25zJC52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgbWF4WkluZGV4ID0gdGhpcy5kb21TZXJ2aWNlLmdldE1heFpJbmRleCgpO1xyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1tYXgtei1pbmRleCcsIG1heFpJbmRleCArIDEpO1xyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWFyY2gtaGVpZ2h0JywgdGhpcy5zZWFyY2hIZWlnaHQgKyAncHgnKTtcclxuICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taXRlbS1oZWlnaHQnLCB0aGlzLml0ZW1IZWlnaHQgKyAncHgnKTtcclxuICAgIGlmICghIXRoaXMuaGVpZ2h0KSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWhlaWdodCcsIHRoaXMuaGVpZ2h0KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5vcHRpb25zPy5maWx0ZXIobSA9PiBtLnZhbHVlID09PSBvYmopXHJcbiAgICBpZiAoISFmaWx0ZXI/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnRleHQgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKG0gPT4gbS52YWx1ZSA9PT0gb2JqKVswXS50ZXh0XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRleHQgPSBcIlwiXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hUZXh0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMubG9jYWxPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigoeCkgPT4geC50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZih2YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSA+PSAwKTtcclxuICB9XHJcblxyXG4gIG9uTGlzdEl0ZW1DbGljayhvcHRpb246IElDb3JlRHJvcGRvd25PcHRpb24pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLndyaXRlVmFsdWUob3B0aW9uLnZhbHVlKVxyXG4gICAgLy8gdGhpcy50ZXh0ID0gb3B0aW9uLnRleHQ7XHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTsgLy8gZG8gdGhpcyBiZWZvcmUgb25DaGFuZ2VcclxuICAgIHRoaXMub25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcclxuICAgIHRoaXMuZXhwYW5kU3RhdGUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUV4cGFuZGVkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgdGhpcy5leHBhbmRTdGF0ZSA9ICEhIXRoaXMuZXhwYW5kU3RhdGU7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoISEhY2hhbmdlc1snb3B0aW9ucyddKSByZXR1cm47XHJcbiAgICB0aGlzLmxvY2FsT3B0aW9ucyA9IGNoYW5nZXNbJ29wdGlvbnMnXT8uY3VycmVudFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NsZWFyKCkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5saXN0ZW5lckZuKSB0aGlzLmxpc3RlbmVyRm4oKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoKHgpID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLXRocmVlZG90cyAqbmdJZj1cImxvYWRpbmdcIj48L2FwcC10aHJlZWRvdHM+XHJcbjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtZHJvcGRvd24tY29udGFpbmVyXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cImV4cGFuZC1zdGF0ZVwiIFsobmdNb2RlbCldPVwiZXhwYW5kU3RhdGVcIiAvPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgPGlucHV0IGNsYXNzPVwidmFsdWVcIiBbdmFsdWVdPVwidmFsdWVcIiAvPlxyXG4gICAgPGxhYmVsIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJ0ZXh0IGZvcm0tY29udHJvbFwiIFtjbGFzcy5mb3JtLWNvbnRyb2wtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoKVwiPlxyXG4gICAgICA8c3BhbiBbYXBwVG9vbHRpcF09XCJ0ZXh0XCI+e3sgISFsb2FkaW5nID8gXCIuLi5cIiA6ICh0ZXh0IHwgdHJhbnNsYXRlIDogbGFuZykgfX08L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLWNoZXZyb24tZG93blwiPjwvaT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2xhYmVsPlxyXG4gICAgQGlmICghY2xlYXJEaXNhYmxlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2xlYXItaWNvbi13cmFwcGVyXCIgW2NsYXNzLmQtbm9uZV09XCIhIWRpc2FibGVkIHx8ICEhIXZhbHVlXCIgKGNsaWNrKT1cIm9uQ2xpY2tDbGVhcigpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIiBbYXBwVG9vbHRpcF09XCInVUkuQ09SRV9DT05UT0xfQ09NTU9OX0NMRUFSJyB8IHRyYW5zbGF0ZSA6IGxhbmdcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXIteFwiPjwvaT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRyb3Bkb3duXCIgW2NsYXNzLmZvcm0tY29udHJvbC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiICpuZ0lmPVwiISFleHBhbmRTdGF0ZVwiPlxyXG4gICAgPGlucHV0IGNsYXNzPVwic2VhcmNoXCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hUZXh0Q2hhbmdlKCRldmVudClcIiBhdXRvY29tcGxldGU9XCJmYWxzZVwiIFtjbGFzcy5mb3JtLWNvbnRyb2wtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAvPlxyXG4gICAgPGNvcmUtc2Nyb2xsIFtsb2NhbE9wdGlvbnNdPVwibG9jYWxPcHRpb25zXCIgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVSZWZcIiBbaXRlbUNvdW50XT1cImxvY2FsT3B0aW9ucy5sZW5ndGhcIlxyXG4gICAgICBbaGVpZ2h0XT1cIihmaXRIZWlnaHRXaXRoSXRlbUNvdW50ICYmIGxvY2FsT3B0aW9ucy5sZW5ndGggKiBpdGVtSGVpZ2h0IDwgNDAwKSA/IGxvY2FsT3B0aW9ucy5sZW5ndGggKiBpdGVtSGVpZ2h0IDogNDAwIC0gc2VhcmNoSGVpZ2h0XCIgW2NoaWxkSGVpZ2h0XT1cIml0ZW1IZWlnaHRcIj48L2NvcmUtc2Nyb2xsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaXRlbVRlbXBsYXRlUmVmIGxldC1jb250ZXh0PVwiY29udGV4dFwiPlxyXG4gIDxsaSAoY2xpY2spPVwib25MaXN0SXRlbUNsaWNrKGNvbnRleHQpXCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGl0ZW1IZWlnaHQgKyAncHgnIH1cIj5cclxuICAgIDxsYWJlbCBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXHJcbiAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxyXG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnXHJcbiAgICAgIH1cIiBbYXBwVG9vbHRpcF09XCJjb250ZXh0LnRleHRcIj57eyBjb250ZXh0LnRleHQgfCB0cmFuc2xhdGUgOiBsYW5nIH19PC9sYWJlbD5cclxuICA8L2xpPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -208,7 +208,7 @@ export class CoreFormComponent {
208
208
  this.buttonClick.emit(e);
209
209
  }
210
210
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormComponent, deps: [{ token: i1.CoreControlService }, { token: i2.MultiLanguageService }, { token: i3.AlertService }, { token: i4.CoreFormService }, { token: i5.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer;border-radius:0}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .dev-button{cursor:pointer;display:flex;align-items:center;border:1px gray solid;font-size:13px;padding:8px}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto;color:gray!important;background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
212
212
  }
213
213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormComponent, decorators: [{
214
214
  type: Component,
@@ -219,7 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
219
219
  CoreControlComponent,
220
220
  TranslatePipe,
221
221
  CoreButtonGroupVnsComponent
222
- ], template: "@if (!!form) {\r\n<div class=\"core-form-container\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"] }]
222
+ ], template: "@if (!!form) {\r\n<div class=\"core-form-container\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer;border-radius:0}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .dev-button{cursor:pointer;display:flex;align-items:center;border:1px gray solid;font-size:13px;padding:8px}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto;color:gray!important;background-color:transparent!important}\n"] }]
223
223
  }], ctorParameters: () => [{ type: i1.CoreControlService }, { type: i2.MultiLanguageService }, { type: i3.AlertService }, { type: i4.CoreFormService }, { type: i5.AppConfigService }], propDecorators: { formName: [{
224
224
  type: Input
225
225
  }], submitText: [{
@@ -258,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
258
258
  type: ViewChild,
259
259
  args: ['formRef']
260
260
  }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZvcm0vY29yZS1mb3JtL2NvcmUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1mb3JtL2NvcmUtZm9ybS9jb3JlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUE4QixTQUFTLEVBQUUsU0FBUyxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlGLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBR2hILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUZBQW1GLENBQUM7Ozs7Ozs7OztBQXNCaEksTUFBTSxPQUFPLGlCQUFpQjtJQW9DNUIsWUFDVSxrQkFBc0MsRUFDdEMsb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLGVBQWdDLEVBQ2hDLGdCQUFrQztRQUpsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE3Qm5DLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFakQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUNsRSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUN2RCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBVTNELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBWVgsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQStCO1FBRXBELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQzFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3QyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDakMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRTtvQkFDaEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUV4QywwSEFBMEg7b0JBQzFILE9BQU8sQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLE1BQU0sQ0FBQztvQkFDcEMsMEhBQTBIO2dCQUM1SCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsK0JBQStCO1lBQy9CLGlIQUFpSDtZQUNqSDs7Y0FFRTtZQUNGLGtDQUFrQztRQUVwQyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDNUIsSUFBSSxXQUFXLEdBQ2IsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUV4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO2dCQUU1QixJQUFJLFNBQVMsQ0FBQztnQkFDZCxJQUFJLElBQW9CLENBQUM7Z0JBRXpCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7b0JBQzVCLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO29CQUNwRSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDLENBQUM7aUJBQ3REO3FCQUFNO29CQUNMLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDakM7Z0JBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7YUFFbEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsQztZQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTthQUNyQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxRQUFRO1FBRU47O1VBRUU7UUFFQSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUc7Z0JBQ2pCLHFCQUFxQixDQUFDLGdCQUFnQjtnQkFDdEMscUJBQXFCLENBQUMsa0JBQWtCO2FBQ3pDLENBQUE7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRztnQkFDakIscUJBQXFCLENBQUMsa0JBQWtCO2FBQ3pDLENBQUE7U0FDRjtRQUVIOzs7Ozs7Ozs7Ozs7Ozs7VUFlRTtRQUVGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztTQUMvQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDbEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQUssb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQy9ELENBQ0YsQ0FBQztRQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUNyQjs7V0FFRyxFQUNILDBCQUEwQixDQUMzQixDQUFDO1NBQ0g7UUFDRCx5Q0FBeUM7UUFFekMsSUFBSSxTQUFTLEVBQUUsRUFBRTtZQUNmLDBDQUEwQztZQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDBCQUEwQixDQUM1RCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7WUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQ3JCLHdDQUF3QyxDQUFDLG1DQUFtQyxFQUM1RSwwQkFBMEIsQ0FDM0IsQ0FBQztpQkFDSDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQ3JCLGlDQUFpQyxDQUFDLHVDQUF1QyxFQUN6RSwwQkFBMEIsQ0FDM0IsQ0FBQztxQkFDSDtpQkFDRjtnQkFDRCxPQUFPLENBQUMsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1lBQ0gsd0NBQXdDO1NBQ3pDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixNQUFNLE1BQU0sR0FBcUMsRUFBRSxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7WUFDckQsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixHQUFHO2dCQUNILE1BQU07YUFDUCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFpQjtRQUU3QixRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDZCxLQUFLLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO1lBQzlDLEtBQUsscUJBQXFCLENBQUMsTUFBTTtnQkFDL0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixNQUFNO1lBQ1IsS0FBSyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM1QyxLQUFLLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUNoQyxLQUFLLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO1lBQzlDLEtBQUsscUJBQXFCLENBQUMsOEJBQThCLENBQUM7WUFDMUQsS0FBSyxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7WUFDeEMsS0FBSyxxQkFBcUIsQ0FBQyxhQUFhO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU07WUFDUixLQUFLLHFCQUFxQixDQUFDLElBQUk7Z0JBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBMVFVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJ2QkN0QzlCLGk4SUErR0MsMDNDRG5GRyxZQUFZLHFNQUNaLFdBQVcsbVNBQ1gsbUJBQW1CLGdMQUNuQixvQkFBb0IsOEdBQ3BCLGFBQWEsa0RBQ2IsMkJBQTJCOzsyRkFLbEIsaUJBQWlCO2tCQWQ3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLDJCQUEyQjtxQkFDNUI7a05BTVEsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUdlLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBpc0Rldk1vZGUsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUNvcmVGb3JtU2VjdGlvbiB9IGZyb20gJy4vZW51bS1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS1jb250cm9sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bUNvcmVQYWdlRWRpdE1vZGUgfSBmcm9tICcuLi8uLi9jb3JlLXBhZ2UtZWRpdC9FbnVtQ29yZVBhZ2VFZGl0TW9kZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtU2VydmljZSB9IGZyb20gJy4uL2NvcmUtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25WTlMgfSBmcm9tICcuLi8uLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL0lDb3JlQnV0dG9uVk5TJztcclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25WTlNDb2RlIH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29yZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWNvbnRyb2wvY29yZS1jb250cm9sL2NvcmUtY29udHJvbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvbkdyb3VwVm5zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybUVtaXRPbkZvcm1DcmVhdGVkIHtcclxuICBmb3JtTmFtZTogc3RyaW5nO1xyXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlQ29udHJvbENvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBDb3JlQnV0dG9uR3JvdXBWbnNDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgZm9ybU5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3VibWl0VGV4dCE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgbGVmdElucHV0U2VjdGlvbnMhOiBJQ29yZUZvcm1TZWN0aW9uW107XHJcbiAgQElucHV0KCkgbGVmdElucHV0U2VjdGlvbnNGbGV4U2l6ZSE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpbnB1dFNlY3Rpb25zITogSUNvcmVGb3JtU2VjdGlvbltdO1xyXG4gIEBJbnB1dCgpIG1vZGUkITogQmVoYXZpb3JTdWJqZWN0PEVudW1Db3JlUGFnZUVkaXRNb2RlPjtcclxuICBASW5wdXQoKSBib3R0b21UZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgY3VzdG9tRm9ybUJ1dHRvbkl0ZW1zITogRW51bUNvcmVCdXR0b25WTlNDb2RlW107IC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb25CdXR0b24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVTYXZlQnV0dG9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjaGVja0Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBAT3V0cHV0KCkgb25Gb3JtQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtRW1pdE9uRm9ybUNyZWF0ZWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRm9ybVJlZkNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRSZWY8YW55Pj4oKTtcclxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DYW5jYWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJQ29yZUJ1dHRvblZOUz4oKTtcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1SZWYnKSBmb3JtUmVmITogRWxlbWVudFJlZjtcclxuXHJcbiAgYnV0dG9uSXRlbXMhOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGVbXTtcclxuXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBzZWN0aW9ucyE6IElDb3JlRm9ybVNlY3Rpb25bXTtcclxuICBsYW5nITogc3RyaW5nO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHBheUxvYWQgPSAnJztcclxuICB2YWxpZGF0b3JPdmVydmlldzogYW55O1xyXG4gIGlzRGV2TW9kZSE6IGJvb2xlYW47XHJcbiAgaXNVcGRhdGVNb2RlITogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvcmVDb250cm9sU2VydmljZTogQ29yZUNvbnRyb2xTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtdWx0aUxhbmd1YWdlU2VydmljZTogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlRm9ybVNlcnZpY2U6IENvcmVGb3JtU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0Rldk1vZGUgPSBpc0Rldk1vZGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VjdGlvbnMobmV3U2VjdGlvbnM6IElDb3JlRm9ybVNlY3Rpb25bXSk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuc2VjdGlvbnMubWFwKChzZWN0aW9uLCBzZWN0aW9uSW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgbmV3U2VjdGlvbiA9IG5ld1NlY3Rpb25zW3NlY3Rpb25JbmRleF07XHJcbiAgICAgIHNlY3Rpb24ucm93cy5tYXAoKHJvdywgcm93SW5kZXgpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdSb3cgPSBuZXdTZWN0aW9uLnJvd3Nbcm93SW5kZXhdO1xyXG4gICAgICAgIHJvdy5tYXAoKGNvbnRyb2wsIGNvbnRyb2xJbmRleCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmV3Q29udHJvbCA9IG5ld1Jvd1tjb250cm9sSW5kZXhdO1xyXG5cclxuICAgICAgICAgIC8qIFRIRSBPTkxZIFBST1AgVE8gQkUgVURBVEVEIElTICdoaWRkZW4nLCBUSEUgT1RIRVJTIFNIT1VMRCBCRSBNQU5JUFVMQVRFRCBUSFJPVUdIIHRoaXMuZm9ybS5nZXQoWU9VUl9DT05UUk9MX05BTUUpLi4uICovXHJcbiAgICAgICAgICBjb250cm9sLmhpZGRlbiA9IG5ld0NvbnRyb2w/LmhpZGRlbjtcclxuICAgICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLyogI3JlZ2lvbiBPY3QgdGhlIDExdGggMjAyMyAqL1xyXG4gICAgICAvKiBTb21lIHNlY3Rpb25zIHdhcyBwb3NpYmx5IGhhdmUgcmVuZGVyT2ZmPXRydWUgZnJvbSBwcmV2aW91cyBzdGF0ZSBhbmQgdGhlaXIgY29udHJvbHMgbXVzdCBiZSBjcmVhdGVkL3JlbW92ZSAqL1xyXG4gICAgICAvKlxyXG4gICAgICBCVVQgVEhJUyBUQVNLIElTIEhBUkQgU08gRkFSXHJcbiAgICAgICovXHJcbiAgICAgIC8qICNlbmRyZWdpb24gT2N0IHRoZSAxMXRoIDIwMjMgKi9cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaW5wdXRTZWN0aW9ucyddKSB7XHJcbiAgICAgIGxldCBuZXdTZWN0aW9uczogSUNvcmVGb3JtU2VjdGlvbltdID1cclxuICAgICAgICBjaGFuZ2VzWydpbnB1dFNlY3Rpb25zJ10uY3VycmVudFZhbHVlO1xyXG5cclxuICAgICAgaWYgKCEhIXRoaXMuZm9ybSkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvbnMgPSBuZXdTZWN0aW9ucztcclxuXHJcbiAgICAgICAgbGV0IGxlZnRHcm91cDtcclxuICAgICAgICBsZXQgZm9ybTogRm9ybUdyb3VwPGFueT47XHJcblxyXG4gICAgICAgIGNvbnN0IG1haW5Hcm91cCA9IHRoaXMuY29yZUNvbnRyb2xTZXJ2aWNlLnRvR3JvdXAodGhpcy5zZWN0aW9ucyk7XHJcblxyXG4gICAgICAgIGlmICghIXRoaXMubGVmdElucHV0U2VjdGlvbnMpIHtcclxuICAgICAgICAgIGxlZnRHcm91cCA9IHRoaXMuY29yZUNvbnRyb2xTZXJ2aWNlLnRvR3JvdXAodGhpcy5sZWZ0SW5wdXRTZWN0aW9ucyk7XHJcbiAgICAgICAgICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7IC4uLmxlZnRHcm91cCwgLi4ubWFpbkdyb3VwIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3JtID0gbmV3IEZvcm1Hcm91cChtYWluR3JvdXApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWN0aW9ucyhuZXdTZWN0aW9ucyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub25Gb3JtQ3JlYXRlZC5lbWl0KHtcclxuICAgICAgICBmb3JtTmFtZTogdGhpcy5mb3JtTmFtZSxcclxuICAgICAgICBmb3JtR3JvdXA6IHRoaXMuZm9ybSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAvKlxyXG4gICAgaWYgKHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSA9PT0gXCJXRUJBUFBcIikge1xyXG4gICAgKi9cclxuXHJcbiAgICAgIGlmICghdGhpcy5kaXNhYmxlU2F2ZUJ1dHRvbikge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSBbXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfU0FWRSxcclxuICAgICAgICAgIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9DQU5DRUwsXHJcbiAgICAgICAgXVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSBbXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfQ0FOQ0VMLFxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSA9PT0gXCJQT1JUQUxcIikge1xyXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZVNhdmVCdXR0b24pIHtcclxuICAgICAgICB0aGlzLmJ1dHRvbkl0ZW1zID0gW1xyXG4gICAgICAgICAgRW51bUNvcmVCdXR0b25WTlNDb2RlLlNFTkQsXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuQ0FOQ0VMLFxyXG4gICAgICAgICAgRW51bUNvcmVCdXR0b25WTlNDb2RlLlNBVkUsXHJcbiAgICAgICAgXVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSBbXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuU0VORCxcclxuICAgICAgICAgIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5DQU5DRUwsXHJcbiAgICAgICAgXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAqL1xyXG5cclxuICAgIGlmICghIXRoaXMuY3VzdG9tRm9ybUJ1dHRvbkl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSB0aGlzLmN1c3RvbUZvcm1CdXR0b25JdGVtcztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tb2RlJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHgpID0+ICh0aGlzLmlzVXBkYXRlTW9kZSA9IHggPT09IEVudW1Db3JlUGFnZUVkaXRNb2RlLlVQREFURSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLm1vZGUkKTtcclxuXHJcbiAgICAvKiBTVEFSVDogQ2hlY2sgaWYgaWQgZmllbGQgaXMgYXZhaWxhYmxlICovXHJcbiAgICBpZiAoISEhdGhpcy5mb3JtLmdldCgnaWQnKSAmJiBpc0Rldk1vZGUoKSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICBgXHJcbiAgICAgICAgICAgIENvbnRyb2wgXCJpZFwiIGlzIG1hbmRhdG9yeS4gUGxlYXNlIGRlZmluZSBvbmUgaW4geW91ciBidXNzaW5lc3MgY29tcG9uZW50LiBZb3UgY2FuIGFzc2lnbiBpdHMgXCJoaWRkZW5cIiBwcm9wZXJ0eSB0byB0cnVlIGlmIG5lZWRlZC5cclxuICAgICAgICAgIGAsXHJcbiAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8qIEVORDogQ2hlY2sgaWYgaWQgZmllbGQgaXMgYXZhaWxhYmxlICovXHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIC8qIFNUQVJUOiBDaGVjayBpZiBlYWNoIGZpZWxkIGlzIHVuaXF1ZSAqL1xyXG5cclxuICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5jb3JlRm9ybVNlcnZpY2UuZ2V0QWxsRm9ybUJhc2VDb250cm9sTmFtZXMoXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uc1xyXG4gICAgICApO1xyXG5cclxuICAgICAgZmllbGRzLnJlZHVjZSgocCwgYykgPT4ge1xyXG4gICAgICAgIGlmIChjID09PSAnJykge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgIGBGb3JtIGNvbnRyb2wgbmFtZSBtdXN0IGJlIGRlZmluZGVkLCAnJHtjfScgaXMgaW52YWxpZCBmb3JtIGNvbnRyb2wgbmFtZSEhIWAsXHJcbiAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAocCA9PT0gYykge1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICBgRHVwbGljYXRlIGZvcm0gY29udHJvbCBuYW1lOiAnJHtjfScuIENvbnNpZGVyIHRvIHByZWRlZmluZSBvbmUgT05MWSEhIS5gLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjO1xyXG4gICAgICB9KTtcclxuICAgICAgLyogRU5EOiBDaGVjayBpZiBlYWNoIGZpZWxkIGlzIHVuaXF1ZSAqL1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm11bHRpTGFuZ3VhZ2VTZXJ2aWNlLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25Gb3JtUmVmQ3JlYXRlZC5lbWl0KHRoaXMuZm9ybVJlZik7XHJcbiAgfVxyXG5cclxuICBvbkZvcm1TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmNoZWNrRXJyb3IkLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAoISF0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5wYXlMb2FkID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtPy5nZXRSYXdWYWx1ZSgpLCBudWxsLCAyKTtcclxuICAgICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvcm1TYXZlKCkge1xyXG4gICAgdGhpcy5jaGVja0Vycm9yJC5uZXh0KHRydWUpO1xyXG4gICAgaWYgKCEhdGhpcy5mb3JtLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMucGF5TG9hZCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSwgbnVsbCwgMik7XHJcbiAgICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy5mb3JtPy5nZXRSYXdWYWx1ZSgpKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0Vycm9yJC5uZXh0KGZhbHNlKSwgMzAwMCk7XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbExvY2FsKCkge1xyXG4gICAgdGhpcy5vbkNhbmNhbC5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUGF5bG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGF5TG9hZCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSwgbnVsbCwgMik7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWxpZG9yT3ZlcnZpZXcoKTogdm9pZCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IHsga2V5OiBzdHJpbmc7IGVycm9yczogYW55W10gfVtdID0gW107XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGtleSkhO1xyXG4gICAgICBjb25zdCBlcnJvcnM6IGFueVtdID0gW107XHJcbiAgICAgIGlmICghIWNvbnRyb2wuaW52YWxpZCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzISkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICBlcnJvcnMucHVzaChrZXkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICBrZXksXHJcbiAgICAgICAgZXJyb3JzLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy52YWxpZGF0b3JPdmVydmlldyA9IEpTT04uc3RyaW5naWZ5KHJlc3VsdCwgbnVsbCwgMik7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoKHgpID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljayhlOiBJQ29yZUJ1dHRvblZOUyk6IHZvaWQge1xyXG5cclxuICAgIHN3aXRjaCAoZS5jb2RlKSB7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0NBTkNFTDpcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuQ0FOQ0VMOlxyXG4gICAgICAgIHRoaXMub25DYW5jZWxMb2NhbCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9TQVZFOlxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5TRU5EOlxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9ERUxFVEU6XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0xJUVVJREFURV9DT05UUkFDVDpcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuT05GT1JNREVMRVRFOlxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5TQVZFX1BBU1NXT1JEOlxyXG4gICAgICAgIHRoaXMub25Gb3JtU3VibWl0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLlNBVkU6XHJcbiAgICAgICAgdGhpcy5vbkZvcm1TYXZlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoISFmb3JtKSB7XHJcbjxkaXYgY2xhc3M9XCJjb3JlLWZvcm0tY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGZvcm0gI2Zvcm1SZWYgKG5nU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICAgIEBpZiAoISFsZWZ0SW5wdXRTZWN0aW9ucykge1xyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInY29sLW1kLScgKyAobGVmdElucHV0U2VjdGlvbnNGbGV4U2l6ZSB8fCAwKVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2YgbGVmdElucHV0U2VjdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kLW5vbmVdPVwiKCEhaXNVcGRhdGVNb2RlICYmIHNlY3Rpb24uYWRkTW9kZU9ubHkpIHx8ICghISFpc1VwZGF0ZU1vZGUgJiYgc2VjdGlvbi51cGRhdGVNb2RlT25seSkgfHwgISFzZWN0aW9uLmhpZGRlblwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhc2VjdGlvbi5jYXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWltZy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbWdcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcHRpb25cIj57eyBzZWN0aW9uLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmcgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBzZWN0aW9uLnJvd3M7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWIxNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChjb2wgb2Ygcm93OyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiJ2NvbC1tZC0nICsgY29sLmZsZXhTaXplXCIgW2NsYXNzLmdyaWQtYnVmZmVyXT1cImNvbC5jb250cm9sVHlwZT09PSdHUklEQlVGRkVSJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWNvbnRyb2xdPVwiY29sLmNvbnRyb2xUeXBlPT09J0JVVFRPTidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb3JlLWNvbnRyb2wgW2NvbnRyb2xdPVwiY29sXCIgW2Zvcm1dPVwiZm9ybVwiIFtjaGVja0Vycm9yJF09XCJjaGVja0Vycm9yJFwiPjwvY29yZS1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiJ2NvbC1tZC0nICsgKDEyIC0gKGxlZnRJbnB1dFNlY3Rpb25zRmxleFNpemUgfHwgMCkpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmQtbm9uZV09XCIoISFpc1VwZGF0ZU1vZGUgJiYgc2VjdGlvbi5hZGRNb2RlT25seSkgfHwgKCEhIWlzVXBkYXRlTW9kZSAmJiBzZWN0aW9uLnVwZGF0ZU1vZGVPbmx5KSB8fCAhIXNlY3Rpb24uaGlkZGVuXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoISFzZWN0aW9uLmNhcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXItbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWltZ1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FwdGlvblwiPnt7IHNlY3Rpb24uY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZyB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAocm93IG9mIHNlY3Rpb24ucm93czsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYjE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbCBvZiByb3c7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInY29sLW1kLScgKyBjb2wuZmxleFNpemVcIiBbY2xhc3MuZ3JpZC1idWZmZXJdPVwiY29sLmNvbnRyb2xUeXBlPT09J0dSSURCVUZGRVInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idXR0b24tY29udHJvbF09XCJjb2wuY29udHJvbFR5cGU9PT0nQlVUVE9OJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtY29udHJvbCBbY29udHJvbF09XCJjb2xcIiBbZm9ybV09XCJmb3JtXCIgW2NoZWNrRXJyb3IkXT1cImNoZWNrRXJyb3IkXCI+PC9jb3JlLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgQGlmICghIWJvdHRvbVRlbXBsYXRlUmVmKSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvdHRvbVRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaDEwXCI+PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxyXG5cclxuICAgICAgICAgICAgPGNvcmUtYnV0dG9uLWdyb3VwLXZucyBbc2hvd0NhcHRpb25dPVwic2hvd0NhcHRpb25CdXR0b25cIiBbZm9ySGVhZGVyXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIiBbc2hvd25JdGVtc109XCJidXR0b25JdGVtc1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbkdyb3VwQ3VzdG9tXCI+PC9jb3JlLWJ1dHRvbi1ncm91cC12bnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB0ZXh0XCIgKGNsaWNrKT1cInVwZGF0ZVBheWxvYWQoKVwiPlNob3dcclxuICAgICAgICAgICAgICAgIHZhbHVlczwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHRleHRcIiAoY2xpY2spPVwidXBkYXRlVmFsaWRvck92ZXJ2aWV3KClcIj5TaG93XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuICAgIDwvZm9ybT5cclxuXHJcbiAgICBAaWYgKCEhcGF5TG9hZCAmJiBpc0Rldk1vZGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvdyBwYXlsb2FkLXByZXZpZXdcIj5cclxuICAgICAgICA8c3Ryb25nPkN1cnJlbnQgdmFsdWVzPC9zdHJvbmc+PGJyPnt7cGF5TG9hZH19XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKCEhdmFsaWRhdG9yT3ZlcnZpZXcgJiYgaXNEZXZNb2RlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgcGF5bG9hZC1wcmV2aWV3XCI+XHJcbiAgICAgICAgPHN0cm9uZz5DdXJyZW50IGVycm9yczwvc3Ryb25nPjxicj57e3ZhbGlkYXRvck92ZXJ2aWV3fX1cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuPC9kaXY+XHJcbn0iXX0=
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZvcm0vY29yZS1mb3JtL2NvcmUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1mb3JtL2NvcmUtZm9ybS9jb3JlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUE4QixTQUFTLEVBQUUsU0FBUyxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlGLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBR2hILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUZBQW1GLENBQUM7Ozs7Ozs7OztBQXNCaEksTUFBTSxPQUFPLGlCQUFpQjtJQW9DNUIsWUFDVSxrQkFBc0MsRUFD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Vmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBpc0Rldk1vZGUsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUNvcmVGb3JtU2VjdGlvbiB9IGZyb20gJy4vZW51bS1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ29yZUNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS1jb250cm9sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bUNvcmVQYWdlRWRpdE1vZGUgfSBmcm9tICcuLi8uLi9jb3JlLXBhZ2UtZWRpdC9FbnVtQ29yZVBhZ2VFZGl0TW9kZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtU2VydmljZSB9IGZyb20gJy4uL2NvcmUtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25WTlMgfSBmcm9tICcuLi8uLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL0lDb3JlQnV0dG9uVk5TJztcclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25WTlNDb2RlIH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29yZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWNvbnRyb2wvY29yZS1jb250cm9sL2NvcmUtY29udHJvbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvbkdyb3VwVm5zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybUVtaXRPbkZvcm1DcmVhdGVkIHtcclxuICBmb3JtTmFtZTogc3RyaW5nO1xyXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlQ29udHJvbENvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBDb3JlQnV0dG9uR3JvdXBWbnNDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgZm9ybU5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3VibWl0VGV4dCE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgbGVmdElucHV0U2VjdGlvbnMhOiBJQ29yZUZvcm1TZWN0aW9uW107XHJcbiAgQElucHV0KCkgbGVmdElucHV0U2VjdGlvbnNGbGV4U2l6ZSE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpbnB1dFNlY3Rpb25zITogSUNvcmVGb3JtU2VjdGlvbltdO1xyXG4gIEBJbnB1dCgpIG1vZGUkITogQmVoYXZpb3JTdWJqZWN0PEVudW1Db3JlUGFnZUVkaXRNb2RlPjtcclxuICBASW5wdXQoKSBib3R0b21UZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgY3VzdG9tRm9ybUJ1dHRvbkl0ZW1zITogRW51bUNvcmVCdXR0b25WTlNDb2RlW107IC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb25CdXR0b24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVTYXZlQnV0dG9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjaGVja0Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBAT3V0cHV0KCkgb25Gb3JtQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUR5bmFtaWNGb3JtRW1pdE9uRm9ybUNyZWF0ZWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRm9ybVJlZkNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRSZWY8YW55Pj4oKTtcclxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DYW5jYWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJQ29yZUJ1dHRvblZOUz4oKTtcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1SZWYnKSBmb3JtUmVmITogRWxlbWVudFJlZjtcclxuXHJcbiAgYnV0dG9uSXRlbXMhOiBFbnVtQ29yZUJ1dHRvblZOU0NvZGVbXTtcclxuXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBzZWN0aW9ucyE6IElDb3JlRm9ybVNlY3Rpb25bXTtcclxuICBsYW5nITogc3RyaW5nO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHBheUxvYWQgPSAnJztcclxuICB2YWxpZGF0b3JPdmVydmlldzogYW55O1xyXG4gIGlzRGV2TW9kZSE6IGJvb2xlYW47XHJcbiAgaXNVcGRhdGVNb2RlITogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvcmVDb250cm9sU2VydmljZTogQ29yZUNvbnRyb2xTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtdWx0aUxhbmd1YWdlU2VydmljZTogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlRm9ybVNlcnZpY2U6IENvcmVGb3JtU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0Rldk1vZGUgPSBpc0Rldk1vZGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VjdGlvbnMobmV3U2VjdGlvbnM6IElDb3JlRm9ybVNlY3Rpb25bXSk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuc2VjdGlvbnMubWFwKChzZWN0aW9uLCBzZWN0aW9uSW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgbmV3U2VjdGlvbiA9IG5ld1NlY3Rpb25zW3NlY3Rpb25JbmRleF07XHJcbiAgICAgIHNlY3Rpb24ucm93cy5tYXAoKHJvdywgcm93SW5kZXgpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdSb3cgPSBuZXdTZWN0aW9uLnJvd3Nbcm93SW5kZXhdO1xyXG4gICAgICAgIHJvdy5tYXAoKGNvbnRyb2wsIGNvbnRyb2xJbmRleCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmV3Q29udHJvbCA9IG5ld1Jvd1tjb250cm9sSW5kZXhdO1xyXG5cclxuICAgICAgICAgIC8qIFRIRSBPTkxZIFBST1AgVE8gQkUgVURBVEVEIElTICdoaWRkZW4nLCBUSEUgT1RIRVJTIFNIT1VMRCBCRSBNQU5JUFVMQVRFRCBUSFJPVUdIIHRoaXMuZm9ybS5nZXQoWU9VUl9DT05UUk9MX05BTUUpLi4uICovXHJcbiAgICAgICAgICBjb250cm9sLmhpZGRlbiA9IG5ld0NvbnRyb2w/LmhpZGRlbjtcclxuICAgICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLyogI3JlZ2lvbiBPY3QgdGhlIDExdGggMjAyMyAqL1xyXG4gICAgICAvKiBTb21lIHNlY3Rpb25zIHdhcyBwb3NpYmx5IGhhdmUgcmVuZGVyT2ZmPXRydWUgZnJvbSBwcmV2aW91cyBzdGF0ZSBhbmQgdGhlaXIgY29udHJvbHMgbXVzdCBiZSBjcmVhdGVkL3JlbW92ZSAqL1xyXG4gICAgICAvKlxyXG4gICAgICBCVVQgVEhJUyBUQVNLIElTIEhBUkQgU08gRkFSXHJcbiAgICAgICovXHJcbiAgICAgIC8qICNlbmRyZWdpb24gT2N0IHRoZSAxMXRoIDIwMjMgKi9cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaW5wdXRTZWN0aW9ucyddKSB7XHJcbiAgICAgIGxldCBuZXdTZWN0aW9uczogSUNvcmVGb3JtU2VjdGlvbltdID1cclxuICAgICAgICBjaGFuZ2VzWydpbnB1dFNlY3Rpb25zJ10uY3VycmVudFZhbHVlO1xyXG5cclxuICAgICAgaWYgKCEhIXRoaXMuZm9ybSkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvbnMgPSBuZXdTZWN0aW9ucztcclxuXHJcbiAgICAgICAgbGV0IGxlZnRHcm91cDtcclxuICAgICAgICBsZXQgZm9ybTogRm9ybUdyb3VwPGFueT47XHJcblxyXG4gICAgICAgIGNvbnN0IG1haW5Hcm91cCA9IHRoaXMuY29yZUNvbnRyb2xTZXJ2aWNlLnRvR3JvdXAodGhpcy5zZWN0aW9ucyk7XHJcblxyXG4gICAgICAgIGlmICghIXRoaXMubGVmdElucHV0U2VjdGlvbnMpIHtcclxuICAgICAgICAgIGxlZnRHcm91cCA9IHRoaXMuY29yZUNvbnRyb2xTZXJ2aWNlLnRvR3JvdXAodGhpcy5sZWZ0SW5wdXRTZWN0aW9ucyk7XHJcbiAgICAgICAgICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7IC4uLmxlZnRHcm91cCwgLi4ubWFpbkdyb3VwIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3JtID0gbmV3IEZvcm1Hcm91cChtYWluR3JvdXApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWN0aW9ucyhuZXdTZWN0aW9ucyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub25Gb3JtQ3JlYXRlZC5lbWl0KHtcclxuICAgICAgICBmb3JtTmFtZTogdGhpcy5mb3JtTmFtZSxcclxuICAgICAgICBmb3JtR3JvdXA6IHRoaXMuZm9ybSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAvKlxyXG4gICAgaWYgKHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSA9PT0gXCJXRUJBUFBcIikge1xyXG4gICAgKi9cclxuXHJcbiAgICAgIGlmICghdGhpcy5kaXNhYmxlU2F2ZUJ1dHRvbikge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSBbXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfU0FWRSxcclxuICAgICAgICAgIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9DQU5DRUwsXHJcbiAgICAgICAgXVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSBbXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuTk9ORV9IRUFERVJfQ0FOQ0VMLFxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSA9PT0gXCJQT1JUQUxcIikge1xyXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZVNhdmVCdXR0b24pIHtcclxuICAgICAgICB0aGlzLmJ1dHRvbkl0ZW1zID0gW1xyXG4gICAgICAgICAgRW51bUNvcmVCdXR0b25WTlNDb2RlLlNFTkQsXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuQ0FOQ0VMLFxyXG4gICAgICAgICAgRW51bUNvcmVCdXR0b25WTlNDb2RlLlNBVkUsXHJcbiAgICAgICAgXVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSBbXHJcbiAgICAgICAgICBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuU0VORCxcclxuICAgICAgICAgIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5DQU5DRUwsXHJcbiAgICAgICAgXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAqL1xyXG5cclxuICAgIGlmICghIXRoaXMuY3VzdG9tRm9ybUJ1dHRvbkl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uSXRlbXMgPSB0aGlzLmN1c3RvbUZvcm1CdXR0b25JdGVtcztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tb2RlJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHgpID0+ICh0aGlzLmlzVXBkYXRlTW9kZSA9IHggPT09IEVudW1Db3JlUGFnZUVkaXRNb2RlLlVQREFURSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLm1vZGUkKTtcclxuXHJcbiAgICAvKiBTVEFSVDogQ2hlY2sgaWYgaWQgZmllbGQgaXMgYXZhaWxhYmxlICovXHJcbiAgICBpZiAoISEhdGhpcy5mb3JtLmdldCgnaWQnKSAmJiBpc0Rldk1vZGUoKSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICBgXHJcbiAgICAgICAgICAgIENvbnRyb2wgXCJpZFwiIGlzIG1hbmRhdG9yeS4gUGxlYXNlIGRlZmluZSBvbmUgaW4geW91ciBidXNzaW5lc3MgY29tcG9uZW50LiBZb3UgY2FuIGFzc2lnbiBpdHMgXCJoaWRkZW5cIiBwcm9wZXJ0eSB0byB0cnVlIGlmIG5lZWRlZC5cclxuICAgICAgICAgIGAsXHJcbiAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8qIEVORDogQ2hlY2sgaWYgaWQgZmllbGQgaXMgYXZhaWxhYmxlICovXHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIC8qIFNUQVJUOiBDaGVjayBpZiBlYWNoIGZpZWxkIGlzIHVuaXF1ZSAqL1xyXG5cclxuICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5jb3JlRm9ybVNlcnZpY2UuZ2V0QWxsRm9ybUJhc2VDb250cm9sTmFtZXMoXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uc1xyXG4gICAgICApO1xyXG5cclxuICAgICAgZmllbGRzLnJlZHVjZSgocCwgYykgPT4ge1xyXG4gICAgICAgIGlmIChjID09PSAnJykge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgIGBGb3JtIGNvbnRyb2wgbmFtZSBtdXN0IGJlIGRlZmluZGVkLCAnJHtjfScgaXMgaW52YWxpZCBmb3JtIGNvbnRyb2wgbmFtZSEhIWAsXHJcbiAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAocCA9PT0gYykge1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICBgRHVwbGljYXRlIGZvcm0gY29udHJvbCBuYW1lOiAnJHtjfScuIENvbnNpZGVyIHRvIHByZWRlZmluZSBvbmUgT05MWSEhIS5gLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjO1xyXG4gICAgICB9KTtcclxuICAgICAgLyogRU5EOiBDaGVjayBpZiBlYWNoIGZpZWxkIGlzIHVuaXF1ZSAqL1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm11bHRpTGFuZ3VhZ2VTZXJ2aWNlLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25Gb3JtUmVmQ3JlYXRlZC5lbWl0KHRoaXMuZm9ybVJlZik7XHJcbiAgfVxyXG5cclxuICBvbkZvcm1TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmNoZWNrRXJyb3IkLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAoISF0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5wYXlMb2FkID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtPy5nZXRSYXdWYWx1ZSgpLCBudWxsLCAyKTtcclxuICAgICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvcm1TYXZlKCkge1xyXG4gICAgdGhpcy5jaGVja0Vycm9yJC5uZXh0KHRydWUpO1xyXG4gICAgaWYgKCEhdGhpcy5mb3JtLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMucGF5TG9hZCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSwgbnVsbCwgMik7XHJcbiAgICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy5mb3JtPy5nZXRSYXdWYWx1ZSgpKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0Vycm9yJC5uZXh0KGZhbHNlKSwgMzAwMCk7XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbExvY2FsKCkge1xyXG4gICAgdGhpcy5vbkNhbmNhbC5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUGF5bG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGF5TG9hZCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSwgbnVsbCwgMik7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWxpZG9yT3ZlcnZpZXcoKTogdm9pZCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IHsga2V5OiBzdHJpbmc7IGVycm9yczogYW55W10gfVtdID0gW107XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGtleSkhO1xyXG4gICAgICBjb25zdCBlcnJvcnM6IGFueVtdID0gW107XHJcbiAgICAgIGlmICghIWNvbnRyb2wuaW52YWxpZCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzISkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICBlcnJvcnMucHVzaChrZXkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICBrZXksXHJcbiAgICAgICAgZXJyb3JzLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy52YWxpZGF0b3JPdmVydmlldyA9IEpTT04uc3RyaW5naWZ5KHJlc3VsdCwgbnVsbCwgMik7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoKHgpID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljayhlOiBJQ29yZUJ1dHRvblZOUyk6IHZvaWQge1xyXG5cclxuICAgIHN3aXRjaCAoZS5jb2RlKSB7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0NBTkNFTDpcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuQ0FOQ0VMOlxyXG4gICAgICAgIHRoaXMub25DYW5jZWxMb2NhbCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9TQVZFOlxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5TRU5EOlxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5OT05FX0hFQURFUl9ERUxFVEU6XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLk5PTkVfSEVBREVSX0xJUVVJREFURV9DT05UUkFDVDpcclxuICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuT05GT1JNREVMRVRFOlxyXG4gICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5TQVZFX1BBU1NXT1JEOlxyXG4gICAgICAgIHRoaXMub25Gb3JtU3VibWl0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLlNBVkU6XHJcbiAgICAgICAgdGhpcy5vbkZvcm1TYXZlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoISFmb3JtKSB7XHJcbjxkaXYgY2xhc3M9XCJjb3JlLWZvcm0tY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGZvcm0gI2Zvcm1SZWYgKG5nU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICAgIEBpZiAoISFsZWZ0SW5wdXRTZWN0aW9ucykge1xyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInY29sLW1kLScgKyAobGVmdElucHV0U2VjdGlvbnNGbGV4U2l6ZSB8fCAwKVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2YgbGVmdElucHV0U2VjdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kLW5vbmVdPVwiKCEhaXNVcGRhdGVNb2RlICYmIHNlY3Rpb24uYWRkTW9kZU9ubHkpIHx8ICghISFpc1VwZGF0ZU1vZGUgJiYgc2VjdGlvbi51cGRhdGVNb2RlT25seSkgfHwgISFzZWN0aW9uLmhpZGRlblwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhc2VjdGlvbi5jYXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWltZy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbWdcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcHRpb25cIj57eyBzZWN0aW9uLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmcgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBzZWN0aW9uLnJvd3M7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWIxNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChjb2wgb2Ygcm93OyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiJ2NvbC1tZC0nICsgY29sLmZsZXhTaXplXCIgW2NsYXNzLmdyaWQtYnVmZmVyXT1cImNvbC5jb250cm9sVHlwZT09PSdHUklEQlVGRkVSJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWNvbnRyb2xdPVwiY29sLmNvbnRyb2xUeXBlPT09J0JVVFRPTidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb3JlLWNvbnRyb2wgW2NvbnRyb2xdPVwiY29sXCIgW2Zvcm1dPVwiZm9ybVwiIFtjaGVja0Vycm9yJF09XCJjaGVja0Vycm9yJFwiPjwvY29yZS1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiJ2NvbC1tZC0nICsgKDEyIC0gKGxlZnRJbnB1dFNlY3Rpb25zRmxleFNpemUgfHwgMCkpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmQtbm9uZV09XCIoISFpc1VwZGF0ZU1vZGUgJiYgc2VjdGlvbi5hZGRNb2RlT25seSkgfHwgKCEhIWlzVXBkYXRlTW9kZSAmJiBzZWN0aW9uLnVwZGF0ZU1vZGVPbmx5KSB8fCAhIXNlY3Rpb24uaGlkZGVuXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoISFzZWN0aW9uLmNhcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXItbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWltZ1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FwdGlvblwiPnt7IHNlY3Rpb24uY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZyB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAocm93IG9mIHNlY3Rpb24ucm93czsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYjE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbCBvZiByb3c7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInY29sLW1kLScgKyBjb2wuZmxleFNpemVcIiBbY2xhc3MuZ3JpZC1idWZmZXJdPVwiY29sLmNvbnRyb2xUeXBlPT09J0dSSURCVUZGRVInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idXR0b24tY29udHJvbF09XCJjb2wuY29udHJvbFR5cGU9PT0nQlVUVE9OJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtY29udHJvbCBbY29udHJvbF09XCJjb2xcIiBbZm9ybV09XCJmb3JtXCIgW2NoZWNrRXJyb3IkXT1cImNoZWNrRXJyb3IkXCI+PC9jb3JlLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgQGlmICghIWJvdHRvbVRlbXBsYXRlUmVmKSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvdHRvbVRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaDEwXCI+PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxyXG5cclxuICAgICAgICAgICAgPGNvcmUtYnV0dG9uLWdyb3VwLXZucyBbc2hvd0NhcHRpb25dPVwic2hvd0NhcHRpb25CdXR0b25cIiBbZm9ySGVhZGVyXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIiBbc2hvd25JdGVtc109XCJidXR0b25JdGVtc1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbkdyb3VwQ3VzdG9tXCI+PC9jb3JlLWJ1dHRvbi1ncm91cC12bnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgZC1mbGV4IGQtZmxleC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldi1idXR0b25cIiAoY2xpY2spPVwidXBkYXRlUGF5bG9hZCgpXCI+U2hvd1xyXG4gICAgICAgICAgICAgICAgdmFsdWVzPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXYtYnV0dG9uXCIgKGNsaWNrKT1cInVwZGF0ZVZhbGlkb3JPdmVydmlldygpXCI+U2hvd1xyXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yczwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICA8L2Zvcm0+XHJcblxyXG4gICAgQGlmICghIXBheUxvYWQgJiYgaXNEZXZNb2RlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgcGF5bG9hZC1wcmV2aWV3XCI+XHJcbiAgICAgICAgPHN0cm9uZz5DdXJyZW50IHZhbHVlczwvc3Ryb25nPjxicj57e3BheUxvYWR9fVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICghIXZhbGlkYXRvck92ZXJ2aWV3ICYmIGlzRGV2TW9kZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IHBheWxvYWQtcHJldmlld1wiPlxyXG4gICAgICAgIDxzdHJvbmc+Q3VycmVudCBlcnJvcnM8L3N0cm9uZz48YnI+e3t2YWxpZGF0b3JPdmVydmlld319XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbjwvZGl2PlxyXG59Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtZm9ybS9jb3JlLWZvcm0vZW51bS1pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGVcIjtcclxuaW1wb3J0IHsgSUNvcmVEcm9wZG93bk9wdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL0lDb3JlRHJvcGRvd25PcHRpb25cIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRW51bUNvcmVGaWxlVXBsb2FkZXJUeXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUtZmlsZS11cGxvYWRlci9jb3JlLWZpbGUtdXBsb2FkZXIvY29yZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFbnVtSWNvbkNsYXNzIH0gZnJvbSBcIi4uLy4uLy4uL2VudW0vRW51bUljb25DbGFzc1wiO1xyXG5pbXBvcnQgeyBJQ29yZUNoZWNrbGlzdE9wdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUNvcmVMaXN0T3B0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUtbGlzdC9jb3JlLWxpc3QvY29yZS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tIFwiLi4vLi4vY29yZS10YWJsZS9FbnVtQ29yZVRhYmxlUGlwZVR5cGVcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUNvcmVSYWRpb09wdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlLXJhZGlvLWdyb3VwL2NvcmUtcmFkaW8tZ3JvdXAvY29yZS1yYWRpby1ncm91cC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUNvcmVEYXRlUGlja2VyUmFuZ2UgfSBmcm9tIFwiLi4vLi4vY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IElDb3JlUGFnZUxpc3RBcGlEZWZpbml0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBJQ29yZVRhYmxlQ29sdW1uSXRlbSB9IGZyb20gXCIuLi8uLi9jb3JlLXRhYmxlL0lDb3JlVGFibGVDb2x1bW5JdGVtXCI7XHJcbmltcG9ydCB7IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlXCI7XHJcbmltcG9ydCB7IElGaWx0ZXJPcGVyYXRvciB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0XCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtQmFzZURyb3Bkb3duT3B0aW9uIHtcclxuICBrZXk6IHN0cmluZyxcclxuICB2YWx1ZTogc3RyaW5nLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElWYWxpZGF0b3Ige1xyXG4gIG5hbWU6IHN0cmluZywgLy8gbXVzdCBlcXVhbCB0aGUgZXJyb3Iga2V5XHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck1lc3NhZ2U6IEVudW1UcmFuc2xhdGVLZXksXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVGb3JtQ29udHJvbFNlZWtlckV4dHJhQmluZGluZ01vZGVsIHtcclxuICB0YWtlRnJvbTogc3RyaW5nO1xyXG4gIGJpbmRUbzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb3JlRm9ybVNlY3Rpb24ge1xyXG4gIGNhcHRpb24/OiBFbnVtVHJhbnNsYXRlS2V5LFxyXG4gIGljb25DbGFzcz86IEVudW1JY29uQ2xhc3MsXHJcbiAgYWRkTW9kZU9ubHk/OiBib29sZWFuOyAvLyBTb21lIHNlY3Rpb24gZm9yICBlZGl0IGNvbXBvbmVudCBuZWVkIG5vdCB0byBjcmVhdGUgYW5kIHJlbmRlciBwYXJ0aWN1bGFyIHNlY3Rpb24uIElmIG5lZWRlZCwgc2V0IGFkZE1vZGVPbmx5IHRvIHRydWVcclxuICB1cGRhdGVNb2RlT25seT86IGJvb2xlYW47IC8vIFNvbWUgc2VjdGlvbiBmb3IgIGVkaXQgY29tcG9uZW50IG5lZWQgbm90IHRvIGNyZWF0ZSBhbmQgcmVuZGVyIHBhcnRpY3VsYXIgc2VjdGlvbi4gSWYgbmVlZGVkLCBzZXQgdXBkYXRlTW9kZU9ubHkgdG8gdHJ1ZVxyXG4gIGhpZGRlbj86IGJvb2xlYW47IC8vIFNvbWV0aW1lcyB3ZSBuZWVkIHNvbWUgc2VjdGlvbiBub3QgdG8gYmUgaW5pdGlhbGx5IHJlbmRlcmVkXHJcbiAgcm93czogSUZvcm1CYXNlQ29udHJvbFtdW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVGb3JtU2VjdGlvblRhYiBleHRlbmRzIElDb3JlRm9ybVNlY3Rpb24ge1xyXG4gIHRhYlRyYW5zbGF0ZUNvZGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUJhc2VDb250cm9sIGV4dGVuZHNcclxuICBJQ29yZUNvbnRyb2xNYW5kYXRvcnksXHJcbiAgSUNvcmVDb250cm9sT3B0aW9uYWwsXHJcbiAgSUNvcmVJbnB1dFR5cGVOdW1iZXIsXHJcbiAgSUNvcmVUZXh0YXJlYSxcclxuICBJQ29yZUxpc3QsXHJcbiAgSUNvcmVTZWVrZXIsXHJcbiAgSUNvcmVNY2MsXHJcbiAgSUNvcmVEYXRlUGlja2VyLFxyXG4gIElDb3JlR3JpZEJ1ZmZlcixcclxuICBJQ29yZUZpbGVVcGxvYWRlcixcclxuICBJQ29yZVJhZGlvR3JvdXAsXHJcbiAgSUNvcmVEcm9wZG93bixcclxuICBJQ29yZUNoZWNrbGlzdCxcclxuICBJQ29yZUF0dGFjaG1lbnQgeyB9XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVDb250cm9sTWFuZGF0b3J5IHtcclxuICBmbGV4U2l6ZTogbnVtYmVyO1xyXG4gIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlO1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgbGFiZWw6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgdmFsdWU6IGFueTtcclxufVxyXG5pbnRlcmZhY2UgSUNvcmVDb250cm9sT3B0aW9uYWwge1xyXG5cclxuICByZWFkb25seT86IGJvb2xlYW4sXHJcbiAgaGlkZGVuPzogYm9vbGVhbixcclxuICBkaXNhYmxlZD86IGJvb2xlYW4sXHJcbiAgdHlwZT86IHN0cmluZyxcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcblxyXG4gIHBpcGU/OiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUsXHJcbiAgdG9vbHRpcD86IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgaGludD86IEVudW1UcmFuc2xhdGVLZXk7XHJcblxyXG4gIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10sXHJcbiAgZm9jdXMkPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgYmx1ciQ/OiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBjbGljayQ/OiBCZWhhdmlvclN1YmplY3Q8YW55PjsgLy8gSWYgdXNlciBjbGlja3Mgc29tZXdoZXJlLCB0aGUgY2xpY2sgdHJlYW0gY2FuIGJlIHRyYWNrZWQgZnJvbSB0aGUgY2FsbGVyXHJcblxyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVCaW5kaW5nV1lTSU5XWUcge1xyXG4gIGdldEJ5SWRPYmplY3QkPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgZ2V0QnlJZEFwaT86IGFwaTtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlSW5wdXRUeXBlTnVtYmVyIHtcclxuICBzdGVwPzogc3RyaW5nLCAvLyB3aGVuIHR5cGU6ICdudW1iZXInIGFuZCB5b3UgZGVzaXJlIGRlY2ltYWwgPT4gc3RlcDogJy4wMSdcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlVGV4dGFyZWEge1xyXG4gIHRleHRhcmVhUm93cz86IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlRHJvcGRvd24gZXh0ZW5kcyBJQ29yZUJpbmRpbmdXWVNJTldZRyB7XHJcbiAgZHJvcGRvd25PcHRpb25zJD86IEJlaGF2aW9yU3ViamVjdDxJQ29yZURyb3Bkb3duT3B0aW9uW10+O1xyXG4gIG9wdGlvbnM/OiBJRm9ybUJhc2VEcm9wZG93bk9wdGlvbltdLCAvLyBraeG7g20gdHJhIGzhuqFpIG3DoG4gaMOsbmggbsOgbyArIGThu7Egw6FuIG7DoG8gZMO5bmc/XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZUNoZWNrbGlzdCBleHRlbmRzIElDb3JlQmluZGluZ1dZU0lOV1lHIHtcclxuICBjaGVja2xpc3RPcHRpb25zJD86IEJlaGF2aW9yU3ViamVjdDxJQ29yZUNoZWNrbGlzdE9wdGlvbltdPjtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlTGlzdCBleHRlbmRzIElDb3JlQmluZGluZ1dZU0lOV1lHIHtcclxuICBsaXN0T3B0aW9ucz86IElDb3JlTGlzdE9wdGlvbltdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVTZWVrZXIgZXh0ZW5kcyBJQ29yZUJpbmRpbmdXWVNJTldZRywgSUNvcmVTZWVrZXJNdWx0aU1vZGUge1xyXG4gIG11bHRpTW9kZT86IGJvb2xlYW47XHJcbiAgc2Vla2VyU291cmNlVHlwZT86IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlO1xyXG4gIGJvdW5kRnJvbT86IHN0cmluZztcclxuICBzaG93bkZyb20/OiBzdHJpbmc7XHJcbiAgYWxzb0JpbmRUbz86IElDb3JlRm9ybUNvbnRyb2xTZWVrZXJFeHRyYUJpbmRpbmdNb2RlbFtdO1xyXG4gIHNlZWtlclZlcmlmeUlnbm9yZT86IGJvb2xlYW47XHJcbiAgcHJlRGVmaW5lZE91dGVyUGFyYW0kPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgcHJlRGVmaW5lZE91dGVyRmlsdGVyJD86IEJlaGF2aW9yU3ViamVjdDxJRmlsdGVyT3BlcmF0b3JbXT47XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZVNlZWtlck11bHRpTW9kZSBleHRlbmRzIElDb3JlU2Vla2VyTXVsdGlNb2RlRWRpdGFibGUge1xyXG4gIG9iamVjdExpc3QkPzogQmVoYXZpb3JTdWJqZWN0PGFueVtdPjtcclxuICBnZXRPYmplY3RMaXN0RnJvbT86IHN0cmluZztcclxuICBleGNsdWRlRXhpc3RpbmdMaXN0PzogYm9vbGVhbjtcclxuICBtdWx0aU1vZGVUYWJsZUhlaWdodD86IG51bWJlcjtcclxuICBtdWx0aU1vZGVSb3dIZWlnaHQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZVNlZWtlck11bHRpTW9kZUVkaXRhYmxlIGV4dGVuZHMgSUNvcmVTZWVrZXJNdWx0aU1vZGVFZGl0YWJsZUluZGlyZWN0QmluZGluZyB7XHJcbiAgbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zPzogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXTtcclxuICBtdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zPzogSUNvcmVGb3JtU2VjdGlvbltdO1xyXG4gIC8vc2VsZWN0ZWREYXRhJD86IEJlaGF2aW9yU3ViamVjdDxhbnlbXT47XHJcbiAgZWRpdEJ1ZmZlckRhdGEkPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgaW5kaXJlY3RCaW5kaW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlU2Vla2VyTXVsdGlNb2RlRWRpdGFibGVJbmRpcmVjdEJpbmRpbmcge1xyXG4gIGJpbmRHcmlkSWRUbz86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlTWNjIGV4dGVuZHMgSUNvcmVCaW5kaW5nV1lTSU5XWUcge1xyXG4gIGNvbHVtbnM/OiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdO1xyXG4gIGFwaURlZmluaXRpb24/OiBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbjtcclxuICBzZWxlY3RlZFJvdyQ/OiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBvdXRlclBhcmFtJD86IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG4gIHNob3duRnJvbT86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlRGF0ZVBpY2tlciB7XHJcbiAgcmFuZ2VMaW1pdD86IElDb3JlRGF0ZVBpY2tlclJhbmdlO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVHcmlkQnVmZmVyIHtcclxuICBncmlkQnVmZmVyRm9ybVNlY3Rpb25zPzogSUNvcmVGb3JtU2VjdGlvbltdO1xyXG4gIGdyaWRCdWZmZXJUYWJsZUNvbHVtbnM/OiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdO1xyXG4gIG9uQnVmZmVyRm9ybUNyZWF0ZWQ/OiAoZm9ybTogRm9ybUdyb3VwKSA9PiB2b2lkOyAvLyBVU0UgQ0FTRTogdGhpcy5mb3JtQnVmZmVyID0gZm9ybTsgdGhpcy5mb3JtQnVmZmVyLmdldCg8U09NRV9GSUVMRD4pPy52YWx1ZUNoYW5nZXMuLi4gIFxyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVGaWxlVXBsb2FkZXIge1xyXG4gIHVwbG9hZEZpbGVUeXBlPzogRW51bUNvcmVGaWxlVXBsb2FkZXJUeXBlO1xyXG4gIGZpbGVEYXRhQ29udHJvbE5hbWU/OiBzdHJpbmc7XHJcbiAgZmlsZU5hbWVDb250cm9sTmFtZT86IHN0cmluZztcclxuICBmaWxlVHlwZUNvbnRyb2xOYW1lPzogc3RyaW5nO1xyXG4gIHZlcnRpY2FsTW9kZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZVJhZGlvR3JvdXAge1xyXG4gIHJhZGlvR3JvdXBPcHRpb25zJD86IEJlaGF2aW9yU3ViamVjdDxJQ29yZVJhZGlvT3B0aW9uW10+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVBdHRhY2htZW50IHtcclxuICBhc3NpZ25Ubz86IHN0cmluZztcclxuICB2YWx1ZVRvU2hvdz86IHN0cmluZztcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtZm9ybS9jb3JlLWZvcm0vZW51bS1pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGVcIjtcclxuaW1wb3J0IHsgSUNvcmVEcm9wZG93bk9wdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL0lDb3JlRHJvcGRvd25PcHRpb25cIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRW51bUNvcmVGaWxlVXBsb2FkZXJUeXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUtZmlsZS11cGxvYWRlci9jb3JlLWZpbGUtdXBsb2FkZXIvY29yZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFbnVtSWNvbkNsYXNzIH0gZnJvbSBcIi4uLy4uLy4uL2VudW0vRW51bUljb25DbGFzc1wiO1xyXG5pbXBvcnQgeyBJQ29yZUNoZWNrbGlzdE9wdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUNvcmVMaXN0T3B0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUtbGlzdC9jb3JlLWxpc3QvY29yZS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVRhYmxlUGlwZVR5cGUgfSBmcm9tIFwiLi4vLi4vY29yZS10YWJsZS9FbnVtQ29yZVRhYmxlUGlwZVR5cGVcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUNvcmVSYWRpb09wdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlLXJhZGlvLWdyb3VwL2NvcmUtcmFkaW8tZ3JvdXAvY29yZS1yYWRpby1ncm91cC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSUNvcmVEYXRlUGlja2VyUmFuZ2UgfSBmcm9tIFwiLi4vLi4vY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IElDb3JlUGFnZUxpc3RBcGlEZWZpbml0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUtcGFnZS1saXN0L2NvcmUtcGFnZS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBJQ29yZVRhYmxlQ29sdW1uSXRlbSB9IGZyb20gXCIuLi8uLi9jb3JlLXRhYmxlL0lDb3JlVGFibGVDb2x1bW5JdGVtXCI7XHJcbmltcG9ydCB7IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlXCI7XHJcbmltcG9ydCB7IElGaWx0ZXJPcGVyYXRvciB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL0lRdWVyeUxpc3RSZXF1ZXN0XCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtQmFzZURyb3Bkb3duT3B0aW9uIHtcclxuICBrZXk6IHN0cmluZyxcclxuICB2YWx1ZTogc3RyaW5nLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElWYWxpZGF0b3Ige1xyXG4gIG5hbWU6IHN0cmluZywgLy8gbXVzdCBlcXVhbCB0aGUgZXJyb3Iga2V5XHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck1lc3NhZ2U6IEVudW1UcmFuc2xhdGVLZXksXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVGb3JtQ29udHJvbFNlZWtlckV4dHJhQmluZGluZ01vZGVsIHtcclxuICB0YWtlRnJvbTogc3RyaW5nO1xyXG4gIGJpbmRUbzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb3JlRm9ybVNlY3Rpb24ge1xyXG4gIGNhcHRpb24/OiBFbnVtVHJhbnNsYXRlS2V5LFxyXG4gIGljb25DbGFzcz86IEVudW1JY29uQ2xhc3MsXHJcbiAgYWRkTW9kZU9ubHk/OiBib29sZWFuOyAvLyBTb21lIHNlY3Rpb24gZm9yICBlZGl0IGNvbXBvbmVudCBuZWVkIG5vdCB0byBjcmVhdGUgYW5kIHJlbmRlciBwYXJ0aWN1bGFyIHNlY3Rpb24uIElmIG5lZWRlZCwgc2V0IGFkZE1vZGVPbmx5IHRvIHRydWVcclxuICB1cGRhdGVNb2RlT25seT86IGJvb2xlYW47IC8vIFNvbWUgc2VjdGlvbiBmb3IgIGVkaXQgY29tcG9uZW50IG5lZWQgbm90IHRvIGNyZWF0ZSBhbmQgcmVuZGVyIHBhcnRpY3VsYXIgc2VjdGlvbi4gSWYgbmVlZGVkLCBzZXQgdXBkYXRlTW9kZU9ubHkgdG8gdHJ1ZVxyXG4gIGhpZGRlbj86IGJvb2xlYW47IC8vIFNvbWV0aW1lcyB3ZSBuZWVkIHNvbWUgc2VjdGlvbiBub3QgdG8gYmUgaW5pdGlhbGx5IHJlbmRlcmVkXHJcbiAgcm93czogSUZvcm1CYXNlQ29udHJvbFtdW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVGb3JtU2VjdGlvblRhYiBleHRlbmRzIElDb3JlRm9ybVNlY3Rpb24ge1xyXG4gIHRhYlRyYW5zbGF0ZUNvZGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUJhc2VDb250cm9sIGV4dGVuZHNcclxuICBJQ29yZUNvbnRyb2xNYW5kYXRvcnksXHJcbiAgSUNvcmVDb250cm9sT3B0aW9uYWwsXHJcbiAgSUNvcmVJbnB1dFR5cGVOdW1iZXIsXHJcbiAgSUNvcmVUZXh0YXJlYSxcclxuICBJQ29yZUxpc3QsXHJcbiAgSUNvcmVTZWVrZXIsXHJcbiAgSUNvcmVNY2MsXHJcbiAgSUNvcmVEYXRlUGlja2VyLFxyXG4gIElDb3JlR3JpZEJ1ZmZlcixcclxuICBJQ29yZUZpbGVVcGxvYWRlcixcclxuICBJQ29yZVJhZGlvR3JvdXAsXHJcbiAgSUNvcmVEcm9wZG93bixcclxuICBJQ29yZUNoZWNrbGlzdCxcclxuICBJQ29yZUF0dGFjaG1lbnQgeyB9XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVDb250cm9sTWFuZGF0b3J5IHtcclxuICBmbGV4U2l6ZTogbnVtYmVyO1xyXG4gIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlO1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgbGFiZWw6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgdmFsdWU6IGFueTtcclxufVxyXG5pbnRlcmZhY2UgSUNvcmVDb250cm9sT3B0aW9uYWwge1xyXG5cclxuICByZWFkb25seT86IGJvb2xlYW4sXHJcbiAgaGlkZGVuPzogYm9vbGVhbixcclxuICBkaXNhYmxlZD86IGJvb2xlYW4sXHJcbiAgdHlwZT86IHN0cmluZyxcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcblxyXG4gIHBpcGU/OiBFbnVtQ29yZVRhYmxlUGlwZVR5cGUsXHJcbiAgdG9vbHRpcD86IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgaGludD86IEVudW1UcmFuc2xhdGVLZXk7XHJcblxyXG4gIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10sXHJcbiAgZm9jdXMkPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgYmx1ciQ/OiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBjbGljayQ/OiBCZWhhdmlvclN1YmplY3Q8YW55PjsgLy8gSWYgdXNlciBjbGlja3Mgc29tZXdoZXJlLCB0aGUgY2xpY2sgdHJlYW0gY2FuIGJlIHRyYWNrZWQgZnJvbSB0aGUgY2FsbGVyXHJcblxyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVCaW5kaW5nV1lTSU5XWUcge1xyXG4gIGdldEJ5SWRPYmplY3QkPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgZ2V0QnlJZEFwaT86IGFwaTtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlSW5wdXRUeXBlTnVtYmVyIHtcclxuICBzdGVwPzogc3RyaW5nLCAvLyB3aGVuIHR5cGU6ICdudW1iZXInIGFuZCB5b3UgZGVzaXJlIGRlY2ltYWwgPT4gc3RlcDogJy4wMSdcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlVGV4dGFyZWEge1xyXG4gIHRleHRhcmVhUm93cz86IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlRHJvcGRvd24gZXh0ZW5kcyBJQ29yZUJpbmRpbmdXWVNJTldZRyB7XHJcbiAgZHJvcGRvd25PcHRpb25zJD86IEJlaGF2aW9yU3ViamVjdDxJQ29yZURyb3Bkb3duT3B0aW9uW10+O1xyXG4gIG9wdGlvbnM/OiBJRm9ybUJhc2VEcm9wZG93bk9wdGlvbltdLCAvLyBraeG7g20gdHJhIGzhuqFpIG3DoG4gaMOsbmggbsOgbyArIGThu7Egw6FuIG7DoG8gZMO5bmc/XHJcbiAgZml0SGVpZ2h0V2l0aEl0ZW1Db3VudD86IGJvb2xlYW4sXHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZUNoZWNrbGlzdCBleHRlbmRzIElDb3JlQmluZGluZ1dZU0lOV1lHIHtcclxuICBjaGVja2xpc3RPcHRpb25zJD86IEJlaGF2aW9yU3ViamVjdDxJQ29yZUNoZWNrbGlzdE9wdGlvbltdPjtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlTGlzdCBleHRlbmRzIElDb3JlQmluZGluZ1dZU0lOV1lHIHtcclxuICBsaXN0T3B0aW9ucz86IElDb3JlTGlzdE9wdGlvbltdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVTZWVrZXIgZXh0ZW5kcyBJQ29yZUJpbmRpbmdXWVNJTldZRywgSUNvcmVTZWVrZXJNdWx0aU1vZGUge1xyXG4gIG11bHRpTW9kZT86IGJvb2xlYW47XHJcbiAgc2Vla2VyU291cmNlVHlwZT86IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlO1xyXG4gIGJvdW5kRnJvbT86IHN0cmluZztcclxuICBzaG93bkZyb20/OiBzdHJpbmc7XHJcbiAgYWxzb0JpbmRUbz86IElDb3JlRm9ybUNvbnRyb2xTZWVrZXJFeHRyYUJpbmRpbmdNb2RlbFtdO1xyXG4gIHNlZWtlclZlcmlmeUlnbm9yZT86IGJvb2xlYW47XHJcbiAgcHJlRGVmaW5lZE91dGVyUGFyYW0kPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgcHJlRGVmaW5lZE91dGVyRmlsdGVyJD86IEJlaGF2aW9yU3ViamVjdDxJRmlsdGVyT3BlcmF0b3JbXT47XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZVNlZWtlck11bHRpTW9kZSBleHRlbmRzIElDb3JlU2Vla2VyTXVsdGlNb2RlRWRpdGFibGUge1xyXG4gIG9iamVjdExpc3QkPzogQmVoYXZpb3JTdWJqZWN0PGFueVtdPjtcclxuICBnZXRPYmplY3RMaXN0RnJvbT86IHN0cmluZztcclxuICBleGNsdWRlRXhpc3RpbmdMaXN0PzogYm9vbGVhbjtcclxuICBtdWx0aU1vZGVUYWJsZUhlaWdodD86IG51bWJlcjtcclxuICBtdWx0aU1vZGVSb3dIZWlnaHQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZVNlZWtlck11bHRpTW9kZUVkaXRhYmxlIGV4dGVuZHMgSUNvcmVTZWVrZXJNdWx0aU1vZGVFZGl0YWJsZUluZGlyZWN0QmluZGluZyB7XHJcbiAgbXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zPzogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXTtcclxuICBtdWx0aU1vZGVFeHRlbmRlZFNlY3Rpb25zPzogSUNvcmVGb3JtU2VjdGlvbltdO1xyXG4gIC8vc2VsZWN0ZWREYXRhJD86IEJlaGF2aW9yU3ViamVjdDxhbnlbXT47XHJcbiAgZWRpdEJ1ZmZlckRhdGEkPzogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgaW5kaXJlY3RCaW5kaW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlU2Vla2VyTXVsdGlNb2RlRWRpdGFibGVJbmRpcmVjdEJpbmRpbmcge1xyXG4gIGJpbmRHcmlkSWRUbz86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlTWNjIGV4dGVuZHMgSUNvcmVCaW5kaW5nV1lTSU5XWUcge1xyXG4gIGNvbHVtbnM/OiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdO1xyXG4gIGFwaURlZmluaXRpb24/OiBJQ29yZVBhZ2VMaXN0QXBpRGVmaW5pdGlvbjtcclxuICBzZWxlY3RlZFJvdyQ/OiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBvdXRlclBhcmFtJD86IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG4gIHNob3duRnJvbT86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3JlRGF0ZVBpY2tlciB7XHJcbiAgcmFuZ2VMaW1pdD86IElDb3JlRGF0ZVBpY2tlclJhbmdlO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVHcmlkQnVmZmVyIHtcclxuICBncmlkQnVmZmVyRm9ybVNlY3Rpb25zPzogSUNvcmVGb3JtU2VjdGlvbltdO1xyXG4gIGdyaWRCdWZmZXJUYWJsZUNvbHVtbnM/OiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdO1xyXG4gIG9uQnVmZmVyRm9ybUNyZWF0ZWQ/OiAoZm9ybTogRm9ybUdyb3VwKSA9PiB2b2lkOyAvLyBVU0UgQ0FTRTogdGhpcy5mb3JtQnVmZmVyID0gZm9ybTsgdGhpcy5mb3JtQnVmZmVyLmdldCg8U09NRV9GSUVMRD4pPy52YWx1ZUNoYW5nZXMuLi4gIFxyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVGaWxlVXBsb2FkZXIge1xyXG4gIHVwbG9hZEZpbGVUeXBlPzogRW51bUNvcmVGaWxlVXBsb2FkZXJUeXBlO1xyXG4gIGZpbGVEYXRhQ29udHJvbE5hbWU/OiBzdHJpbmc7XHJcbiAgZmlsZU5hbWVDb250cm9sTmFtZT86IHN0cmluZztcclxuICBmaWxlVHlwZUNvbnRyb2xOYW1lPzogc3RyaW5nO1xyXG4gIHZlcnRpY2FsTW9kZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29yZVJhZGlvR3JvdXAge1xyXG4gIHJhZGlvR3JvdXBPcHRpb25zJD86IEJlaGF2aW9yU3ViamVjdDxJQ29yZVJhZGlvT3B0aW9uW10+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvcmVBdHRhY2htZW50IHtcclxuICBhc3NpZ25Ubz86IHN0cmluZztcclxuICB2YWx1ZVRvU2hvdz86IHN0cmluZztcclxufSJdfQ==