ngx-tethys 18.2.1 → 18.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ import { ThyEnterDirective, ThyOption } from 'ngx-tethys/shared';
8
8
  import { coerceBooleanProperty, isTemplateRef } from 'ngx-tethys/util';
9
9
  import { DEFAULT_RANGE_COUNT, PaginationDefaultConfig, THY_PAGINATION_CONFIG } from './pagination.config';
10
10
  import { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';
11
- import { injectLocale, useLocale } from 'ngx-tethys/i18n';
11
+ import { injectLocale } from 'ngx-tethys/i18n';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "@angular/forms";
14
14
  /**
@@ -20,7 +20,7 @@ export class ThyPagination {
20
20
  constructor() {
21
21
  this.paginationConfig = inject(THY_PAGINATION_CONFIG, { optional: true });
22
22
  this.cdr = inject(ChangeDetectorRef);
23
- this.allLocale = useLocale();
23
+ this.allLocale = injectLocale();
24
24
  this.locale = injectLocale('pagination');
25
25
  this.isTemplateRef = isTemplateRef;
26
26
  this.config = Object.assign({}, PaginationDefaultConfig, {
@@ -363,4 +363,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
363
363
  type: Input,
364
364
  args: ['thyShowTotal']
365
365
  }] } });
366
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFTixlQUFlLEVBQ2YsTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQXNDLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFOUY7Ozs7R0FJRztBQWlCSCxNQUFNLE9BQU8sYUFBYTtJQWhCMUI7UUFpQlkscUJBQWdCLEdBQUcs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V1osUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVNPLGFBQWE7c0JBQTlFLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPNUQsYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBV2pDLGVBQWU7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVNwRSxlQUFlO3NCQURsQixLQUFLO3VCQUFDLG9CQUFvQjtnQkFTZ0QsZ0JBQWdCO3NCQUExRixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFPckUsSUFBSTtzQkFEUCxLQUFLO3VCQUFDLFNBQVM7Z0JBVWMsZUFBZTtzQkFBNUMsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBS0YsV0FBVztzQkFBcEMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBRU0sZUFBZTtzQkFBNUMsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBNEJTLGlCQUFpQjtzQkFBckQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBUW5DLFNBQVM7c0JBRlIsV0FBVzt1QkFBQyxnQ0FBZ0M7O3NCQUM1QyxLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBpbmplY3QsXG4gICAgU2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlTZWxlY3QgfSBmcm9tICduZ3gtdGV0aHlzL3NlbGVjdCc7XG5pbXBvcnQgeyBUaHlFbnRlckRpcmVjdGl2ZSwgVGh5T3B0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeVBhZ2luYXRpb25Db25maWdNb2RlbCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBERUZBVUxUX1JBTkdFX0NPVU5ULCBQYWdpbmF0aW9uRGVmYXVsdENvbmZpZywgVEhZX1BBR0lOQVRJT05fQ09ORklHIH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbmZpZyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uUGVyUGFnZUZvcm1hdCwgUGFnaW5hdGlvblRvdGFsQ291bnRGb3JtYXQgfSBmcm9tICcuL3BhZ2luYXRpb24ucGlwZSc7XG5pbXBvcnQgeyBpbmplY3RMb2NhbGUsIFRoeUkxOG5Mb2NhbGUsIFRoeVBhZ2luYXRpb25Mb2NhbGUsIHVzZUxvY2FsZSB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5cbi8qKlxuICog5YiG6aG157uE5Lu277yM5b2T5pWw5o2u6YeP6L+H5aSa5pe277yM5L2/55So5YiG6aG15YiG6Kej5pWw5o2u44CCXG4gKiBAbmFtZSB0aHktcGFnaW5hdGlvblxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXBhZ2luYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGh5U2VsZWN0LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVGh5T3B0aW9uLFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBUaHlFbnRlckRpcmVjdGl2ZSxcbiAgICAgICAgUGFnaW5hdGlvblRvdGFsQ291bnRGb3JtYXQsXG4gICAgICAgIFBhZ2luYXRpb25QZXJQYWdlRm9ybWF0XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlQYWdpbmF0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHBhZ2luYXRpb25Db25maWcgPSBpbmplY3QoVEhZX1BBR0lOQVRJT05fQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgYWxsTG9jYWxlOiBTaWduYWw8VGh5STE4bkxvY2FsZT4gPSB1c2VMb2NhbGUoKTtcbiAgICBsb2NhbGU6IFNpZ25hbDxUaHlQYWdpbmF0aW9uTG9jYWxlPiA9IGluamVjdExvY2FsZSgncGFnaW5hdGlvbicpO1xuXG4gICAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG4gICAgcHVibGljIGNvbmZpZzogVGh5UGFnaW5hdGlvbkNvbmZpZ01vZGVsID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIFBhZ2luYXRpb25EZWZhdWx0Q29uZmlnLFxuICAgICAgICB7XG4gICAgICAgICAgICBmaXJzdFRleHQ6IHRoaXMubG9jYWxlKCkuZmlyc3RQYWdlLFxuICAgICAgICAgICAgbGFzdFRleHQ6IHRoaXMubG9jYWxlKCkubGFzdFBhZ2UsXG4gICAgICAgICAgICB0b3RhbFBhZ2VzRm9ybWF0OiB0aGlzLmxvY2FsZSgpLnRvdGFsQ291bnQsXG4gICAgICAgICAgICB1bml0OiB0aGlzLmxvY2FsZSgpLmRlZmF1bHRVbml0XG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5tYWluXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruW9k+WJjemhte+8jOaUr+aMgeWPjOWQkee7keWumlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlQYWdlSW5kZXgocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlSW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VJbmRleChwYWdlSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5q+P6aG15p2h55uu5pWw6YePXG4gICAgICogQGRlZmF1bHQgMjBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlQYWdlU2l6ZShwYWdlU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RQYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlQ291bnQoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaAu+mhteaVsCDkuI4gdG90YWxQYWdlcyDkuozpgInkuIDkvKDlhaVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlUb3RhbCh0b3RhbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudG90YWwgPSB0b3RhbDtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VJbmRleCh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieWIhumhtemhteegge+8jOiuvue9ruiHquWumuS5ieWIhumhtemhteeggeWQjuWwhuS4jeagueaNriBUb3RhbCDlkowgUGFnZVNpemUg5p2l6Ieq5Yqo6K6h566X6aG156CB77yM5a6M5YWo5Lul5Lyg5YWl55qE6aG156CB5Li65YeGXG4gICAgICogQHR5cGUgbnVtYmVyW11cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlDdXN0b21QYWdlcyhwYWdlczogbnVtYmVyW10pIHtcbiAgICAgICAgdGhpcy5jdXN0b21QYWdlcyA9IHBhZ2VzO1xuICAgICAgICB0aGlzLmNvbmZpZy5zaG93VG90YWxQYWdlQ291bnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVQYWdlcyh0aGlzLnBhZ2VJbmRleCwgdGhpcy5wYWdlQ291bnQpO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeURpc2FibGVkJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuuW/q+mAn+i3s+i9rFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlTaG93UXVpY2tKdW1wZXInLCB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCBzaG93UXVpY2tKdW1wZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb25maWcuc2hvd1F1aWNrSnVtcGVyID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5piv5ZCm5pi+56S65oC76aG15pWw5L+h5oGvXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5U2hvd1RvdGFsUGFnZUNvdW50JywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgc2hvd1RvdGFsUGFnZUNvdW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNob3dUb3RhbFBhZ2VDb3VudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWIhumhtee7hOS7tueahOWkp+Wwj1xuICAgICAqIEB0eXBlIHNtIHwgbWQgfCBsZ1xuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KCd0aHlTaXplJylcbiAgICBzZXQgc2l6ZShzaXplOiAnc20nIHwgJ21kJyB8ICdsZycpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RTaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuYWRkQ2xhc3MoYHRoeS1wYWdpbmF0aW9uLSR7c2l6ZX1gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7mnIDlpKfmmL7npLrmlbDph4/vvIzotoXlh7rmnIDlpKfmmL7npLrmlbDlkI7kvJroh6rliqjov5vooYzliIblibLmmL7npLpcbiAgICAgKiBAZGVmYXVsdCA5XG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlNYXhDb3VudCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IG1heENvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jb25maWcubWF4Q291bnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7ovrnnvJjmmL7npLrmlbDph49cbiAgICAgKiBAZGVmYXVsdCAyXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlNYXJnaW5hbENvdW50JywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgbWFyZ2luYWxDb3VudDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5Lit6Ze05Yy65Z+f5pi+56S65pWw6YePXG4gICAgICogQGRlZmF1bHQgNVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVJhbmdlQ291bnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnJhbmdlQ291bnQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXJnaW5hbENvdW50KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5U2hvd1NpemVDaGFuZ2VyJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgc2hvd1NpemVDaGFuZ2VyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNob3dTaXplQ2hhbmdlciA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEB0eXBlIG51bWJlcltdXG4gICAgICovXG4gICAgQElucHV0KCd0aHlQYWdlU2l6ZU9wdGlvbnMnKVxuICAgIHNldCBwYWdlU2l6ZU9wdGlvbnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnBhZ2VTaXplT3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWPquacieS4gOmhteaXtuaYr+WQpumakOiXj+WIhumhteWZqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlIaWRlT25TaW5nbGVQYWdlJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgaGlkZU9uU2luZ2xlUGFnZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWIhumhteWZqOWNleS9jVxuICAgICAqIEBkZWZhdWx0IOadoVxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5VW5pdCcpXG4gICAgc2V0IHVuaXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnVuaXQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmhteeggeaUueWPmOeahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoJ3RoeVBhZ2VJbmRleENoYW5nZScpIHBhZ2VJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICog5LiOQm9vdHN0cmFwIHBhZ2luYXRpb24g5YW85a6577yM5ZCO57ut54mI5pys5Lya6L+b6KGM5Yig6Zmk77yM5Y+C5pWw5L+d5oyB5LiOIGJvb3RzdHJhcCDkuIDoh7RcbiAgICAgKi9cbiAgICBAT3V0cHV0KCd0aHlQYWdlQ2hhbmdlZCcpIHBhZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHBhZ2U6IG51bWJlciB9PigpO1xuXG4gICAgQE91dHB1dCgndGh5UGFnZVNpemVDaGFuZ2VkJykgcGFnZVNpemVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgcGFnZXM6IHsgaW5kZXg/OiBudW1iZXI7IHRleHQ/OiBzdHJpbmc7IGFjdGl2ZT86IGJvb2xlYW4gfVtdID0gW107XG5cbiAgICBwdWJsaWMgcGFnZUluZGV4ID0gMTtcblxuICAgIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgcHVibGljIHBhZ2VDb3VudDogbnVtYmVyO1xuXG4gICAgcHVibGljIGN1c3RvbVBhZ2VzOiBudW1iZXJbXTtcblxuICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyO1xuXG4gICAgcHVibGljIHJhbmdlID0geyBmcm9tOiAwLCB0bzogMCB9O1xuXG4gICAgcHVibGljIGZpcnN0SW5kZXggPSAxO1xuXG4gICAgcHVibGljIGlzSGlkZU9uU2luZ2xlUGFnZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIHB1YmxpYyBzZWxlY3RTaXplID0gJ21kJztcblxuICAgIHB1YmxpYyBzZWxlY3RQYWdlU2l6ZTogTnVtYmVyID0gMjA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1wYWdpbmF0aW9uJykgaXNQYWdpbmF0aW9uQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S66IyD5Zu05ZKMdG90YWxcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LXBhZ2luYXRpb24taGFzLXRvdGFsJylcbiAgICBASW5wdXQoJ3RoeVNob3dUb3RhbCcpXG4gICAgc2hvd1RvdGFsOiBib29sZWFuIHwgVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IG51bWJlcjsgcmFuZ2U6IHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0gfT4gPSBmYWxzZTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldE1hcmdpbmFsQ291bnQodGhpcy5jb25maWcucmFuZ2VDb3VudCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgIHRoaXMuc2V0UGFnZUluZGV4KHRoaXMucGFnZUluZGV4KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRNYXJnaW5hbENvdW50KHJhbmdlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1hcmdpbmFsQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMubWFyZ2luYWxDb3VudCA9IHJhbmdlIDw9IERFRkFVTFRfUkFOR0VfQ09VTlQgPyAxIDogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFnZUluZGV4KHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZUluZGV4ID4gdGhpcy5wYWdlQ291bnQgPyB0aGlzLnBhZ2VDb3VudCA6IHBhZ2VJbmRleCB8fCAxO1xuICAgICAgICBjb25zdCB0b1BhZ2VTaXplID0gdGhpcy5wYWdlSW5kZXggKiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICB0aGlzLnJhbmdlID0ge1xuICAgICAgICAgICAgZnJvbTogKHRoaXMucGFnZUluZGV4IC0gMSkgKiB0aGlzLnBhZ2VTaXplICsgMSxcbiAgICAgICAgICAgIHRvOiB0b1BhZ2VTaXplID4gdGhpcy50b3RhbCA/IHRoaXMudG90YWwgOiB0b1BhZ2VTaXplXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUGFnZUNvdW50KCkge1xuICAgICAgICBsZXQgcGFnZUNvdW50ID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tUGFnZXMgJiYgdGhpcy5jdXN0b21QYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYWdlQ291bnQgPSB0aGlzLmN1c3RvbVBhZ2VzW3RoaXMuY3VzdG9tUGFnZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYWdlQ291bnQgPSB0aGlzLnBhZ2VTaXplIDwgMSA/IDEgOiBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZUNvdW50ID0gTWF0aC5tYXgocGFnZUNvdW50IHx8IDAsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZVBhZ2UoaW5kZXg6IG51bWJlciwgdGV4dDogc3RyaW5nLCBhY3RpdmU6IGJvb2xlYW4pOiB7IGluZGV4OiBudW1iZXI7IHRleHQ6IHN0cmluZzsgYWN0aXZlOiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4geyBpbmRleCwgdGV4dCwgYWN0aXZlIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUGFnZXMocGFnZUluZGV4OiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVBhZ2VzICYmIHRoaXMuY3VzdG9tUGFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wYWdlcyA9IHRoaXMuY3VzdG9tUGFnZXMubWFwKHBhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBwYWdlLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBwYWdlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogcGFnZSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYWdlcyA9IFtdO1xuICAgICAgICBjb25zdCBtYXJnaW5hbENvdW50ID0gdGhpcy5tYXJnaW5hbENvdW50O1xuICAgICAgICBjb25zdCByYW5nZUNvdW50ID0gdGhpcy5jb25maWcucmFuZ2VDb3VudDtcbiAgICAgICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLmNvbmZpZy5tYXhDb3VudDtcbiAgICAgICAgY29uc3QgaXNNYXhTaXplZCA9IHBhZ2VDb3VudCA+IG1heENvdW50O1xuICAgICAgICBpZiAoaXNNYXhTaXplZCkge1xuICAgICAgICAgICAgY29uc3QgYmVmb3JlUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGFmdGVyUGFnZXMgPSBbXTtcblxuICAgICAgICAgICAgLy8gbWFpblBhZ2VzXG4gICAgICAgICAgICBsZXQgc3RhcnQgPSBNYXRoLmNlaWwoTWF0aC5tYXgobWFyZ2luYWxDb3VudCArIDEsIHBhZ2VJbmRleCAtIChyYW5nZUNvdW50IC0gMSkgLyAyKSk7XG4gICAgICAgICAgICBsZXQgZW5kID0gTWF0aC5jZWlsKE1hdGgubWluKHBhZ2VJbmRleCArIChyYW5nZUNvdW50IC0gMSkgLyAyLCBwYWdlQ291bnQgLSBtYXJnaW5hbENvdW50KSk7XG4gICAgICAgICAgICBpZiAocGFnZUluZGV4IC0gMSA8IG1hcmdpbmFsQ291bnQpIHtcbiAgICAgICAgICAgICAgICBlbmQgPSByYW5nZUNvdW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhZ2VDb3VudCAtIHBhZ2VJbmRleCA8PSBtYXJnaW5hbENvdW50KSB7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSBwYWdlQ291bnQgLSByYW5nZUNvdW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFnZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogaSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiZWZvcmVQYWdlc1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbWFyZ2luYWxDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYmVmb3JlUGFnZXMucHVzaCh0aGlzLm1ha2VQYWdlKGksIGkudG9TdHJpbmcoKSwgaSA9PT0gcGFnZUluZGV4KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYWdlSW5kZXggLSBNYXRoLmNlaWwocmFuZ2VDb3VudCAvIDIpID4gdGhpcy5maXJzdEluZGV4ICYmIG1hcmdpbmFsQ291bnQgKyAxIDwgc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBiZWZvcmVQYWdlcy5wdXNoKHRoaXMubWFrZVBhZ2UoTWF0aC5jZWlsKChtYXJnaW5hbENvdW50ICsgc3RhcnQpIC8gMiksICfCt8K3wrcnLCBudWxsKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFmdGVyUGFnZXNcbiAgICAgICAgICAgIGlmIChwYWdlSW5kZXggKyBNYXRoLmNlaWwocmFuZ2VDb3VudCAvIDIpIDwgcGFnZUNvdW50ICYmIHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgPiBlbmQpIHtcbiAgICAgICAgICAgICAgICBhZnRlclBhZ2VzLnB1c2godGhpcy5tYWtlUGFnZShNYXRoLmNlaWwoKHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgKyAxICsgZW5kKSAvIDIpLCAnwrfCt8K3JywgbnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgKyAxOyBpIDw9IHBhZ2VDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJQYWdlcy5wdXNoKHRoaXMubWFrZVBhZ2UoaSwgaS50b1N0cmluZygpLCBpID09PSBwYWdlSW5kZXgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFnZXMgPSBbLi4uYmVmb3JlUGFnZXMsIC4uLnBhZ2VzLCAuLi5hZnRlclBhZ2VzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHBhZ2VDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFnZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogaSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZXMgPSBwYWdlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VDaGFuZ2UocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXhDaGFuZ2UuZW1pdChwYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoeyBwYWdlOiBwYWdlSW5kZXggfSk7XG4gICAgfVxuXG4gICAgc2VsZWN0UGFnZShwYWdlSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IHRoaXMuZmlyc3RJbmRleCAtIDEgfHwgcGFnZUluZGV4ID09PSB0aGlzLnBhZ2VDb3VudCArIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFBhZ2VJbmRleChwYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UodGhpcy5wYWdlSW5kZXgpO1xuICAgIH1cblxuICAgIGp1bXBQYWdlKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJbmRleCA9ICtpbnB1dC52YWx1ZTtcbiAgICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIocGFnZUluZGV4KSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RQYWdlKHBhZ2VJbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VDb3VudCgpO1xuICAgICAgICB0aGlzLnNldFBhZ2VJbmRleCh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMucGFnZVNpemVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cbiIsIkBpZiAoKGhpZGVPblNpbmdsZVBhZ2UgJiYgdG90YWwgPiBwYWdlU2l6ZSkgfHwgIWhpZGVPblNpbmdsZVBhZ2UpIHtcbiAgQGlmIChzaG93VG90YWwpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tdG90YWxcIj5cbiAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoc2hvd1RvdGFsKSkge1xuICAgICAgICBAaWYgKHRvdGFsID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0zXCI+XG4gICAgICAgICAgICB7eyBsb2NhbGUoKS5vcmRlciB9fTxzcGFuIGNsYXNzPVwibnVtYmVyXCI+IHt7IHJhbmdlLmZyb20gfX0te3sgcmFuZ2UudG8gfX0gPC9zcGFuPnt7IGNvbmZpZy51bml0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7IGxvY2FsZSgpLnRvdGFsIH19PHNwYW4gY2xhc3M9XCJudW1iZXJcIj4ge3sgdG90YWwgfX0gPC9zcGFuPnt7IGNvbmZpZy51bml0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2hvd1RvdGFsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0b3RhbCwgcmFuZ2U6IHJhbmdlIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG4gIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1jb250ZW50XCI+XG4gICAgQGlmIChjb25maWcuc2hvd1NpemVDaGFuZ2VyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tc2l6ZVwiPlxuICAgICAgICA8dGh5LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNlbGVjdFBhZ2VTaXplXCIgW3RoeVNpemVdPVwic2VsZWN0U2l6ZVwiIFt0aHlEaXNhYmxlZF09XCJkaXNhYmxlZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjb25maWcucGFnZVNpemVPcHRpb25zOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgIDx0aHktb3B0aW9uXG4gICAgICAgICAgICAgIGNsYXNzPVwicGFnZS1zaXplLW9wdGlvblwiXG4gICAgICAgICAgICAgIFt0aHlWYWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICBbdGh5TGFiZWxUZXh0XT1cIm9wdGlvbiArIChjb25maWcudW5pdCB8IHBhZ2luYXRpb25QZXJQYWdlRm9ybWF0OiBhbGxMb2NhbGUoKSlcIj48L3RoeS1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RoeS1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHVsIGNsYXNzPVwidGh5LXBhZ2luYXRpb24tcGFnZXNcIj5cbiAgICAgIEBpZiAoY29uZmlnLmJvdW5kYXJ5TGlua3MpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwidGh5LXBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IGZpcnN0SW5kZXhcIiAoY2xpY2spPVwic2VsZWN0UGFnZShmaXJzdEluZGV4KVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwidGh5LXBhZ2UtbGluayB0aHktcGFnZS1saW5rLWZpcnN0XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPlxuICAgICAgICAgICAgQGlmIChjb25maWcuZmlyc3RUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5maXJzdFRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLmZpcnN0SWNvbikge1xuICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImNvbmZpZy5maXJzdEljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnLmRpcmVjdGlvbkxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBmaXJzdEluZGV4XCIgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZUluZGV4IC0gMSlcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInRoeS1wYWdlLWxpbmsgcGFnZS1saW5rLXByZVwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLnByZXZpb3VzVGV4dCkge1xuICAgICAgICAgICAgICB7eyBjb25maWcucHJldmlvdXNUZXh0IH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5wcmV2aW91c0ljb24pIHtcbiAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjb25maWcucHJldmlvdXNJY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgICBAZm9yIChwYWdlIG9mIHBhZ2VzOyB0cmFjayBwYWdlLmluZGV4KSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW0gdGh5LXBhZ2UtbnVtYmVyXCIgW2NsYXNzLmFjdGl2ZV09XCJwYWdlLmFjdGl2ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJzZWxlY3RQYWdlKHBhZ2UuaW5kZXgpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPnt7IHBhZ2UudGV4dCB9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnLmRpcmVjdGlvbkxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW0gcGFnZS1pdGVtLW5leHRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBwYWdlQ291bnRcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlSW5kZXggKyAxKVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwidGh5LXBhZ2UtbGluayB0aHktcGFnZS1saW5rLW5leHRcIiBocmVmPVwiamF2YXNjcmlwdDo7XCI+XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5uZXh0VGV4dCkge1xuICAgICAgICAgICAgICB7eyBjb25maWcubmV4dFRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLm5leHRJY29uKSB7XG4gICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiY29uZmlnLm5leHRJY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZy5ib3VuZGFyeUxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBwYWdlQ291bnRcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlQ291bnQpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rIHRoeS1wYWdlLWxpbmstbGFzdFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLmxhc3RUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5sYXN0VGV4dCB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChjb25maWcubGFzdEljb24pIHtcbiAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjb25maWcubGFzdEljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICAgIEBpZiAoY29uZmlnLnNob3dUb3RhbFBhZ2VDb3VudCAmJiBjb25maWcudG90YWxQYWdlc0Zvcm1hdCkge1xuICAgICAgPGRpdiBjbGFzcz1cInRoeS1wYWdpbmF0aW9uLWNvdW50XCIgW2lubmVySFRNTF09XCJwYWdlQ291bnQgfCBwYWdpbmF0aW9uVG90YWxQYWdlc0Zvcm1hdDogY29uZmlnLnRvdGFsUGFnZXNGb3JtYXRcIj48L2Rpdj5cbiAgICB9XG4gICAgQGlmIChjb25maWcuc2hvd1F1aWNrSnVtcGVyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tanVtcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1qdW1wZXItaW5wdXRcIj5cbiAgICAgICAgICB7eyBsb2NhbGUoKS5qdW1wVG8gfX1cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAjanVtcGVySW5wdXQgKHRoeUVudGVyKT1cImp1bXBQYWdlKGp1bXBlcklucHV0KVwiIChibHVyKT1cImp1bXBQYWdlKGp1bXBlcklucHV0KVwiIC8+XG4gICAgICAgICAge3sgbG9jYWxlKCkucGFnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFTixlQUFlLEVBQ2YsTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQXNDLE1BQU0saUJBQWlCLENBQUM7OztBQUVuRjs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxhQUFhO0lBaEIxQjtRQWlCWSxxQkFBZ0IsR0FBRyxNQUFNLENBQUMs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QURYLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBU08sYUFBYTtzQkFBOUUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU81RCxhQUFhO3NCQURoQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFXakMsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBU3BFLGVBQWU7c0JBRGxCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVNnRCxnQkFBZ0I7c0JBQTFGLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU9yRSxJQUFJO3NCQURQLEtBQUs7dUJBQUMsU0FBUztnQkFVYyxlQUFlO3NCQUE1QyxNQUFNO3VCQUFDLG9CQUFvQjtnQkFLRixXQUFXO3NCQUFwQyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFFTSxlQUFlO3NCQUE1QyxNQUFNO3VCQUFDLG9CQUFvQjtnQkE0QlMsaUJBQWlCO3NCQUFyRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFRbkMsU0FBUztzQkFGUixXQUFXO3VCQUFDLGdDQUFnQzs7c0JBQzVDLEtBQUs7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIGluamVjdCxcbiAgICBTaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVNlbGVjdCB9IGZyb20gJ25neC10ZXRoeXMvc2VsZWN0JztcbmltcG9ydCB7IFRoeUVudGVyRGlyZWN0aXZlLCBUaHlPcHRpb24gfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGlzVGVtcGxhdGVSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgVGh5UGFnaW5hdGlvbkNvbmZpZ01vZGVsIH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNsYXNzJztcbmltcG9ydCB7IERFRkFVTFRfUkFOR0VfQ09VTlQsIFBhZ2luYXRpb25EZWZhdWx0Q29uZmlnLCBUSFlfUEFHSU5BVElPTl9DT05GSUcgfSBmcm9tICcuL3BhZ2luYXRpb24uY29uZmlnJztcbmltcG9ydCB7IFBhZ2luYXRpb25QZXJQYWdlRm9ybWF0LCBQYWdpbmF0aW9uVG90YWxDb3VudEZvcm1hdCB9IGZyb20gJy4vcGFnaW5hdGlvbi5waXBlJztcbmltcG9ydCB7IGluamVjdExvY2FsZSwgVGh5STE4bkxvY2FsZSwgVGh5UGFnaW5hdGlvbkxvY2FsZSB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5cbi8qKlxuICog5YiG6aG157uE5Lu277yM5b2T5pWw5o2u6YeP6L+H5aSa5pe277yM5L2/55So5YiG6aG15YiG6Kej5pWw5o2u44CCXG4gKiBAbmFtZSB0aHktcGFnaW5hdGlvblxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXBhZ2luYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGh5U2VsZWN0LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVGh5T3B0aW9uLFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBUaHlFbnRlckRpcmVjdGl2ZSxcbiAgICAgICAgUGFnaW5hdGlvblRvdGFsQ291bnRGb3JtYXQsXG4gICAgICAgIFBhZ2luYXRpb25QZXJQYWdlRm9ybWF0XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlQYWdpbmF0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHBhZ2luYXRpb25Db25maWcgPSBpbmplY3QoVEhZX1BBR0lOQVRJT05fQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgYWxsTG9jYWxlOiBTaWduYWw8VGh5STE4bkxvY2FsZT4gPSBpbmplY3RMb2NhbGUoKTtcbiAgICBsb2NhbGU6IFNpZ25hbDxUaHlQYWdpbmF0aW9uTG9jYWxlPiA9IGluamVjdExvY2FsZSgncGFnaW5hdGlvbicpO1xuXG4gICAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG4gICAgcHVibGljIGNvbmZpZzogVGh5UGFnaW5hdGlvbkNvbmZpZ01vZGVsID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIFBhZ2luYXRpb25EZWZhdWx0Q29uZmlnLFxuICAgICAgICB7XG4gICAgICAgICAgICBmaXJzdFRleHQ6IHRoaXMubG9jYWxlKCkuZmlyc3RQYWdlLFxuICAgICAgICAgICAgbGFzdFRleHQ6IHRoaXMubG9jYWxlKCkubGFzdFBhZ2UsXG4gICAgICAgICAgICB0b3RhbFBhZ2VzRm9ybWF0OiB0aGlzLmxvY2FsZSgpLnRvdGFsQ291bnQsXG4gICAgICAgICAgICB1bml0OiB0aGlzLmxvY2FsZSgpLmRlZmF1bHRVbml0XG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5tYWluXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruW9k+WJjemhte+8jOaUr+aMgeWPjOWQkee7keWumlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlQYWdlSW5kZXgocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlSW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VJbmRleChwYWdlSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5q+P6aG15p2h55uu5pWw6YePXG4gICAgICogQGRlZmF1bHQgMjBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlQYWdlU2l6ZShwYWdlU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RQYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlQ291bnQoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaAu+mhteaVsCDkuI4gdG90YWxQYWdlcyDkuozpgInkuIDkvKDlhaVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlUb3RhbCh0b3RhbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudG90YWwgPSB0b3RhbDtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VJbmRleCh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieWIhumhtemhteegge+8jOiuvue9ruiHquWumuS5ieWIhumhtemhteeggeWQjuWwhuS4jeagueaNriBUb3RhbCDlkowgUGFnZVNpemUg5p2l6Ieq5Yqo6K6h566X6aG156CB77yM5a6M5YWo5Lul5Lyg5YWl55qE6aG156CB5Li65YeGXG4gICAgICogQHR5cGUgbnVtYmVyW11cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlDdXN0b21QYWdlcyhwYWdlczogbnVtYmVyW10pIHtcbiAgICAgICAgdGhpcy5jdXN0b21QYWdlcyA9IHBhZ2VzO1xuICAgICAgICB0aGlzLmNvbmZpZy5zaG93VG90YWxQYWdlQ291bnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVQYWdlcyh0aGlzLnBhZ2VJbmRleCwgdGhpcy5wYWdlQ291bnQpO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeURpc2FibGVkJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuuW/q+mAn+i3s+i9rFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlTaG93UXVpY2tKdW1wZXInLCB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCBzaG93UXVpY2tKdW1wZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jb25maWcuc2hvd1F1aWNrSnVtcGVyID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5piv5ZCm5pi+56S65oC76aG15pWw5L+h5oGvXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5U2hvd1RvdGFsUGFnZUNvdW50JywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgc2hvd1RvdGFsUGFnZUNvdW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNob3dUb3RhbFBhZ2VDb3VudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWIhumhtee7hOS7tueahOWkp+Wwj1xuICAgICAqIEB0eXBlIHNtIHwgbWQgfCBsZ1xuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KCd0aHlTaXplJylcbiAgICBzZXQgc2l6ZShzaXplOiAnc20nIHwgJ21kJyB8ICdsZycpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RTaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuYWRkQ2xhc3MoYHRoeS1wYWdpbmF0aW9uLSR7c2l6ZX1gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7mnIDlpKfmmL7npLrmlbDph4/vvIzotoXlh7rmnIDlpKfmmL7npLrmlbDlkI7kvJroh6rliqjov5vooYzliIblibLmmL7npLpcbiAgICAgKiBAZGVmYXVsdCA5XG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlNYXhDb3VudCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IG1heENvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jb25maWcubWF4Q291bnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7ovrnnvJjmmL7npLrmlbDph49cbiAgICAgKiBAZGVmYXVsdCAyXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlNYXJnaW5hbENvdW50JywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgbWFyZ2luYWxDb3VudDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5Lit6Ze05Yy65Z+f5pi+56S65pWw6YePXG4gICAgICogQGRlZmF1bHQgNVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVJhbmdlQ291bnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnJhbmdlQ291bnQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXJnaW5hbENvdW50KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5U2hvd1NpemVDaGFuZ2VyJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgc2hvd1NpemVDaGFuZ2VyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNob3dTaXplQ2hhbmdlciA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEB0eXBlIG51bWJlcltdXG4gICAgICovXG4gICAgQElucHV0KCd0aHlQYWdlU2l6ZU9wdGlvbnMnKVxuICAgIHNldCBwYWdlU2l6ZU9wdGlvbnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnBhZ2VTaXplT3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWPquacieS4gOmhteaXtuaYr+WQpumakOiXj+WIhumhteWZqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlIaWRlT25TaW5nbGVQYWdlJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgaGlkZU9uU2luZ2xlUGFnZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWIhumhteWZqOWNleS9jVxuICAgICAqIEBkZWZhdWx0IOadoVxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5VW5pdCcpXG4gICAgc2V0IHVuaXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnVuaXQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmhteeggeaUueWPmOeahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoJ3RoeVBhZ2VJbmRleENoYW5nZScpIHBhZ2VJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICog5LiOQm9vdHN0cmFwIHBhZ2luYXRpb24g5YW85a6577yM5ZCO57ut54mI5pys5Lya6L+b6KGM5Yig6Zmk77yM5Y+C5pWw5L+d5oyB5LiOIGJvb3RzdHJhcCDkuIDoh7RcbiAgICAgKi9cbiAgICBAT3V0cHV0KCd0aHlQYWdlQ2hhbmdlZCcpIHBhZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHBhZ2U6IG51bWJlciB9PigpO1xuXG4gICAgQE91dHB1dCgndGh5UGFnZVNpemVDaGFuZ2VkJykgcGFnZVNpemVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgcGFnZXM6IHsgaW5kZXg/OiBudW1iZXI7IHRleHQ/OiBzdHJpbmc7IGFjdGl2ZT86IGJvb2xlYW4gfVtdID0gW107XG5cbiAgICBwdWJsaWMgcGFnZUluZGV4ID0gMTtcblxuICAgIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgcHVibGljIHBhZ2VDb3VudDogbnVtYmVyO1xuXG4gICAgcHVibGljIGN1c3RvbVBhZ2VzOiBudW1iZXJbXTtcblxuICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyO1xuXG4gICAgcHVibGljIHJhbmdlID0geyBmcm9tOiAwLCB0bzogMCB9O1xuXG4gICAgcHVibGljIGZpcnN0SW5kZXggPSAxO1xuXG4gICAgcHVibGljIGlzSGlkZU9uU2luZ2xlUGFnZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIHB1YmxpYyBzZWxlY3RTaXplID0gJ21kJztcblxuICAgIHB1YmxpYyBzZWxlY3RQYWdlU2l6ZTogTnVtYmVyID0gMjA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1wYWdpbmF0aW9uJykgaXNQYWdpbmF0aW9uQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S66IyD5Zu05ZKMdG90YWxcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LXBhZ2luYXRpb24taGFzLXRvdGFsJylcbiAgICBASW5wdXQoJ3RoeVNob3dUb3RhbCcpXG4gICAgc2hvd1RvdGFsOiBib29sZWFuIHwgVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IG51bWJlcjsgcmFuZ2U6IHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0gfT4gPSBmYWxzZTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldE1hcmdpbmFsQ291bnQodGhpcy5jb25maWcucmFuZ2VDb3VudCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnZUNvdW50KCk7XG4gICAgICAgIHRoaXMuc2V0UGFnZUluZGV4KHRoaXMucGFnZUluZGV4KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRNYXJnaW5hbENvdW50KHJhbmdlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1hcmdpbmFsQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMubWFyZ2luYWxDb3VudCA9IHJhbmdlIDw9IERFRkFVTFRfUkFOR0VfQ09VTlQgPyAxIDogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFnZUluZGV4KHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZUluZGV4ID4gdGhpcy5wYWdlQ291bnQgPyB0aGlzLnBhZ2VDb3VudCA6IHBhZ2VJbmRleCB8fCAxO1xuICAgICAgICBjb25zdCB0b1BhZ2VTaXplID0gdGhpcy5wYWdlSW5kZXggKiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICB0aGlzLnJhbmdlID0ge1xuICAgICAgICAgICAgZnJvbTogKHRoaXMucGFnZUluZGV4IC0gMSkgKiB0aGlzLnBhZ2VTaXplICsgMSxcbiAgICAgICAgICAgIHRvOiB0b1BhZ2VTaXplID4gdGhpcy50b3RhbCA/IHRoaXMudG90YWwgOiB0b1BhZ2VTaXplXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2VzKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VDb3VudCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUGFnZUNvdW50KCkge1xuICAgICAgICBsZXQgcGFnZUNvdW50ID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tUGFnZXMgJiYgdGhpcy5jdXN0b21QYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYWdlQ291bnQgPSB0aGlzLmN1c3RvbVBhZ2VzW3RoaXMuY3VzdG9tUGFnZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYWdlQ291bnQgPSB0aGlzLnBhZ2VTaXplIDwgMSA/IDEgOiBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZUNvdW50ID0gTWF0aC5tYXgocGFnZUNvdW50IHx8IDAsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZVBhZ2UoaW5kZXg6IG51bWJlciwgdGV4dDogc3RyaW5nLCBhY3RpdmU6IGJvb2xlYW4pOiB7IGluZGV4OiBudW1iZXI7IHRleHQ6IHN0cmluZzsgYWN0aXZlOiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4geyBpbmRleCwgdGV4dCwgYWN0aXZlIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUGFnZXMocGFnZUluZGV4OiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVBhZ2VzICYmIHRoaXMuY3VzdG9tUGFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wYWdlcyA9IHRoaXMuY3VzdG9tUGFnZXMubWFwKHBhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBwYWdlLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBwYWdlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogcGFnZSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYWdlcyA9IFtdO1xuICAgICAgICBjb25zdCBtYXJnaW5hbENvdW50ID0gdGhpcy5tYXJnaW5hbENvdW50O1xuICAgICAgICBjb25zdCByYW5nZUNvdW50ID0gdGhpcy5jb25maWcucmFuZ2VDb3VudDtcbiAgICAgICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLmNvbmZpZy5tYXhDb3VudDtcbiAgICAgICAgY29uc3QgaXNNYXhTaXplZCA9IHBhZ2VDb3VudCA+IG1heENvdW50O1xuICAgICAgICBpZiAoaXNNYXhTaXplZCkge1xuICAgICAgICAgICAgY29uc3QgYmVmb3JlUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGFmdGVyUGFnZXMgPSBbXTtcblxuICAgICAgICAgICAgLy8gbWFpblBhZ2VzXG4gICAgICAgICAgICBsZXQgc3RhcnQgPSBNYXRoLmNlaWwoTWF0aC5tYXgobWFyZ2luYWxDb3VudCArIDEsIHBhZ2VJbmRleCAtIChyYW5nZUNvdW50IC0gMSkgLyAyKSk7XG4gICAgICAgICAgICBsZXQgZW5kID0gTWF0aC5jZWlsKE1hdGgubWluKHBhZ2VJbmRleCArIChyYW5nZUNvdW50IC0gMSkgLyAyLCBwYWdlQ291bnQgLSBtYXJnaW5hbENvdW50KSk7XG4gICAgICAgICAgICBpZiAocGFnZUluZGV4IC0gMSA8IG1hcmdpbmFsQ291bnQpIHtcbiAgICAgICAgICAgICAgICBlbmQgPSByYW5nZUNvdW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhZ2VDb3VudCAtIHBhZ2VJbmRleCA8PSBtYXJnaW5hbENvdW50KSB7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSBwYWdlQ291bnQgLSByYW5nZUNvdW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFnZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogaSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiZWZvcmVQYWdlc1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbWFyZ2luYWxDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYmVmb3JlUGFnZXMucHVzaCh0aGlzLm1ha2VQYWdlKGksIGkudG9TdHJpbmcoKSwgaSA9PT0gcGFnZUluZGV4KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYWdlSW5kZXggLSBNYXRoLmNlaWwocmFuZ2VDb3VudCAvIDIpID4gdGhpcy5maXJzdEluZGV4ICYmIG1hcmdpbmFsQ291bnQgKyAxIDwgc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBiZWZvcmVQYWdlcy5wdXNoKHRoaXMubWFrZVBhZ2UoTWF0aC5jZWlsKChtYXJnaW5hbENvdW50ICsgc3RhcnQpIC8gMiksICfCt8K3wrcnLCBudWxsKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFmdGVyUGFnZXNcbiAgICAgICAgICAgIGlmIChwYWdlSW5kZXggKyBNYXRoLmNlaWwocmFuZ2VDb3VudCAvIDIpIDwgcGFnZUNvdW50ICYmIHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgPiBlbmQpIHtcbiAgICAgICAgICAgICAgICBhZnRlclBhZ2VzLnB1c2godGhpcy5tYWtlUGFnZShNYXRoLmNlaWwoKHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgKyAxICsgZW5kKSAvIDIpLCAnwrfCt8K3JywgbnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHBhZ2VDb3VudCAtIG1hcmdpbmFsQ291bnQgKyAxOyBpIDw9IHBhZ2VDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJQYWdlcy5wdXNoKHRoaXMubWFrZVBhZ2UoaSwgaS50b1N0cmluZygpLCBpID09PSBwYWdlSW5kZXgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFnZXMgPSBbLi4uYmVmb3JlUGFnZXMsIC4uLnBhZ2VzLCAuLi5hZnRlclBhZ2VzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHBhZ2VDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFnZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogaSA9PT0gK3BhZ2VJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZXMgPSBwYWdlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VDaGFuZ2UocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXhDaGFuZ2UuZW1pdChwYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoeyBwYWdlOiBwYWdlSW5kZXggfSk7XG4gICAgfVxuXG4gICAgc2VsZWN0UGFnZShwYWdlSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IHRoaXMuZmlyc3RJbmRleCAtIDEgfHwgcGFnZUluZGV4ID09PSB0aGlzLnBhZ2VDb3VudCArIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFBhZ2VJbmRleChwYWdlSW5kZXgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UodGhpcy5wYWdlSW5kZXgpO1xuICAgIH1cblxuICAgIGp1bXBQYWdlKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJbmRleCA9ICtpbnB1dC52YWx1ZTtcbiAgICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIocGFnZUluZGV4KSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RQYWdlKHBhZ2VJbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VDb3VudCgpO1xuICAgICAgICB0aGlzLnNldFBhZ2VJbmRleCh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMucGFnZVNpemVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cbiIsIkBpZiAoKGhpZGVPblNpbmdsZVBhZ2UgJiYgdG90YWwgPiBwYWdlU2l6ZSkgfHwgIWhpZGVPblNpbmdsZVBhZ2UpIHtcbiAgQGlmIChzaG93VG90YWwpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tdG90YWxcIj5cbiAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoc2hvd1RvdGFsKSkge1xuICAgICAgICBAaWYgKHRvdGFsID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0zXCI+XG4gICAgICAgICAgICB7eyBsb2NhbGUoKS5vcmRlciB9fTxzcGFuIGNsYXNzPVwibnVtYmVyXCI+IHt7IHJhbmdlLmZyb20gfX0te3sgcmFuZ2UudG8gfX0gPC9zcGFuPnt7IGNvbmZpZy51bml0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7IGxvY2FsZSgpLnRvdGFsIH19PHNwYW4gY2xhc3M9XCJudW1iZXJcIj4ge3sgdG90YWwgfX0gPC9zcGFuPnt7IGNvbmZpZy51bml0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2hvd1RvdGFsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0b3RhbCwgcmFuZ2U6IHJhbmdlIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG4gIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1jb250ZW50XCI+XG4gICAgQGlmIChjb25maWcuc2hvd1NpemVDaGFuZ2VyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tc2l6ZVwiPlxuICAgICAgICA8dGh5LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNlbGVjdFBhZ2VTaXplXCIgW3RoeVNpemVdPVwic2VsZWN0U2l6ZVwiIFt0aHlEaXNhYmxlZF09XCJkaXNhYmxlZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjb25maWcucGFnZVNpemVPcHRpb25zOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgIDx0aHktb3B0aW9uXG4gICAgICAgICAgICAgIGNsYXNzPVwicGFnZS1zaXplLW9wdGlvblwiXG4gICAgICAgICAgICAgIFt0aHlWYWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICBbdGh5TGFiZWxUZXh0XT1cIm9wdGlvbiArIChjb25maWcudW5pdCB8IHBhZ2luYXRpb25QZXJQYWdlRm9ybWF0OiBhbGxMb2NhbGUoKSlcIj48L3RoeS1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RoeS1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHVsIGNsYXNzPVwidGh5LXBhZ2luYXRpb24tcGFnZXNcIj5cbiAgICAgIEBpZiAoY29uZmlnLmJvdW5kYXJ5TGlua3MpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwidGh5LXBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBwYWdlSW5kZXggPT09IGZpcnN0SW5kZXhcIiAoY2xpY2spPVwic2VsZWN0UGFnZShmaXJzdEluZGV4KVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwidGh5LXBhZ2UtbGluayB0aHktcGFnZS1saW5rLWZpcnN0XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPlxuICAgICAgICAgICAgQGlmIChjb25maWcuZmlyc3RUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5maXJzdFRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLmZpcnN0SWNvbikge1xuICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImNvbmZpZy5maXJzdEljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnLmRpcmVjdGlvbkxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBmaXJzdEluZGV4XCIgKGNsaWNrKT1cInNlbGVjdFBhZ2UocGFnZUluZGV4IC0gMSlcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInRoeS1wYWdlLWxpbmsgcGFnZS1saW5rLXByZVwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLnByZXZpb3VzVGV4dCkge1xuICAgICAgICAgICAgICB7eyBjb25maWcucHJldmlvdXNUZXh0IH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5wcmV2aW91c0ljb24pIHtcbiAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjb25maWcucHJldmlvdXNJY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgICBAZm9yIChwYWdlIG9mIHBhZ2VzOyB0cmFjayBwYWdlLmluZGV4KSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW0gdGh5LXBhZ2UtbnVtYmVyXCIgW2NsYXNzLmFjdGl2ZV09XCJwYWdlLmFjdGl2ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJzZWxlY3RQYWdlKHBhZ2UuaW5kZXgpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPnt7IHBhZ2UudGV4dCB9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnLmRpcmVjdGlvbkxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW0gcGFnZS1pdGVtLW5leHRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBwYWdlQ291bnRcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlSW5kZXggKyAxKVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwidGh5LXBhZ2UtbGluayB0aHktcGFnZS1saW5rLW5leHRcIiBocmVmPVwiamF2YXNjcmlwdDo7XCI+XG4gICAgICAgICAgICBAaWYgKGNvbmZpZy5uZXh0VGV4dCkge1xuICAgICAgICAgICAgICB7eyBjb25maWcubmV4dFRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLm5leHRJY29uKSB7XG4gICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiY29uZmlnLm5leHRJY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZy5ib3VuZGFyeUxpbmtzKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cInRoeS1wYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcGFnZUluZGV4ID09PSBwYWdlQ291bnRcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwYWdlQ291bnQpXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ0aHktcGFnZS1saW5rIHRoeS1wYWdlLWxpbmstbGFzdFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnLmxhc3RUZXh0KSB7XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5sYXN0VGV4dCB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChjb25maWcubGFzdEljb24pIHtcbiAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjb25maWcubGFzdEljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICAgIEBpZiAoY29uZmlnLnNob3dUb3RhbFBhZ2VDb3VudCAmJiBjb25maWcudG90YWxQYWdlc0Zvcm1hdCkge1xuICAgICAgPGRpdiBjbGFzcz1cInRoeS1wYWdpbmF0aW9uLWNvdW50XCIgW2lubmVySFRNTF09XCJwYWdlQ291bnQgfCBwYWdpbmF0aW9uVG90YWxQYWdlc0Zvcm1hdDogY29uZmlnLnRvdGFsUGFnZXNGb3JtYXRcIj48L2Rpdj5cbiAgICB9XG4gICAgQGlmIChjb25maWcuc2hvd1F1aWNrSnVtcGVyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGh5LXBhZ2luYXRpb24tanVtcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aHktcGFnaW5hdGlvbi1qdW1wZXItaW5wdXRcIj5cbiAgICAgICAgICB7eyBsb2NhbGUoKS5qdW1wVG8gfX1cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAjanVtcGVySW5wdXQgKHRoeUVudGVyKT1cImp1bXBQYWdlKGp1bXBlcklucHV0KVwiIChibHVyKT1cImp1bXBQYWdlKGp1bXBlcklucHV0KVwiIC8+XG4gICAgICAgICAge3sgbG9jYWxlKCkucGFnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('18.2.1');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4yLjEnKTtcbiJdfQ==
2
+ export const VERSION = new Version('18.2.2');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4yLjInKTtcbiJdfQ==
@@ -4,13 +4,13 @@ import * as i0 from '@angular/core';
4
4
  import { Injectable, inject, EventEmitter, Directive, Input, Output, Component, ChangeDetectionStrategy, InjectionToken, Pipe, ChangeDetectorRef, forwardRef, HostBinding, NgModule, ViewChild, ElementRef, PLATFORM_ID, NgZone, numberAttribute } from '@angular/core';
5
5
  import localeZhHans from '@angular/common/locales/zh-Hans';
6
6
  import { TinyDate, coerceBooleanProperty, helpers, coerceArray, isTemplateRef, isEmpty, isString, valueFunctionProp, isUndefinedOrNull, isFunction, sortRangeValue, elementMatchClosest, warnDeprecation } from 'ngx-tethys/util';
7
- import { useLocale, injectLocale, ThyI18nService } from 'ngx-tethys/i18n';
7
+ import { injectLocale, ThyI18nService } from 'ngx-tethys/i18n';
8
8
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
9
9
  import * as i1 from '@angular/forms';
10
10
  import { FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
11
11
  import { ThyButton, ThyButtonIcon, ThyButtonModule } from 'ngx-tethys/button';
12
12
  import { ThyInnerTimePicker, ThyTimePickerModule } from 'ngx-tethys/time-picker';
13
- import { startOfDay, addDays, startOfWeek, addWeeks, subDays, fromUnixTime, endOfDay } from 'date-fns';
13
+ import { startOfDay, addDays, startOfWeek, addWeeks, subDays, fromUnixTime, endOfDay, startOfYear, endOfYear, startOfQuarter, endOfQuarter, startOfMonth, endOfMonth, startOfISOWeek, endOfISOWeek } from 'date-fns';
14
14
  import { ThyNav, ThyNavItemDirective, ThyNavModule } from 'ngx-tethys/nav';
15
15
  import { Subject, fromEvent } from 'rxjs';
16
16
  import { ThyInputDirective, ThyInputModule } from 'ngx-tethys/input';
@@ -30,7 +30,7 @@ function DATE_HELPER_SERVICE_FACTORY() {
30
30
  */
31
31
  class DateHelperService {
32
32
  constructor() {
33
- this.locale = useLocale();
33
+ this.locale = injectLocale();
34
34
  this.relyOnDatePipe = this instanceof DateHelperByDatePipe;
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DateHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -2244,10 +2244,7 @@ class DatePopup {
2244
2244
  this.clearHoverValue(); // Clean up
2245
2245
  this.setRangeValue('right', value);
2246
2246
  this.selectedValue = sortRangeValue(this.selectedValue); // Sort
2247
- this.selectedValue = [
2248
- new TinyDate(startOfDay(this.selectedValue[0].nativeDate)),
2249
- new TinyDate(endOfDay(this.selectedValue[1].nativeDate))
2250
- ];
2247
+ this.selectedValue = this.getSelectedRangeValueByMode(this.selectedValue);
2251
2248
  this.activeDate = this.normalizeRangeValue(this.selectedValue, this.getPanelMode(this.endPanelMode, partType));
2252
2249
  this.setValue(this.cloneRangeDate(this.selectedValue));
2253
2250
  this.calendarChange.emit(this.cloneRangeDate(this.selectedValue));
@@ -2264,6 +2261,24 @@ class DatePopup {
2264
2261
  });
2265
2262
  }
2266
2263
  }
2264
+ getSelectedRangeValueByMode(value) {
2265
+ const panelMode = this.getPanelMode(this.endPanelMode);
2266
+ if (panelMode === 'year') {
2267
+ return [new TinyDate(startOfYear(value[0].nativeDate)), new TinyDate(endOfYear(value[1].nativeDate))];
2268
+ }
2269
+ else if (panelMode === 'quarter') {
2270
+ return [new TinyDate(startOfQuarter(value[0].nativeDate)), new TinyDate(endOfQuarter(value[1].nativeDate))];
2271
+ }
2272
+ else if (panelMode === 'month') {
2273
+ return [new TinyDate(startOfMonth(value[0].nativeDate)), new TinyDate(endOfMonth(value[1].nativeDate))];
2274
+ }
2275
+ else if (panelMode === 'week') {
2276
+ return [new TinyDate(startOfISOWeek(value[0].nativeDate)), new TinyDate(endOfISOWeek(value[1].nativeDate))];
2277
+ }
2278
+ else {
2279
+ return [new TinyDate(startOfDay(value[0].nativeDate)), new TinyDate(endOfDay(value[1].nativeDate))];
2280
+ }
2281
+ }
2267
2282
  updateHourMinute(value) {
2268
2283
  if (!this.value) {
2269
2284
  return value;