@mozaic-ds/angular 0.24.0 → 0.26.0

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.
Files changed (33) hide show
  1. package/adeo/components/listbox/listbox.component.d.ts +1 -0
  2. package/adeo/components/pagination/pagination.component.d.ts +0 -1
  3. package/adeo/esm2020/components/autocomplete/autocomplete.component.mjs +2 -2
  4. package/adeo/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  5. package/adeo/esm2020/components/listbox/listbox.component.mjs +8 -4
  6. package/adeo/esm2020/components/pagination/pagination.component.mjs +1 -8
  7. package/adeo/fesm2015/mozaic-ds-angular.mjs +9 -12
  8. package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  9. package/adeo/fesm2020/mozaic-ds-angular.mjs +9 -12
  10. package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  11. package/adeo/package.json +1 -1
  12. package/bricoman/components/listbox/listbox.component.d.ts +1 -0
  13. package/bricoman/components/pagination/pagination.component.d.ts +0 -1
  14. package/bricoman/esm2020/components/autocomplete/autocomplete.component.mjs +2 -2
  15. package/bricoman/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  16. package/bricoman/esm2020/components/listbox/listbox.component.mjs +8 -4
  17. package/bricoman/esm2020/components/pagination/pagination.component.mjs +1 -8
  18. package/bricoman/fesm2015/mozaic-ds-angular.mjs +9 -12
  19. package/bricoman/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  20. package/bricoman/fesm2020/mozaic-ds-angular.mjs +9 -12
  21. package/bricoman/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  22. package/bricoman/package.json +1 -1
  23. package/components/listbox/listbox.component.d.ts +1 -0
  24. package/components/pagination/pagination.component.d.ts +0 -1
  25. package/esm2020/components/autocomplete/autocomplete.component.mjs +2 -2
  26. package/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
  27. package/esm2020/components/listbox/listbox.component.mjs +8 -4
  28. package/esm2020/components/pagination/pagination.component.mjs +1 -8
  29. package/fesm2015/mozaic-ds-angular.mjs +9 -12
  30. package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  31. package/fesm2020/mozaic-ds-angular.mjs +9 -12
  32. package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  33. package/package.json +1 -1
@@ -53,7 +53,6 @@ export class PaginationComponent {
53
53
  if (this.viewSelect) {
54
54
  this.pages = this.initializePages(this.numberOfPages);
55
55
  }
56
- this.reinitializeCurrentPageAtOverflow();
57
56
  this.cd.detectChanges();
58
57
  }
59
58
  ngOnChanges({ numberOfPages, pageTitleMask }) {
@@ -61,7 +60,6 @@ export class PaginationComponent {
61
60
  this.reinitializeNumberOfPagesAtInvalidValue();
62
61
  }
63
62
  this.pages = this.initializePages(this.numberOfPages);
64
- this.reinitializeCurrentPageAtOverflow();
65
63
  }
66
64
  writeValue(value) {
67
65
  if (!value || value === this.currentPage || value > this.numberOfPages)
@@ -105,11 +103,6 @@ export class PaginationComponent {
105
103
  const displayWidth = resizeEvent.pipe(map((event) => event?.target?.innerWidth), startWith(this.globalEventService.window.innerWidth));
106
104
  return displayWidth.pipe(map((width) => width < this.smallResolution));
107
105
  }
108
- reinitializeCurrentPageAtOverflow() {
109
- if (this.numberOfPages < this.currentPage) {
110
- this.writeValue(PAGINATION_FIRST_PAGE);
111
- }
112
- }
113
106
  reinitializeNumberOfPagesAtInvalidValue() {
114
107
  if (!this.numberOfPages || this.numberOfPages < PAGINATION_MIN_NUMBER_OF_PAGES) {
115
108
  this.numberOfPages = PAGINATION_MIN_NUMBER_OF_PAGES;
@@ -147,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
147
140
  }], pageTitleMask: [{
148
141
  type: Input
149
142
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBYyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLG9CQUFvQixHQUNyQixNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFdEIsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxtQkFBbUI7SUFxQjlCLFlBQ21CLGtCQUF1QyxFQUN2QyxFQUFxQjtRQURyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBQ3ZDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBdEIvQixrQkFBYSxHQUFH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Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQXVDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHbG9iYWxFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEljb25TaXplIH0gZnJvbSAnLi4vaWNvbi9pY29uLXNpemUnO1xuaW1wb3J0IHsgU0VMRUNUX1NJWkUsIFNlbGVjdFNpemUgfSBmcm9tICcuLi9zZWxlY3Qvc2VsZWN0LXNpemUnO1xuaW1wb3J0IHtcbiAgUGFnZSxcbiAgUEFHSU5BVElPTl9GSVJTVF9QQUdFLFxuICBQQUdJTkFUSU9OX01JTl9OVU1CRVJfT0ZfUEFHRVMsXG4gIFBBR0lOQVRJT05fUEFHRV9TVEVQLFxufSBmcm9tICcuL3BhZ2luYXRpb24nO1xuXG5leHBvcnQgY29uc3QgUEFHSU5BVElPTl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYWdpbmF0aW9uQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb3otcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbUEFHSU5BVElPTl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBudW1iZXJPZlBhZ2VzID0gUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTO1xuICBAT3V0cHV0KCkgcGFnZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KCkgZGlzYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBsaWdodCA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWdlTGFiZWwgPSAnUGFnZSc7XG4gIEBJbnB1dCgpIHBhZ2VPZkxhYmVsID0gJ29mJztcblxuICBwdWJsaWMgY3VycmVudFBhZ2UgPSBQQUdJTkFUSU9OX0ZJUlNUX1BBR0U7XG5cbiAgcHVibGljIHBhZ2VzOiBQYWdlW10gPSBbXTtcblxuICBwdWJsaWMgcmlnaHRJY29uTmFtZSE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgbGVmdEljb25OYW1lITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHB1YmxpYyBzZWxlY3RTaXplOiBPYnNlcnZhYmxlPFNlbGVjdFNpemU+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc21hbGxSZXNvbHV0aW9uID0gMTAyNDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEV2ZW50U2VydmljZTogR2xvYmFsRXZlbnRzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBjb25zdCBpc1NtYWxsID0gdGhpcy5kaXNwbGF5SXNTbWFsbCgpLnBpcGUoc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSk7XG4gICAgdGhpcy5pbml0aWFsaXplSWNvbnMoaXNTbWFsbCk7XG4gICAgdGhpcy5zZWxlY3RTaXplID0gaXNTbWFsbC5waXBlKG1hcCgoaXNTbWFsbCkgPT4gdGhpcy5jaG9vc2VTZWxlY3RTaXplKGlzU21hbGwpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpZXdTZWxlY3QoKSB7XG4gICAgcmV0dXJuICF0aGlzLmxpZ2h0O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0ZpcnN0UGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA8PSBQQUdJTkFUSU9OX0ZJUlNUX1BBR0U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPj0gdGhpcy5udW1iZXJPZlBhZ2VzO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZFNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJPZlBhZ2VzIDw9IFBBR0lOQVRJT05fTUlOX05VTUJFUl9PRl9QQUdFUztcbiAgfVxuXG4gIEBJbnB1dCgpIHBhZ2VUaXRsZU1hc2sgPSAocGFnZTogbnVtYmVyLCBudW1iZXJPZlBhZ2VzOiBudW1iZXIpID0+XG4gICAgYCR7dGhpcy5wYWdlTGFiZWx9ICR7cGFnZX0gJHt0aGlzLnBhZ2VPZkxhYmVsfSAke251bWJlck9mUGFnZXN9YDtcblxuICBwdWJsaWMgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIHB1YmxpYyBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZWluaXRpYWxpemVOdW1iZXJPZlBhZ2VzQXRJbnZhbGlkVmFsdWUoKTtcbiAgICBpZiAodGhpcy52aWV3U2VsZWN0KSB7XG4gICAgICB0aGlzLnBhZ2VzID0gdGhpcy5pbml0aWFsaXplUGFnZXModGhpcy5udW1iZXJPZlBhZ2VzKTtcbiAgICB9XG4gICAgdGhpcy5yZWluaXRpYWxpemVDdXJyZW50UGFnZUF0T3ZlcmZsb3coKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgbnVtYmVyT2ZQYWdlcywgcGFnZVRpdGxlTWFzayB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5uZWVkUmVuZGVyUGFnZXMoXG4gICAgICAgIHRoaXMudmlld1NlbGVjdCxcbiAgICAgICAgbnVtYmVyT2ZQYWdlcz8uY3VycmVudFZhbHVlLFxuICAgICAgICBudW1iZXJPZlBhZ2VzPy5wcmV2aW91c1ZhbHVlLFxuICAgICAgICBwYWdlVGl0bGVNYXNrPy5jdXJyZW50VmFsdWUsXG4gICAgICAgIHBhZ2VUaXRsZU1hc2s/LnByZXZpb3VzVmFsdWVcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMucmVpbml0aWFsaXplTnVtYmVyT2ZQYWdlc0F0SW52YWxpZFZhbHVlKCk7XG4gICAgfVxuICAgIHRoaXMucGFnZXMgPSB0aGlzLmluaXRpYWxpemVQYWdlcyh0aGlzLm51bWJlck9mUGFnZXMpO1xuICAgIHRoaXMucmVpbml0aWFsaXplQ3VycmVudFBhZ2VBdE92ZXJmbG93KCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5jdXJyZW50UGFnZSB8fCB2YWx1ZSA+IHRoaXMubnVtYmVyT2ZQYWdlcykgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBwdWJsaWMgbmV4dFBhZ2UoKSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuY3VycmVudFBhZ2UgKyBQQUdJTkFUSU9OX1BBR0VfU1RFUCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzUGFnZSgpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5jdXJyZW50UGFnZSAtIFBBR0lOQVRJT05fUEFHRV9TVEVQKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KHRoaXMuY3VycmVudFBhZ2UpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyZVdpdGhQYWdlcyhwYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlPzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IGN1cnJlbnRQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplUGFnZXMobnVtYmVyT2ZQYWdlczogbnVtYmVyKTogUGFnZVtdIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG51bWJlck9mUGFnZXMpLmZpbGwobnVsbCkubWFwKChfLCBpbmRleCkgPT4gKHtcbiAgICAgIHRpdGxlOiB0aGlzLnBhZ2VUaXRsZU1hc2soaW5kZXggKyAxLCBudW1iZXJPZlBhZ2VzKSxcbiAgICAgIHZhbHVlOiBpbmRleCArIDEsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplSWNvbnMoaXNTbWFsbDogT2JzZXJ2YWJsZTxib29sZWFuPikge1xuICAgIGNvbnN0IGljb25TaXplID0gaXNTbWFsbC5waXBlKFxuICAgICAgbWFwKChpc1NtYWxsKSA9PiB0aGlzLmNob29zZUljb25TaXplKGlzU21hbGwpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSlcbiAgICApO1xuXG4gICAgdGhpcy5sZWZ0SWNvbk5hbWUgPSBpY29uU2l6ZS5waXBlKFxuICAgICAgbWFwKChpY29uU2l6ZSkgPT4gYE5hdmlnYXRpb25fQXJyb3dfQXJyb3ctLUxlZnRfJHtpY29uU2l6ZX1gKVxuICAgICk7XG5cbiAgICB0aGlzLnJpZ2h0SWNvbk5hbWUgPSBpY29uU2l6ZS5waXBlKFxuICAgICAgbWFwKChpY29uU2l6ZSkgPT4gYE5hdmlnYXRpb25fQXJyb3dfQXJyb3ctLVJpZ2h0XyR7aWNvblNpemV9YClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5SXNTbWFsbCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByZXNpemVFdmVudCA9IHRoaXMuZ2xvYmFsRXZlbnRTZXJ2aWNlLmdldFdpbmRvd0V2ZW50KCdyZXNpemUnKS5waXBlKGRlYm91bmNlVGltZSgxMDApKTtcbiAgICBjb25zdCBkaXNwbGF5V2lkdGggPSByZXNpemVFdmVudC5waXBlKFxuICAgICAgbWFwKChldmVudCkgPT4gKGV2ZW50Py50YXJnZXQgYXMgV2luZG93KT8uaW5uZXJXaWR0aCksXG4gICAgICBzdGFydFdpdGgodGhpcy5nbG9iYWxFdmVudFNlcnZpY2Uud2luZG93LmlubmVyV2lkdGgpXG4gICAgKTtcbiAgICByZXR1cm4gZGlzcGxheVdpZHRoLnBpcGUobWFwKCh3aWR0aCkgPT4gd2lkdGggPCB0aGlzLnNtYWxsUmVzb2x1dGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWluaXRpYWxpemVDdXJyZW50UGFnZUF0T3ZlcmZsb3coKSB7XG4gICAgaWYgKHRoaXMubnVtYmVyT2ZQYWdlcyA8IHRoaXMuY3VycmVudFBhZ2UpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShQQUdJTkFUSU9OX0ZJUlNUX1BBR0UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVpbml0aWFsaXplTnVtYmVyT2ZQYWdlc0F0SW52YWxpZFZhbHVlKCkge1xuICAgIGlmICghdGhpcy5udW1iZXJPZlBhZ2VzIHx8IHRoaXMubnVtYmVyT2ZQYWdlcyA8IFBBR0lOQVRJT05fTUlOX05VTUJFUl9PRl9QQUdFUykge1xuICAgICAgdGhpcy5udW1iZXJPZlBhZ2VzID0gUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hvb3NlSWNvblNpemUoaXNTbWFsbDogYm9vbGVhbik6IEljb25TaXplIHtcbiAgICByZXR1cm4gaXNTbWFsbCA/IEljb25TaXplLkwgOiBJY29uU2l6ZS5NO1xuICB9XG5cbiAgcHJpdmF0ZSBjaG9vc2VTZWxlY3RTaXplKGlzU21hbGw6IGJvb2xlYW4pOiBTZWxlY3RTaXplIHtcbiAgICByZXR1cm4gaXNTbWFsbCA/IFNFTEVDVF9TSVpFLk0gOiBTRUxFQ1RfU0laRS5TO1xuICB9XG5cbiAgcHJpdmF0ZSBuZWVkUmVuZGVyUGFnZXMoXG4gICAgdmlld1NlbGVjdDogYm9vbGVhbixcbiAgICBudW1iZXJPZlBhZ2VzUHJldmlvdXM/OiBudW1iZXIsXG4gICAgbnVtYmVyT2ZQYWdlc0N1cnJlbnQ/OiBudW1iZXIsXG4gICAgcGFnZVRpdGxlTWFza1ByZXZpb3VzPzogdW5rbm93bixcbiAgICBwYWdlVGl0bGVNYXNrQ3VycmVudD86IHVua25vd25cbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbnVtYmVyT2ZQYWdlSGFzQ2hhbmdlcyA9IG51bWJlck9mUGFnZXNQcmV2aW91cyAhPT0gbnVtYmVyT2ZQYWdlc0N1cnJlbnQ7XG4gICAgY29uc3QgbWFza0hhc0NoYW5nZXMgPSBwYWdlVGl0bGVNYXNrUHJldmlvdXMgIT09IHBhZ2VUaXRsZU1hc2tDdXJyZW50O1xuICAgIHJldHVybiB2aWV3U2VsZWN0ICYmIChudW1iZXJPZlBhZ2VIYXNDaGFuZ2VzIHx8IG1hc2tIYXNDaGFuZ2VzKTtcbiAgfVxufVxuIiwiPG5hdiBjbGFzcz1cIm1jLXBhZ2luYXRpb25cIiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJwYWdpbmF0aW9uXCI+XG4gIDxidXR0b25cbiAgICBtb3otYnV0dG9uXG4gICAgdGhlbWU9XCJuZXV0cmFsXCJcbiAgICBjbGFzcz1cIm1jLXBhZ2luYXRpb25fX2J1dHRvblwiXG4gICAgW2Rpc2FibGVkXT1cImlzRmlyc3RQYWdlIHx8IGRpc2FibGVcIlxuICAgIFtvbmx5SWNvbl09XCJ0cnVlXCJcbiAgICBbc2l6ZV09XCIoc2VsZWN0U2l6ZSB8IGFzeW5jKSFcIlxuICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgKm5nSWY9XCJsZWZ0SWNvbk5hbWUgfCBhc3luYzsgbGV0IGljb25cIlxuICA+XG4gICAgPG1vei1pY29uIFtpY29uTmFtZV09XCJpY29uXCI+PC9tb3otaWNvbj5cbiAgPC9idXR0b24+XG4gIDxkaXYgKm5nSWY9XCJ2aWV3U2VsZWN0XCI+XG4gICAgPHNlbGVjdFxuICAgICAgbW96LXNlbGVjdFxuICAgICAgW25nTW9kZWxdPVwiY3VycmVudFBhZ2VcIlxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZShjdXJyZW50UGFnZSk7IHRoaXMucGFnZUNoYW5nZUV2ZW50LmVtaXQodGhpcy5jdXJyZW50UGFnZSlcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwid3JpdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFBhZ2VzXCJcbiAgICAgIFtzaXplXT1cIihzZWxlY3RTaXplIHwgYXN5bmMpIVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRTZWxlY3QgfHwgZGlzYWJsZVwiXG4gICAgPlxuICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiIFtuZ1ZhbHVlXT1cInBhZ2UudmFsdWVcIj57eyBwYWdlLnRpdGxlIH19PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuXG4gIDxidXR0b25cbiAgICBtb3otYnV0dG9uXG4gICAgdGhlbWU9XCJuZXV0cmFsXCJcbiAgICBjbGFzcz1cIm1jLXBhZ2luYXRpb25fX2J1dHRvblwiXG4gICAgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UgfHwgZGlzYWJsZVwiXG4gICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgIFtzaXplXT1cIihzZWxlY3RTaXplIHwgYXN5bmMpIVwiXG4gICAgW29ubHlJY29uXT1cInRydWVcIlxuICAgICpuZ0lmPVwicmlnaHRJY29uTmFtZSB8IGFzeW5jOyBsZXQgaWNvblwiXG4gID5cbiAgICA8bW96LWljb24gW2ljb25OYW1lXT1cImljb25cIj48L21vei1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmF2PlxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBYyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLG9CQUFvQixHQUNyQixNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFdEIsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxtQkFBbUI7SUFxQjlCLFlBQ21CLGtCQUF1QyxFQUN2QyxFQUFxQjtRQURyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBQ3ZDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBdEIvQixrQkFBYSxHQUFH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SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQWdCO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUN2QyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sZUFBZSxDQUNyQixVQUFtQixFQUNuQixxQkFBOEIsRUFDOUIsb0JBQTZCLEVBQzdCLHFCQUErQixFQUMvQixvQkFBOEI7UUFFOUIsTUFBTSxzQkFBc0IsR0FBRyxxQkFBcUIsS0FBSyxvQkFBb0IsQ0FBQztRQUM5RSxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsS0FBSyxvQkFBb0IsQ0FBQztRQUN0RSxPQUFPLFVBQVUsSUFBSSxDQUFDLHNCQUFzQixJQUFJLGNBQWMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O2lIQWxLVSxtQkFBbUI7cUdBQW5CLG1CQUFtQiw4UEFGbkIsQ0FBQyxpQ0FBaUMsQ0FBQywrQ0NuQ2hELHl0Q0F3Q0E7NEZESGEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsaUNBQWlDLENBQUM7MElBR3JDLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkF1Q0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR2xvYmFsRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uU2l6ZSB9IGZyb20gJy4uL2ljb24vaWNvbi1zaXplJztcbmltcG9ydCB7IFNFTEVDVF9TSVpFLCBTZWxlY3RTaXplIH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC1zaXplJztcbmltcG9ydCB7XG4gIFBhZ2UsXG4gIFBBR0lOQVRJT05fRklSU1RfUEFHRSxcbiAgUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTLFxuICBQQUdJTkFUSU9OX1BBR0VfU1RFUCxcbn0gZnJvbSAnLi9wYWdpbmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGFnaW5hdGlvbkNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW96LXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1BBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbnVtYmVyT2ZQYWdlcyA9IFBBR0lOQVRJT05fTUlOX05VTUJFUl9PRl9QQUdFUztcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBJbnB1dCgpIGRpc2FibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgbGlnaHQgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnZUxhYmVsID0gJ1BhZ2UnO1xuICBASW5wdXQoKSBwYWdlT2ZMYWJlbCA9ICdvZic7XG5cbiAgcHVibGljIGN1cnJlbnRQYWdlID0gUEFHSU5BVElPTl9GSVJTVF9QQUdFO1xuXG4gIHB1YmxpYyBwYWdlczogUGFnZVtdID0gW107XG5cbiAgcHVibGljIHJpZ2h0SWNvbk5hbWUhOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHVibGljIGxlZnRJY29uTmFtZSE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgc2VsZWN0U2l6ZTogT2JzZXJ2YWJsZTxTZWxlY3RTaXplPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNtYWxsUmVzb2x1dGlvbiA9IDEwMjQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxFdmVudFNlcnZpY2U6IEdsb2JhbEV2ZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgY29uc3QgaXNTbWFsbCA9IHRoaXMuZGlzcGxheUlzU21hbGwoKS5waXBlKHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSkpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUljb25zKGlzU21hbGwpO1xuICAgIHRoaXMuc2VsZWN0U2l6ZSA9IGlzU21hbGwucGlwZShtYXAoKGlzU21hbGwpID0+IHRoaXMuY2hvb3NlU2VsZWN0U2l6ZShpc1NtYWxsKSkpO1xuICB9XG5cbiAgcHVibGljIGdldCB2aWV3U2VsZWN0KCkge1xuICAgIHJldHVybiAhdGhpcy5saWdodDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNGaXJzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPD0gUEFHSU5BVElPTl9GSVJTVF9QQUdFO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0xhc3RQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlID49IHRoaXMubnVtYmVyT2ZQYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWRTZWxlY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubnVtYmVyT2ZQYWdlcyA8PSBQQUdJTkFUSU9OX01JTl9OVU1CRVJfT0ZfUEFHRVM7XG4gIH1cblxuICBASW5wdXQoKSBwYWdlVGl0bGVNYXNrID0gKHBhZ2U6IG51bWJlciwgbnVtYmVyT2ZQYWdlczogbnVtYmVyKSA9PlxuICAgIGAke3RoaXMucGFnZUxhYmVsfSAke3BhZ2V9ICR7dGhpcy5wYWdlT2ZMYWJlbH0gJHtudW1iZXJPZlBhZ2VzfWA7XG5cbiAgcHVibGljIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcblxuICBwdWJsaWMgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMucmVpbml0aWFsaXplTnVtYmVyT2ZQYWdlc0F0SW52YWxpZFZhbHVlKCk7XG4gICAgaWYgKHRoaXMudmlld1NlbGVjdCkge1xuICAgICAgdGhpcy5wYWdlcyA9IHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMubnVtYmVyT2ZQYWdlcyk7XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyBudW1iZXJPZlBhZ2VzLCBwYWdlVGl0bGVNYXNrIH06IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLm5lZWRSZW5kZXJQYWdlcyhcbiAgICAgICAgdGhpcy52aWV3U2VsZWN0LFxuICAgICAgICBudW1iZXJPZlBhZ2VzPy5jdXJyZW50VmFsdWUsXG4gICAgICAgIG51bWJlck9mUGFnZXM/LnByZXZpb3VzVmFsdWUsXG4gICAgICAgIHBhZ2VUaXRsZU1hc2s/LmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgcGFnZVRpdGxlTWFzaz8ucHJldmlvdXNWYWx1ZVxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5yZWluaXRpYWxpemVOdW1iZXJPZlBhZ2VzQXRJbnZhbGlkVmFsdWUoKTtcbiAgICB9XG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMubnVtYmVyT2ZQYWdlcyk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5jdXJyZW50UGFnZSB8fCB2YWx1ZSA+IHRoaXMubnVtYmVyT2ZQYWdlcykgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBwdWJsaWMgbmV4dFBhZ2UoKSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuY3VycmVudFBhZ2UgKyBQQUdJTkFUSU9OX1BBR0VfU1RFUCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzUGFnZSgpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5jdXJyZW50UGFnZSAtIFBBR0lOQVRJT05fUEFHRV9TVEVQKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KHRoaXMuY3VycmVudFBhZ2UpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyZVdpdGhQYWdlcyhwYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlPzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IGN1cnJlbnRQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplUGFnZXMobnVtYmVyT2ZQYWdlczogbnVtYmVyKTogUGFnZVtdIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG51bWJlck9mUGFnZXMpLmZpbGwobnVsbCkubWFwKChfLCBpbmRleCkgPT4gKHtcbiAgICAgIHRpdGxlOiB0aGlzLnBhZ2VUaXRsZU1hc2soaW5kZXggKyAxLCBudW1iZXJPZlBhZ2VzKSxcbiAgICAgIHZhbHVlOiBpbmRleCArIDEsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplSWNvbnMoaXNTbWFsbDogT2JzZXJ2YWJsZTxib29sZWFuPikge1xuICAgIGNvbnN0IGljb25TaXplID0gaXNTbWFsbC5waXBlKFxuICAgICAgbWFwKChpc1NtYWxsKSA9PiB0aGlzLmNob29zZUljb25TaXplKGlzU21hbGwpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSlcbiAgICApO1xuXG4gICAgdGhpcy5sZWZ0SWNvbk5hbWUgPSBpY29uU2l6ZS5waXBlKFxuICAgICAgbWFwKChpY29uU2l6ZSkgPT4gYE5hdmlnYXRpb25fQXJyb3dfQXJyb3ctLUxlZnRfJHtpY29uU2l6ZX1gKVxuICAgICk7XG5cbiAgICB0aGlzLnJpZ2h0SWNvbk5hbWUgPSBpY29uU2l6ZS5waXBlKFxuICAgICAgbWFwKChpY29uU2l6ZSkgPT4gYE5hdmlnYXRpb25fQXJyb3dfQXJyb3ctLVJpZ2h0XyR7aWNvblNpemV9YClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5SXNTbWFsbCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByZXNpemVFdmVudCA9IHRoaXMuZ2xvYmFsRXZlbnRTZXJ2aWNlLmdldFdpbmRvd0V2ZW50KCdyZXNpemUnKS5waXBlKGRlYm91bmNlVGltZSgxMDApKTtcbiAgICBjb25zdCBkaXNwbGF5V2lkdGggPSByZXNpemVFdmVudC5waXBlKFxuICAgICAgbWFwKChldmVudCkgPT4gKGV2ZW50Py50YXJnZXQgYXMgV2luZG93KT8uaW5uZXJXaWR0aCksXG4gICAgICBzdGFydFdpdGgodGhpcy5nbG9iYWxFdmVudFNlcnZpY2Uud2luZG93LmlubmVyV2lkdGgpXG4gICAgKTtcbiAgICByZXR1cm4gZGlzcGxheVdpZHRoLnBpcGUobWFwKCh3aWR0aCkgPT4gd2lkdGggPCB0aGlzLnNtYWxsUmVzb2x1dGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWluaXRpYWxpemVOdW1iZXJPZlBhZ2VzQXRJbnZhbGlkVmFsdWUoKSB7XG4gICAgaWYgKCF0aGlzLm51bWJlck9mUGFnZXMgfHwgdGhpcy5udW1iZXJPZlBhZ2VzIDwgUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTKSB7XG4gICAgICB0aGlzLm51bWJlck9mUGFnZXMgPSBQQUdJTkFUSU9OX01JTl9OVU1CRVJfT0ZfUEFHRVM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaG9vc2VJY29uU2l6ZShpc1NtYWxsOiBib29sZWFuKTogSWNvblNpemUge1xuICAgIHJldHVybiBpc1NtYWxsID8gSWNvblNpemUuTCA6IEljb25TaXplLk07XG4gIH1cblxuICBwcml2YXRlIGNob29zZVNlbGVjdFNpemUoaXNTbWFsbDogYm9vbGVhbik6IFNlbGVjdFNpemUge1xuICAgIHJldHVybiBpc1NtYWxsID8gU0VMRUNUX1NJWkUuTSA6IFNFTEVDVF9TSVpFLlM7XG4gIH1cblxuICBwcml2YXRlIG5lZWRSZW5kZXJQYWdlcyhcbiAgICB2aWV3U2VsZWN0OiBib29sZWFuLFxuICAgIG51bWJlck9mUGFnZXNQcmV2aW91cz86IG51bWJlcixcbiAgICBudW1iZXJPZlBhZ2VzQ3VycmVudD86IG51bWJlcixcbiAgICBwYWdlVGl0bGVNYXNrUHJldmlvdXM/OiB1bmtub3duLFxuICAgIHBhZ2VUaXRsZU1hc2tDdXJyZW50PzogdW5rbm93blxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBudW1iZXJPZlBhZ2VIYXNDaGFuZ2VzID0gbnVtYmVyT2ZQYWdlc1ByZXZpb3VzICE9PSBudW1iZXJPZlBhZ2VzQ3VycmVudDtcbiAgICBjb25zdCBtYXNrSGFzQ2hhbmdlcyA9IHBhZ2VUaXRsZU1hc2tQcmV2aW91cyAhPT0gcGFnZVRpdGxlTWFza0N1cnJlbnQ7XG4gICAgcmV0dXJuIHZpZXdTZWxlY3QgJiYgKG51bWJlck9mUGFnZUhhc0NoYW5nZXMgfHwgbWFza0hhc0NoYW5nZXMpO1xuICB9XG59XG4iLCI8bmF2IGNsYXNzPVwibWMtcGFnaW5hdGlvblwiIHJvbGU9XCJuYXZpZ2F0aW9uXCIgYXJpYS1sYWJlbD1cInBhZ2luYXRpb25cIj5cbiAgPGJ1dHRvblxuICAgIG1vei1idXR0b25cbiAgICB0aGVtZT1cIm5ldXRyYWxcIlxuICAgIGNsYXNzPVwibWMtcGFnaW5hdGlvbl9fYnV0dG9uXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2UgfHwgZGlzYWJsZVwiXG4gICAgW29ubHlJY29uXT1cInRydWVcIlxuICAgIFtzaXplXT1cIihzZWxlY3RTaXplIHwgYXN5bmMpIVwiXG4gICAgKGNsaWNrKT1cInByZXZpb3VzUGFnZSgpXCJcbiAgICAqbmdJZj1cImxlZnRJY29uTmFtZSB8IGFzeW5jOyBsZXQgaWNvblwiXG4gID5cbiAgICA8bW96LWljb24gW2ljb25OYW1lXT1cImljb25cIj48L21vei1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGRpdiAqbmdJZj1cInZpZXdTZWxlY3RcIj5cbiAgICA8c2VsZWN0XG4gICAgICBtb3otc2VsZWN0XG4gICAgICBbbmdNb2RlbF09XCJjdXJyZW50UGFnZVwiXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKGN1cnJlbnRQYWdlKTsgdGhpcy5wYWdlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJ3cml0ZVZhbHVlKCRldmVudClcIlxuICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoUGFnZXNcIlxuICAgICAgW3NpemVdPVwiKHNlbGVjdFNpemUgfCBhc3luYykhXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFNlbGVjdCB8fCBkaXNhYmxlXCJcbiAgICA+XG4gICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCIgW25nVmFsdWVdPVwicGFnZS52YWx1ZVwiPnt7IHBhZ2UudGl0bGUgfX08L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIG1vei1idXR0b25cbiAgICB0aGVtZT1cIm5ldXRyYWxcIlxuICAgIGNsYXNzPVwibWMtcGFnaW5hdGlvbl9fYnV0dG9uXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNMYXN0UGFnZSB8fCBkaXNhYmxlXCJcbiAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiXG4gICAgW3NpemVdPVwiKHNlbGVjdFNpemUgfCBhc3luYykhXCJcbiAgICBbb25seUljb25dPVwidHJ1ZVwiXG4gICAgKm5nSWY9XCJyaWdodEljb25OYW1lIHwgYXN5bmM7IGxldCBpY29uXCJcbiAgPlxuICAgIDxtb3otaWNvbiBbaWNvbk5hbWVdPVwiaWNvblwiPjwvbW96LWljb24+XG4gIDwvYnV0dG9uPlxuPC9uYXY+XG4iXX0=