@bcgov/nr-ngx-component-lib 0.0.85 → 0.0.86

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.
@@ -121,7 +121,7 @@ export class FilterSelectComponent extends NrclBase {
121
121
  this.selection.setValue(value.filter(v => this.options.some(o => o.code == v)));
122
122
  let mod = JSON.stringify(this.selection.value);
123
123
  // console.log(this.label,old,mod,this.options.map(o=>o.code))
124
- if (old == mod)
124
+ if (old == 'null' || old == mod)
125
125
  return;
126
126
  this.emitValueChange();
127
127
  }
@@ -332,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
332
332
  }], valueChange: [{
333
333
  type: Output
334
334
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvY29tcG9uZW50cy9maWx0ZXItc2VsZWN0L2ZpbHRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvZmlsdGVyLXNlbGVjdC9maWx0ZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQUd0RDs7Ozs7Ozs7R0FRRztBQWNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxRQUFRO0lBYm5EOztRQWNJLHNCQUFpQixHQUFHLE1BQU0sQ0FBRSxpQkFBaUIsQ0FBRSxDQUFBO1FBQy9DLFlBQU8sR0FBRyxNQUFNLENBQUUsT0FBTyxDQUFFLENBQUE7UUFD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QUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0csS0FBSztzQkFBOUMsS0FBSzt1QkFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRyxNQUFNO3NCQUEvQyxLQUFLO3VCQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGNBQWM7c0JBQXRELEtBQUs7dUJBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUM3QixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBNYXRTZWxlY3Rpb25MaXN0Q2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBOcmNsQmFzZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL25yY2wuYmFzZVwiO1xuaW1wb3J0IHsgQ29kZURlc2NyaXB0aW9uIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2NvZGUtdGFibGUudXRpbFwiO1xuXG4vKipcbiAqIEEgZmlsdGVyIHNlbGVjdCBjb21wb25lbnQgdGhhdCBhbGxvd3MgdXNlcnMgdG8gc2VsZWN0IG11bHRpcGxlIG9wdGlvbnMgZnJvbSBhIGxpc3QuXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIE11bHRpLXNlbGVjdCB3aXRoIG9wdGlvbmFsIG1heGltdW0gc2VsZWN0aW9uIGxpbWl0XG4gKiAtIFNlYXJjaC9maWx0ZXIgZnVuY3Rpb25hbGl0eVxuICogLSBUb29sdGlwcyBmb3IgbG9uZyBkZXNjcmlwdGlvbnNcbiAqIC0gU3VtbWFyeSBkaXNwbGF5IG9mIHNlbGVjdGVkIGl0ZW1zXG4gKi9cbkBDb21wb25lbnQoIHtcbiAgICBzZWxlY3RvcjogXCJucmNsLWZpbHRlci1zZWxlY3RcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2ZpbHRlci1zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybDogXCIuL2ZpbHRlci1zZWxlY3QuY29tcG9uZW50LnNjc3NcIixcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuaGFzLXZhbHVlXSc6IFwiaGFzVmFsdWVcIixcbiAgICAgICAgJ1tjbGFzcy5pcy1vcGVuXSc6IFwiaXNPcGVuXCIsXG4gICAgICAgICdbY2xhc3MuaXMtY2xvc2VkXSc6IFwiIWlzT3BlblwiLFxuICAgICAgICAnW2NsYXNzLnVzZS1maWx0ZXJdJzogXCJmaWx0ZXJcIixcbiAgICAgICAgJ1tzdHlsZS4tLW5yY2wtZmlsdGVyLXNlbGVjdC13aWR0aF0nOiAndGhpcy53aWRlID8gXCJ2YXIoIC0tbnJjbC1maWx0ZXItd2lkdGgtXCIgKyB0aGlzLndpZGUgKyBcIiApXCIgOiBudWxsJ1xuICAgIH1cbn0gKVxuZXhwb3J0IGNsYXNzIEZpbHRlclNlbGVjdENvbXBvbmVudCBleHRlbmRzIE5yY2xCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoIENoYW5nZURldGVjdG9yUmVmIClcbiAgICBvdmVybGF5ID0gaW5qZWN0KCBPdmVybGF5IClcbiAgICB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KCBWaWV3Q29udGFpbmVyUmVmIClcbiAgICBkb21TYW5pdGl6ZXIgPSBpbmplY3QoIERvbVNhbml0aXplciApXG5cbiAgICBAVmlld0NoaWxkKCAndHJpZ2dlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9ICkgdHJpZ2dlciE6IEVsZW1lbnRSZWZcbiAgICBAVmlld0NoaWxkKCAnZmlsdGVySW5wdXQnICkgZmlsdGVySW5wdXQhOiBFbGVtZW50UmVmXG4gICAgQFZpZXdDaGlsZCggJ292ZXJsYXlUZW1wbGF0ZScgKSBvdmVybGF5VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+XG4gICAgQFZpZXdDaGlsZCggJ2RlZmF1bHRPcHRpb25UZW1wbGF0ZVJlZicgKSBkZWZhdWx0T3B0aW9uVGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgICBAQ29udGVudENoaWxkKCBUZW1wbGF0ZVJlZiApIG9wdGlvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmdcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdGaWx0ZXIuLi4nXG4gICAgQElucHV0KCkgaGludD86IHN0cmluZ1xuICAgIEBJbnB1dCgpIG9wdGlvbnM6IENvZGVEZXNjcmlwdGlvbltdID0gW11cbiAgICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nW10gPSBbXVxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgc2VsZWN0TWF4ID0gMFxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSApIHRvb2x0aXBzID0gdHJ1ZVxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSApIHN1bW1hcnkgPSB0cnVlXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9ICkgY2xlYXIgPSB0cnVlXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9ICkgZmlsdGVyID0gdHJ1ZVxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9ICkgZmlsdGVyQ2hhcnNNaW4gPSAwXG4gICAgQElucHV0KCkgb3B0aW9uRm9ybWF0dGVyOiAoIG9wdGlvbjogQ29kZURlc2NyaXB0aW9uLCBwbGFpbnRleHQ6IGJvb2xlYW4gKSA9PiBzdHJpbmcgPSAoIG8sIHAgKSA9PiBvLmRlc2NyaXB0aW9uICAgIFxuICAgIEBJbnB1dCgpIG9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiBcbiAgICBASW5wdXQoKSBvdmVybGF5Q2xhc3M/OiBzdHJpbmdcbiAgICBASW5wdXQoKSB3aWRlPzogc3RyaW5nIFxuICAgIEBJbnB1dCgpIGZpbHRlckNoYXJzTWluTWVzc2FnZSA9ICdUb28gbWFueSBvcHRpb25zJ1xuXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICAgIGZsb2F0TGFiZWwgPSAnYXV0bydcbiAgICBpbnB1dFZhbHVlPzogc3RyaW5nXG4gICAgaXNGaWx0ZXJlZCA9IGZhbHNlXG4gICAgaXNPcGVuID0gZmFsc2VcbiAgICBoYXNWYWx1ZSA9IGZhbHNlXG4gICAgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWZcbiAgICBzZWxlY3Rpb24gPSBuZXcgRm9ybUNvbnRyb2woKVxuICAgIG1hdGNoOiAoIG9wdGlvbjogQ29kZURlc2NyaXB0aW9uICkgPT4gYm9vbGVhbiA9ICggbyApID0+IHRydWVcbiAgICBjbGlja1N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvblxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KClcblxuICAgICAgICB0aGlzLmNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KCBkb2N1bWVudCwgJ2NsaWNrJyApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCAoIGV2ZW50OiBNb3VzZUV2ZW50ICkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsaWNrVGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlckVsID0gdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICBjb25zdCBvdmVybGF5RWwgPSB0aGlzLm92ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50XG5cbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmxhYmVsLCd0YXJnZXQnLGNsaWNrVGFyZ2V0KVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubGFiZWwsJ3RyaWdnZXJFbCcsdHJpZ2dlckVsPy5jb250YWlucyhjbGlja1RhcmdldCksdHJpZ2dlckVsKVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubGFiZWwsJ292ZXJsYXlFbCcsb3ZlcmxheUVsPy5jb250YWlucyhjbGlja1RhcmdldCksb3ZlcmxheUVsKVxuXG4gICAgICAgICAgICAgICAgLy8gT25seSBjbG9zZSBpZiBjbGljayBpcyBvdXRzaWRlIGJvdGggdHJpZ2dlciBhbmQgb3ZlcmxheVxuICAgICAgICAgICAgICAgIGlmICggdHJpZ2dlckVsPy5jb250YWlucyhjbGlja1RhcmdldCkgKSByZXR1cm4gXG4gICAgICAgICAgICAgICAgaWYgKCAhb3ZlcmxheUVsICkgcmV0dXJuIFxuICAgICAgICAgICAgICAgIGlmICggb3ZlcmxheUVsPy5jb250YWlucyhjbGlja1RhcmdldCkgKSByZXR1cm4gXG5cbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmxhYmVsLCdvdXRzaWRlIGNsaWNrJylcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKClcbiAgICAgICAgICAgICAgICB0aGlzLnNldElucHV0VG9TZWxlY3Rpb24oKVxuICAgICAgICAgICAgICAgIHRoaXMuZmxvYXRMYWJlbCA9ICdhdXRvJ1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICAgICAgICAgIH0gKVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzICk6IHZvaWQge1xuICAgICAgICBpZiAoIHRoaXMuaXNPcGVuICkgcmV0dXJuXG5cbiAgICAgICAgaWYgKCBjaGFuZ2VzLm9wdGlvbnMgKSB7XG4gICAgICAgICAgICBsZXQgcHYgPSBKU09OLnN0cmluZ2lmeSggY2hhbmdlcy5vcHRpb25zLnByZXZpb3VzVmFsdWUgKVxuICAgICAgICAgICAgbGV0IGN2ID0gSlNPTi5zdHJpbmdpZnkoIGNoYW5nZXMub3B0aW9ucy5jdXJyZW50VmFsdWUgKVxuXG4gICAgICAgICAgICBpZiAoIHB2ICE9IGN2ICkge1xuICAgICAgICAgICAgICAgIGxldCB2YWxzID0gdGhpcy5zZWxlY3Rpb24udmFsdWUgXG4gICAgICAgICAgICAgICAgaWYgKCB2YWxzICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKCB2YWxzIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFRvU2VsZWN0aW9uKClcbiAgICAgICAgICAgICAgICB0aGlzLnNldEZpbHRlcigpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIGNoYW5nZXMudmFsdWUgKSB7XG4gICAgICAgICAgICBpZiAoIHRoaXMudmFsdWUgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSggdGhpcy52YWx1ZSApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKCBbXSApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyKClcbiAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRUb1NlbGVjdGlvbigpXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoICF0aGlzLm9wdGlvblRlbXBsYXRlICkge1xuICAgICAgICAgICAgaWYgKCB0aGlzLm9wdGlvblRlbXBsYXRlUmVmICkge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uVGVtcGxhdGUgPSB0aGlzLm9wdGlvblRlbXBsYXRlUmVmXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvblRlbXBsYXRlID0gdGhpcy5kZWZhdWx0T3B0aW9uVGVtcGxhdGVSZWZcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgfVxuXG4gICAgZ2V0IHNpbmdsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0TWF4ID09IDFcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSggdmFsdWU6IHN0cmluZ1tdICkge1xuICAgICAgICAvLyBjb25zb2xlLndhcm4odGhpcy5sYWJlbCx2YWx1ZSlcbiAgICAgICAgbGV0IG9sZCA9IEpTT04uc3RyaW5naWZ5KCB0aGlzLnNlbGVjdGlvbi52YWx1ZSApXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNldFZhbHVlKCB2YWx1ZS5maWx0ZXIoIHYgPT4gdGhpcy5vcHRpb25zLnNvbWUoIG8gPT4gby5jb2RlID09IHYgKSApIClcbiAgICAgICAgbGV0IG1vZCA9IEpTT04uc3RyaW5naWZ5KCB0aGlzLnNlbGVjdGlvbi52YWx1ZSApXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubGFiZWwsb2xkLG1vZCx0aGlzLm9wdGlvbnMubWFwKG89Pm8uY29kZSkpXG5cbiAgICAgICAgaWYgKCBvbGQgPT0gbW9kICkgcmV0dXJuXG5cbiAgICAgICAgdGhpcy5lbWl0VmFsdWVDaGFuZ2UoKVxuICAgIH1cblxuICAgIGVtaXRWYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgbGV0IGNvdW50ID0gdGhpcy5zZWxlY3Rpb24udmFsdWUubGVuZ3RoXG5cbiAgICAgICAgdGhpcy5oYXNWYWx1ZSA9IGNvdW50ID4gMFxuICAgICAgICBpZiAoIHRoaXMuc2VsZWN0TWF4ID4gMSAmJiBjb3VudCA+PSB0aGlzLnNlbGVjdE1heCApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmRpc2FibGUoKVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uZW5hYmxlKClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCggdGhpcy5zZWxlY3Rpb24udmFsdWUgfHwgW10gKVxuICAgIH1cblxuICAgIG9wZW4oKSB7XG4gICAgICAgIGlmICggdGhpcy5pc09wZW4gKSByZXR1cm5cblxuICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWVcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuXG4gICAgICAgIC8vIENyZWF0ZSBvdmVybGF5XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyggdGhpcy50cmlnZ2VyIClcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKCBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogMFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0gKVxuICAgICAgICAgICAgLndpdGhQdXNoKCBmYWxzZSApXG5cbiAgICAgICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKCB7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBtYXhXaWR0aDogdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiAyLFxuICAgICAgICAgICAgbWluV2lkdGg6IHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiAzMDAsXG4gICAgICAgIH0gKVxuXG4gICAgICAgIC8vIEF0dGFjaCB0ZW1wbGF0ZVxuICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoIHRoaXMub3ZlcmxheVRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYgKVxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKCBwb3J0YWwgKVxuXG4gICAgICAgIC8vIEZvY3VzIGlucHV0IGFmdGVyIG92ZXJsYXkgaXMgYXR0YWNoZWRcbiAgICAgICAgc2V0VGltZW91dCggKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJJbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgICAgICAvLyBwcmV2ZW50IGxpc3QgZnJvbSBzY3JvbGxpbmcgd2hlbiBzZWxlY3Rpb24gY2hhbmdlcyAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5vdmVybGF5RWxlbWVudC5jaGlsZHJlblswXS5zY3JvbGwoIDAsIDEgKVxuICAgICAgICB9LDEwMCApXG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICggIXRoaXMuaXNPcGVuICkgcmV0dXJuXG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2VcblxuICAgICAgICBpZiAoIHRoaXMub3ZlcmxheVJlZiApIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKClcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGxcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cblxuICAgIHNldElucHV0VG9TZWxlY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuc2VsZWN0aW9uPy52YWx1ZT8ubWFwKCBjID0+IHRoaXMub3B0aW9uRm9ybWF0dGVyKCB0aGlzLm9wdGlvbkZvckNvZGUoIGMgKSwgdHJ1ZSApICkuam9pbiggJywgJyApIHx8ICcnXG4gICAgICAgIHRoaXMuaXNGaWx0ZXJlZCA9IGZhbHNlXG4gICAgfVxuXG4gICAgb25JbnB1dCggZXY/KSB7XG4gICAgICAgIHRoaXMuc2V0RmlsdGVyKCBldj8udGFyZ2V0Py52YWx1ZSApXG4gICAgfVxuXG4gICAgc2V0RmlsdGVyKCB0ZXh0Pzogc3RyaW5nICkge1xuICAgICAgICBsZXQgdCA9IHRleHQ/LnRyaW0oKS50b0xvd2VyQ2FzZSgpXG5cbiAgICAgICAgaWYgKCB0Py5sZW5ndGggPj0gdGhpcy5maWx0ZXJDaGFyc01pbiApIHtcbiAgICAgICAgICAgIHRoaXMuaXNGaWx0ZXJlZCA9IHRydWVcbiAgICAgICAgICAgIHRoaXMubWF0Y2ggPSAoIG9wdGlvbiApID0+IG9wdGlvbi5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCB0IClcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNGaWx0ZXJlZCA9IGZhbHNlXG4gICAgICAgICAgICB0aGlzLm1hdGNoID0gKCBvICkgPT4gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIC8vIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuXG4gICAgbWF0Y2hlc0ZpbHRlciggb3B0aW9uOiBDb2RlRGVzY3JpcHRpb24gKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hdGNoKCBvcHRpb24gKVxuICAgIH1cblxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlKCBldiApIHtcbiAgICAgICAgaWYgKCB0aGlzLnNpbmdsZSApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKVxuICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFRvU2VsZWN0aW9uKClcbiAgICAgICAgICAgIHRoaXMuZmxvYXRMYWJlbCA9ICdhdXRvJ1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJJbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtaXRWYWx1ZUNoYW5nZSgpXG4gICAgICAgIC8vIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuXG4gICAgb25VcHBlclNlbGVjdGlvbkNoYW5nZSggZXY6IE1hdFNlbGVjdGlvbkxpc3RDaGFuZ2UgKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGNvZGVzID0gdGhpcy5zZWxlY3Rpb24udmFsdWUuZmlsdGVyKCBjID0+IGMgIT0gZXYub3B0aW9uc1sgMCBdLnZhbHVlIClcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNldFZhbHVlKCBjb2RlcyApXG5cbiAgICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UoIGV2IClcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBvbkNhbmNlbENsaWNrKCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKCBbXSApXG4gICAgICAgIHRoaXMuc2V0SW5wdXRUb1NlbGVjdGlvbigpXG4gICAgfVxuXG4gICAgb25JbnB1dEZvY3VzKCkge1xuICAgICAgICBpZiAoIHRoaXMuaXNPcGVuICkgcmV0dXJuXG5cbiAgICAgICAgdGhpcy5mbG9hdExhYmVsID0gJ2Fsd2F5cydcblxuICAgICAgICBpZiAoIHRoaXMuZmlsdGVyICkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gJydcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyKClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3BlbigpXG4gICAgfVxuXG4gICAgb25DbG9zZUNsaWNrKCkge1xuICAgICAgICB0aGlzLmNsb3NlKClcbiAgICAgICAgdGhpcy5zZXRJbnB1dFRvU2VsZWN0aW9uKClcbiAgICAgICAgdGhpcy5mbG9hdExhYmVsID0gJ2F1dG8nXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuXG4gICAgZGVzY3JpcHRpb25Gb3JDb2RlKCBjb2RlOiBzdHJpbmcgKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5maW5kKCBvID0+IG8uY29kZSA9PSBjb2RlICk/LmRlc2NyaXB0aW9uXG4gICAgfVxuXG4gICAgb3B0aW9uRm9yQ29kZSggY29kZTogc3RyaW5nICk6IENvZGVEZXNjcmlwdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmluZCggbyA9PiBvLmNvZGUgPT0gY29kZSApXG4gICAgfVxuXG4gICAgZ2V0IGlzQ2xvc2VkTm9TZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc09wZW4gJiYgISggdGhpcy5zZWxlY3Rpb24/LnZhbHVlPy5sZW5ndGggPiAwICYmIHRoaXMuY2xlYXIgKVxuICAgIH1cblxuICAgIGdldCBpc0Nsb3NlZFNlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzT3BlbiAmJiB0aGlzLnNlbGVjdGlvbj8udmFsdWU/Lmxlbmd0aCA+IDAgJiYgdGhpcy5jbGVhclxuICAgIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCAjdHJpZ2dlclxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcbiAgICBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCJcbj5cbiAgICBAaWYgKCBsYWJlbCApIHtcbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIH1cblxuICAgIDxpbnB1dCBjbGFzcz1cImZpbHRlci1pbnB1dFwiICNmaWx0ZXJJbnB1dFxuICAgICAgICBtYXRJbnB1dCBcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgXG4gICAgICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoICRldmVudCApXCJcbiAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cImNsb3NlKClcIlxuICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKClcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJpbnB1dFZhbHVlXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cIiFmaWx0ZXJcIlxuICAgID5cbjwvbWF0LWZvcm0tZmllbGQ+ICAgICAgICBcblxuPG5yY2wtYnV0dG9uIHRlcnRpYXJ5IFtjbGFzcy5oaWRlXT1cIiFpc09wZW5cIlxuICAgIGljb249XCJhcnJvd19kcm9wX3VwXCJcbiAgICAoY2xpY2spPVwib25DbG9zZUNsaWNrKClcIlxuPjwvbnJjbC1idXR0b24+XG5cbjxucmNsLWJ1dHRvbiB0ZXJ0aWFyeSBbY2xhc3MuaGlkZV09XCIhaXNDbG9zZWRTZWxlY3Rpb25cIlxuICAgIGljb249XCJjbG9zZVwiXG4gICAgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiXG4+PC9ucmNsLWJ1dHRvbj5cblxuPG5yY2wtYnV0dG9uIHRlcnRpYXJ5IFtjbGFzcy5oaWRlXT1cIiFpc0Nsb3NlZE5vU2VsZWN0aW9uXCJcbiAgICBpY29uPVwiYXJyb3dfZHJvcF9kb3duXCJcbiAgICAoY2xpY2spPVwib25JbnB1dEZvY3VzKClcIlxuPjwvbnJjbC1idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheVRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJucmNsIGZpbHRlci1zZWxlY3Qtb3B0aW9uc1wiIFtjbGFzcy5tdWx0aXBsZV09XCIhc2luZ2xlXCIgW2NsYXNzLnNpbmdsZV09XCJzaW5nbGVcIiBbY2xhc3NdPVwib3ZlcmxheUNsYXNzXCI+XG4gICAgICAgIEBpZiAoICFpc0ZpbHRlcmVkICYmICggIXNpbmdsZSB8fCBmaWx0ZXJDaGFyc01pbiApICYmIHN1bW1hcnkgKSB7XG4gICAgICAgICAgICBAaWYgKCAhc2VsZWN0aW9uPy52YWx1ZT8ubGVuZ3RoICYmICggaGludCB8fCBmaWx0ZXJDaGFyc01pbiApICkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rpb24tb3ZlcnZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICggaGludCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaGludCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCBmaWx0ZXJDaGFyc01pbiAmJiBmaWx0ZXJDaGFyc01pbk1lc3NhZ2UgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpbHRlckNoYXJzTWluTWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoIHNlbGVjdGlvbj8udmFsdWU/Lmxlbmd0aCA+IDAgJiYgc2VsZWN0aW9uPy52YWx1ZT8ubGVuZ3RoIDwgb3B0aW9ucz8ubGVuZ3RoICkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rpb24tb3ZlcnZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICggIXNpbmdsZSApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2VsZWN0ZWQge3sgc2VsZWN0aW9uPy52YWx1ZT8ubGVuZ3RoIH19IG9mIHt7IG9wdGlvbnM/Lmxlbmd0aCB9fSBvcHRpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdGlvbi1saXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVXBwZXJTZWxlY3Rpb25DaGFuZ2UoICRldmVudCApXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoIGNvZGUgb2Ygc2VsZWN0aW9uPy52YWx1ZTsgdHJhY2sgY29kZSApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxpc3Qtb3B0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29kZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVQb3NpdGlvbj1cImJlZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBzID8gZGVzY3JpcHRpb25Gb3JDb2RlKCBjb2RlICkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWZ0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblRlbXBsYXRlXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG9wdGlvbkZvckNvZGUoIGNvZGUgKSB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCBoaW50ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBoaW50IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIGZpbHRlckNoYXJzTWluICYmIGZpbHRlckNoYXJzTWluTWVzc2FnZSApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmlsdGVyQ2hhcnNNaW5NZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICggc2VsZWN0aW9uPy52YWx1ZT8ubGVuZ3RoID09IG9wdGlvbnM/Lmxlbmd0aCApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uLW92ZXJ2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5XCI+QWxsIG9wdGlvbnMgc2VsZWN0ZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoICFmaWx0ZXJDaGFyc01pbiB8fCBpc0ZpbHRlcmVkICkge1xuICAgICAgICAgICAgPG1hdC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoICRldmVudCApXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiIXNpbmdsZVwiXG4gICAgICAgICAgICAgICAgaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvclxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBmb3IgKCBvcHRpb24gb2Ygb3B0aW9uczsgdHJhY2sgb3B0aW9uICkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LWxpc3Qtb3B0aW9uIFtjbGFzcy5oaWRlXT1cIiFtYXRjaGVzRmlsdGVyKCBvcHRpb24gKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLmNvZGVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZVBvc2l0aW9uPVwiYmVmb3JlXCIgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcHMgPyBvcHRpb24uZGVzY3JpcHRpb24gOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFmdGVyXCIgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogb3B0aW9uIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGVSZWYgbGV0LWN0eD5cbiAgICA8c3Bhbj57eyBjdHguZGVzY3JpcHRpb24gfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvY29tcG9uZW50cy9maWx0ZXItc2VsZWN0L2ZpbHRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvZmlsdGVyLXNlbGVjdC9maWx0ZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQUd0RDs7Ozs7Ozs7R0FRRztBQWNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxRQUFRO0lBYm5EOztRQWNJLHNCQUFpQixHQUFHLE1BQU0sQ0FBRSxpQkFBaUIsQ0FBRSxDQUFBO1FBQy9DLFlBQU8sR0FBRyxNQUFNLENBQUUsT0FBTyxDQUFFLENBQUE7UUFD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T0FBTztzQkFBaEQsS0FBSzt1QkFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRyxLQUFLO3NCQUE5QyxLQUFLO3VCQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNHLE1BQU07c0JBQS9DLEtBQUs7dUJBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsY0FBYztzQkFBdEQsS0FBSzt1QkFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBQzdCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdFNlbGVjdGlvbkxpc3RDaGFuZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdFwiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IE5yY2xCYXNlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvbnJjbC5iYXNlXCI7XG5pbXBvcnQgeyBDb2RlRGVzY3JpcHRpb24gfSBmcm9tIFwiLi4vLi4vdXRpbHMvY29kZS10YWJsZS51dGlsXCI7XG5cbi8qKlxuICogQSBmaWx0ZXIgc2VsZWN0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBzZWxlY3QgbXVsdGlwbGUgb3B0aW9ucyBmcm9tIGEgbGlzdC5cbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gTXVsdGktc2VsZWN0IHdpdGggb3B0aW9uYWwgbWF4aW11bSBzZWxlY3Rpb24gbGltaXRcbiAqIC0gU2VhcmNoL2ZpbHRlciBmdW5jdGlvbmFsaXR5XG4gKiAtIFRvb2x0aXBzIGZvciBsb25nIGRlc2NyaXB0aW9uc1xuICogLSBTdW1tYXJ5IGRpc3BsYXkgb2Ygc2VsZWN0ZWQgaXRlbXNcbiAqL1xuQENvbXBvbmVudCgge1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtZmlsdGVyLXNlbGVjdFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZmlsdGVyLXNlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsOiBcIi4vZmlsdGVyLXNlbGVjdC5jb21wb25lbnQuc2Nzc1wiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5oYXMtdmFsdWVdJzogXCJoYXNWYWx1ZVwiLFxuICAgICAgICAnW2NsYXNzLmlzLW9wZW5dJzogXCJpc09wZW5cIixcbiAgICAgICAgJ1tjbGFzcy5pcy1jbG9zZWRdJzogXCIhaXNPcGVuXCIsXG4gICAgICAgICdbY2xhc3MudXNlLWZpbHRlcl0nOiBcImZpbHRlclwiLFxuICAgICAgICAnW3N0eWxlLi0tbnJjbC1maWx0ZXItc2VsZWN0LXdpZHRoXSc6ICd0aGlzLndpZGUgPyBcInZhciggLS1ucmNsLWZpbHRlci13aWR0aC1cIiArIHRoaXMud2lkZSArIFwiIClcIiA6IG51bGwnXG4gICAgfVxufSApXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgTnJjbEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdCggQ2hhbmdlRGV0ZWN0b3JSZWYgKVxuICAgIG92ZXJsYXkgPSBpbmplY3QoIE92ZXJsYXkgKVxuICAgIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoIFZpZXdDb250YWluZXJSZWYgKVxuICAgIGRvbVNhbml0aXplciA9IGluamVjdCggRG9tU2FuaXRpemVyIClcblxuICAgIEBWaWV3Q2hpbGQoICd0cmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmIH0gKSB0cmlnZ2VyITogRWxlbWVudFJlZlxuICAgIEBWaWV3Q2hpbGQoICdmaWx0ZXJJbnB1dCcgKSBmaWx0ZXJJbnB1dCE6IEVsZW1lbnRSZWZcbiAgICBAVmlld0NoaWxkKCAnb3ZlcmxheVRlbXBsYXRlJyApIG92ZXJsYXlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT5cbiAgICBAVmlld0NoaWxkKCAnZGVmYXVsdE9wdGlvblRlbXBsYXRlUmVmJyApIGRlZmF1bHRPcHRpb25UZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT5cblxuICAgIEBDb250ZW50Q2hpbGQoIFRlbXBsYXRlUmVmICkgb3B0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBsYWJlbD86IHN0cmluZ1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ0ZpbHRlci4uLidcbiAgICBASW5wdXQoKSBoaW50Pzogc3RyaW5nXG4gICAgQElucHV0KCkgb3B0aW9uczogQ29kZURlc2NyaXB0aW9uW10gPSBbXVxuICAgIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmdbXSA9IFtdXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0gKSBzZWxlY3RNYXggPSAwXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9ICkgdG9vbHRpcHMgPSB0cnVlXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9ICkgc3VtbWFyeSA9IHRydWVcbiAgICBASW5wdXQoIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0gKSBjbGVhciA9IHRydWVcbiAgICBASW5wdXQoIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0gKSBmaWx0ZXIgPSB0cnVlXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0gKSBmaWx0ZXJDaGFyc01pbiA9IDBcbiAgICBASW5wdXQoKSBvcHRpb25Gb3JtYXR0ZXI6ICggb3B0aW9uOiBDb2RlRGVzY3JpcHRpb24sIHBsYWludGV4dDogYm9vbGVhbiApID0+IHN0cmluZyA9ICggbywgcCApID0+IG8uZGVzY3JpcHRpb24gICAgXG4gICAgQElucHV0KCkgb3B0aW9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+IFxuICAgIEBJbnB1dCgpIG92ZXJsYXlDbGFzcz86IHN0cmluZ1xuICAgIEBJbnB1dCgpIHdpZGU/OiBzdHJpbmcgXG4gICAgQElucHV0KCkgZmlsdGVyQ2hhcnNNaW5NZXNzYWdlID0gJ1RvbyBtYW55IG9wdGlvbnMnXG5cbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gICAgZmxvYXRMYWJlbCA9ICdhdXRvJ1xuICAgIGlucHV0VmFsdWU/OiBzdHJpbmdcbiAgICBpc0ZpbHRlcmVkID0gZmFsc2VcbiAgICBpc09wZW4gPSBmYWxzZVxuICAgIGhhc1ZhbHVlID0gZmFsc2VcbiAgICBvdmVybGF5UmVmPzogT3ZlcmxheVJlZlxuICAgIHNlbGVjdGlvbiA9IG5ldyBGb3JtQ29udHJvbCgpXG4gICAgbWF0Y2g6ICggb3B0aW9uOiBDb2RlRGVzY3JpcHRpb24gKSA9PiBib29sZWFuID0gKCBvICkgPT4gdHJ1ZVxuICAgIGNsaWNrU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uXG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKVxuXG4gICAgICAgIHRoaXMuY2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4oIGRvY3VtZW50LCAnY2xpY2snIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoICggZXZlbnQ6IE1vdXNlRXZlbnQgKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xpY2tUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyRWwgPSB0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJsYXlFbCA9IHRoaXMub3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnRcblxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubGFiZWwsJ3RhcmdldCcsY2xpY2tUYXJnZXQpXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5sYWJlbCwndHJpZ2dlckVsJyx0cmlnZ2VyRWw/LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSx0cmlnZ2VyRWwpXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5sYWJlbCwnb3ZlcmxheUVsJyxvdmVybGF5RWw/LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSxvdmVybGF5RWwpXG5cbiAgICAgICAgICAgICAgICAvLyBPbmx5IGNsb3NlIGlmIGNsaWNrIGlzIG91dHNpZGUgYm90aCB0cmlnZ2VyIGFuZCBvdmVybGF5XG4gICAgICAgICAgICAgICAgaWYgKCB0cmlnZ2VyRWw/LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSApIHJldHVybiBcbiAgICAgICAgICAgICAgICBpZiAoICFvdmVybGF5RWwgKSByZXR1cm4gXG4gICAgICAgICAgICAgICAgaWYgKCBvdmVybGF5RWw/LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSApIHJldHVybiBcblxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubGFiZWwsJ291dHNpZGUgY2xpY2snKVxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRUb1NlbGVjdGlvbigpXG4gICAgICAgICAgICAgICAgdGhpcy5mbG9hdExhYmVsID0gJ2F1dG8nXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgICAgICAgICAgfSApXG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMgKTogdm9pZCB7XG4gICAgICAgIGlmICggdGhpcy5pc09wZW4gKSByZXR1cm5cblxuICAgICAgICBpZiAoIGNoYW5nZXMub3B0aW9ucyApIHtcbiAgICAgICAgICAgIGxldCBwdiA9IEpTT04uc3RyaW5naWZ5KCBjaGFuZ2VzLm9wdGlvbnMucHJldmlvdXNWYWx1ZSApXG4gICAgICAgICAgICBsZXQgY3YgPSBKU09OLnN0cmluZ2lmeSggY2hhbmdlcy5vcHRpb25zLmN1cnJlbnRWYWx1ZSApXG5cbiAgICAgICAgICAgIGlmICggcHYgIT0gY3YgKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHMgPSB0aGlzLnNlbGVjdGlvbi52YWx1ZSBcbiAgICAgICAgICAgICAgICBpZiAoIHZhbHMgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoIHZhbHMgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNldElucHV0VG9TZWxlY3Rpb24oKVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggY2hhbmdlcy52YWx1ZSApIHtcbiAgICAgICAgICAgIGlmICggdGhpcy52YWx1ZSApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKCB0aGlzLnZhbHVlIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoIFtdIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZXRGaWx0ZXIoKVxuICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFRvU2VsZWN0aW9uKClcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICggIXRoaXMub3B0aW9uVGVtcGxhdGUgKSB7XG4gICAgICAgICAgICBpZiAoIHRoaXMub3B0aW9uVGVtcGxhdGVSZWYgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25UZW1wbGF0ZSA9IHRoaXMub3B0aW9uVGVtcGxhdGVSZWZcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uVGVtcGxhdGUgPSB0aGlzLmRlZmF1bHRPcHRpb25UZW1wbGF0ZVJlZlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgICB9XG5cbiAgICBnZXQgc2luZ2xlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RNYXggPT0gMVxuICAgIH1cblxuICAgIHNldFZhbHVlKCB2YWx1ZTogc3RyaW5nW10gKSB7XG4gICAgICAgIC8vIGNvbnNvbGUud2Fybih0aGlzLmxhYmVsLHZhbHVlKVxuICAgICAgICBsZXQgb2xkID0gSlNPTi5zdHJpbmdpZnkoIHRoaXMuc2VsZWN0aW9uLnZhbHVlIClcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0VmFsdWUoIHZhbHVlLmZpbHRlciggdiA9PiB0aGlzLm9wdGlvbnMuc29tZSggbyA9PiBvLmNvZGUgPT0gdiApICkgKVxuICAgICAgICBsZXQgbW9kID0gSlNPTi5zdHJpbmdpZnkoIHRoaXMuc2VsZWN0aW9uLnZhbHVlIClcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5sYWJlbCxvbGQsbW9kLHRoaXMub3B0aW9ucy5tYXAobz0+by5jb2RlKSlcblxuICAgICAgICBpZiAoIG9sZCA9PSAnbnVsbCcgfHwgb2xkID09IG1vZCApIHJldHVyblxuXG4gICAgICAgIHRoaXMuZW1pdFZhbHVlQ2hhbmdlKClcbiAgICB9XG5cbiAgICBlbWl0VmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIGxldCBjb3VudCA9IHRoaXMuc2VsZWN0aW9uLnZhbHVlLmxlbmd0aFxuXG4gICAgICAgIHRoaXMuaGFzVmFsdWUgPSBjb3VudCA+IDBcbiAgICAgICAgaWYgKCB0aGlzLnNlbGVjdE1heCA+IDEgJiYgY291bnQgPj0gdGhpcy5zZWxlY3RNYXggKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5kaXNhYmxlKClcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmVuYWJsZSgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoIHRoaXMuc2VsZWN0aW9uLnZhbHVlIHx8IFtdIClcbiAgICB9XG5cbiAgICBvcGVuKCkge1xuICAgICAgICBpZiAoIHRoaXMuaXNPcGVuICkgcmV0dXJuXG5cbiAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcblxuICAgICAgICAvLyBDcmVhdGUgb3ZlcmxheVxuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oIHRoaXMudHJpZ2dlciApXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyggW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IDBcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdIClcbiAgICAgICAgICAgIC53aXRoUHVzaCggZmFsc2UgKVxuXG4gICAgICAgIGNvbnN0IHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSgge1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgbWF4V2lkdGg6IHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICogMixcbiAgICAgICAgICAgIG1pbldpZHRoOiB0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICAgIG1heEhlaWdodDogMzAwLFxuICAgICAgICB9IClcblxuICAgICAgICAvLyBBdHRhY2ggdGVtcGxhdGVcbiAgICAgICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKCB0aGlzLm92ZXJsYXlUZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmIClcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCggcG9ydGFsIClcblxuICAgICAgICAvLyBGb2N1cyBpbnB1dCBhZnRlciBvdmVybGF5IGlzIGF0dGFjaGVkXG4gICAgICAgIHNldFRpbWVvdXQoICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgLy8gcHJldmVudCBsaXN0IGZyb20gc2Nyb2xsaW5nIHdoZW4gc2VsZWN0aW9uIGNoYW5nZXMgICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQuY2hpbGRyZW5bMF0uc2Nyb2xsKCAwLCAxIClcbiAgICAgICAgfSwxMDAgKVxuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICBpZiAoICF0aGlzLmlzT3BlbiApIHJldHVyblxuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlXG5cbiAgICAgICAgaWYgKCB0aGlzLm92ZXJsYXlSZWYgKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsXG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG5cbiAgICBzZXRJbnB1dFRvU2VsZWN0aW9uKCkge1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLnNlbGVjdGlvbj8udmFsdWU/Lm1hcCggYyA9PiB0aGlzLm9wdGlvbkZvcm1hdHRlciggdGhpcy5vcHRpb25Gb3JDb2RlKCBjICksIHRydWUgKSApLmpvaW4oICcsICcgKSB8fCAnJ1xuICAgICAgICB0aGlzLmlzRmlsdGVyZWQgPSBmYWxzZVxuICAgIH1cblxuICAgIG9uSW5wdXQoIGV2Pykge1xuICAgICAgICB0aGlzLnNldEZpbHRlciggZXY/LnRhcmdldD8udmFsdWUgKVxuICAgIH1cblxuICAgIHNldEZpbHRlciggdGV4dD86IHN0cmluZyApIHtcbiAgICAgICAgbGV0IHQgPSB0ZXh0Py50cmltKCkudG9Mb3dlckNhc2UoKVxuXG4gICAgICAgIGlmICggdD8ubGVuZ3RoID49IHRoaXMuZmlsdGVyQ2hhcnNNaW4gKSB7XG4gICAgICAgICAgICB0aGlzLmlzRmlsdGVyZWQgPSB0cnVlXG4gICAgICAgICAgICB0aGlzLm1hdGNoID0gKCBvcHRpb24gKSA9PiBvcHRpb24uZGVzY3JpcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyggdCApXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzRmlsdGVyZWQgPSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5tYXRjaCA9ICggbyApID0+IHRydWVcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cblxuICAgIG1hdGNoZXNGaWx0ZXIoIG9wdGlvbjogQ29kZURlc2NyaXB0aW9uICkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXRjaCggb3B0aW9uIClcbiAgICB9XG5cbiAgICBvblNlbGVjdGlvbkNoYW5nZSggZXYgKSB7XG4gICAgICAgIGlmICggdGhpcy5zaW5nbGUgKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKClcbiAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRUb1NlbGVjdGlvbigpXG4gICAgICAgICAgICB0aGlzLmZsb2F0TGFiZWwgPSAnYXV0bydcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbWl0VmFsdWVDaGFuZ2UoKVxuICAgICAgICAvLyB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cblxuICAgIG9uVXBwZXJTZWxlY3Rpb25DaGFuZ2UoIGV2OiBNYXRTZWxlY3Rpb25MaXN0Q2hhbmdlICkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGxldCBjb2RlcyA9IHRoaXMuc2VsZWN0aW9uLnZhbHVlLmZpbHRlciggYyA9PiBjICE9IGV2Lm9wdGlvbnNbIDAgXS52YWx1ZSApXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZXRWYWx1ZSggY29kZXMgKVxuXG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlKCBldiApXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgb25DYW5jZWxDbGljaygpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSggW10gKVxuICAgICAgICB0aGlzLnNldElucHV0VG9TZWxlY3Rpb24oKVxuICAgIH1cblxuICAgIG9uSW5wdXRGb2N1cygpIHtcbiAgICAgICAgaWYgKCB0aGlzLmlzT3BlbiApIHJldHVyblxuXG4gICAgICAgIHRoaXMuZmxvYXRMYWJlbCA9ICdhbHdheXMnXG5cbiAgICAgICAgaWYgKCB0aGlzLmZpbHRlciApIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnXG4gICAgICAgICAgICB0aGlzLnNldEZpbHRlcigpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wZW4oKVxuICAgIH1cblxuICAgIG9uQ2xvc2VDbGljaygpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpXG4gICAgICAgIHRoaXMuc2V0SW5wdXRUb1NlbGVjdGlvbigpXG4gICAgICAgIHRoaXMuZmxvYXRMYWJlbCA9ICdhdXRvJ1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cblxuICAgIGRlc2NyaXB0aW9uRm9yQ29kZSggY29kZTogc3RyaW5nICk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmluZCggbyA9PiBvLmNvZGUgPT0gY29kZSApPy5kZXNjcmlwdGlvblxuICAgIH1cblxuICAgIG9wdGlvbkZvckNvZGUoIGNvZGU6IHN0cmluZyApOiBDb2RlRGVzY3JpcHRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQoIG8gPT4gby5jb2RlID09IGNvZGUgKVxuICAgIH1cblxuICAgIGdldCBpc0Nsb3NlZE5vU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNPcGVuICYmICEoIHRoaXMuc2VsZWN0aW9uPy52YWx1ZT8ubGVuZ3RoID4gMCAmJiB0aGlzLmNsZWFyIClcbiAgICB9XG5cbiAgICBnZXQgaXNDbG9zZWRTZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc09wZW4gJiYgdGhpcy5zZWxlY3Rpb24/LnZhbHVlPy5sZW5ndGggPiAwICYmIHRoaXMuY2xlYXJcbiAgICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgI3RyaWdnZXJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXG4gICAgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiXG4+XG4gICAgQGlmICggbGFiZWwgKSB7XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICB9XG5cbiAgICA8aW5wdXQgY2xhc3M9XCJmaWx0ZXItaW5wdXRcIiAjZmlsdGVySW5wdXRcbiAgICAgICAgbWF0SW5wdXQgXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFxuICAgICAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXG4gICAgICAgIChpbnB1dCk9XCJvbklucHV0KCAkZXZlbnQgKVwiXG4gICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbG9zZSgpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cygpXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiaW5wdXRWYWx1ZVwiXG4gICAgICAgIFtyZWFkb25seV09XCIhZmlsdGVyXCJcbiAgICA+XG48L21hdC1mb3JtLWZpZWxkPiAgICAgICAgXG5cbjxucmNsLWJ1dHRvbiB0ZXJ0aWFyeSBbY2xhc3MuaGlkZV09XCIhaXNPcGVuXCJcbiAgICBpY29uPVwiYXJyb3dfZHJvcF91cFwiXG4gICAgKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCJcbj48L25yY2wtYnV0dG9uPlxuXG48bnJjbC1idXR0b24gdGVydGlhcnkgW2NsYXNzLmhpZGVdPVwiIWlzQ2xvc2VkU2VsZWN0aW9uXCJcbiAgICBpY29uPVwiY2xvc2VcIlxuICAgIChjbGljayk9XCJvbkNhbmNlbENsaWNrKClcIlxuPjwvbnJjbC1idXR0b24+XG5cbjxucmNsLWJ1dHRvbiB0ZXJ0aWFyeSBbY2xhc3MuaGlkZV09XCIhaXNDbG9zZWROb1NlbGVjdGlvblwiXG4gICAgaWNvbj1cImFycm93X2Ryb3BfZG93blwiXG4gICAgKGNsaWNrKT1cIm9uSW5wdXRGb2N1cygpXCJcbj48L25yY2wtYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibnJjbCBmaWx0ZXItc2VsZWN0LW9wdGlvbnNcIiBbY2xhc3MubXVsdGlwbGVdPVwiIXNpbmdsZVwiIFtjbGFzcy5zaW5nbGVdPVwic2luZ2xlXCIgW2NsYXNzXT1cIm92ZXJsYXlDbGFzc1wiPlxuICAgICAgICBAaWYgKCAhaXNGaWx0ZXJlZCAmJiAoICFzaW5nbGUgfHwgZmlsdGVyQ2hhcnNNaW4gKSAmJiBzdW1tYXJ5ICkge1xuICAgICAgICAgICAgQGlmICggIXNlbGVjdGlvbj8udmFsdWU/Lmxlbmd0aCAmJiAoIGhpbnQgfHwgZmlsdGVyQ2hhcnNNaW4gKSApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uLW92ZXJ2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIGhpbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGhpbnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICggZmlsdGVyQ2hhcnNNaW4gJiYgZmlsdGVyQ2hhcnNNaW5NZXNzYWdlICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBmaWx0ZXJDaGFyc01pbk1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCBzZWxlY3Rpb24/LnZhbHVlPy5sZW5ndGggPiAwICYmIHNlbGVjdGlvbj8udmFsdWU/Lmxlbmd0aCA8IG9wdGlvbnM/Lmxlbmd0aCApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uLW92ZXJ2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoICFzaW5nbGUgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdGVkIHt7IHNlbGVjdGlvbj8udmFsdWU/Lmxlbmd0aCB9fSBvZiB7eyBvcHRpb25zPy5sZW5ndGggfX0gb3B0aW9uczwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblVwcGVyU2VsZWN0aW9uQ2hhbmdlKCAkZXZlbnQgKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKCBjb2RlIG9mIHNlbGVjdGlvbj8udmFsdWU7IHRyYWNrIGNvZGUgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1saXN0LW9wdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvZGVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlUG9zaXRpb249XCJiZWZvcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwcyA/IGRlc2NyaXB0aW9uRm9yQ29kZSggY29kZSApIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFmdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBvcHRpb25Gb3JDb2RlKCBjb2RlICkgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICggaGludCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaGludCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCBmaWx0ZXJDaGFyc01pbiAmJiBmaWx0ZXJDaGFyc01pbk1lc3NhZ2UgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpbHRlckNoYXJzTWluTWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoIHNlbGVjdGlvbj8udmFsdWU/Lmxlbmd0aCA9PSBvcHRpb25zPy5sZW5ndGggKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbi1vdmVydmlld1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeVwiPkFsbCBvcHRpb25zIHNlbGVjdGVkPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCAhZmlsdGVyQ2hhcnNNaW4gfHwgaXNGaWx0ZXJlZCApIHtcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0aW9uLWxpc3RcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCAkZXZlbnQgKVwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIiFzaW5nbGVcIlxuICAgICAgICAgICAgICAgIGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yICggb3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrIG9wdGlvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1saXN0LW9wdGlvbiBbY2xhc3MuaGlkZV09XCIhbWF0Y2hlc0ZpbHRlciggb3B0aW9uIClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi5jb2RlXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVQb3NpdGlvbj1cImJlZm9yZVwiICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBzID8gb3B0aW9uLmRlc2NyaXB0aW9uIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhZnRlclwiICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG9wdGlvbiB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGlzdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlUmVmIGxldC1jdHg+XG4gICAgPHNwYW4+e3sgY3R4LmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -808,7 +808,7 @@ class FilterSelectComponent extends NrclBase {
808
808
  this.selection.setValue(value.filter(v => this.options.some(o => o.code == v)));
809
809
  let mod = JSON.stringify(this.selection.value);
810
810
  // console.log(this.label,old,mod,this.options.map(o=>o.code))
811
- if (old == mod)
811
+ if (old == 'null' || old == mod)
812
812
  return;
813
813
  this.emitValueChange();
814
814
  }