@arsedizioni/ars-utils 18.2.226 → 18.2.227

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.
@@ -143,8 +143,9 @@ export class SelectDialogComponent {
143
143
  select(e) {
144
144
  if (!this.dialogData.multi) {
145
145
  this.selection.deselectAll();
146
- if (e.value.options?.length > 0)
147
- e.value.options[0].selected = true;
146
+ console.log(JSON.stringify(e));
147
+ if (e.value)
148
+ e.value.selected = true;
148
149
  this.okDisabled.set(false);
149
150
  }
150
151
  else {
@@ -368,4 +369,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
368
369
  }], filter: [{
369
370
  type: Output
370
371
  }] } });
371
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFB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bnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSwgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlLCBNYXRTZWxlY3Rpb25MaXN0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUsIFNlYXJjaEZpbHRlclBpcGUsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHtcclxuICBTZWxlY3REaWFsb2dBcHBlbmQsXHJcbiAgU2VsZWN0RGlhbG9nRGF0YSxcclxuICBTZWxlY3REaWFsb2dEZWxldGUsXHJcbiAgU2VsZWN0RGlhbG9nRmlsdGVyLFxyXG4gIFNlbGVjdERpYWxvZ0xvb2t1cCxcclxuICBTZWxlY3REaWFsb2dSZXN1bHQsXHJcbiAgU2VsZWN0YWJsZUl0ZW0sXHJcbn0gZnJvbSBcIi4uLy4uL2RlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQnO1xyXG5cclxuICBcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9zZWxlY3QtZGlhbG9nLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdERpYWxvZ1RpdGxlLCAgICBcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdERpYWxvZ0FjdGlvbnMsXHJcbiAgICBNYXREaWFsb2dDbG9zZSxcclxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICAgIFNlYXJjaEZpbHRlclBpcGUsXHJcbiAgICBTYWZlSHRtbFBpcGVcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdwYWdpbmF0b3InKSBwYWdpbmF0b3IhOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChcInNlbGVjdGlvblwiKSBzZWxlY3Rpb24hOiBNYXRTZWxlY3Rpb25MaXN0O1xyXG5cclxuICBwcml2YXRlIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8U2VsZWN0RGlhbG9nQ29tcG9uZW50Pik7XHJcbiAgcHJvdGVjdGVkIGRpYWxvZ0RhdGE6IFNlbGVjdERpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKSA/PyB7IGFwcGVhcmFuY2U6ICdvdXRsaW5lJywgdGl0bGU6ICdTZWxlemlvbmEnIH07XHJcblxyXG4gIEBPdXRwdXQoKSBkb25lID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3REaWFsb2dSZXN1bHQ+KCk7XHJcbiAgQE91dHB1dCgpIGVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGFibGVJdGVtPigpO1xyXG4gIEBPdXRwdXQoKSB2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RhYmxlSXRlbT4oKTtcclxuICBAT3V0cHV0KCkgYXBwZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3REaWFsb2dBcHBlbmQ+KCk7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0RGlhbG9nRGVsZXRlPigpO1xyXG4gIEBPdXRwdXQoKSBsb29rdXAgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdERpYWxvZ0xvb2t1cD4oKTtcclxuICBAT3V0cHV0KCkgbG9va3VwT3B0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3REaWFsb2dGaWx0ZXI+KCk7XHJcblxyXG4gIHByb3RlY3RlZCBjYW5FZGl0ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgY2FuVmlldyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIGNhbkFwcGVuZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIGNhbkRlbGV0ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIGNhblBhZ2luYXRlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgLy8gSGFuZGxlIHN1Ym1pdCBidXR0b24gYWN0aXZpdHlcclxuICBwcm90ZWN0ZWQgb2tEaXNhYmxlZCA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgLy8gVXNlZCBmb3IgYXJyYXkgZmlsdGVyaW5nXHJcbiAgcHJvdGVjdGVkIGZpbHRlclRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHJvdGVjdGVkIGZpbHRlck9wdGlvbnM6IGFueSA9IFtdO1xyXG4gIHByb3RlY3RlZCBmaWx0ZXJPcHRpb25zSW5mbzogc3RyaW5nID0gXCJUdXR0b1wiO1xyXG5cclxuICAvLyBVc2VkIHRvIHNpbmNyb25pemUgbG9va3VwIGZpZWxkcyBhbmQgcGFyYW1zXHJcbiAgcHJvdGVjdGVkIGxvb2t1cEZpZWxkOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByaXZhdGUgbG9va3VwUGFyYW1zOiBhbnkgfCBudWxsO1xyXG5cclxuXHJcbiAgLy8gVXNlZCB0byBkaXNwbGF5IHNlbGVjdGVkIGVsZW1lbnRzXHJcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbkluZm8gPSBzaWduYWw8c3RyaW5nPihudWxsKTtcclxuICBwcm90ZWN0ZWQgc2VsZWN0aW9uTWFzdGVySW5kZXRlcm1pbmF0ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbk1hc3RlckNoZWNrZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLmFwcGVhcmFuY2UpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLmFwcGVhcmFuY2UgPSAnb3V0bGluZSc7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS50aXRsZSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEudGl0bGUgPSAnU2VsZXppb25hJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEubXVsdGkgJiYgIXRoaXMuZGlhbG9nRGF0YS5pdGVtcykge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEubXVsdGkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEub2tDYXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5va0NhcHRpb24gPSBcIk9rXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbkFwcGVuZC5zZXQodGhpcy5kaWFsb2dEYXRhLmNhbkFwcGVuZCk7XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhLmNhbkxvb2t1cCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMgPSBbXTtcclxuICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5sb29rdXBGaWVsZHMgJiYgdGhpcy5kaWFsb2dEYXRhLmxvb2t1cEZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5sb29rdXBGaWVsZCA9IHRoaXMuZGlhbG9nRGF0YS5sb29rdXBGaWVsZHNbMF0udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5GaWx0ZXIpIHtcclxuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMgPSB0aGlzLmRpYWxvZ0RhdGEuZmlsdGVycztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dEYXRhLmNhblBhZ2luYXRlKSB7XHJcbiAgICAgICAgdGhpcy5jYW5QYWdpbmF0ZS5zZXQodGhpcy5kaWFsb2dEYXRhLmNhblBhZ2luYXRlKTtcclxuICAgICAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5wYWdlU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dEYXRhLnBhZ2VTaXplID0gMTAwXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm9rRGlzYWJsZWQuc2V0KHRoaXMuZGlhbG9nRGF0YS5tdXN0U2VsZWN0KTtcclxuXHJcbiAgICAvLyBBcHBseSBmaWx0ZXIgaWYgZXhpc3RzXHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhLmZpbHRlciB8fCB0aGlzLmRpYWxvZ0RhdGEubG9va3VwT25Jbml0KSB7XHJcbiAgICAgIHRoaXMuZG9GaWx0ZXIodGhpcy5kaWFsb2dEYXRhLmZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYXJrIGZvciBjaGVja1xyXG4gICAqL1xyXG4gIG5vdGlmeUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgZXZlcnkgZWxlbWVudCBhcmUgc2VsZWN0ZWRcclxuICAgKi9cclxuICBwcml2YXRlIGlzQWxsU2VsZWN0ZWQoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlbGVjdGlvbiAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPT09IHRoaXMuZGlhbG9nRGF0YS5pdGVtcy5sZW5ndGhcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVja3MgaWYgZXhpc3RzIGEgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYXNTZWxlY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlbGVjdGlvbiAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPiAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFzdGVyIHNlbGVjdGlvbiB0b2dnbGVcclxuICAgKiBAcGFyYW0gZTogdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1hc3RlclNlbGVjdGlvblRvZ2dsZShlOiBNYXRDaGVja2JveENoYW5nZSkge1xyXG4gICAgaWYgKGUuY2hlY2tlZClcclxuICAgICAgLy8gRGVzZWxlY3QgaWYgbm90IGFsbHNlbGVjdGVkIHNvIHRoYXQgdG9nZ2xlIG1ha2VzIHRoZSByaWdodCBjaG9pY2VcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0QWxsKCk7XHJcbiAgICBlbHNlIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0QWxsKCk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1hc3RlckluZGV0ZXJtaW5hdGUuc2V0KGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVyQ2hlY2tlZC5zZXQoZS5jaGVja2VkKTtcclxuICAgIHRoaXMub2tEaXNhYmxlZC5zZXQoXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5tdXN0U2VsZWN0ICYmXHJcbiAgICAgICghdGhpcy5zZWxlY3Rpb24gfHwgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCkpO1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3Rpb25JbmZvKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGUgc2VsZWN0aW9uL2Rlc2VsZWN0aW9uIG9mIGFuIGl0ZW1cclxuICAgKiBAcGFyYW0gZTogdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNlbGVjdChlOiBNYXRTZWxlY3RDaGFuZ2UpIHtcclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0QWxsKCk7XHJcbiAgICAgIGlmIChlLnZhbHVlLm9wdGlvbnM/Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgZS52YWx1ZS5vcHRpb25zWzBdLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5va0Rpc2FibGVkLnNldChmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9rRGlzYWJsZWQuc2V0KFxyXG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YS5tdXN0U2VsZWN0ICYmXHJcbiAgICAgICAgKCF0aGlzLnNlbGVjdGlvbiB8fFxyXG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBlZGl0b3JzXHJcbiAgICB0aGlzLmNhbkFwcGVuZC5zZXQodGhpcy5kaWFsb2dEYXRhLmNhbkFwcGVuZCk7XHJcbiAgICB0aGlzLmNhbkVkaXQuc2V0KFxyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEuY2FuRWRpdCAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbiAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID09PSAxKTtcclxuICAgIHRoaXMuY2FuVmlldy5zZXQoXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5jYW5WaWV3ICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPT09IDEpO1xyXG4gICAgdGhpcy5jYW5EZWxldGUuc2V0KFxyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEuY2FuRGVsZXRlICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPiAwKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVySW5kZXRlcm1pbmF0ZS5zZXQoXHJcbiAgICAgICF0aGlzLmlzQWxsU2VsZWN0ZWQoKSAmJiB0aGlzLmhhc1NlbGVjdGlvbigpKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVyQ2hlY2tlZC5zZXQodGhpcy5oYXNTZWxlY3Rpb24oKSk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbkluZm8oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBzZWxlY3Rpb24gaW5mb1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uSW5mbygpIHtcclxuICAgIC8vIFVwZGF0ZSBzZWxlY3Rpb24gaW5mb1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPiAwICYmIHRoaXMuZGlhbG9nRGF0YS5tdWx0aSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkluZm8uc2V0KFxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggK1xyXG4gICAgICAgIFwiIC8gXCIgK1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLm9wdGlvbnMubGVuZ3RoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uSW5mby5zZXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciBjdXJyZW50IHNlbGVjdGlvblxyXG4gICAqL1xyXG4gIGNsZWFyU2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlLnNldChmYWxzZSk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1hc3RlckNoZWNrZWQuc2V0KGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0QWxsKCk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkluZm8uc2V0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3VibWl0IHNlbGVjdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvaygpIHtcclxuICAgIGlmICghdGhpcy5va0Rpc2FibGVkKCkpIHtcclxuICAgICAgLy8gTXVsdGkgc2VsZWN0aW9uXHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IGFueSA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaChlbGVtZW50LnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZG9uZS5lbWl0KHsgc2VsZWN0ZWRJdGVtczogc2VsZWN0ZWRJdGVtcyB9KTtcclxuICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGZpbHRlclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBjbGVhckZpbHRlcigpIHtcclxuICAgIHRoaXMuZmlsdGVyVGV4dCA9IFwiXCI7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBmaWx0ZXIgb3B0aW9uc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzaG93RmlsdGVyT3B0aW9ucygpIHtcclxuICAgIGlmICh0aGlzLmxvb2t1cE9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5sb29rdXBPcHRpb25zLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGx5IGZpbHRlclxyXG4gICAqIEBwYXJhbSB0ZXh0IDogdGhlIHN0cmluZyB0byBmaWx0ZXIgdG9cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9GaWx0ZXIodGV4dDogc3RyaW5nID0gbnVsbCwgZTogYW55ID0gbnVsbCkge1xyXG4gICAgaWYgKHRleHQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuTG9va3VwKSB7XHJcbiAgICAgIGlmICghZSB8fCBlLmtleUNvZGUgPT09IDEzKSB7XHJcbiAgICAgICAgdGhpcy5sb29rdXAuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIGZpbHRlcjogdGhpcy5maWx0ZXJUZXh0LCBvd25lcjogdGhpcyB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbHkgZmlsdGVyIHVzaW5nIGZpbHRlciBvcHRpb25zXHJcbiAgICogQHBhcmFtIGZpbHRlck9wdGlvbiA6IHRoZSBjdXJyZW50IGZpbHRlciBvcHRpb25cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9GaWx0ZXJCeU9wdGlvbnMoZmlsdGVyT3B0aW9uOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuTG9va3VwICYmIHRoaXMuZGlhbG9nRGF0YS5jYW5GaWx0ZXIpIHtcclxuICAgICAgdGhpcy5maWx0ZXIuZW1pdCh7XHJcbiAgICAgICAgaXRlbXM6IHRoaXMuZGlhbG9nRGF0YS5pdGVtcyxcclxuICAgICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyVGV4dCxcclxuICAgICAgICBmaWx0ZXJPcHRpb246IGZpbHRlck9wdGlvbixcclxuICAgICAgICBvd25lcjogdGhpcyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBseSBmaWx0ZXIuIFRoaXMgaXMgYWNjZXNzaWJsZSBmcm9tIHB1YmxpY1xyXG4gICAqIEBwYXJhbSBwYXJhbXMgOiB0aGUgb2JqZWN0IHdpdGggY3VycmVudCBwYXJhbWV0ZXJzXHJcbiAgICovXHJcbiAgZG9Mb29rdXAocGFyYW1zOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuTG9va3VwKSB7XHJcbiAgICAgIHRoaXMubG9va3VwUGFyYW1zID0gcGFyYW1zO1xyXG4gICAgICB0aGlzLmxvb2t1cFBhcmFtcy5maXJzdCA9IDA7XHJcbiAgICAgIHRoaXMubG9va3VwLmVtaXQoeyBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLCBwYXJhbXM6IHRoaXMubG9va3VwUGFyYW1zLCBvd25lcjogdGhpcyB9KTsgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgbG9va3VwIHBhZ2luYXRyb1xyXG4gICAqIEBwYXJhbSB0b3RhbCA6IHRoZSBuZXcgdG90YWwgaXRlbXNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdXBkYXRlTG9va3VwUGFnaW5hdG9yKHRvdGFsOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmNhblBhZ2luYXRlKCkpIHtcclxuICAgICAgaWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ID0gMDtcclxuICAgICAgICB0aGlzLnBhZ2luYXRvci5sZW5ndGggPSB0b3RhbCA/PyAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEFwcGx5IGZpbHRlclxyXG4gICogQHBhcmFtIGUgOiB0aGUgTWF0UGFnaW5hdG9yIFBhZ2VFdmVudCBkYXRhXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgZG9Mb29rdXBQYWdlKGU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXAgJiYgdGhpcy5kaWFsb2dEYXRhLmNhblBhZ2luYXRlKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgdGhpcy5sb29rdXBQYXJhbXMuZmlyc3QgPSBlLnBhZ2VJbmRleCAqICh0aGlzLmRpYWxvZ0RhdGEucGFnZVNpemUgPz8gMCk7XHJcbiAgICAgIHRoaXMubG9va3VwLmVtaXQoeyBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLCBwYXJhbXM6IHRoaXMubG9va3VwUGFyYW1zLCBvd25lcjogdGhpcyB9KTsgICAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGVuZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FwcGVuZCgpIHtcclxuICAgIHRoaXMuYXBwZW5kLmVtaXQoeyBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLCBvd25lcjogdGhpcyB9IGFzIFNlbGVjdERpYWxvZ0FwcGVuZCk7ICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZGl0XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvRWRpdCgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQ/Lmxlbmd0aCA+IDApe1xyXG4gICAgICB0aGlzLmVkaXQuZW1pdCh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWRbMF0udmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmlld1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb1ZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMudmlldy5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZFswXS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWxldGUoKSB7XHJcbiAgICBsZXQgc2VsZWN0ZWRJdGVtczogYW55ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goZWxlbWVudC52YWx1ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGVsZXRlLmVtaXQoe1xyXG4gICAgICBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLFxyXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBzZWxlY3RlZEl0ZW1zLFxyXG4gICAgfSBhcyBTZWxlY3REaWFsb2dEZWxldGUpO1xyXG4gICAgdGhpcy5jYW5EZWxldGUuc2V0KGZhbHNlKTtcclxuICAgIFxyXG4gIH1cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT57e2RpYWxvZ0RhdGEudGl0bGV9fTwvaDI+XHJcbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDI0cHhcIj5cclxuICBAaWYgKGRpYWxvZ0RhdGEuZGVzY3JpcHRpb24pIHtcclxuICA8ZGl2IGNsYXNzPVwic2VsZWN0ZmlsZS1kZXNjcmlwdGlvblwiIFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5kZXNjcmlwdGlvbiB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbiAgfVxyXG4gIDxkaXY+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIyMHB4XCIgZnhGaWxsPlxyXG4gICAgICBAaWYgKCFkaWFsb2dEYXRhLmNhbkxvb2t1cFdpdGhPcHRpb25zKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiMTAwXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPSd3aWR0aDoxMDAlJyBbYXBwZWFyYW5jZV09XCJkaWFsb2dEYXRhLmFwcGVhcmFuY2VcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkNlcmNhLi4uPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjZGtGb2N1c0luaXRpYWwgKGtleXVwLkVudGVyKT1cImRvRmlsdGVyKClcIiBtYXRJbnB1dFxyXG4gICAgICAgICAgICB0aXRsZT1cInt7ZGlhbG9nRGF0YS5jYW5Mb29rdXAgPyAnRGlnaXRhIGlsIHRlc3RvIGUgcHJlbWkgaW52aW8nIDogJ0RpZ2l0YSBpbCB0ZXN0byd9fVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiPlxyXG4gICAgICAgICAgQGlmIChmaWx0ZXJUZXh0KSB7XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXIoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICghZGlhbG9nRGF0YS5jYW5Mb29rdXBXaXRoT3B0aW9ucyAmJiBkaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiBkaWFsb2dEYXRhLmxvb2t1cEZpZWxkcykge1xyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEwMFwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT0nd2lkdGg6MTAwJScgW2FwcGVhcmFuY2VdPVwiZGlhbG9nRGF0YS5hcHBlYXJhbmNlXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5Db21lLi4uPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJsb29rdXBGaWVsZFwiPlxyXG4gICAgICAgICAgICBAZm9yIChmaWVsZCBvZiBkaWFsb2dEYXRhLmxvb2t1cEZpZWxkczsgdHJhY2sgZmllbGQpIHtcclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3tmaWVsZC5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChkaWFsb2dEYXRhLmNhbkxvb2t1cFdpdGhPcHRpb25zKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIGFyaWEtbGFiZWw9XCJSaWNlcmNhXCIgKGNsaWNrKT1cInNob3dGaWx0ZXJPcHRpb25zKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlJpY2VyY2FcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChkaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiBkaWFsb2dEYXRhLmNhbkZpbHRlcikge1xyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHN0eWxlPVwid2hpdGUtc3BhY2U6bm93cmFwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIG1hdFRvb2x0aXA9XCJGaWx0cmFcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidGaWx0cmEnXCJcclxuICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51RmlsdGVyXCIgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+ZmlsdGVyX2FsdDwvbWF0LWljb24+IHt7ZmlsdGVyT3B0aW9uc0luZm99fSA8bWF0LWljb24gY2xhc3M9XCJpY29uLW1lbnUtZHJvcC1kb3duXCI+XHJcbiAgICAgICAgICAgIGFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG1hdC1tZW51ICNtZW51RmlsdGVyPVwibWF0TWVudVwiIGNsYXNzPVwibWF0LW1lbnUtMzAwXCI+XHJcbiAgICAgICAgICBAZm9yIChmIG9mIGZpbHRlck9wdGlvbnM7IHRyYWNrIGYpIHtcclxuXHJcbiAgICAgICAgICBAaWYgKGYuZGl2aWRlcikge1xyXG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKGYuZ3JvdXBOYW1lKSB7XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT0nZm9udC1zaXplOnNtYWxsOyBwYWRkaW5nOiAycHggNHB4Oyc+PGk+PGI+e3tmLmdyb3VwTmFtZX19PC9iPjwvaT48L3NwYW4+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKCFmLmdyb3VwTmFtZSAmJiAhZi5kaXZpZGVyKSB7XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRvRmlsdGVyQnlPcHRpb25zKGYpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJmLmRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIEBpZiAoZi5yYWRpbyAmJiBmLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZy1sZWZ0OjQwcHhcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7Zi5pY29ufX08L21hdC1pY29uPiB7e2YudGl0bGV9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoY2FuRWRpdCgpIHx8IGNhbkFwcGVuZCgpIHx8IGNhblZpZXcoKSB8fCBjYW5EZWxldGUoKSkge1xyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeExheW91dEFsaWduPVwiZW5kXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj5cclxuICAgICAgICBAaWYgKGNhbkFwcGVuZCgpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvQXBwZW5kKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQWdnaXVuZ2lcIiBtYXRUb29sdGlwPVwiQWdnaXVuZ2lcIj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGNhbkVkaXQoKSkge1xyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJkb0VkaXQoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJNb2RpZmljYVwiIG1hdFRvb2x0aXA9XCJNb2RpZmljYVwiPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGNhblZpZXcoKSkge1xyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJkb1ZpZXcoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJNb3N0cmFcIiBtYXRUb29sdGlwPVwiTW9zdHJhXCI+dmlzaWJpbGl0eTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoY2FuRGVsZXRlKCkpIHtcclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZG9EZWxldGUoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFbGltaW5hXCIgbWF0VG9vbHRpcD1cIkVsaW1pbmFcIj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIEBpZiAoKGRpYWxvZ0RhdGEubXVsdGkgfHwgZGlhbG9nRGF0YS5oZWFkZXIpICYmIGRpYWxvZ0RhdGEuaXRlbXM/Lmxlbmd0aCA+IDApIHtcclxuICA8ZGl2PlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4RmFseW91dEdhcD1cIjEwcHhcIiBmeEZpbGwgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTBweDtcIj5cclxuICAgICAgPGRpdiBmeEZsZXg9XCI3MnB4XCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4O1wiPlxyXG4gICAgICAgIEBpZiAoZGlhbG9nRGF0YS5tdWx0aSkge1xyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJTZWxlY3Rpb25Ub2dnbGUoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uTWFzdGVySW5kZXRlcm1pbmF0ZSgpXCIgW2NoZWNrZWRdPVwic2VsZWN0aW9uTWFzdGVyQ2hlY2tlZCgpXCJcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlbGV6aW9uYS9kZXNlbGV6aW9uYSB0dXR0bydcIiBtYXRUb29sdGlwPVwiU2VsZXppb25hL2Rlc2VsZXppb25hIHR1dHRvXCI+XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeEZsZXg9XCIxMDBcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgICAgIEBpZiAoZGlhbG9nRGF0YS5oZWFkZXIpIHtcclxuICAgICAgICA8ZGl2IFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5oZWFkZXIgfCBzYWZlSHRtbFwiPjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGaWxsPlxyXG4gICAgQGlmIChkaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiAoIWRpYWxvZ0RhdGEuaXRlbXMgfHwgZGlhbG9nRGF0YS5pdGVtcy5sZW5ndGggPT0gMCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+PGk+XHJcbiAgICAgICAgQGlmICghZGlhbG9nRGF0YS5lbXB0eU1lc3NhZ2UpIHtcclxuICAgICAgICA8c3Bhbj5OZXNzdW4gZWxlbWVudG8gZGEgdmlzdWFsaXp6YXJlLjxicj5Fc2VndWkgdW5hIG51b3ZhIHJpY2VyY2EgbyBtb2RpZmljYSBxdWVsbGFcclxuICAgICAgICAgIGVzaXN0ZW50ZS5cclxuICAgICAgICAgIEBpZiAoZGlhbG9nRGF0YS5tYXhJdGVtcyA+IDApIHtcclxuICAgICAgICAgIDxzcGFuPlNhcmFubm8gbW9zdHJhdGkgYWwgbWFzc2ltbyB7e2RpYWxvZ0RhdGEubWF4SXRlbXN9fSBlbGVtZW50aS48L3NwYW4+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5lbXB0eU1lc3NhZ2UgfCBzYWZlSHRtbFwiPjwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvaT5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPG1hdC1zZWxlY3Rpb24tbGlzdCAjc2VsZWN0aW9uIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0KCRldmVudClcIiBkZW5zZSBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yPVwidHJ1ZVwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIChkaWFsb2dEYXRhLml0ZW1zIHwgc2VhcmNoOiAoIWRpYWxvZ0RhdGEuY2FuTG9va3VwID8gZmlsdGVyVGV4dCA6ICcnKSk7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgPG1hdC1saXN0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbVwiIFtzZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCIgY2hlY2tib3hQb3NpdGlvbj1cImJlZm9yZVwiIGNvbG9yPVwicHJpbWFyeVwiPlxyXG4gICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJpdGVtLnRlbXBsYXRlIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICAgICAgPC9tYXQtbGlzdC1vcHRpb24+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LXNlbGVjdGlvbi1saXN0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbD5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6MjBweFwiPlxyXG4gICAgICAgIEBpZiAoc2VsZWN0aW9uSW5mbygpKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWFsbFwiPnNlbGV6aW9uZTogJm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPVwiYm9sZFwiPnt7c2VsZWN0aW9uSW5mbygpfX08L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgICAgIEBpZiAoY2FuUGFnaW5hdGUoKSkge1xyXG4gICAgICAgIDxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgW2hpZGVQYWdlU2l6ZV09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cImRpYWxvZ0RhdGEucGFnZVNpemVcIiBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAocGFnZSk9XCJkb0xvb2t1cFBhZ2UoJGV2ZW50KVwiIFtsZW5ndGhdPVwiZGlhbG9nRGF0YS5pdGVtcz8ubGVuZ3RoID8/IDBcIj48L21hdC1wYWdpbmF0b3I+XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kXCIgZnhGaWxsPlxyXG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib2soKVwiIFtkaXNhYmxlZF09XCJva0Rpc2FibGVkKClcIj5cclxuICAgICAgICA8c3Bhbj57e2RpYWxvZ0RhdGEubXVzdFNlbGVjdCA/IGRpYWxvZ0RhdGEub2tDYXB0aW9uIDogJ0NoaXVkaSd9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIEBpZiAoZGlhbG9nRGF0YS5tdXN0U2VsZWN0KSB7XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlIGNka0ZvY3VzSW5pdGlhbCBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgICA8c3Bhbj5Bbm51bGxhPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlciwgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgaW5qZWN0LFxyXG4gIHNpZ25hbFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UsIE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94XCI7XHJcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nVGl0bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlclwiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSwgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9saXN0XCI7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSwgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlLCBTZWFyY2hGaWx0ZXJQaXBlLCBTeXN0ZW1VdGlscyB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU2VsZWN0RGlhbG9nQXBwZW5kLFxyXG4gIFNlbGVjdERpYWxvZ0RhdGEsXHJcbiAgU2VsZWN0RGlhbG9nRGVsZXRlLFxyXG4gIFNlbGVjdERpYWxvZ0ZpbHRlcixcclxuICBTZWxlY3REaWFsb2dMb29rdXAsXHJcbiAgU2VsZWN0RGlhbG9nUmVzdWx0LFxyXG4gIFNlbGVjdGFibGVJdGVtLFxyXG59IGZyb20gXCIuLi8uLi9kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0JztcclxuXHJcbiAgXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBob3N0OiB7ICdCaW5kJzogU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkgfSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC1kaWFsb2cuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dUaXRsZSwgICAgXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdE9wdGlvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nQ29udGVudCxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTWF0RGlhbG9nQ2xvc2UsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBTZWFyY2hGaWx0ZXJQaXBlLFxyXG4gICAgU2FmZUh0bWxQaXBlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5hdG9yJykgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoXCJzZWxlY3Rpb25cIikgc2VsZWN0aW9uITogTWF0U2VsZWN0aW9uTGlzdDtcclxuXHJcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBkaWFsb2dSZWYgPSBpbmplY3QoTWF0RGlhbG9nUmVmPFNlbGVjdERpYWxvZ0NvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBTZWxlY3REaWFsb2dEYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgPz8geyBhcHBlYXJhbmNlOiAnb3V0bGluZScsIHRpdGxlOiAnU2VsZXppb25hJyB9O1xyXG5cclxuICBAT3V0cHV0KCkgZG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0RGlhbG9nUmVzdWx0PigpO1xyXG4gIEBPdXRwdXQoKSBlZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RhYmxlSXRlbT4oKTtcclxuICBAT3V0cHV0KCkgdmlldyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0YWJsZUl0ZW0+KCk7XHJcbiAgQE91dHB1dCgpIGFwcGVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0RGlhbG9nQXBwZW5kPigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdERpYWxvZ0RlbGV0ZT4oKTtcclxuICBAT3V0cHV0KCkgbG9va3VwID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3REaWFsb2dMb29rdXA+KCk7XHJcbiAgQE91dHB1dCgpIGxvb2t1cE9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0RGlhbG9nRmlsdGVyPigpO1xyXG5cclxuICBwcm90ZWN0ZWQgY2FuRWRpdCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIGNhblZpZXcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBjYW5BcHBlbmQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBjYW5EZWxldGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBjYW5QYWdpbmF0ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8vIEhhbmRsZSBzdWJtaXQgYnV0dG9uIGFjdGl2aXR5XHJcbiAgcHJvdGVjdGVkIG9rRGlzYWJsZWQgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIC8vIFVzZWQgZm9yIGFycmF5IGZpbHRlcmluZ1xyXG4gIHByb3RlY3RlZCBmaWx0ZXJUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByb3RlY3RlZCBmaWx0ZXJPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9uc0luZm86IHN0cmluZyA9IFwiVHV0dG9cIjtcclxuXHJcbiAgLy8gVXNlZCB0byBzaW5jcm9uaXplIGxvb2t1cCBmaWVsZHMgYW5kIHBhcmFtc1xyXG4gIHByb3RlY3RlZCBsb29rdXBGaWVsZDogc3RyaW5nID0gXCJcIjtcclxuICBwcml2YXRlIGxvb2t1cFBhcmFtczogYW55IHwgbnVsbDtcclxuXHJcblxyXG4gIC8vIFVzZWQgdG8gZGlzcGxheSBzZWxlY3RlZCBlbGVtZW50c1xyXG4gIHByb3RlY3RlZCBzZWxlY3Rpb25JbmZvID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XHJcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbk1hc3RlckluZGV0ZXJtaW5hdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBzZWxlY3Rpb25NYXN0ZXJDaGVja2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5hcHBlYXJhbmNlKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5hcHBlYXJhbmNlID0gJ291dGxpbmUnO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEudGl0bGUpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLnRpdGxlID0gJ1NlbGV6aW9uYSc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhLm11bHRpICYmICF0aGlzLmRpYWxvZ0RhdGEuaXRlbXMpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLm11bHRpID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLm9rQ2FwdGlvbikge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEub2tDYXB0aW9uID0gXCJPa1wiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYW5BcHBlbmQuc2V0KHRoaXMuZGlhbG9nRGF0YS5jYW5BcHBlbmQpO1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXApIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLml0ZW1zID0gW107XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEubG9va3VwRmllbGRzICYmIHRoaXMuZGlhbG9nRGF0YS5sb29rdXBGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMubG9va3VwRmllbGQgPSB0aGlzLmRpYWxvZ0RhdGEubG9va3VwRmllbGRzWzBdLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuRmlsdGVyKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zID0gdGhpcy5kaWFsb2dEYXRhLmZpbHRlcnM7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5QYWdpbmF0ZSkge1xyXG4gICAgICAgIHRoaXMuY2FuUGFnaW5hdGUuc2V0KHRoaXMuZGlhbG9nRGF0YS5jYW5QYWdpbmF0ZSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEucGFnZVNpemUpIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YS5wYWdlU2l6ZSA9IDEwMFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5va0Rpc2FibGVkLnNldCh0aGlzLmRpYWxvZ0RhdGEubXVzdFNlbGVjdCk7XHJcblxyXG4gICAgLy8gQXBwbHkgZmlsdGVyIGlmIGV4aXN0c1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5maWx0ZXIgfHwgdGhpcy5kaWFsb2dEYXRhLmxvb2t1cE9uSW5pdCkge1xyXG4gICAgICB0aGlzLmRvRmlsdGVyKHRoaXMuZGlhbG9nRGF0YS5maWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFyayBmb3IgY2hlY2tcclxuICAgKi9cclxuICBub3RpZnlDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGV2ZXJ5IGVsZW1lbnQgYXJlIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZCAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMubGVuZ3RoXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIGV4aXN0cyBhIHNlbGVjdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFzU2VsZWN0aW9uKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZCAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID4gMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hc3RlciBzZWxlY3Rpb24gdG9nZ2xlXHJcbiAgICogQHBhcmFtIGU6IHRoZSBldmVudFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXN0ZXJTZWxlY3Rpb25Ub2dnbGUoZTogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcclxuICAgIGlmIChlLmNoZWNrZWQpXHJcbiAgICAgIC8vIERlc2VsZWN0IGlmIG5vdCBhbGxzZWxlY3RlZCBzbyB0aGF0IHRvZ2dsZSBtYWtlcyB0aGUgcmlnaHQgY2hvaWNlXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdEFsbCgpO1xyXG4gICAgZWxzZSB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdEFsbCgpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlLnNldChmYWxzZSk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1hc3RlckNoZWNrZWQuc2V0KGUuY2hlY2tlZCk7XHJcbiAgICB0aGlzLm9rRGlzYWJsZWQuc2V0KFxyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEubXVzdFNlbGVjdCAmJlxyXG4gICAgICAoIXRoaXMuc2VsZWN0aW9uIHx8IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPT09IDApKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHNlbGVjdGlvbi9kZXNlbGVjdGlvbiBvZiBhbiBpdGVtXHJcbiAgICogQHBhcmFtIGU6IHRoZSBldmVudFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZWxlY3QoZTogTWF0U2VsZWN0Q2hhbmdlKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5tdWx0aSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdEFsbCgpO1xyXG4gICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShlKSk7XHJcbiAgICAgIGlmIChlLnZhbHVlKVxyXG4gICAgICAgIGUudmFsdWUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9rRGlzYWJsZWQuc2V0KGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub2tEaXNhYmxlZC5zZXQoXHJcbiAgICAgICAgdGhpcy5kaWFsb2dEYXRhLm11c3RTZWxlY3QgJiZcclxuICAgICAgICAoIXRoaXMuc2VsZWN0aW9uIHx8XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID09PSAwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIGVkaXRvcnNcclxuICAgIHRoaXMuY2FuQXBwZW5kLnNldCh0aGlzLmRpYWxvZ0RhdGEuY2FuQXBwZW5kKTtcclxuICAgIHRoaXMuY2FuRWRpdC5zZXQoXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5jYW5FZGl0ICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPT09IDEpO1xyXG4gICAgdGhpcy5jYW5WaWV3LnNldChcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLmNhblZpZXcgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA9PT0gMSk7XHJcbiAgICB0aGlzLmNhbkRlbGV0ZS5zZXQoXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5jYW5EZWxldGUgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA+IDApO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlLnNldChcclxuICAgICAgIXRoaXMuaXNBbGxTZWxlY3RlZCgpICYmIHRoaXMuaGFzU2VsZWN0aW9uKCkpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJDaGVja2VkLnNldCh0aGlzLmhhc1NlbGVjdGlvbigpKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHNlbGVjdGlvbiBpbmZvXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb25JbmZvKCkge1xyXG4gICAgLy8gVXBkYXRlIHNlbGVjdGlvbiBpbmZvXHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24gJiYgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA+IDAgJiYgdGhpcy5kaWFsb2dEYXRhLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uSW5mby5zZXQoXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCArXHJcbiAgICAgICAgXCIgLyBcIiArXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24ub3B0aW9ucy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25JbmZvLnNldChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGN1cnJlbnQgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgY2xlYXJTZWxlY3Rpb24oKSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1hc3RlckluZGV0ZXJtaW5hdGUuc2V0KGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVyQ2hlY2tlZC5zZXQoZmFsc2UpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3RBbGwoKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uSW5mby5zZXQobnVsbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXQgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG9rKCkge1xyXG4gICAgaWYgKCF0aGlzLm9rRGlzYWJsZWQoKSkge1xyXG4gICAgICAvLyBNdWx0aSBzZWxlY3Rpb25cclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtczogYW55ID0gW107XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKGVsZW1lbnQudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb25lLmVtaXQoeyBzZWxlY3RlZEl0ZW1zOiBzZWxlY3RlZEl0ZW1zIH0pO1xyXG4gICAgICB9LCA1MDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgZmlsdGVyXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNsZWFyRmlsdGVyKCkge1xyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gXCJcIjtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGZpbHRlciBvcHRpb25zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNob3dGaWx0ZXJPcHRpb25zKCkge1xyXG4gICAgaWYgKHRoaXMubG9va3VwT3B0aW9ucykge1xyXG4gICAgICB0aGlzLmxvb2t1cE9wdGlvbnMuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbHkgZmlsdGVyXHJcbiAgICogQHBhcmFtIHRleHQgOiB0aGUgc3RyaW5nIHRvIGZpbHRlciB0b1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0ZpbHRlcih0ZXh0OiBzdHJpbmcgPSBudWxsLCBlOiBhbnkgPSBudWxsKSB7XHJcbiAgICBpZiAodGV4dCkge1xyXG4gICAgICB0aGlzLmZpbHRlclRleHQgPSB0ZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXApIHtcclxuICAgICAgaWYgKCFlIHx8IGUua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgICB0aGlzLmxvb2t1cC5lbWl0KHsgaXRlbXM6IHRoaXMuZGlhbG9nRGF0YS5pdGVtcywgZmlsdGVyOiB0aGlzLmZpbHRlclRleHQsIG93bmVyOiB0aGlzIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBseSBmaWx0ZXIgdXNpbmcgZmlsdGVyIG9wdGlvbnNcclxuICAgKiBAcGFyYW0gZmlsdGVyT3B0aW9uIDogdGhlIGN1cnJlbnQgZmlsdGVyIG9wdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0ZpbHRlckJ5T3B0aW9ucyhmaWx0ZXJPcHRpb246IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXAgJiYgdGhpcy5kaWFsb2dEYXRhLmNhbkZpbHRlcikge1xyXG4gICAgICB0aGlzLmZpbHRlci5lbWl0KHtcclxuICAgICAgICBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLFxyXG4gICAgICAgIGZpbHRlcjogdGhpcy5maWx0ZXJUZXh0LFxyXG4gICAgICAgIGZpbHRlck9wdGlvbjogZmlsdGVyT3B0aW9uLFxyXG4gICAgICAgIG93bmVyOiB0aGlzLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGx5IGZpbHRlci4gVGhpcyBpcyBhY2Nlc3NpYmxlIGZyb20gcHVibGljXHJcbiAgICogQHBhcmFtIHBhcmFtcyA6IHRoZSBvYmplY3Qgd2l0aCBjdXJyZW50IHBhcmFtZXRlcnNcclxuICAgKi9cclxuICBkb0xvb2t1cChwYXJhbXM6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXApIHtcclxuICAgICAgdGhpcy5sb29rdXBQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICAgIHRoaXMubG9va3VwUGFyYW1zLmZpcnN0ID0gMDtcclxuICAgICAgdGhpcy5sb29rdXAuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIHBhcmFtczogdGhpcy5sb29rdXBQYXJhbXMsIG93bmVyOiB0aGlzIH0pOyAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBsb29rdXAgcGFnaW5hdHJvXHJcbiAgICogQHBhcmFtIHRvdGFsIDogdGhlIG5ldyB0b3RhbCBpdGVtc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB1cGRhdGVMb29rdXBQYWdpbmF0b3IodG90YWw6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuY2FuUGFnaW5hdGUoKSkge1xyXG4gICAgICBpZiAodGhpcy5wYWdpbmF0b3IpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdG9yLmxlbmd0aCA9IHRvdGFsID8/IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQXBwbHkgZmlsdGVyXHJcbiAgKiBAcGFyYW0gZSA6IHRoZSBNYXRQYWdpbmF0b3IgUGFnZUV2ZW50IGRhdGFcclxuICAqL1xyXG4gIHByb3RlY3RlZCBkb0xvb2t1cFBhZ2UoZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiB0aGlzLmRpYWxvZ0RhdGEuY2FuUGFnaW5hdGUpIHtcclxuICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLmxvb2t1cFBhcmFtcy5maXJzdCA9IGUucGFnZUluZGV4ICogKHRoaXMuZGlhbG9nRGF0YS5wYWdlU2l6ZSA/PyAwKTtcclxuICAgICAgdGhpcy5sb29rdXAuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIHBhcmFtczogdGhpcy5sb29rdXBQYXJhbXMsIG93bmVyOiB0aGlzIH0pOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwZW5kXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvQXBwZW5kKCkge1xyXG4gICAgdGhpcy5hcHBlbmQuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIG93bmVyOiB0aGlzIH0gYXMgU2VsZWN0RGlhbG9nQXBwZW5kKTsgICBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVkaXRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9FZGl0KCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZD8ubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMuZWRpdC5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZFswXS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWaWV3XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvVmlldygpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy52aWV3LmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkWzBdLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0RlbGV0ZSgpIHtcclxuICAgIGxldCBzZWxlY3RlZEl0ZW1zOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIHNlbGVjdGVkSXRlbXMucHVzaChlbGVtZW50LnZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZWxldGUuZW1pdCh7XHJcbiAgICAgIGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsXHJcbiAgICAgIHNlbGVjdGVkSXRlbXM6IHNlbGVjdGVkSXRlbXMsXHJcbiAgICB9IGFzIFNlbGVjdERpYWxvZ0RlbGV0ZSk7XHJcbiAgICB0aGlzLmNhbkRlbGV0ZS5zZXQoZmFsc2UpO1xyXG4gICAgXHJcbiAgfVxyXG59XHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7ZGlhbG9nRGF0YS50aXRsZX19PC9oMj5cclxuPGRpdiBzdHlsZT1cInBhZGRpbmc6IDAgMjRweFwiPlxyXG4gIEBpZiAoZGlhbG9nRGF0YS5kZXNjcmlwdGlvbikge1xyXG4gIDxkaXYgY2xhc3M9XCJzZWxlY3RmaWxlLWRlc2NyaXB0aW9uXCIgW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmRlc2NyaXB0aW9uIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICB9XHJcbiAgPGRpdj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjIwcHhcIiBmeEZpbGw+XHJcbiAgICAgIEBpZiAoIWRpYWxvZ0RhdGEuY2FuTG9va3VwV2l0aE9wdGlvbnMpIHtcclxuICAgICAgPGRpdiBmeEZsZXg9XCIxMDBcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9J3dpZHRoOjEwMCUnIFthcHBlYXJhbmNlXT1cImRpYWxvZ0RhdGEuYXBwZWFyYW5jZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+Q2VyY2EuLi48L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNka0ZvY3VzSW5pdGlhbCAoa2V5dXAuRW50ZXIpPVwiZG9GaWx0ZXIoKVwiIG1hdElucHV0XHJcbiAgICAgICAgICAgIHRpdGxlPVwie3tkaWFsb2dEYXRhLmNhbkxvb2t1cCA/ICdEaWdpdGEgaWwgdGVzdG8gZSBwcmVtaSBpbnZpbycgOiAnRGlnaXRhIGlsIHRlc3RvJ319XCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJUZXh0XCI+XHJcbiAgICAgICAgICBAaWYgKGZpbHRlclRleHQpIHtcclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbGVhclwiIChjbGljayk9XCJjbGVhckZpbHRlcigpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKCFkaWFsb2dEYXRhLmNhbkxvb2t1cFdpdGhPcHRpb25zICYmIGRpYWxvZ0RhdGEuY2FuTG9va3VwICYmIGRpYWxvZ0RhdGEubG9va3VwRmllbGRzKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiMTAwXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPSd3aWR0aDoxMDAlJyBbYXBwZWFyYW5jZV09XCJkaWFsb2dEYXRhLmFwcGVhcmFuY2VcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkNvbWUuLi48L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cImxvb2t1cEZpZWxkXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGRpYWxvZ0RhdGEubG9va3VwRmllbGRzOyB0cmFjayBmaWVsZCkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZmllbGQudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7e2ZpZWxkLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGRpYWxvZ0RhdGEuY2FuTG9va3VwV2l0aE9wdGlvbnMpIHtcclxuICAgICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gYXJpYS1sYWJlbD1cIlJpY2VyY2FcIiAoY2xpY2spPVwic2hvd0ZpbHRlck9wdGlvbnMoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+UmljZXJjYVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGRpYWxvZ0RhdGEuY2FuTG9va3VwICYmIGRpYWxvZ0RhdGEuY2FuRmlsdGVyKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj5cclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gbWF0VG9vbHRpcD1cIkZpbHRyYVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0ZpbHRyYSdcIlxyXG4gICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVGaWx0ZXJcIiBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5maWx0ZXJfYWx0PC9tYXQtaWNvbj4ge3tmaWx0ZXJPcHRpb25zSW5mb319IDxtYXQtaWNvbiBjbGFzcz1cImljb24tbWVudS1kcm9wLWRvd25cIj5cclxuICAgICAgICAgICAgYXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bWF0LW1lbnUgI21lbnVGaWx0ZXI9XCJtYXRNZW51XCIgY2xhc3M9XCJtYXQtbWVudS0zMDBcIj5cclxuICAgICAgICAgIEBmb3IgKGYgb2YgZmlsdGVyT3B0aW9uczsgdHJhY2sgZikge1xyXG5cclxuICAgICAgICAgIEBpZiAoZi5kaXZpZGVyKSB7XHJcbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoZi5ncm91cE5hbWUpIHtcclxuICAgICAgICAgIDxzcGFuIHN0eWxlPSdmb250LXNpemU6c21hbGw7IHBhZGRpbmc6IDJweCA0cHg7Jz48aT48Yj57e2YuZ3JvdXBOYW1lfX08L2I+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoIWYuZ3JvdXBOYW1lICYmICFmLmRpdmlkZXIpIHtcclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZG9GaWx0ZXJCeU9wdGlvbnMoZilcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImYuZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgQGlmIChmLnJhZGlvICYmIGYudmFsdWUpIHtcclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nLWxlZnQ6NDBweFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8bWF0LWljb24+e3tmLmljb259fTwvbWF0LWljb24+IHt7Zi50aXRsZX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjYW5FZGl0KCkgfHwgY2FuQXBwZW5kKCkgfHwgY2FuVmlldygpIHx8IGNhbkRlbGV0ZSgpKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBzdHlsZT1cIndoaXRlLXNwYWNlOm5vd3JhcFwiPlxyXG4gICAgICAgIEBpZiAoY2FuQXBwZW5kKCkpIHtcclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZG9BcHBlbmQoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBZ2dpdW5naVwiIG1hdFRvb2x0aXA9XCJBZ2dpdW5naVwiPmFkZDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoY2FuRWRpdCgpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvRWRpdCgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk1vZGlmaWNhXCIgbWF0VG9vbHRpcD1cIk1vZGlmaWNhXCI+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoY2FuVmlldygpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvVmlldygpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk1vc3RyYVwiIG1hdFRvb2x0aXA9XCJNb3N0cmFcIj52aXNpYmlsaXR5PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIChjYW5EZWxldGUoKSkge1xyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJkb0RlbGV0ZSgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkVsaW1pbmFcIiBtYXRUb29sdGlwPVwiRWxpbWluYVwiPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgQGlmICgoZGlhbG9nRGF0YS5tdWx0aSB8fCBkaWFsb2dEYXRhLmhlYWRlcikgJiYgZGlhbG9nRGF0YS5pdGVtcz8ubGVuZ3RoID4gMCkge1xyXG4gIDxkaXY+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhGYWx5b3V0R2FwPVwiMTBweFwiIGZ4RmlsbCBzdHlsZT1cInBhZGRpbmctdG9wOiAxMHB4O1wiPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjcycHhcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7XCI+XHJcbiAgICAgICAgQGlmIChkaWFsb2dEYXRhLm11bHRpKSB7XHJcbiAgICAgICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiAoY2hhbmdlKT1cIiRldmVudCA/IG1hc3RlclNlbGVjdGlvblRvZ2dsZSgkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlKClcIiBbY2hlY2tlZF09XCJzZWxlY3Rpb25NYXN0ZXJDaGVja2VkKClcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VsZXppb25hL2Rlc2VsZXppb25hIHR1dHRvJ1wiIG1hdFRvb2x0aXA9XCJTZWxlemlvbmEvZGVzZWxlemlvbmEgdHV0dG9cIj5cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEwMFwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgQGlmIChkaWFsb2dEYXRhLmhlYWRlcikge1xyXG4gICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmhlYWRlciB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XHJcbiAgICBAaWYgKGRpYWxvZ0RhdGEuY2FuTG9va3VwICYmICghZGlhbG9nRGF0YS5pdGVtcyB8fCBkaWFsb2dEYXRhLml0ZW1zLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj48aT5cclxuICAgICAgICBAaWYgKCFkaWFsb2dEYXRhLmVtcHR5TWVzc2FnZSkge1xyXG4gICAgICAgIDxzcGFuPk5lc3N1biBlbGVtZW50byBkYSB2aXN1YWxpenphcmUuPGJyPkVzZWd1aSB1bmEgbnVvdmEgcmljZXJjYSBvIG1vZGlmaWNhIHF1ZWxsYVxyXG4gICAgICAgICAgZXNpc3RlbnRlLlxyXG4gICAgICAgICAgQGlmIChkaWFsb2dEYXRhLm1heEl0ZW1zID4gMCkge1xyXG4gICAgICAgICAgPHNwYW4+U2FyYW5ubyBtb3N0cmF0aSBhbCBtYXNzaW1vIHt7ZGlhbG9nRGF0YS5tYXhJdGVtc319IGVsZW1lbnRpLjwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmVtcHR5TWVzc2FnZSB8IHNhZmVIdG1sXCI+PC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9pPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8bWF0LXNlbGVjdGlvbi1saXN0ICNzZWxlY3Rpb24gKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3QoJGV2ZW50KVwiIGRlbnNlIGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3I9XCJ0cnVlXCI+XHJcbiAgICAgIEBmb3IgKGl0ZW0gb2YgKGRpYWxvZ0RhdGEuaXRlbXMgfCBzZWFyY2g6ICghZGlhbG9nRGF0YS5jYW5Mb29rdXAgPyBmaWx0ZXJUZXh0IDogJycpKTsgdHJhY2sgaXRlbSkge1xyXG4gICAgICA8bWF0LWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCIgW3NlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWRcIiBjaGVja2JveFBvc2l0aW9uPVwiYmVmb3JlXCIgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cIml0ZW0udGVtcGxhdGUgfCBzYWZlSHRtbFwiPjwvZGl2PlxyXG4gICAgICA8L21hdC1saXN0LW9wdGlvbj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGaWxsPlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiIGZ4RmlsbD5cclxuICAgICAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDoyMHB4XCI+XHJcbiAgICAgICAgQGlmIChzZWxlY3Rpb25JbmZvKCkpIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNtYWxsXCI+c2VsZXppb25lOiAmbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9XCJib2xkXCI+e3tzZWxlY3Rpb25JbmZvKCl9fTwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgQGlmIChjYW5QYWdpbmF0ZSgpKSB7XHJcbiAgICAgICAgPG1hdC1wYWdpbmF0b3IgI3BhZ2luYXRvciBbaGlkZVBhZ2VTaXplXT1cInRydWVcIiBbcGFnZVNpemVdPVwiZGlhbG9nRGF0YS5wYWdlU2l6ZVwiIFtzaG93Rmlyc3RMYXN0QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgIChwYWdlKT1cImRvTG9va3VwUGFnZSgkZXZlbnQpXCIgW2xlbmd0aF09XCJkaWFsb2dEYXRhLml0ZW1zPy5sZW5ndGggPz8gMFwiPjwvbWF0LXBhZ2luYXRvcj5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBmeEZpbGw+XHJcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvaygpXCIgW2Rpc2FibGVkXT1cIm9rRGlzYWJsZWQoKVwiPlxyXG4gICAgICAgIDxzcGFuPnt7ZGlhbG9nRGF0YS5tdXN0U2VsZWN0ID8gZGlhbG9nRGF0YS5va0NhcHRpb24gOiAnQ2hpdWRpJ319PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgQGlmIChkaWFsb2dEYXRhLm11c3RTZWxlY3QpIHtcclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgY2RrRm9jdXNJbml0aWFsIGNvbG9yPVwicHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuPkFubnVsbGE8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -760,8 +760,9 @@ class SelectDialogComponent {
760
760
  select(e) {
761
761
  if (!this.dialogData.multi) {
762
762
  this.selection.deselectAll();
763
- if (e.value.options?.length > 0)
764
- e.value.options[0].selected = true;
763
+ console.log(JSON.stringify(e));
764
+ if (e.value)
765
+ e.value.selected = true;
765
766
  this.okDisabled.set(false);
766
767
  }
767
768
  else {