@snabcentr/client-core 2.56.2 → 2.56.3

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 (47) hide show
  1. package/banners/services/sc-banner.service.d.ts +8 -14
  2. package/cart/services/sc-cart.service.d.ts +27 -24
  3. package/catalog/services/sc-catalog.service.d.ts +5 -4
  4. package/catalog/services/sc-favorite.service.d.ts +11 -16
  5. package/catalog/services/sc-recommendation.service.d.ts +19 -19
  6. package/contacts/services/sc-contacts.service.d.ts +14 -16
  7. package/contragent/services/sc-contragent.service.d.ts +24 -14
  8. package/delivery-address/services/sc-delivery-address.service.d.ts +21 -17
  9. package/esm2022/banners/services/sc-banner.service.mjs +17 -22
  10. package/esm2022/cart/services/sc-cart.service.mjs +37 -33
  11. package/esm2022/catalog/services/sc-catalog.service.mjs +15 -12
  12. package/esm2022/catalog/services/sc-favorite.service.mjs +21 -25
  13. package/esm2022/catalog/services/sc-recommendation.service.mjs +26 -25
  14. package/esm2022/contacts/services/sc-contacts.service.mjs +21 -22
  15. package/esm2022/contacts/services/sc-requisites.service.mjs +4 -3
  16. package/esm2022/contragent/services/sc-contragent.service.mjs +34 -27
  17. package/esm2022/delivery-address/services/sc-delivery-address.service.mjs +33 -27
  18. package/esm2022/httpInterceptors/sc-guest.interceptor.mjs +4 -4
  19. package/esm2022/news/services/sc-news.service.mjs +24 -26
  20. package/esm2022/notifications/services/sc-notifications.service.mjs +30 -29
  21. package/esm2022/order/services/sc-orders.service.mjs +40 -36
  22. package/esm2022/pagination/services/sc-pagination.service.mjs +3 -3
  23. package/esm2022/questionnaire/services/sc-questionnaire.service.mjs +25 -25
  24. package/esm2022/references/services/sc-references.service.mjs +25 -25
  25. package/esm2022/user/index.mjs +2 -1
  26. package/esm2022/user/services/sc-user.service.mjs +1 -29
  27. package/esm2022/user/tokens/index.mjs +2 -0
  28. package/esm2022/user/tokens/sc-user-providers.mjs +12 -0
  29. package/esm2022/utm/services/sc-utm.service.mjs +3 -8
  30. package/esm2022/warehouse/services/sc-warehouse.service.mjs +17 -22
  31. package/fesm2022/snabcentr-client-core.mjs +799 -817
  32. package/fesm2022/snabcentr-client-core.mjs.map +1 -1
  33. package/httpInterceptors/sc-guest.interceptor.d.ts +1 -1
  34. package/news/services/sc-news.service.d.ts +13 -13
  35. package/notifications/services/sc-notifications.service.d.ts +17 -12
  36. package/order/services/sc-orders.service.d.ts +27 -18
  37. package/package.json +1 -1
  38. package/pagination/services/sc-pagination.service.d.ts +2 -2
  39. package/questionnaire/services/sc-questionnaire.service.d.ts +12 -13
  40. package/references/services/sc-references.service.d.ts +13 -14
  41. package/release_notes.tmp +1 -5
  42. package/user/index.d.ts +1 -0
  43. package/user/services/sc-user.service.d.ts +0 -24
  44. package/user/tokens/index.d.ts +1 -0
  45. package/user/tokens/sc-user-providers.d.ts +7 -0
  46. package/utm/services/sc-utm.service.d.ts +0 -4
  47. package/warehouse/services/sc-warehouse.service.d.ts +8 -13
@@ -1,29 +1,32 @@
1
- import { Inject, Injectable } from '@angular/core';
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { inject, Injectable } from '@angular/core';
2
3
  import { map, of, shareReplay, switchMap } from 'rxjs';
4
+ import { ScConvertersService } from '../../converters';
3
5
  import { SC_URLS } from '../../tokens/sc-urls';
4
- import { ScClientType } from '../../user';
6
+ import { SC_USER_INFO, ScClientType } from '../../user';
5
7
  import { ScReferenceName } from '../enums/sc-reference-name';
6
8
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- import * as i2 from "../../auth/services/sc-auth.service";
9
- import * as i3 from "../../converters";
10
9
  /**
11
10
  * Сервис справочников.
12
11
  */
13
12
  export class ScReferencesService {
14
- /**
15
- * Инициализирует экземпляр класса {@link ScReferencesService}.
16
- *
17
- * @param http HTTP-клиент.
18
- * @param urls Список ссылок на разделы backend'a.
19
- * @param authService Сервис аутентификации пользователей.
20
- * @param convertersService Сервис конвертации данных.
21
- */
22
- constructor(http, urls, authService, convertersService) {
23
- this.http = http;
24
- this.urls = urls;
25
- this.authService = authService;
26
- this.convertersService = convertersService;
13
+ constructor() {
14
+ /**
15
+ * HTTP-клиент.
16
+ */
17
+ this.http = inject(HttpClient);
18
+ /**
19
+ * Список ссылок приложения.
20
+ */
21
+ this.urls = inject(SC_URLS);
22
+ /**
23
+ * {@link Observable} данных о текущем пользователе.
24
+ */
25
+ this.user$ = inject(SC_USER_INFO);
26
+ /**
27
+ * Сервис конвертации данных.
28
+ */
29
+ this.convertersService = inject(ScConvertersService);
27
30
  /**
28
31
  * Список направлений продаж.
29
32
  */
@@ -66,7 +69,7 @@ export class ScReferencesService {
66
69
  /**
67
70
  * Список типов оплаты заказа.
68
71
  */
69
- this.paymentTypes$ = this.authService.getAuthChange().pipe(switchMap(() => this.getReference$(ScReferenceName.paymentType)), shareReplay(1));
72
+ this.paymentTypes$ = this.user$.pipe(switchMap(() => this.getReference$(ScReferenceName.paymentType)), shareReplay(1));
70
73
  }
71
74
  /**
72
75
  * Возвращает данные справочника.
@@ -181,7 +184,7 @@ export class ScReferencesService {
181
184
  getCurrencyById$(currencyId) {
182
185
  return this.currencies$.pipe(map((types) => types.find((type) => type.id === currencyId)));
183
186
  }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScReferencesService, deps: [{ token: i1.HttpClient }, { token: SC_URLS }, { token: i2.ScAuthService }, { token: i3.ScConvertersService }], target: i0.ɵɵFactoryTarget.Injectable }); }
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScReferencesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
185
188
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScReferencesService, providedIn: 'root' }); }
186
189
  }
187
190
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScReferencesService, decorators: [{
@@ -189,8 +192,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
189
192
  args: [{
190
193
  providedIn: 'root',
191
194
  }]
192
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
193
- type: Inject,
194
- args: [SC_URLS]
195
- }] }, { type: i2.ScAuthService }, { type: i3.ScConvertersService }] });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcmVmZXJlbmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9yZWZlcmVuY2VzL3NlcnZpY2VzL3NjLXJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBTTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFFN0Q7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBa0U1Qjs7Ozs7OztPQU9HO0lBQ0gsWUFDcUIsSUFBZ0IsRUFDQyxJQUFhLEVBQzlCLFdBQTBCLEVBQzFCLGlCQUFzQztRQUh0QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ0MsU0FBSSxHQUFKLElBQUksQ0FBUztRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBN0UzRDs7V0FFRztRQUNJLGdCQUFXLEdBQW9DLElBQUksQ0FBQyxhQUFhLENBQXNCLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU5SDs7V0FFRztRQUNJLG1CQUFjLEdBQWlGLElBQUksQ0FBQyxhQUFhLENBRXRILGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoQzs7V0FFRztRQUNJLG1CQUFjLEdBQXlGLElBQUksQ0FBQyxhQUFhLENBRTlILGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvQjs7V0FFRztRQUNJLHFCQUFnQixHQUFtRixJQUFJ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SC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkE2RVEsTUFBTTsyQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBTY0NvbnZlcnRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udmVydGVycyc7XG5pbXBvcnQgeyBTY0RlbGl2ZXJ5VHlwZSB9IGZyb20gJy4uLy4uL29yZGVyL2VudW1zL3NjLWRlbGl2ZXJ5LXR5cGUnO1xuaW1wb3J0IHsgU2NQYXltZW50VHlwZSB9IGZyb20gJy4uLy4uL29yZGVyL2VudW1zL3NjLXBheW1lbnQtdHlwZSc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NDbGllbnRUeXBlIH0gZnJvbSAnLi4vLi4vdXNlcic7XG5pbXBvcnQgeyBTY0lDdXJyZW5jeSwgU2NJUmVmZXJlbmNlc1R5cGVzLCBTY0lTYWxlc0RpcmVjdGlvbiB9IGZyb20gJy4uL2R0byc7XG5pbXBvcnQgeyBTY09wZkxpc3QgfSBmcm9tICcuLi9lbnVtcy9zYy1vcGYtbGlzdCc7XG5pbXBvcnQgeyBTY09yZGVyU3RhdGVTdGF0dXMgfSBmcm9tICcuLi9lbnVtcy9zYy1vcmRlci1zdGF0ZS1zdGF0dXMnO1xuaW1wb3J0IHsgU2NQYXltZW50U3RhdHVzIH0gZnJvbSAnLi4vZW51bXMvc2MtcGF5bWVudC1zdGF0dXMnO1xuaW1wb3J0IHsgU2NSZWNsYW1hdGlvblN0YXR1cyB9IGZyb20gJy4uL2VudW1zL3NjLXJlY2xhbWF0aW9uLXN0YXR1cyc7XG5pbXBvcnQgeyBTY1JlZmVyZW5jZU5hbWUgfSBmcm9tICcuLi9lbnVtcy9zYy1yZWZlcmVuY2UtbmFtZSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINGB0L/RgNCw0LLQvtGH0L3QuNC60L7Qsi5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NSZWZlcmVuY2VzU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INC90LDQv9GA0LDQstC70LXQvdC40Lkg0L/RgNC+0LTQsNC2LlxuICAgICAqL1xuICAgIHB1YmxpYyBkaXJlY3Rpb25zJDogT2JzZXJ2YWJsZTxTY0lTYWxlc0RpcmVjdGlvbltdPiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxTY0lTYWxlc0RpcmVjdGlvbltdPihTY1JlZmVyZW5jZU5hbWUuc2FsZXNEaXJlY3Rpb24pO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGC0LjQv9C+0LIg0LTQvtGB0YLQsNCy0LrQuCDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIGRlbGl2ZXJ5VHlwZXMkOiBPYnNlcnZhYmxlPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY0RlbGl2ZXJ5VHlwZSwgdHlwZW9mIFNjRGVsaXZlcnlUeXBlPj4+ID0gdGhpcy5nZXRSZWZlcmVuY2UkPFxuICAgICAgICBBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NEZWxpdmVyeVR5cGUsIHR5cGVvZiBTY0RlbGl2ZXJ5VHlwZT4+XG4gICAgPihTY1JlZmVyZW5jZU5hbWUuZGVsaXZlcnlUeXBlKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGC0LDRgtGD0YHQvtCyINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3JkZXJTdGF0dXNlcyQ6IE9ic2VydmFibGU8QXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3JkZXJTdGF0ZVN0YXR1cywgdHlwZW9mIFNjT3JkZXJTdGF0ZVN0YXR1cz4+PiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxcbiAgICAgICAgQXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3JkZXJTdGF0ZVN0YXR1cywgdHlwZW9mIFNjT3JkZXJTdGF0ZVN0YXR1cz4+XG4gICAgPihTY1JlZmVyZW5jZU5hbWUub3JkZXJTdGF0dXMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YLQsNGC0YPRgdC+0LIg0L7Qv9C70LDRgtGLINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF5bWVudFN0YXR1c2VzJDogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NQYXltZW50U3RhdHVzLCB0eXBlb2YgU2NQYXltZW50U3RhdHVzPj4+ID0gdGhpcy5nZXRSZWZlcmVuY2UkPFxuICAgICAgICBBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NQYXltZW50U3RhdHVzLCB0eXBlb2YgU2NQYXltZW50U3RhdHVzPj5cbiAgICA+KFNjUmVmZXJlbmNlTmFtZS5vcmRlclBheW1lbnRTdGF0dXMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YLQsNGC0YPRgdC+0LIg0YDQtdC60LvQsNC80LDRhtC40LkuXG4gICAgICovXG4gICAgcHVibGljIHJlY2xhbWF0aW9uU3RhdHVzZXMkOiBPYnNlcnZhYmxlPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY1JlY2xhbWF0aW9uU3RhdHVzLCB0eXBlb2YgU2NSZWNsYW1hdGlvblN0YXR1cz4+PiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxcbiAgICAgICAgQXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjUmVjbGFtYXRpb25TdGF0dXMsIHR5cGVvZiBTY1JlY2xhbWF0aW9uU3RhdHVzPj5cbiAgICA+KFNjUmVmZXJlbmNlTmFtZS5yZWNsYW1hdGlvblN0YXR1cyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLRi9GFINGE0L7RgNC8Li5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BmJDogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NPcGZMaXN0LCB0eXBlb2YgU2NPcGZMaXN0Pj4+ID0gdGhpcy5nZXRSZWZlcmVuY2UkPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY09wZkxpc3QsIHR5cGVvZiBTY09wZkxpc3Q+Pj4oXG4gICAgICAgIFNjUmVmZXJlbmNlTmFtZS5vcGZcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YLQsNGC0YPRgdC+0LIg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjdXJyZW5jaWVzJDogT2JzZXJ2YWJsZTxTY0lDdXJyZW5jeVtdPiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxTY0lDdXJyZW5jeVtdPihTY1JlZmVyZW5jZU5hbWUuY3VycmVuY3kpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGC0LjQv9C+0LIg0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIFRPRE86INCX0LDQvNC10L3QuNGC0Ywg0L3QsCDRgdC/0YDQsNCy0L7Rh9C90LjQutC4INC40LcgQVBJLiDQndCw0L/QuNGB0LDRgtGMINGC0LXRgdGC0Ysg0L/QvtGB0LvQtSDQtNC+0YDQsNCx0L7RgtC60Lgg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGNsaWVudFR5cGVzJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSBvZihbXG4gICAgICAgIHsgbmFtZTogU2NDbGllbnRUeXBlLnBlcnNvbiwgZGVzY3JpcHRpb246ICfQpNC40LfQuNGH0LXRgdC60L7QtSDQu9C40YbQvicgfSxcbiAgICAgICAgeyBuYW1lOiBTY0NsaWVudFR5cGUub3JnLCBkZXNjcmlwdGlvbjogJ9Cu0YDQuNC00LjRh9C10YHQutC+0LUg0LvQuNGG0L4nIH0sXG4gICAgICAgIHsgbmFtZTogU2NDbGllbnRUeXBlLmljLCBkZXNjcmlwdGlvbjogJ9CY0L3QtNC40LLQuNC00YPQsNC70YzQvdGL0Lkg0L/RgNC10LTQv9GA0LjQvdC40LzQsNGC0LXQu9GMJyB9LFxuICAgIF0pO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGC0LjQv9C+0LIg0L7Qv9C70LDRgtGLINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF5bWVudFR5cGVzJDogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NQYXltZW50VHlwZSwgdHlwZW9mIFNjUGF5bWVudFR5cGU+Pj4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhDaGFuZ2UoKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5nZXRSZWZlcmVuY2UkPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY1BheW1lbnRUeXBlLCB0eXBlb2YgU2NQYXltZW50VHlwZT4+PihTY1JlZmVyZW5jZU5hbWUucGF5bWVudFR5cGUpKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1JlZmVyZW5jZXNTZXJ2aWNlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBodHRwIEhUVFAt0LrQu9C40LXQvdGCLlxuICAgICAqIEBwYXJhbSB1cmxzINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kJ2EuXG4gICAgICogQHBhcmFtIGF1dGhTZXJ2aWNlINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqIEBwYXJhbSBjb252ZXJ0ZXJzU2VydmljZSDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIEBJbmplY3QoU0NfVVJMUykgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBTY0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LTQsNC90L3Ri9C1INGB0L/RgNCw0LLQvtGH0L3QuNC60LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlTmFtZSDQndCw0LfQstCw0L3QuNC1INGB0L/RgNCw0LLQvtGH0L3QuNC60LAuXG4gICAgICogQHBhcmFtIHBhcmFtcyDQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQt9Cw0L/RgNC+0YHQsC5cbiAgICAgKiBAcGFyYW0gcGFyYW1zLmNvdW50cnlJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdGC0YDQsNC90YsuXG4gICAgICogQHBhcmFtIHBhcmFtcy5yZWdpb25JZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgNC10LPQuNC+0L3QsCDQsiDRgdGC0YDQsNC90LUuXG4gICAgICovXG4gICAgcHVibGljIGdldFJlZmVyZW5jZSQ8VD4ocmVmZXJlbmNlTmFtZTogU2NSZWZlcmVuY2VOYW1lLCBwYXJhbXM/OiB7IGNvdW50cnlJZD86IG51bWJlcjsgcmVnaW9uSWQ/OiBudW1iZXIgfSk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PFQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3JlZmVyZW5jZXMvJHtyZWZlcmVuY2VOYW1lfWAsIHsgcGFyYW1zOiB0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnRvSHR0cFBhcmFtcyh7IHBhcmFtczogcGFyYW1zIH0sIHsgbm9uTnVsbGFibGU6IHRydWUgfSkgfSlcbiAgICAgICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQtNCw0L3QvdGL0LUg0YHQv9GA0LDQstC+0YfQvdC40LrQsCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlTmFtZSDQndCw0LfQstCw0L3QuNC1INGB0L/RgNCw0LLQvtGH0L3QuNC60LAuXG4gICAgICogQHBhcmFtIHRlcm0g0J/QvtC40YHQutC+0LLRi9C5INC30LDQv9GA0L7RgS5cbiAgICAgKiBAcGFyYW0gcGFyYW1zINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC30LDQv9GA0L7RgdCwLlxuICAgICAqIEBwYXJhbSBwYXJhbXMuY291bnRyeUlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0YLRgNCw0L3Riy5cbiAgICAgKiBAcGFyYW0gcGFyYW1zLnJlZ2lvbklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGA0LXQs9C40L7QvdCwINCyINGB0YLRgNCw0L3QtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UmVmZXJlbmNlQnlUZXJtJDxUPihyZWZlcmVuY2VOYW1lOiBTY1JlZmVyZW5jZU5hbWUsIHRlcm06IHN0cmluZywgcGFyYW1zPzogeyBjb3VudHJ5SWQ/OiBudW1iZXI7IHJlZ2lvbklkPzogbnVtYmVyIH0pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxUPihgJHt0aGlzLnVybHMuYXBpVXJsfS9yZWZlcmVuY2VzLyR7cmVmZXJlbmNlTmFtZX0vc2VhcmNoYCwge1xuICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5jb252ZXJ0ZXJzU2VydmljZS50b0h0dHBQYXJhbXMoeyB0ZXJtOiB0ZXJtLCBwYXJhbXM6IHBhcmFtcyB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQtNCw0L3QvdGL0LUg0YHQv9GA0LDQstC+0YfQvdC40LrQsCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlTmFtZSDQndCw0LfQstCw0L3QuNC1INGB0L/RgNCw0LLQvtGH0L3QuNC60LAuXG4gICAgICogQHBhcmFtIGlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC30LDQv9C40YHQuCDRgdC/0YDQsNCy0L7Rh9C90LjQutCwLCDQuNC90YTQvtGA0LzQsNGG0LjRjiDQviDQutC+0YLQvtGA0L7QuSDQvdC10L7QsdGF0L7QtNC40LzQviDQstC10YDQvdGD0YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UmVmZXJlbmNlQnlJZCQ8VD4ocmVmZXJlbmNlTmFtZTogU2NSZWZlcmVuY2VOYW1lLCBpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3JlZmVyZW5jZXMvJHtyZWZlcmVuY2VOYW1lfS8ke2lkfWApLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQvdCw0L/RgNCw0LLQu9C10L3QuNGPINC/0YDQvtC00LDQtiwg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMg0L3QsCDQstGF0L7QtNC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC90LDQv9GA0LDQstC70LXQvdC40Y8g0L/RgNC+0LTQsNC2LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREaXJlY3Rpb25CeUlkJChkaXJlY3Rpb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY0lTYWxlc0RpcmVjdGlvbiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb25zJC5waXBlKG1hcCgoZGlyZWN0aW9ucykgPT4gZGlyZWN0aW9ucy5maW5kKChkaXJlY3Rpb24pID0+IGRpcmVjdGlvbi5pZCA9PT0gZGlyZWN0aW9uSWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGC0LjQv9CwINC60LvQuNC10L3RgtCwLCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0YHQuNC80LLQvtC70YzQvdC+0LzRgyDQvtCx0L7Qt9C90LDRh9C10L3QuNGOIChzbHVnKSDQvdCwINCy0YXQvtC00LUuXG4gICAgICogVE9ETzog0J3QsNC/0LjRgdCw0YLRjCDRgtC10YHRgtGLINC/0L7RgdC70LUg0LTQvtGA0LDQsdC+0YLQutC4INGB0L/RgNCw0LLQvtGH0L3QuNC60L7Qsi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzbHVnINCh0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpINGC0LjQv9CwINC60LvQuNC10L3RgtCwLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGdldENsaWVudFR5cGVzQnlTbHVnJChzbHVnOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm4sIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnRUeXBlcyQucGlwZShtYXAoKHR5cGVzKSA9PiB0eXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLm5hbWUgPT09IHNsdWcpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0YLQsNGC0YPRgSDQvtC/0LvQsNGC0YssINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDINC90LAg0LLRhdC+0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHRgtCw0YLRg9GB0LAg0L7Qv9C70LDRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQYXltZW50U3RhdHVzQnlJZCQodHlwZUlkOiBTY1BheW1lbnRTdGF0dXMpOiBPYnNlcnZhYmxlPFNjSVJlZmVyZW5jZXNUeXBlczxTY1BheW1lbnRTdGF0dXMsIHR5cGVvZiBTY1BheW1lbnRTdGF0dXM+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBheW1lbnRTdGF0dXNlcyQucGlwZShtYXAoKHR5cGVzKSA9PiB0eXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLmlkID09PSB0eXBlSWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGC0LjQvyDQtNC+0YHRgtCw0LLQutC4LCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZUlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0LjQv9CwINC00L7RgdGC0LDQstC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldERlbGl2ZXJ5VHlwZUJ5SWQkKHR5cGVJZDogU2NEZWxpdmVyeVR5cGUpOiBPYnNlcnZhYmxlPFNjSVJlZmVyZW5jZXNUeXBlczxTY0RlbGl2ZXJ5VHlwZSwgdHlwZW9mIFNjRGVsaXZlcnlUeXBlPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWxpdmVyeVR5cGVzJC5waXBlKG1hcCgodHlwZXMpID0+IHR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUuaWQgPT09IHR5cGVJZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQuNC/INGB0YLQsNGC0YPRgdCwINC30LDQutCw0LfQsCwg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMg0L3QsCDQstGF0L7QtNC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXR1c0lkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0LjQv9CwINGB0YLQsNGC0YPRgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPcmRlclN0YXR1c0J5SWQkKHN0YXR1c0lkOiBTY09yZGVyU3RhdGVTdGF0dXMpOiBPYnNlcnZhYmxlPFNjSVJlZmVyZW5jZXNUeXBlczxTY09yZGVyU3RhdGVTdGF0dXMsIHR5cGVvZiBTY09yZGVyU3RhdGVTdGF0dXM+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yZGVyU3RhdHVzZXMkLnBpcGUobWFwKCh0eXBlcykgPT4gdHlwZXMuZmluZCgodHlwZSkgPT4gdHlwZS5pZCA9PT0gc3RhdHVzSWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGC0LjQv9CwINGB0YLQsNGC0YPRgdCwINGA0LXQutC70LDQvNCw0YbQuNC5LCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0YPQutCw0LfQsNC90L3QvtC80YMg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0dXNJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgtC40L/QsCDRgdGC0LDRgtGD0YHQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UmVjbGFtYXRpb25TdGF0dXNCeUlkJChzdGF0dXNJZDogU2NSZWNsYW1hdGlvblN0YXR1cyk6IE9ic2VydmFibGU8U2NJUmVmZXJlbmNlc1R5cGVzPFNjUmVjbGFtYXRpb25TdGF0dXMsIHR5cGVvZiBTY1JlY2xhbWF0aW9uU3RhdHVzPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWNsYW1hdGlvblN0YXR1c2VzJC5waXBlKG1hcCgodHlwZXMpID0+IHR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUuaWQgPT09IHN0YXR1c0lkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgtC40L8g0L7Qv9C70LDRgtGLLCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZUlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0LjQv9CwINC+0L/Qu9Cw0YLRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGF5bWVudFR5cGVCeUlkJCh0eXBlSWQ6IFNjUGF5bWVudFR5cGUpOiBPYnNlcnZhYmxlPFNjSVJlZmVyZW5jZXNUeXBlczxTY1BheW1lbnRUeXBlLCB0eXBlb2YgU2NQYXltZW50VHlwZT4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF5bWVudFR5cGVzJC5waXBlKG1hcCgodHlwZXMpID0+IHR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUuaWQgPT09IHR5cGVJZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQvtC5INGE0L7RgNC80YssINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDRgdC40LzQstC+0LvRjNC90L7QvNGDINC+0LHQvtC30L3QsNGH0LXQvdC40Y4gKHNsdWcpINC90LAg0LLRhdC+0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzbHVnINCh0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPcGZCeVNsdWckKHNsdWc6IGtleW9mIHR5cGVvZiBTY09wZkxpc3QpOiBPYnNlcnZhYmxlPFNjSVJlZmVyZW5jZXNUeXBlczxTY09wZkxpc3QsIHR5cGVvZiBTY09wZkxpc3Q+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZiQucGlwZShtYXAoKHR5cGVzKSA9PiB0eXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLnNsdWcgPT09IHNsdWcpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INCy0LDQu9GO0YLRiywg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMg0L3QsCDQstGF0L7QtNC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIGN1cnJlbmN5SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLQsNC70Y7RgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDdXJyZW5jeUJ5SWQkKGN1cnJlbmN5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8U2NJQ3VycmVuY3kgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY2llcyQucGlwZShtYXAoKHR5cGVzKSA9PiB0eXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLmlkID09PSBjdXJyZW5jeUlkKSkpO1xuICAgIH1cbn1cbiJdfQ==
195
+ }] });
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcmVmZXJlbmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9yZWZlcmVuY2VzL3NlcnZpY2VzL3NjLXJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUduRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQVUsTUFBTSxZQUFZLENBQUM7QUFNaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUU3RDs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFJSTs7V0FFRztRQUNjLFNBQUksR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsVUFBSyxHQUF1QixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEU7O1dBRUc7UUFDYyxzQkFBaUIsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdEY7O1dBRUc7UUFDSSxnQkFBVyxHQUFvQyxJQUFJLENBQUMsYUFBYSxDQUFzQixlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUg7O1dBRUc7UUFDSSxtQkFBYyxHQUFpRixJQUFJLENBQUMsYUFBYSxDQUV0SCxl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RUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDOytHQWpOUSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZoQixNQUFNOzs0RkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IFNjQ29udmVydGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb252ZXJ0ZXJzJztcbmltcG9ydCB7IFNjRGVsaXZlcnlUeXBlIH0gZnJvbSAnLi4vLi4vb3JkZXIvZW51bXMvc2MtZGVsaXZlcnktdHlwZSc7XG5pbXBvcnQgeyBTY1BheW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vb3JkZXIvZW51bXMvc2MtcGF5bWVudC10eXBlJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8sIFNjQ2xpZW50VHlwZSwgU2NVc2VyIH0gZnJvbSAnLi4vLi4vdXNlcic7XG5pbXBvcnQgeyBTY0lDdXJyZW5jeSwgU2NJUmVmZXJlbmNlc1R5cGVzLCBTY0lTYWxlc0RpcmVjdGlvbiB9IGZyb20gJy4uL2R0byc7XG5pbXBvcnQgeyBTY09wZkxpc3QgfSBmcm9tICcuLi9lbnVtcy9zYy1vcGYtbGlzdCc7XG5pbXBvcnQgeyBTY09yZGVyU3RhdGVTdGF0dXMgfSBmcm9tICcuLi9lbnVtcy9zYy1vcmRlci1zdGF0ZS1zdGF0dXMnO1xuaW1wb3J0IHsgU2NQYXltZW50U3RhdHVzIH0gZnJvbSAnLi4vZW51bXMvc2MtcGF5bWVudC1zdGF0dXMnO1xuaW1wb3J0IHsgU2NSZWNsYW1hdGlvblN0YXR1cyB9IGZyb20gJy4uL2VudW1zL3NjLXJlY2xhbWF0aW9uLXN0YXR1cyc7XG5pbXBvcnQgeyBTY1JlZmVyZW5jZU5hbWUgfSBmcm9tICcuLi9lbnVtcy9zYy1yZWZlcmVuY2UtbmFtZSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINGB0L/RgNCw0LLQvtGH0L3QuNC60L7Qsi5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NSZWZlcmVuY2VzU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogSFRUUC3QutC70LjQtdC90YIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPFNjVXNlcj4gPSBpbmplY3QoU0NfVVNFUl9JTkZPKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQutC+0L3QstC10YDRgtCw0YbQuNC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlID0gaW5qZWN0KFNjQ29udmVydGVyc1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INC90LDQv9GA0LDQstC70LXQvdC40Lkg0L/RgNC+0LTQsNC2LlxuICAgICAqL1xuICAgIHB1YmxpYyBkaXJlY3Rpb25zJDogT2JzZXJ2YWJsZTxTY0lTYWxlc0RpcmVjdGlvbltdPiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxTY0lTYWxlc0RpcmVjdGlvbltdPihTY1JlZmVyZW5jZU5hbWUuc2FsZXNEaXJlY3Rpb24pO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGC0LjQv9C+0LIg0LTQvtGB0YLQsNCy0LrQuCDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIGRlbGl2ZXJ5VHlwZXMkOiBPYnNlcnZhYmxlPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY0RlbGl2ZXJ5VHlwZSwgdHlwZW9mIFNjRGVsaXZlcnlUeXBlPj4+ID0gdGhpcy5nZXRSZWZlcmVuY2UkPFxuICAgICAgICBBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NEZWxpdmVyeVR5cGUsIHR5cGVvZiBTY0RlbGl2ZXJ5VHlwZT4+XG4gICAgPihTY1JlZmVyZW5jZU5hbWUuZGVsaXZlcnlUeXBlKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGC0LDRgtGD0YHQvtCyINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3JkZXJTdGF0dXNlcyQ6IE9ic2VydmFibGU8QXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3JkZXJTdGF0ZVN0YXR1cywgdHlwZW9mIFNjT3JkZXJTdGF0ZVN0YXR1cz4+PiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxcbiAgICAgICAgQXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3JkZXJTdGF0ZVN0YXR1cywgdHlwZW9mIFNjT3JkZXJTdGF0ZVN0YXR1cz4+XG4gICAgPihTY1JlZmVyZW5jZU5hbWUub3JkZXJTdGF0dXMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YLQsNGC0YPRgdC+0LIg0L7Qv9C70LDRgtGLINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF5bWVudFN0YXR1c2VzJDogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NQYXltZW50U3RhdHVzLCB0eXBlb2YgU2NQYXltZW50U3RhdHVzPj4+ID0gdGhpcy5nZXRSZWZlcmVuY2UkPFxuICAgICAgICBBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NQYXltZW50U3RhdHVzLCB0eXBlb2YgU2NQYXltZW50U3RhdHVzPj5cbiAgICA+KFNjUmVmZXJlbmNlTmFtZS5vcmRlclBheW1lbnRTdGF0dXMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YLQsNGC0YPRgdC+0LIg0YDQtdC60LvQsNC80LDRhtC40LkuXG4gICAgICovXG4gICAgcHVibGljIHJlY2xhbWF0aW9uU3RhdHVzZXMkOiBPYnNlcnZhYmxlPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY1JlY2xhbWF0aW9uU3RhdHVzLCB0eXBlb2YgU2NSZWNsYW1hdGlvblN0YXR1cz4+PiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxcbiAgICAgICAgQXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjUmVjbGFtYXRpb25TdGF0dXMsIHR5cGVvZiBTY1JlY2xhbWF0aW9uU3RhdHVzPj5cbiAgICA+KFNjUmVmZXJlbmNlTmFtZS5yZWNsYW1hdGlvblN0YXR1cyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLRi9GFINGE0L7RgNC8Li5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BmJDogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NPcGZMaXN0LCB0eXBlb2YgU2NPcGZMaXN0Pj4+ID0gdGhpcy5nZXRSZWZlcmVuY2UkPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY09wZkxpc3QsIHR5cGVvZiBTY09wZkxpc3Q+Pj4oXG4gICAgICAgIFNjUmVmZXJlbmNlTmFtZS5vcGZcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YLQsNGC0YPRgdC+0LIg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjdXJyZW5jaWVzJDogT2JzZXJ2YWJsZTxTY0lDdXJyZW5jeVtdPiA9IHRoaXMuZ2V0UmVmZXJlbmNlJDxTY0lDdXJyZW5jeVtdPihTY1JlZmVyZW5jZU5hbWUuY3VycmVuY3kpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGC0LjQv9C+0LIg0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIFRPRE86INCX0LDQvNC10L3QuNGC0Ywg0L3QsCDRgdC/0YDQsNCy0L7Rh9C90LjQutC4INC40LcgQVBJLiDQndCw0L/QuNGB0LDRgtGMINGC0LXRgdGC0Ysg0L/QvtGB0LvQtSDQtNC+0YDQsNCx0L7RgtC60Lgg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGNsaWVudFR5cGVzJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSBvZihbXG4gICAgICAgIHsgbmFtZTogU2NDbGllbnRUeXBlLnBlcnNvbiwgZGVzY3JpcHRpb246ICfQpNC40LfQuNGH0LXRgdC60L7QtSDQu9C40YbQvicgfSxcbiAgICAgICAgeyBuYW1lOiBTY0NsaWVudFR5cGUub3JnLCBkZXNjcmlwdGlvbjogJ9Cu0YDQuNC00LjRh9C10YHQutC+0LUg0LvQuNGG0L4nIH0sXG4gICAgICAgIHsgbmFtZTogU2NDbGllbnRUeXBlLmljLCBkZXNjcmlwdGlvbjogJ9CY0L3QtNC40LLQuNC00YPQsNC70YzQvdGL0Lkg0L/RgNC10LTQv9GA0LjQvdC40LzQsNGC0LXQu9GMJyB9LFxuICAgIF0pO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGC0LjQv9C+0LIg0L7Qv9C70LDRgtGLINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF5bWVudFR5cGVzJDogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NQYXltZW50VHlwZSwgdHlwZW9mIFNjUGF5bWVudFR5cGU+Pj4gPSB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdldFJlZmVyZW5jZSQ8QXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjUGF5bWVudFR5cGUsIHR5cGVvZiBTY1BheW1lbnRUeXBlPj4+KFNjUmVmZXJlbmNlTmFtZS5wYXltZW50VHlwZSkpLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQtNCw0L3QvdGL0LUg0YHQv9GA0LDQstC+0YfQvdC40LrQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWZlcmVuY2VOYW1lINCd0LDQt9Cy0LDQvdC40LUg0YHQv9GA0LDQstC+0YfQvdC40LrQsC5cbiAgICAgKiBAcGFyYW0gcGFyYW1zINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC30LDQv9GA0L7RgdCwLlxuICAgICAqIEBwYXJhbSBwYXJhbXMuY291bnRyeUlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0YLRgNCw0L3Riy5cbiAgICAgKiBAcGFyYW0gcGFyYW1zLnJlZ2lvbklkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGA0LXQs9C40L7QvdCwINCyINGB0YLRgNCw0L3QtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UmVmZXJlbmNlJDxUPihyZWZlcmVuY2VOYW1lOiBTY1JlZmVyZW5jZU5hbWUsIHBhcmFtcz86IHsgY291bnRyeUlkPzogbnVtYmVyOyByZWdpb25JZD86IG51bWJlciB9KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8VD4oYCR7dGhpcy51cmxzLmFwaVVybH0vcmVmZXJlbmNlcy8ke3JlZmVyZW5jZU5hbWV9YCwgeyBwYXJhbXM6IHRoaXMuY29udmVydGVyc1NlcnZpY2UudG9IdHRwUGFyYW1zKHsgcGFyYW1zOiBwYXJhbXMgfSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSB9KVxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC00LDQvdC90YvQtSDRgdC/0YDQsNCy0L7Rh9C90LjQutCwINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWZlcmVuY2VOYW1lINCd0LDQt9Cy0LDQvdC40LUg0YHQv9GA0LDQstC+0YfQvdC40LrQsC5cbiAgICAgKiBAcGFyYW0gdGVybSDQn9C+0LjRgdC60L7QstGL0Lkg0LfQsNC/0YDQvtGBLlxuICAgICAqIEBwYXJhbSBwYXJhbXMg0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0LfQsNC/0YDQvtGB0LAuXG4gICAgICogQHBhcmFtIHBhcmFtcy5jb3VudHJ5SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHRgtGA0LDQvdGLLlxuICAgICAqIEBwYXJhbSBwYXJhbXMucmVnaW9uSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YDQtdCz0LjQvtC90LAg0LIg0YHRgtGA0LDQvdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSZWZlcmVuY2VCeVRlcm0kPFQ+KHJlZmVyZW5jZU5hbWU6IFNjUmVmZXJlbmNlTmFtZSwgdGVybTogc3RyaW5nLCBwYXJhbXM/OiB7IGNvdW50cnlJZD86IG51bWJlcjsgcmVnaW9uSWQ/OiBudW1iZXIgfSk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PFQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3JlZmVyZW5jZXMvJHtyZWZlcmVuY2VOYW1lfS9zZWFyY2hgLCB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnRvSHR0cFBhcmFtcyh7IHRlcm06IHRlcm0sIHBhcmFtczogcGFyYW1zIH0sIHsgbm9uTnVsbGFibGU6IHRydWUgfSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC00LDQvdC90YvQtSDRgdC/0YDQsNCy0L7Rh9C90LjQutCwINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWZlcmVuY2VOYW1lINCd0LDQt9Cy0LDQvdC40LUg0YHQv9GA0LDQstC+0YfQvdC40LrQsC5cbiAgICAgKiBAcGFyYW0gaWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4INGB0L/RgNCw0LLQvtGH0L3QuNC60LAsINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC60L7RgtC+0YDQvtC5INC90LXQvtCx0YXQvtC00LjQvNC+INCy0LXRgNC90YPRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSZWZlcmVuY2VCeUlkJDxUPihyZWZlcmVuY2VOYW1lOiBTY1JlZmVyZW5jZU5hbWUsIGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy51cmxzLmFwaVVybH0vcmVmZXJlbmNlcy8ke3JlZmVyZW5jZU5hbWV9LyR7aWR9YCkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC90LDQv9GA0LDQstC70LXQvdC40Y8g0L/RgNC+0LTQsNC2LCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGlyZWN0aW9uSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9GA0L7QtNCw0LYuXG4gICAgICovXG4gICAgcHVibGljIGdldERpcmVjdGlvbkJ5SWQkKGRpcmVjdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNjSVNhbGVzRGlyZWN0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbnMkLnBpcGUobWFwKChkaXJlY3Rpb25zKSA9PiBkaXJlY3Rpb25zLmZpbmQoKGRpcmVjdGlvbikgPT4gZGlyZWN0aW9uLmlkID09PSBkaXJlY3Rpb25JZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQuNC/0LAg0LrQu9C40LXQvdGC0LAsINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDRgdC40LzQstC+0LvRjNC90L7QvNGDINC+0LHQvtC30L3QsNGH0LXQvdC40Y4gKHNsdWcpINC90LAg0LLRhdC+0LTQtS5cbiAgICAgKiBUT0RPOiDQndCw0L/QuNGB0LDRgtGMINGC0LXRgdGC0Ysg0L/QvtGB0LvQtSDQtNC+0YDQsNCx0L7RgtC60Lgg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNsdWcg0KHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0YLQuNC/0LAg0LrQu9C40LXQvdGC0LAuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgZ2V0Q2xpZW50VHlwZXNCeVNsdWckKHNsdWc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVybiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudFR5cGVzJC5waXBlKG1hcCgodHlwZXMpID0+IHR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUubmFtZSA9PT0gc2x1ZykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHRgtCw0YLRg9GBINC+0L/Qu9Cw0YLRiywg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMg0L3QsCDQstGF0L7QtNC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGVJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdGC0LDRgtGD0YHQsCDQvtC/0LvQsNGC0YsuXG4gICAgICovXG4gICAgcHVibGljIGdldFBheW1lbnRTdGF0dXNCeUlkJCh0eXBlSWQ6IFNjUGF5bWVudFN0YXR1cyk6IE9ic2VydmFibGU8U2NJUmVmZXJlbmNlc1R5cGVzPFNjUGF5bWVudFN0YXR1cywgdHlwZW9mIFNjUGF5bWVudFN0YXR1cz4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF5bWVudFN0YXR1c2VzJC5waXBlKG1hcCgodHlwZXMpID0+IHR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUuaWQgPT09IHR5cGVJZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQuNC/INC00L7RgdGC0LDQstC60LgsINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDINC90LAg0LLRhdC+0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YLQuNC/0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGVsaXZlcnlUeXBlQnlJZCQodHlwZUlkOiBTY0RlbGl2ZXJ5VHlwZSk6IE9ic2VydmFibGU8U2NJUmVmZXJlbmNlc1R5cGVzPFNjRGVsaXZlcnlUeXBlLCB0eXBlb2YgU2NEZWxpdmVyeVR5cGU+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5VHlwZXMkLnBpcGUobWFwKCh0eXBlcykgPT4gdHlwZXMuZmluZCgodHlwZSkgPT4gdHlwZS5pZCA9PT0gdHlwZUlkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgtC40L8g0YHRgtCw0YLRg9GB0LAg0LfQsNC60LDQt9CwLCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdHVzSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YLQuNC/0LAg0YHRgtCw0YLRg9GB0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldE9yZGVyU3RhdHVzQnlJZCQoc3RhdHVzSWQ6IFNjT3JkZXJTdGF0ZVN0YXR1cyk6IE9ic2VydmFibGU8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3JkZXJTdGF0ZVN0YXR1cywgdHlwZW9mIFNjT3JkZXJTdGF0ZVN0YXR1cz4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JkZXJTdGF0dXNlcyQucGlwZShtYXAoKHR5cGVzKSA9PiB0eXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLmlkID09PSBzdGF0dXNJZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQuNC/0LAg0YHRgtCw0YLRg9GB0LAg0YDQtdC60LvQsNC80LDRhtC40LksINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDRg9C60LDQt9Cw0L3QvdC+0LzRgyDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXR1c0lkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGC0LjQv9CwINGB0YLQsNGC0YPRgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSZWNsYW1hdGlvblN0YXR1c0J5SWQkKHN0YXR1c0lkOiBTY1JlY2xhbWF0aW9uU3RhdHVzKTogT2JzZXJ2YWJsZTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NSZWNsYW1hdGlvblN0YXR1cywgdHlwZW9mIFNjUmVjbGFtYXRpb25TdGF0dXM+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2xhbWF0aW9uU3RhdHVzZXMkLnBpcGUobWFwKCh0eXBlcykgPT4gdHlwZXMuZmluZCgodHlwZSkgPT4gdHlwZS5pZCA9PT0gc3RhdHVzSWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGC0LjQvyDQvtC/0LvQsNGC0YssINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDINC90LAg0LLRhdC+0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YLQuNC/0LAg0L7Qv9C70LDRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQYXltZW50VHlwZUJ5SWQkKHR5cGVJZDogU2NQYXltZW50VHlwZSk6IE9ic2VydmFibGU8U2NJUmVmZXJlbmNlc1R5cGVzPFNjUGF5bWVudFR5cGUsIHR5cGVvZiBTY1BheW1lbnRUeXBlPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXltZW50VHlwZXMkLnBpcGUobWFwKCh0eXBlcykgPT4gdHlwZXMuZmluZCgodHlwZSkgPT4gdHlwZS5pZCA9PT0gdHlwZUlkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC+0L3QvdC+LdC/0YDQsNCy0L7QstC+0Lkg0YTQvtGA0LzRiywg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INGB0LjQvNCy0L7Qu9GM0L3QvtC80YMg0L7QsdC+0LfQvdCw0YfQtdC90LjRjiAoc2x1Zykg0L3QsCDQstGF0L7QtNC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNsdWcg0KHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1ZykuXG4gICAgICovXG4gICAgcHVibGljIGdldE9wZkJ5U2x1ZyQoc2x1Zzoga2V5b2YgdHlwZW9mIFNjT3BmTGlzdCk6IE9ic2VydmFibGU8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3BmTGlzdCwgdHlwZW9mIFNjT3BmTGlzdD4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BmJC5waXBlKG1hcCgodHlwZXMpID0+IHR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUuc2x1ZyA9PT0gc2x1ZykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LLQsNC70Y7RgtGLLCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY3VycmVuY3lJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstCw0LvRjtGC0YsuXG4gICAgICovXG4gICAgcHVibGljIGdldEN1cnJlbmN5QnlJZCQoY3VycmVuY3lJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY0lDdXJyZW5jeSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW5jaWVzJC5waXBlKG1hcCgodHlwZXMpID0+IHR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUuaWQgPT09IGN1cnJlbmN5SWQpKSk7XG4gICAgfVxufVxuIl19
@@ -2,4 +2,5 @@ export * from './dto';
2
2
  export * from './enums';
3
3
  export * from './internal/dto';
4
4
  export * from './services/sc-user.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3VzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kdG8nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVybmFsL2R0byc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZSc7XG4iXX0=
5
+ export * from './tokens';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3VzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kdG8nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVybmFsL2R0byc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucyc7XG4iXX0=
@@ -3,7 +3,6 @@ import { inject, Injectable } from '@angular/core';
3
3
  import { map, ReplaySubject, switchMap, tap } from 'rxjs';
4
4
  import { ScAuthService } from '../../auth/services/sc-auth.service';
5
5
  import { ScTokenService } from '../../auth/services/sc-token.service';
6
- import { ScContactsService } from '../../contacts/services/sc-contacts.service';
7
6
  import { IS_BROWSER } from '../../providers/ssr.providers';
8
7
  import { SC_URLS } from '../../tokens/sc-urls';
9
8
  import { ScUserMetrikaGoalsEnum } from '../../user-metrika/enums/sc-user-metrika-goals-enum';
@@ -43,10 +42,6 @@ export class ScUserService {
43
42
  * Сервис для сбора метрик о действиях пользователей.
44
43
  */
45
44
  this.userMetrikaService = inject(ScUserMetrikaService);
46
- /**
47
- * Сервис для работы с контактными лицами.
48
- */
49
- this.contactsService = inject(ScContactsService);
50
45
  }
51
46
  /**
52
47
  * Выполняет инициализацию сервиса.
@@ -151,29 +146,6 @@ export class ScUserService {
151
146
  getGuestInfo$() {
152
147
  return this.http.get(`${this.urls.apiUrl}/guest`).pipe(map((user) => new ScUser(user)));
153
148
  }
154
- /**
155
- * Возвращает {@link Observable} изменения списка контактных лиц пользователя.
156
- */
157
- getUserContacts$() {
158
- return this.contactsService.userContacts.item$;
159
- }
160
- /**
161
- * Создаёт запрос создания контактного лица клиенту.
162
- *
163
- * @param userId Идентификатор пользователя.
164
- * @param newContact Данные требуемые для создания контактного лица.
165
- */
166
- createUserContact$(userId, newContact) {
167
- return this.contactsService.createContact$({ ...newContact, client: { id: userId } });
168
- }
169
- /**
170
- * Создаёт запрос удаления контактного лица адреса доставки.
171
- *
172
- * @param contactId Идентификатор контактного лица.
173
- */
174
- deleteUserContact$(contactId) {
175
- return this.contactsService.deleteContact$(contactId);
176
- }
177
149
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
178
150
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUserService, providedIn: 'root' }); }
179
151
  }
@@ -183,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
183
155
  providedIn: 'root',
184
156
  }]
185
157
  }] });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFVM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd4Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUk7O1dBRUc7UUFDSyxVQUFLLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXBFOztXQUVHO1FBQ2MsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkQ7O1dBRUc7UUFDYyxjQUFTLEdBQVksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxN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QUksQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksa0JBQWtCLENBQUMsTUFBYyxFQUFFLFVBQWtDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsU0FBaUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQTNMUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUF1dGhUb2tlbiB9IGZyb20gJy4uLy4uL2F1dGgvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NUb2tlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3NlcnZpY2VzL3NjLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NDb250YWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250YWN0cy9zZXJ2aWNlcy9zYy1jb250YWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IElTX0JST1dTRVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvc3NyLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9lbnVtcy9zYy11c2VyLW1ldHJpa2EtZ29hbHMtZW51bSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9zZXJ2aWNlcy9zYy11c2VyLW1ldHJpa2Euc2VydmljZSc7XG5pbXBvcnQgeyBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvJztcbmltcG9ydCB7IFNjSUNoYW5nZVBhc3N3b3JkIH0gZnJvbSAnLi4vZHRvL3NjLWktY2hhbmdlLXBhc3N3b3JkJztcbmltcG9ydCB7IFNjSUNvbnRhY3QgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0JztcbmltcG9ydCB7IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS1jb250YWN0LW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zIH0gZnJvbSAnLi4vZHRvL3NjLWktY29udGFjdC13aXRoLXJlbGF0aW9ucyc7XG5pbXBvcnQgeyBTY0lQYXNzd29yZE9uRGF0YVVwZGF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhc3N3b3JkLW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSVBob25lT25EYXRhQXBwcm92ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBob25lLW9uLWRhdGEtYXBwcm92ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLWNyZWF0ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLXVwZGF0ZSc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTY0lVc2VyRFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwvZHRvJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VzZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVzZXIkOiBSZXBsYXlTdWJqZWN0PFNjVXNlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0YLQvtC60LXQvdCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChTY1Rva2VuU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGB0LrRgNC40L/RgiDQstGL0L/QvtC70L3Rj9C10YLRgdGPINCyINCx0YDQsNGD0LfQtdGA0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW4gPSBpbmplY3QoSVNfQlJPV1NFUik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQnYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutC+0L3RgtCw0LrRgtC90YvQvNC4INC70LjRhtCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhY3RzU2VydmljZSA9IGluamVjdChTY0NvbnRhY3RzU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGL0L/QvtC70L3Rj9C10YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y4g0YHQtdGA0LLQuNGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0QXV0aENoYW5nZSgpXG4gICAgICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKChzdGF0ZSkgPT4gKHN0YXRlID8gdGhpcy5nZXRVc2VySW5mbyQoKSA6IHRoaXMuZ2V0R3Vlc3RJbmZvJCgpKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5zZXRVc2VyUGFyYW1zKHVzZXIuaWQsIHVzZXIudXNlclR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQobmV3IFNjVXNlcih7IG1ldGFkYXRhOiB7fSB9KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LjQt9C80LXQvdC10L3QuNGPINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckluZm8kKG5ld0RhdGE6IFNjSVVzZXJPbkRhdGFVcGRhdGUgfCBTY0lDaGFuZ2VQYXNzd29yZCB8IFNjSVBob25lT25EYXRhQXBwcm92ZSk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCwgbmV3RGF0YSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0udXNlclByb2ZpbGVFZGl0ZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LdCz0L7RgdGC0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3RGF0YSDQlNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLdCz0L7RgdGC0Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RJbmZvJChuZXdEYXRhOiBQaWNrPFNjSVVzZXJPbkRhdGFVcGRhdGUsICdtZXRhZGF0YSc+KTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCwgbmV3RGF0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIg0JTQsNC90L3Ri9C1INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB3aXRoQXV0aCDQpNC70LDQsywg0YPQutCw0LfRi9Cy0LDRjtGJ0LjQuSwg0L3Rg9C20L3QviDQu9C4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDRgtGMINGC0L7QutC10L0g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2lnblVwJCh1c2VyOiBTY0lVc2VyT25EYXRhQ3JlYXRlIHwgU2NJU2ltcGxlVXNlck9uRGF0YUNyZWF0ZSwgd2l0aEF1dGg6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxJQXV0aFRva2VuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQXV0aFRva2VuPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL3JlZ2lzdGVyYCwgdXNlcikucGlwZShcbiAgICAgICAgICAgIHRhcCgodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaWduZWRVcCxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh3aXRoQXV0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXRBdXRoVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L7RgtC/0YDQsNCy0LrRgyDQutC+0LTQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPINC90LAg0Y3Qu9C10LrRgtGA0L7QvdC90YPRjiDQv9C+0YfRgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVtYWlsINCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZW5kUmVzZXRQYXNzd29yZENvZGUkKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2F1dGgvcGFzc3dvcmQvcmVzdG9yZWAsIHsgcGFyYW1zOiB7IGVtYWlsOiBlbWFpbCB9IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1Bhc3N3b3JkINCU0LDQvdC90YvQtSDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0LDRgNC+0LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXRQYXNzd29yZCQobmV3UGFzc3dvcmQ6IFNjSVBhc3N3b3JkT25EYXRhVXBkYXRlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgbmV3UGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC00LDQvdC90YvQtSB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQtdC60YPRidC10LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXJDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGdldFVzZXJJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEd1ZXN0SW5mbyQoKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyJC5uZXh0KHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0R3Vlc3RJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS9ndWVzdGApLnBpcGUobWFwKCh1c2VyKSA9PiBuZXcgU2NVc2VyKHVzZXIpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LrQvtC90YLQsNC60YLQvdGL0YUg0LvQuNGGINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNvbnRhY3RzJCgpOiBPYnNlcnZhYmxlPFNjSUNvbnRhY3RbXSB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLnVzZXJDb250YWN0cy5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwINC60LvQuNC10L3RgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICogQHBhcmFtIG5ld0NvbnRhY3Qg0JTQsNC90L3Ri9C1INGC0YDQtdCx0YPQtdC80YvQtSDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDQutC+0L3RgtCw0LrRgtC90L7Qs9C+INC70LjRhtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVVc2VyQ29udGFjdCQodXNlcklkOiBudW1iZXIsIG5ld0NvbnRhY3Q6IFNjSUNvbnRhY3RPbkRhdGFDcmVhdGUpOiBPYnNlcnZhYmxlPFNjSUNvbnRhY3RXaXRoUmVsYXRpb25zPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhY3RzU2VydmljZS5jcmVhdGVDb250YWN0JCh7IC4uLm5ld0NvbnRhY3QsIGNsaWVudDogeyBpZDogdXNlcklkIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINGD0LTQsNC70LXQvdC40Y8g0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsCDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250YWN0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQvtC90YLQsNC60YLQvdC+0LPQviDQu9C40YbQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlVXNlckNvbnRhY3QkKGNvbnRhY3RJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFjdHNTZXJ2aWNlLmRlbGV0ZUNvbnRhY3QkKGNvbnRhY3RJZCk7XG4gICAgfVxufVxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFPM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd4Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUk7O1dBRUc7UUFDSyxVQUFLLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXBFOztXQUVHO1FBQ2MsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkQ7O1dBRUc7UUFDYyxjQUFTLEdBQVksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFckQ7O1dBRUc7UUFDYyxTQUFJ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QUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7K0dBNUpRLGFBQWE7bUhBQWIsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJQXV0aFRva2VuIH0gZnJvbSAnLi4vLi4vYXV0aC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNjQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3NlcnZpY2VzL3NjLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBTY1Rva2VuU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvc2VydmljZXMvc2MtdG9rZW4uc2VydmljZSc7XG5pbXBvcnQgeyBJU19CUk9XU0VSIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3Nzci5wcm92aWRlcnMnO1xuaW1wb3J0IHsgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy11cmxzJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0gfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2EvZW51bXMvc2MtdXNlci1tZXRyaWthLWdvYWxzLWVudW0nO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYVNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2Evc2VydmljZXMvc2MtdXNlci1tZXRyaWthLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NJU2ltcGxlVXNlck9uRGF0YUNyZWF0ZSB9IGZyb20gJy4uL2R0byc7XG5pbXBvcnQgeyBTY0lDaGFuZ2VQYXNzd29yZCB9IGZyb20gJy4uL2R0by9zYy1pLWNoYW5nZS1wYXNzd29yZCc7XG5pbXBvcnQgeyBTY0lQYXNzd29yZE9uRGF0YVVwZGF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhc3N3b3JkLW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSVBob25lT25EYXRhQXBwcm92ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBob25lLW9uLWRhdGEtYXBwcm92ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLWNyZWF0ZSc7XG5pbXBvcnQgeyBTY0lVc2VyT25EYXRhVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktdXNlci1vbi1kYXRhLXVwZGF0ZSc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTY0lVc2VyRFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwvZHRvJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VzZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVzZXIkOiBSZXBsYXlTdWJqZWN0PFNjVXNlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0YLQvtC60LXQvdCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChTY1Rva2VuU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGB0LrRgNC40L/RgiDQstGL0L/QvtC70L3Rj9C10YLRgdGPINCyINCx0YDQsNGD0LfQtdGA0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW4gPSBpbmplY3QoSVNfQlJPV1NFUik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQnYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiBIVFRQLdC60LvQuNC10L3Rgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGL0L/QvtC70L3Rj9C10YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y4g0YHQtdGA0LLQuNGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0QXV0aENoYW5nZSgpXG4gICAgICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKChzdGF0ZSkgPT4gKHN0YXRlID8gdGhpcy5nZXRVc2VySW5mbyQoKSA6IHRoaXMuZ2V0R3Vlc3RJbmZvJCgpKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5zZXRVc2VyUGFyYW1zKHVzZXIuaWQsIHVzZXIudXNlclR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQobmV3IFNjVXNlcih7IG1ldGFkYXRhOiB7fSB9KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LjQt9C80LXQvdC10L3QuNGPINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckluZm8kKG5ld0RhdGE6IFNjSVVzZXJPbkRhdGFVcGRhdGUgfCBTY0lDaGFuZ2VQYXNzd29yZCB8IFNjSVBob25lT25EYXRhQXBwcm92ZSk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCwgbmV3RGF0YSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0udXNlclByb2ZpbGVFZGl0ZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LdCz0L7RgdGC0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3RGF0YSDQlNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLdCz0L7RgdGC0Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RJbmZvJChuZXdEYXRhOiBQaWNrPFNjSVVzZXJPbkRhdGFVcGRhdGUsICdtZXRhZGF0YSc+KTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCwgbmV3RGF0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIg0JTQsNC90L3Ri9C1INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB3aXRoQXV0aCDQpNC70LDQsywg0YPQutCw0LfRi9Cy0LDRjtGJ0LjQuSwg0L3Rg9C20L3QviDQu9C4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDRgtGMINGC0L7QutC10L0g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2lnblVwJCh1c2VyOiBTY0lVc2VyT25EYXRhQ3JlYXRlIHwgU2NJU2ltcGxlVXNlck9uRGF0YUNyZWF0ZSwgd2l0aEF1dGg6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxJQXV0aFRva2VuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQXV0aFRva2VuPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL3JlZ2lzdGVyYCwgdXNlcikucGlwZShcbiAgICAgICAgICAgIHRhcCgodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaWduZWRVcCxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh3aXRoQXV0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXRBdXRoVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L7RgtC/0YDQsNCy0LrRgyDQutC+0LTQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPINC90LAg0Y3Qu9C10LrRgtGA0L7QvdC90YPRjiDQv9C+0YfRgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVtYWlsINCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZW5kUmVzZXRQYXNzd29yZENvZGUkKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2F1dGgvcGFzc3dvcmQvcmVzdG9yZWAsIHsgcGFyYW1zOiB7IGVtYWlsOiBlbWFpbCB9IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1Bhc3N3b3JkINCU0LDQvdC90YvQtSDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0LDRgNC+0LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXRQYXNzd29yZCQobmV3UGFzc3dvcmQ6IFNjSVBhc3N3b3JkT25EYXRhVXBkYXRlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgbmV3UGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC00LDQvdC90YvQtSB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQtdC60YPRidC10LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXJDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLm5leHQodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGdldFVzZXJJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEd1ZXN0SW5mbyQoKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyJC5uZXh0KHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0R3Vlc3RJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS9ndWVzdGApLnBpcGUobWFwKCh1c2VyKSA9PiBuZXcgU2NVc2VyKHVzZXIpKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './sc-user-providers';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3VzZXIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjLXVzZXItcHJvdmlkZXJzJztcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk';
4
+ import { distinctUntilChanged } from 'rxjs';
5
+ import { ScUserService } from '../services/sc-user.service';
6
+ /**
7
+ * Токен потока данных о текущем пользователе.
8
+ */
9
+ export const SC_USER_INFO = tuiCreateTokenFromFactory(() => inject(ScUserService)
10
+ .getUserChange$()
11
+ .pipe(distinctUntilChanged((previous, current) => !current.isGuest && previous.id === current.id), takeUntilDestroyed()));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUF1Qyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsQ0FDM0YsTUFBTSxDQUFDLGFBQWEsQ0FBQztLQUNoQixjQUFjLEVBQUU7S0FDaEIsSUFBSSxDQUNELG9CQUFvQixDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUMzRixrQkFBa0IsRUFBRSxDQUN2QixDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTY1VzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2MtdXNlci5zZXJ2aWNlJztcblxuLyoqXG4gKiDQotC+0LrQtdC9INC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICovXG5leHBvcnQgY29uc3QgU0NfVVNFUl9JTkZPOiBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPFNjVXNlcj4+ID0gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSgoKSA9PlxuICAgIGluamVjdChTY1VzZXJTZXJ2aWNlKVxuICAgICAgICAuZ2V0VXNlckNoYW5nZSQoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91cywgY3VycmVudCkgPT4gIWN1cnJlbnQuaXNHdWVzdCAmJiBwcmV2aW91cy5pZCA9PT0gY3VycmVudC5pZCksXG4gICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICAgICApXG4pO1xuIl19
@@ -5,9 +5,9 @@ import { WA_LOCAL_STORAGE } from '@ng-web-apis/common';
5
5
  import { filterByKey, StorageService, toValue, WA_STORAGE_EVENT } from '@ng-web-apis/storage';
6
6
  import { isMatch, isString } from 'lodash-es';
7
7
  import { combineLatest, filter, map, startWith, switchMap, tap } from 'rxjs';
8
- import { ScAuthService } from '../../auth/services/sc-auth.service';
9
8
  import { IS_BROWSER } from '../../providers';
10
9
  import { SC_CACHE_LIFETIME, SC_URLS } from '../../tokens';
10
+ import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
11
11
  import * as i0 from "@angular/core";
12
12
  /**
13
13
  * Сервис для работы с UTM-меткой страницы.
@@ -25,10 +25,6 @@ export class ScUTMService {
25
25
  * Сервис для выполнения HTTP-запросов.
26
26
  */
27
27
  this.http = inject(HttpClient);
28
- /**
29
- * Сервис аутентификации пользователей.
30
- */
31
- this.authService = inject(ScAuthService);
32
28
  /**
33
29
  * Сервис предоставляющий доступ к данным о маршруте.
34
30
  */
@@ -76,8 +72,7 @@ export class ScUTMService {
76
72
  };
77
73
  }));
78
74
  // При получении UTM-метки сохраняем ее в Storage и создаём запрос сохранения метки за клиентом.
79
- this.authService
80
- .getAuthChange()
75
+ inject(SC_USER_INFO)
81
76
  .pipe(switchMap(() => this.utmParamsFromRoute$), tap(() => {
82
77
  this.updateTimestamp();
83
78
  }), filter((utm) => !this.isExistingUTM(utm)), tap((utm) => {
@@ -159,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
159
154
  providedIn: 'root',
160
155
  }]
161
156
  }], ctorParameters: () => [] });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXRtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0bS9zZXJ2aWNlcy9zYy11dG0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHMUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQXVGckI7O09BRUc7SUFDSDtRQXpGQTs7V0FFRztRQUNjLFNBQUksR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBa0IsTUFBTSxD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QztJQUVEOztPQUVHO0lBQ0ssZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNMLENBQUM7K0dBbkxRLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBXQV9MT0NBTF9TVE9SQUdFIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQgeyBmaWx0ZXJCeUtleSwgU3RvcmFnZVNlcnZpY2UsIHRvVmFsdWUsIFdBX1NUT1JBR0VfRVZFTlQgfSBmcm9tICdAbmctd2ViLWFwaXMvc3RvcmFnZSc7XG5pbXBvcnQgeyBpc01hdGNoLCBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZy9zYy1pLXVybHMnO1xuaW1wb3J0IHsgSVNfQlJPV1NFUiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyBTQ19DQUNIRV9MSUZFVElNRSwgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBTY1VUTSwgU2NVVE1QYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSBVVE0t0LzQtdGC0LrQvtC5INGB0YLRgNCw0L3QuNGG0YsuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjVVRNU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDQstGL0L/QvtC70L3QtdC90LjRjyBIVFRQLdC30LDQv9GA0L7RgdC+0LIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogU2NBdXRoU2VydmljZSA9IGluamVjdChTY0F1dGhTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RidC40Lkg0LTQvtGB0YLRg9C/INC6INC00LDQvdC90YvQvCDQviDQvNCw0YDRiNGA0YPRgtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSB7QGxpbmsgU3RvcmFnZX0g0Lgg0LLQvdC10LTRgNC10L3QuNGOINC10LPQviDRh9C10YDQtdC3IERJLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgdC60YDQuNC/0YIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsiDQsdGA0LDRg9C30LXRgNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuID0gaW5qZWN0KElTX0JST1dTRVIpO1xuXG4gICAgLyoqXG4gICAgICog0KXRgNCw0L3QuNC70LjRidC1IHtAbGluayBTdG9yYWdlfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2U6IFN0b3JhZ2UgfCBudWxsID0gaW5qZWN0KFdBX0xPQ0FMX1NUT1JBR0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGA0LXQvNGPINC20LjQt9C90LggVVRNINC80LXRgtC60LggKG1zKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bUxpZmVUaW1lPzogbnVtYmVyID0gaW5qZWN0KFNDX0NBQ0hFX0xJRkVUSU1FKS51dG07XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0gVVRNLdC80LXRgtC60LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bSQ6IE9ic2VydmFibGU8U2NVVE0gfCBudWxsPiA9IGluamVjdChXQV9TVE9SQUdFX0VWRU5UKS5waXBlKFxuICAgICAgICBmaWx0ZXJCeUtleSgndXRtJyksXG4gICAgICAgIHRvVmFsdWUoKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0VVRNUGFyYW1zKCkpLFxuICAgICAgICBtYXAoKHV0bVN0cmluZykgPT4gKHV0bVN0cmluZyA9PT0gbnVsbCA/IHV0bVN0cmluZyA6IChKU09OLnBhcnNlKHV0bVN0cmluZykgYXMgU2NVVE0pKSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9IHRpbWVzdGFtcCDRgdC+0YXRgNCw0L3QtdC90LjRjyBVVE0g0LIge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXRtVGltZXN0YW1wJCA9IGluamVjdChXQV9TVE9SQUdFX0VWRU5UKS5waXBlKFxuICAgICAgICBmaWx0ZXJCeUtleSgndXRtVGltZXN0YW1wJyksXG4gICAgICAgIHRvVmFsdWUoKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0VVRNVGltZXN0YW1wKCkpLFxuICAgICAgICBtYXAoKHRpbWVzdGFtcCkgPT4gKGlzU3RyaW5nKHRpbWVzdGFtcCkgPyBOdW1iZXIodGltZXN0YW1wKSA6IHRpbWVzdGFtcCkpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSBVVE0t0LzQtdGC0LrQuCDRgdGC0YDQsNC90LjRhtGLINC40Lcg0L/QsNGA0LDQvNC10YLRgNC+0LIg0YDQvtGD0YLQuNC90LPQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bVBhcmFtc0Zyb21Sb3V0ZSQ6IE9ic2VydmFibGU8U2NVVE0+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IEJvb2xlYW4odGhpcy5zdG9yYWdlKSAmJiB0aGlzLmlzQnJvd3NlciAmJiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5hY3RpdmF0ZWRSb3V0ZSksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmFjdGl2YXRlZFJvdXRlKSxcbiAgICAgICAgbWFwKChyb3V0ZSkgPT4gcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgZmlsdGVyKChwYXJhbXMpOiBwYXJhbXMgaXMgU2NVVE1QYXJhbXMgPT4gcGFyYW1zWyd1dG1fc291cmNlJ10gJiYgcGFyYW1zWyd1dG1fbWVkaXVtJ10gJiYgcGFyYW1zWyd1dG1fY2FtcGFpZ24nXSksXG4gICAgICAgIG1hcCgocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNvdXJjZTogcGFyYW1zLnV0bV9zb3VyY2UsXG4gICAgICAgICAgICAgICAgbWVkaXVtOiBwYXJhbXMudXRtX21lZGl1bSxcbiAgICAgICAgICAgICAgICBjYW1wYWlnbjogcGFyYW1zLnV0bV9jYW1wYWlnbixcbiAgICAgICAgICAgICAgICBjb250ZW50OiBwYXJhbXMudXRtX2NvbnRlbnQsXG4gICAgICAgICAgICAgICAgdGVybTogcGFyYW1zLnV0bV90ZXJtLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1VUTVNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8g0J/RgNC4INC/0L7Qu9GD0YfQtdC90LjQuCBVVE0t0LzQtdGC0LrQuCDRgdC+0YXRgNCw0L3Rj9C10Lwg0LXQtSDQsiBTdG9yYWdlINC4INGB0L7Qt9C00LDRkdC8INC30LDQv9GA0L7RgSDRgdC+0YXRgNCw0L3QtdC90LjRjyDQvNC10YLQutC4INC30LAg0LrQu9C40LXQvdGC0L7QvC5cbiAgICAgICAgdGhpcy5hdXRoU2VydmljZVxuICAgICAgICAgICAgLmdldEF1dGhDaGFuZ2UoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudXRtUGFyYW1zRnJvbVJvdXRlJCksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lc3RhbXAoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHV0bSkgPT4gIXRoaXMuaXNFeGlzdGluZ1VUTSh1dG0pKSxcbiAgICAgICAgICAgICAgICB0YXAoKHV0bSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFVUTSh1dG0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodXRtKSA9PiB0aGlzLnNhdmVVVE0kKHV0bSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHRgtGA0L7Rh9C90L7QtSDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtSDQv9Cw0YDQsNC80LXRgtGA0L7QsiBVVE0g0LjQtyB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRVVE1QYXJhbXMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMuc3RvcmFnZSkgJiYgdGhpcy5pc0Jyb3dzZXIgPyB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3V0bScpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGC0YDQvtGH0L3QvtC1INC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC1IHRpbWVzdGFtcCDRgdC+0YXRgNCw0L3QtdC90LjRjyBVVE0g0LjQtyB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRVVE1UaW1lc3RhbXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMuc3RvcmFnZSkgJiYgdGhpcy5pc0Jyb3dzZXIgPyB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3V0bVRpbWVzdGFtcCcpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBVVE0t0LzQtdGC0LrRgyDRgdGC0YDQsNC90LjRhtGLINCyIHtAbGluayBTdG9yYWdlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1dG0g0JTQsNC90L3Ri9C1INC+IFVUTS3QvNC10YLQutC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0VVRNKHV0bTogU2NVVE0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZSAmJiB0aGlzLmlzQnJvd3NlciAmJiAhdGhpcy5pc0V4aXN0aW5nVVRNKHV0bSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndXRtJywgSlNPTi5zdHJpbmdpZnkodXRtKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiBVVE0t0LzQtdGC0LrRgyDRgdGC0YDQsNC90LjRhtGLINC40Lcge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVVVE0oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2UgJiYgdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgndXRtJyk7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ3V0bVRpbWVzdGFtcCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC00LDQvdC90YvRhSDQviBVVE0t0LzQtdGC0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VVRNJCgpOiBPYnNlcnZhYmxlPFNjVVRNIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdCh7XG4gICAgICAgICAgICB1dG06IHRoaXMudXRtJCxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy51dG1UaW1lc3RhbXAkLFxuICAgICAgICB9KS5waXBlKG1hcCgoeyB1dG0sIHRpbWVzdGFtcCB9KSA9PiAoIXRoaXMudXRtTGlmZVRpbWUgfHwgKHRpbWVzdGFtcCAmJiB0aW1lc3RhbXAgKyB0aGlzLnV0bUxpZmVUaW1lID4gRGF0ZS5ub3coKSkgPyB1dG0gOiBudWxsKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0YXRgNCw0L3QtdC90LjRjyB7QGxpbmsgU2NVVE19LlxuICAgICAqXG4gICAgICogQHBhcmFtIHV0bSDQlNCw0L3QvdGL0LUg0L4gVVRNLdC80LXRgtC60LUuXG4gICAgICovXG4gICAgcHVibGljIHNhdmVVVE0kKHV0bTogU2NVVE0pOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91dG1gLCB1dG0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiwg0YHRg9GJ0LXRgdGC0LLRg9C10YIg0LvQuCDRg9C20LUg0YHQvtGF0YDQsNC90LXQvdC90LDRjyBVVE0t0LzQtdGC0LrQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1dG0g0JTQsNC90L3Ri9C1INC+IFVUTS3QvNC10YLQutC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNFeGlzdGluZ1VUTSh1dG06IFNjVVRNKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nVVRNID0gdGhpcy5nZXRVVE1QYXJhbXMoKTtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nVVRNID8gaXNNYXRjaCh1dG0sIEpTT04ucGFyc2UoZXhpc3RpbmdVVE0pIGFzIFNjVVRNKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiB0aW1lc3RhbXAg0YHQvtGF0YDQsNC90LXQvdC40Y8gVVRNINCyIHtAbGluayBTdG9yYWdlfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVzdGFtcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0VVRNUGFyYW1zKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndXRtVGltZXN0YW1wJywgSlNPTi5zdHJpbmdpZnkoRGF0ZS5ub3coKSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXRtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0bS9zZXJ2aWNlcy9zYy11dG0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFHbkU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQWtGckI7O09BRUc7SUFDSDtRQXBGQTs7V0FFRztRQUNjLFNBQUksR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ2MsbUJBQWMsR0FBRyxNQUFNLENB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WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0wsQ0FBQzsrR0E3S1EsWUFBWTttSEFBWixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFdBX0xPQ0FMX1NUT1JBR0UgfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7IGZpbHRlckJ5S2V5LCBTdG9yYWdlU2VydmljZSwgdG9WYWx1ZSwgV0FfU1RPUkFHRV9FVkVOVCB9IGZyb20gJ0BuZy13ZWItYXBpcy9zdG9yYWdlJztcbmltcG9ydCB7IGlzTWF0Y2gsIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjSVVybHMgfSBmcm9tICcuLi8uLi9jb25maWcvc2MtaS11cmxzJztcbmltcG9ydCB7IElTX0JST1dTRVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMnO1xuaW1wb3J0IHsgU0NfQ0FDSEVfTElGRVRJTUUsIFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgU0NfVVNFUl9JTkZPIH0gZnJvbSAnLi4vLi4vdXNlci90b2tlbnMvc2MtdXNlci1wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2NVVE0sIFNjVVRNUGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVVRNLdC80LXRgtC60L7QuSDRgdGC0YDQsNC90LjRhtGLLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VUTVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyA9IGluamVjdChTQ19VUkxTKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0LLRi9C/0L7Qu9C90LXQvdC40Y8gSFRUUC3Qt9Cw0L/RgNC+0YHQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RidC40Lkg0LTQvtGB0YLRg9C/INC6INC00LDQvdC90YvQvCDQviDQvNCw0YDRiNGA0YPRgtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSB7QGxpbmsgU3RvcmFnZX0g0Lgg0LLQvdC10LTRgNC10L3QuNGOINC10LPQviDRh9C10YDQtdC3IERJLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgdC60YDQuNC/0YIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsiDQsdGA0LDRg9C30LXRgNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuID0gaW5qZWN0KElTX0JST1dTRVIpO1xuXG4gICAgLyoqXG4gICAgICog0KXRgNCw0L3QuNC70LjRidC1IHtAbGluayBTdG9yYWdlfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2U6IFN0b3JhZ2UgfCBudWxsID0gaW5qZWN0KFdBX0xPQ0FMX1NUT1JBR0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGA0LXQvNGPINC20LjQt9C90LggVVRNINC80LXRgtC60LggKG1zKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bUxpZmVUaW1lPzogbnVtYmVyID0gaW5qZWN0KFNDX0NBQ0hFX0xJRkVUSU1FKS51dG07XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0gVVRNLdC80LXRgtC60LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bSQ6IE9ic2VydmFibGU8U2NVVE0gfCBudWxsPiA9IGluamVjdChXQV9TVE9SQUdFX0VWRU5UKS5waXBlKFxuICAgICAgICBmaWx0ZXJCeUtleSgndXRtJyksXG4gICAgICAgIHRvVmFsdWUoKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0VVRNUGFyYW1zKCkpLFxuICAgICAgICBtYXAoKHV0bVN0cmluZykgPT4gKHV0bVN0cmluZyA9PT0gbnVsbCA/IHV0bVN0cmluZyA6IChKU09OLnBhcnNlKHV0bVN0cmluZykgYXMgU2NVVE0pKSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9IHRpbWVzdGFtcCDRgdC+0YXRgNCw0L3QtdC90LjRjyBVVE0g0LIge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXRtVGltZXN0YW1wJCA9IGluamVjdChXQV9TVE9SQUdFX0VWRU5UKS5waXBlKFxuICAgICAgICBmaWx0ZXJCeUtleSgndXRtVGltZXN0YW1wJyksXG4gICAgICAgIHRvVmFsdWUoKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0VVRNVGltZXN0YW1wKCkpLFxuICAgICAgICBtYXAoKHRpbWVzdGFtcCkgPT4gKGlzU3RyaW5nKHRpbWVzdGFtcCkgPyBOdW1iZXIodGltZXN0YW1wKSA6IHRpbWVzdGFtcCkpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSBVVE0t0LzQtdGC0LrQuCDRgdGC0YDQsNC90LjRhtGLINC40Lcg0L/QsNGA0LDQvNC10YLRgNC+0LIg0YDQvtGD0YLQuNC90LPQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bVBhcmFtc0Zyb21Sb3V0ZSQ6IE9ic2VydmFibGU8U2NVVE0+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IEJvb2xlYW4odGhpcy5zdG9yYWdlKSAmJiB0aGlzLmlzQnJvd3NlciAmJiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5hY3RpdmF0ZWRSb3V0ZSksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmFjdGl2YXRlZFJvdXRlKSxcbiAgICAgICAgbWFwKChyb3V0ZSkgPT4gcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgZmlsdGVyKChwYXJhbXMpOiBwYXJhbXMgaXMgU2NVVE1QYXJhbXMgPT4gcGFyYW1zWyd1dG1fc291cmNlJ10gJiYgcGFyYW1zWyd1dG1fbWVkaXVtJ10gJiYgcGFyYW1zWyd1dG1fY2FtcGFpZ24nXSksXG4gICAgICAgIG1hcCgocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNvdXJjZTogcGFyYW1zLnV0bV9zb3VyY2UsXG4gICAgICAgICAgICAgICAgbWVkaXVtOiBwYXJhbXMudXRtX21lZGl1bSxcbiAgICAgICAgICAgICAgICBjYW1wYWlnbjogcGFyYW1zLnV0bV9jYW1wYWlnbixcbiAgICAgICAgICAgICAgICBjb250ZW50OiBwYXJhbXMudXRtX2NvbnRlbnQsXG4gICAgICAgICAgICAgICAgdGVybTogcGFyYW1zLnV0bV90ZXJtLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1VUTVNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8g0J/RgNC4INC/0L7Qu9GD0YfQtdC90LjQuCBVVE0t0LzQtdGC0LrQuCDRgdC+0YXRgNCw0L3Rj9C10Lwg0LXQtSDQsiBTdG9yYWdlINC4INGB0L7Qt9C00LDRkdC8INC30LDQv9GA0L7RgSDRgdC+0YXRgNCw0L3QtdC90LjRjyDQvNC10YLQutC4INC30LAg0LrQu9C40LXQvdGC0L7QvC5cbiAgICAgICAgaW5qZWN0KFNDX1VTRVJfSU5GTylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnV0bVBhcmFtc0Zyb21Sb3V0ZSQpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZXN0YW1wKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh1dG0pID0+ICF0aGlzLmlzRXhpc3RpbmdVVE0odXRtKSksXG4gICAgICAgICAgICAgICAgdGFwKCh1dG0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRVVE0odXRtKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHV0bSkgPT4gdGhpcy5zYXZlVVRNJCh1dG0pKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0YLRgNC+0YfQvdC+0LUg0L/RgNC10LTRgdGC0LDQstC70LXQvdC40LUg0L/QsNGA0LDQvNC10YLRgNC+0LIgVVRNINC40Lcge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VVRNUGFyYW1zKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnN0b3JhZ2UpICYmIHRoaXMuaXNCcm93c2VyID8gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1dG0nKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHRgtGA0L7Rh9C90L7QtSDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtSB0aW1lc3RhbXAg0YHQvtGF0YDQsNC90LXQvdC40Y8gVVRNINC40Lcge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VVRNVGltZXN0YW1wKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnN0b3JhZ2UpICYmIHRoaXMuaXNCcm93c2VyID8gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1dG1UaW1lc3RhbXAnKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgVVRNLdC80LXRgtC60YMg0YHRgtGA0LDQvdC40YbRiyDQsiB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXRtINCU0LDQvdC90YvQtSDQviBVVE0t0LzQtdGC0LrQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFVUTSh1dG06IFNjVVRNKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2UgJiYgdGhpcy5pc0Jyb3dzZXIgJiYgIXRoaXMuaXNFeGlzdGluZ1VUTSh1dG0pKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ3V0bScsIEpTT04uc3RyaW5naWZ5KHV0bSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIgVVRNLdC80LXRgtC60YMg0YHRgtGA0LDQvdC40YbRiyDQuNC3IHtAbGluayBTdG9yYWdlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlVVRNKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdG9yYWdlICYmIHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ3V0bScpO1xuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCd1dG1UaW1lc3RhbXAnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQtNCw0L3QvdGL0YUg0L4gVVRNLdC80LXRgtC60LUuXG4gICAgICovXG4gICAgcHVibGljIGdldFVUTSQoKTogT2JzZXJ2YWJsZTxTY1VUTSB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICAgICAgdXRtOiB0aGlzLnV0bSQsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IHRoaXMudXRtVGltZXN0YW1wJCxcbiAgICAgICAgfSkucGlwZShtYXAoKHsgdXRtLCB0aW1lc3RhbXAgfSkgPT4gKCF0aGlzLnV0bUxpZmVUaW1lIHx8ICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wICsgdGhpcy51dG1MaWZlVGltZSA+IERhdGUubm93KCkpID8gdXRtIDogbnVsbCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtGF0YDQsNC90LXQvdC40Y8ge0BsaW5rIFNjVVRNfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1dG0g0JTQsNC90L3Ri9C1INC+IFVUTS3QvNC10YLQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBzYXZlVVRNJCh1dG06IFNjVVRNKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vdXRtYCwgdXRtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIsINGB0YPRidC10YHRgtCy0YPQtdGCINC70Lgg0YPQttC1INGB0L7RhdGA0LDQvdC10L3QvdCw0Y8gVVRNLdC80LXRgtC60LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXRtINCU0LDQvdC90YvQtSDQviBVVE0t0LzQtdGC0LrQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGlzRXhpc3RpbmdVVE0odXRtOiBTY1VUTSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ1VUTSA9IHRoaXMuZ2V0VVRNUGFyYW1zKCk7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1VUTSA/IGlzTWF0Y2godXRtLCBKU09OLnBhcnNlKGV4aXN0aW5nVVRNKSBhcyBTY1VUTSkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIgdGltZXN0YW1wINGB0L7RhdGA0LDQvdC10L3QuNGPIFVUTSDQsiB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVUaW1lc3RhbXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdldFVUTVBhcmFtcygpKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ3V0bVRpbWVzdGFtcCcsIEpTT04uc3RyaW5naWZ5KERhdGUubm93KCkpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,33 +1,31 @@
1
- import { Inject, Injectable } from '@angular/core';
1
+ import { inject, Injectable } from '@angular/core';
2
2
  import { tuiIsPresent } from '@taiga-ui/cdk';
3
3
  import { BehaviorSubject, distinctUntilChanged, filter, map, shareReplay, skip, switchMap, tap } from 'rxjs';
4
4
  import { IS_RUNNING_ON_TERMINAL } from '../../providers/terminal.providers';
5
5
  import { ScReferenceName } from '../../references/enums/sc-reference-name';
6
+ import { ScReferencesService } from '../../references/services/sc-references.service';
7
+ import { SC_USER_INFO } from '../../user';
6
8
  import * as i0 from "@angular/core";
7
- import * as i1 from "../../user";
8
- import * as i2 from "../../ui";
9
- import * as i3 from "../../references/services/sc-references.service";
10
9
  /**
11
10
  * Сервис для работы со складами.
12
11
  */
13
12
  export class ScWarehouseService {
14
13
  /**
15
14
  * Инициализирует экземпляр класса {@link ScWarehouseService}.
16
- *
17
- * @param userService Сервис информации о пользователе.
18
- * @param uiService Сервис для работы с UI.
19
- * @param referencesService Сервис справочников.
20
- * @param terminal Токен с данными о терминале.
21
15
  */
22
- constructor(userService, uiService, referencesService, terminal) {
23
- this.userService = userService;
24
- this.uiService = uiService;
25
- this.referencesService = referencesService;
26
- this.terminal = terminal;
16
+ constructor() {
17
+ /**
18
+ * {@link Observable} данных о текущем пользователе.
19
+ */
20
+ this.user$ = inject(SC_USER_INFO);
21
+ /**
22
+ * {@link ScITerminalProvider} данных о терминале.
23
+ */
24
+ this.terminal = inject(IS_RUNNING_ON_TERMINAL);
27
25
  /**
28
26
  * Список складов.
29
27
  */
30
- this.warehouses$ = this.referencesService.getReference$(ScReferenceName.warehouse).pipe(shareReplay(1));
28
+ this.warehouses$ = inject(ScReferencesService).getReference$(ScReferenceName.warehouse).pipe(shareReplay(1));
31
29
  /**
32
30
  * {@link BehaviorSubject} идентификатора выбранного склада.
33
31
  */
@@ -39,7 +37,7 @@ export class ScWarehouseService {
39
37
  */
40
38
  initSubscriptionOnUser() {
41
39
  // Observable данных для обработки сигналов изменения пользователя.
42
- const data$ = this.warehouses$.pipe(switchMap((warehouses) => this.userService.getUserChange$().pipe(map((user) => ({
40
+ const data$ = this.warehouses$.pipe(switchMap((warehouses) => this.user$.pipe(map((user) => ({
43
41
  warehouses: warehouses,
44
42
  selectedIdMetadata: user.metadata.selectedWarehouseId,
45
43
  city: user.city,
@@ -109,7 +107,7 @@ export class ScWarehouseService {
109
107
  getCurrentWarehouseIdSelect() {
110
108
  return this.warehouseIdSelectSubject.getValue();
111
109
  }
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScWarehouseService, deps: [{ token: i1.ScUserService }, { token: i2.ScUIService }, { token: i3.ScReferencesService }, { token: IS_RUNNING_ON_TERMINAL }], target: i0.ɵɵFactoryTarget.Injectable }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScWarehouseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
113
111
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScWarehouseService, providedIn: 'root' }); }
114
112
  }
115
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScWarehouseService, decorators: [{
@@ -117,8 +115,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
117
115
  args: [{
118
116
  providedIn: 'root',
119
117
  }]
120
- }], ctorParameters: () => [{ type: i1.ScUserService }, { type: i2.ScUIService }, { type: i3.ScReferencesService }, { type: undefined, decorators: [{
121
- type: Inject,
122
- args: [IS_RUNNING_ON_TERMINAL]
123
- }] }] });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtd2FyZWhvdXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dhcmVob3VzZS9zZXJ2aWNlcy9zYy13YXJlaG91c2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHekgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7OztBQU0zRTs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFXM0I7Ozs7Ozs7T0FPRztJQUNILFlBQ3FCLFdBQTBCLEVBQzFCLFNBQXNCLEVBQ3RCLGlCQUFzQyxFQUNOLFFBQTZCO1FBSDdELGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQUNOLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBdEJsRjs7V0FFRztRQUNLLGdCQUFXLEdBQStCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQWlCLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdko7O1dBRUc7UUFDSyw2QkFBd0IsR0FBbUMsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBZ0J4RyxJQUFJLENBQUMsc0JBQXNCLEVBQUUs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QUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQ3ZCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSwyQkFBMkI7UUFDOUIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEQsQ0FBQzsrR0EzSVEsa0JBQWtCLDZHQXVCZixzQkFBc0I7bUhBdkJ6QixrQkFBa0IsY0FGZixNQUFNOzs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkF3QlEsTUFBTTsyQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0lUZXJtaW5hbFByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2ludGVyZmFjZXMvc2MtaS10ZXJtaW5hbC1wcm92aWRlcic7XG5pbXBvcnQgeyBJU19SVU5OSU5HX09OX1RFUk1JTkFMIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3Rlcm1pbmFsLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY1JlZmVyZW5jZU5hbWUgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2VzL2VudW1zL3NjLXJlZmVyZW5jZS1uYW1lJztcbmltcG9ydCB7IFNjUmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2VzL3NlcnZpY2VzL3NjLXJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBTY1VJU2VydmljZSB9IGZyb20gJy4uLy4uL3VpJztcbmltcG9ydCB7IFNjVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZSB9IGZyb20gJy4uL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDRgdC60LvQsNC00LDQvNC4LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1dhcmVob3VzZVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC60LvQsNC00L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHdhcmVob3VzZXMkOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZVtdPiA9IHRoaXMucmVmZXJlbmNlc1NlcnZpY2UuZ2V0UmVmZXJlbmNlJDxTY0lXYXJlaG91c2VbXT4oU2NSZWZlcmVuY2VOYW1lLndhcmVob3VzZSkucGlwZShzaGFyZVJlcGxheSgxKSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNCwINCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHdhcmVob3VzZUlkU2VsZWN0U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NXYXJlaG91c2VTZXJ2aWNlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyU2VydmljZSDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqIEBwYXJhbSB1aVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVUkuXG4gICAgICogQHBhcmFtIHJlZmVyZW5jZXNTZXJ2aWNlINCh0LXRgNCy0LjRgSDRgdC/0YDQsNCy0L7Rh9C90LjQutC+0LIuXG4gICAgICogQHBhcmFtIHRlcm1pbmFsINCi0L7QutC10L0g0YEg0LTQsNC90L3Ri9C80Lgg0L4g0YLQtdGA0LzQuNC90LDQu9C1LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyU2VydmljZTogU2NVc2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1aVNlcnZpY2U6IFNjVUlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlZmVyZW5jZXNTZXJ2aWNlOiBTY1JlZmVyZW5jZXNTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KElTX1JVTk5JTkdfT05fVEVSTUlOQUwpIHByaXZhdGUgcmVhZG9ubHkgdGVybWluYWw6IFNjSVRlcm1pbmFsUHJvdmlkZXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9uT25Vc2VyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDQv9C+0LTQv9C40YHQutC4INC90LAg0LjQt9C80LXQvdC10L3QuNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25PblVzZXIoKTogdm9pZCB7XG4gICAgICAgIC8vIE9ic2VydmFibGUg0LTQsNC90L3Ri9GFINC00LvRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQuNCz0L3QsNC70L7QsiDQuNC30LzQtdC90LXQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAgICBjb25zdCBkYXRhJCA9IHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgod2FyZWhvdXNlcykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJDaGFuZ2UkKCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKCh1c2VyKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgd2FyZWhvdXNlczogd2FyZWhvdXNlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSWRNZXRhZGF0YTogdXNlci5tZXRhZGF0YS5zZWxlY3RlZFdhcmVob3VzZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2l0eTogdXNlci5jaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uOiB1c2VyLnJlZ2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB1c2VyLmlkLFxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8g0J/RgNC4INCy0YXQvtC00LUg0Lgg0LLRi9GF0L7QtNC1INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIElkINGB0LrQu9Cw0LTQsCwg0LfQsNC/0LjRgdCw0L3QvdGL0Lkg0LIgbWV0YWRhdGEsINC70LjQsdC+IElkINGB0LrQu9Cw0LTQsCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0YDQtdCz0LjQvtC90YMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLCDQu9C40LHQviBJZCDRgdC60LvQsNC00LAg0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAgICBkYXRhJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tbmVnYXRpb24taW4tZXF1YWxpdHktY2hlY2tcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+ICFwcmV2aW91cy5pZCA9PT0gIWN1cnJlbnQuaWQpLFxuICAgICAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gLyoqIGRhdGEuc2VsZWN0ZWRJZE1ldGFkYXRhIHx8ICovIGRhdGEud2FyZWhvdXNlcy5maW5kKCh3YXJlaG91c2UpID0+IGRhdGEucmVnaW9uICYmIHdhcmVob3VzZS5yZWdpb25zPy5pbmNsdWRlcyhkYXRhLnJlZ2lvbikpPy5pZCA/PyBudWxsKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHNlbGVjdGVkSWQpID0+IHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0LnZhbHVlICE9PSBzZWxlY3RlZElkKSxcbiAgICAgICAgICAgICAgICB0YXAoKHNlbGVjdGVkSWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QubmV4dChzZWxlY3RlZElkKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgIC8vINCf0YDQuCDRgdC80LXQvdC1INGA0LXQs9C40L7QvdCwINGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCyIG1ldGFkYXRhIGlkINGB0LrQu9Cw0LTQsCDQstGL0LHRgNCw0L3QvdC+0LPQviDRgNC10LPQuNC+0L3QsCwg0LvQuNCx0L4g0YHRgtCw0LLQuNGCIElkINGB0LrQu9Cw0LTQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LXRgdC70Lgg0YDQtdCz0LjQvtC9INCx0YvQuyDRg9C00LDQu9GR0L0uXG4gICAgICAgIGRhdGEkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1uZWdhdGlvbi1pbi1lcXVhbGl0eS1jaGVja1xuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91cywgY3VycmVudCkgPT4gIXByZXZpb3VzLmlkICE9PSAhY3VycmVudC5pZCB8fCBwcmV2aW91cy5jaXR5ID09PSBjdXJyZW50LmNpdHkpLFxuICAgICAgICAgICAgICAgIHNraXAoMSksIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkg0LLRgdC10LPQtNCwINCy0YvQtNCw0ZHRgiDQv9C10YDQstC+0LUg0LfQvdCw0YfQtdC90LjQtSwg0L/QvtGN0YLQvtC80YMg0L/RgNC+0L/Rg9GB0LrQsNC10Lwg0LXQs9C+INC4INGA0LXQsNCz0LjRgNGD0LXQvCDRgtC+0LvRjNC60L4g0L3QsCDQuNC30LzQtdC90LXQvdC40LUuXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nLHNvbmFyanMvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gZGF0YS53YXJlaG91c2VzLmZpbmQoKHdhcmVob3VzZSkgPT4gZGF0YS5yZWdpb24gJiYgd2FyZWhvdXNlLnJlZ2lvbnM/LmluY2x1ZGVzKGRhdGEucmVnaW9uKSk/LmlkIHx8IGRhdGEud2FyZWhvdXNlcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzTWFpbik/LmlkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHNlbGVjdGVkSWQpID0+IHNlbGVjdGVkSWQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC52YWx1ZSAhPT0gc2VsZWN0ZWRJZCksXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICBtYXAoKHNlbGVjdGVkSWQpID0+IHNlbGVjdGVkSWQhKSxcbiAgICAgICAgICAgICAgICB0YXAoKHNlbGVjdGVkSWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRXYXJlaG91c2VJZFNlbGVjdENoYW5nZShzZWxlY3RlZElkKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsCDQsiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3YXJlaG91c2VJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHNldFdhcmVob3VzZUlkU2VsZWN0Q2hhbmdlKHdhcmVob3VzZUlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QubmV4dCh3YXJlaG91c2VJZCk7XG5cbiAgICAgICAgLy8gdGhpcy51aVNlcnZpY2Uuc2V0U2VsZWN0ZWRXYXJlaG91c2VJZCh3YXJlaG91c2VJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0V2FyZWhvdXNlU2VsZWN0Q2hhbmdlJCgpOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy53YXJlaG91c2VzJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh3YXJlaG91c2VzKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0LnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoaWQpID0+IHdhcmVob3VzZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpID8/IHdhcmVob3VzZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pc01haW4pKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh3YXJlaG91c2UpID0+IHdhcmVob3VzZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYXAoKHdhcmVob3VzZSkgPT4gd2FyZWhvdXNlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC60LvQsNC00LAg0LTQu9GPINC00L7RgdGC0LDQstC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldERlbGl2ZXJ5V2FyZWhvdXNlJCgpOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy53YXJlaG91c2VzJC5waXBlKFxuICAgICAgICAgICAgbWFwKCh3YXJlaG91c2VzKSA9PiB3YXJlaG91c2VzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNNYWluKSksXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC60LvQsNC00LAg0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINGC0L7Qs9C+LCDQs9C00LUg0LfQsNC/0YPRidC10L3QviDQv9GA0LjQu9C+0LbQtdC90LjQtS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zINCV0YHQu9C4INC/0YDQuNC70L7QttC10L3QuNC1INC30LDQv9GD0YnQtdC90L4g0L3QsCDRgtC10YDQvNC40L3QsNC70LUg0Lgg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHQutC70LDQtNCwINC/0YDQuNCy0Y/Qt9Cw0L3QvdC+0LPQviDQuiDRgtC10YDQvNC40L3QsNC70YMg0L3QtSBudWxsLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0LrQu9Cw0LQg0YLQtdGA0LzQuNC90LDQu9CwLFxuICAgICAqINCy0L4g0LLRgdC10YUg0L7RgdGC0LDQu9GM0L3Ri9GFINGB0LvRg9GH0LDRj9GFINCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC+0YHQvdC+0LLQvdC+0Lkg0YHQutC70LDQtC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0YWxvZ1dhcmVob3VzZUNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY0lXYXJlaG91c2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIG1hcCgod2FyZWhvdXNlcykgPT4gd2FyZWhvdXNlcy5maW5kKCh3KSA9PiB3LmlkID09PSB0aGlzLnRlcm1pbmFsLndhcmVob3VzZUlkKSA/PyB3YXJlaG91c2VzLmZpbmQoKHcpID0+IHcuaXNNYWluKSksXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0YHQutC70LDQtNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGdldFdhcmVob3VzZXMkKCk6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDdXJyZW50V2FyZWhvdXNlSWRTZWxlY3QoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIH1cbn1cbiJdfQ==
118
+ }], ctorParameters: () => [] });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtd2FyZWhvdXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dhcmVob3VzZS9zZXJ2aWNlcy9zYy13YXJlaG91c2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHekgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxZQUFZLENBQUM7O0FBR2xEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQXFCM0I7O09BRUc7SUFDSDtRQXZCQTs7V0FFRztRQUNjLFVBQUssR0FBdUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ2MsYUFBUSxHQUF3QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVoRjs7V0FFRztRQUNLLGdCQUFXLEdBQStCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGFBQWEsQ0FBaUIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1Sjs7V0FFRztRQUNLLDZCQUF3QixHQUFtQyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENB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QUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQ3ZCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSwyQkFBMkI7UUFDOUIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEQsQ0FBQzsrR0EzSVEsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGZixNQUFNOzs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc2tpcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJVGVybWluYWxQcm92aWRlciB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pbnRlcmZhY2VzL3NjLWktdGVybWluYWwtcHJvdmlkZXInO1xuaW1wb3J0IHsgSVNfUlVOTklOR19PTl9URVJNSU5BTCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy90ZXJtaW5hbC5wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2NSZWZlcmVuY2VOYW1lIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9lbnVtcy9zYy1yZWZlcmVuY2UtbmFtZSc7XG5pbXBvcnQgeyBTY1JlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9zZXJ2aWNlcy9zYy1yZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0NfVVNFUl9JTkZPLCBTY1VzZXIgfSBmcm9tICcuLi8uLi91c2VyJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZSB9IGZyb20gJy4uL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDRgdC60LvQsNC00LDQvNC4LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1dhcmVob3VzZVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQtNCw0L3QvdGL0YUg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8U2NVc2VyPiA9IGluamVjdChTQ19VU0VSX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFNjSVRlcm1pbmFsUHJvdmlkZXJ9INC00LDQvdC90YvRhSDQviDRgtC10YDQvNC40L3QsNC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtaW5hbDogU2NJVGVybWluYWxQcm92aWRlciA9IGluamVjdChJU19SVU5OSU5HX09OX1RFUk1JTkFMKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC60LvQsNC00L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHdhcmVob3VzZXMkOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZVtdPiA9IGluamVjdChTY1JlZmVyZW5jZXNTZXJ2aWNlKS5nZXRSZWZlcmVuY2UkPFNjSVdhcmVob3VzZVtdPihTY1JlZmVyZW5jZU5hbWUud2FyZWhvdXNlKS5waXBlKHNoYXJlUmVwbGF5KDEpKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBCZWhhdmlvclN1YmplY3R9INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgd2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1dhcmVob3VzZVNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9uT25Vc2VyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDQv9C+0LTQv9C40YHQutC4INC90LAg0LjQt9C80LXQvdC10L3QuNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25PblVzZXIoKTogdm9pZCB7XG4gICAgICAgIC8vIE9ic2VydmFibGUg0LTQsNC90L3Ri9GFINC00LvRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQuNCz0L3QsNC70L7QsiDQuNC30LzQtdC90LXQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAgICBjb25zdCBkYXRhJCA9IHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgod2FyZWhvdXNlcykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodXNlcikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcmVob3VzZXM6IHdhcmVob3VzZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZElkTWV0YWRhdGE6IHVzZXIubWV0YWRhdGEuc2VsZWN0ZWRXYXJlaG91c2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHVzZXIuY2l0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbjogdXNlci5yZWdpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdXNlci5pZCxcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vINCf0YDQuCDQstGF0L7QtNC1INC4INCy0YvRhdC+0LTQtSDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBJZCDRgdC60LvQsNC00LAsINC30LDQv9C40YHQsNC90L3Ri9C5INCyIG1ldGFkYXRhLCDQu9C40LHQviBJZCDRgdC60LvQsNC00LAg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INGA0LXQs9C40L7QvdGDINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjywg0LvQuNCx0L4gSWQg0YHQutC70LDQtNCwINGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgICAgZGF0YSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLW5lZ2F0aW9uLWluLWVxdWFsaXR5LWNoZWNrXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PiAhcHJldmlvdXMuaWQgPT09ICFjdXJyZW50LmlkKSxcbiAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IC8qKiBkYXRhLnNlbGVjdGVkSWRNZXRhZGF0YSB8fCAqLyBkYXRhLndhcmVob3VzZXMuZmluZCgod2FyZWhvdXNlKSA9PiBkYXRhLnJlZ2lvbiAmJiB3YXJlaG91c2UucmVnaW9ucz8uaW5jbHVkZXMoZGF0YS5yZWdpb24pKT8uaWQgPz8gbnVsbCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWxlY3RlZElkKSA9PiB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC52YWx1ZSAhPT0gc2VsZWN0ZWRJZCksXG4gICAgICAgICAgICAgICAgdGFwKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0Lm5leHQoc2VsZWN0ZWRJZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyDQn9GA0Lgg0YHQvNC10L3QtSDRgNC10LPQuNC+0L3QsCDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQsiBtZXRhZGF0YSBpZCDRgdC60LvQsNC00LAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YDQtdCz0LjQvtC90LAsINC70LjQsdC+INGB0YLQsNCy0LjRgiBJZCDRgdC60LvQsNC00LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINC10YHQu9C4INGA0LXQs9C40L7QvSDQsdGL0Lsg0YPQtNCw0LvRkdC9LlxuICAgICAgICBkYXRhJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tbmVnYXRpb24taW4tZXF1YWxpdHktY2hlY2tcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+ICFwcmV2aW91cy5pZCAhPT0gIWN1cnJlbnQuaWQgfHwgcHJldmlvdXMuY2l0eSA9PT0gY3VycmVudC5jaXR5KSxcbiAgICAgICAgICAgICAgICBza2lwKDEpLCAvLyBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpINCy0YHQtdCz0LTQsCDQstGL0LTQsNGR0YIg0L/QtdGA0LLQvtC1INC30L3QsNGH0LXQvdC40LUsINC/0L7RjdGC0L7QvNGDINC/0YDQvtC/0YPRgdC60LDQtdC8INC10LPQviDQuCDRgNC10LDQs9C40YDRg9C10Lwg0YLQvtC70YzQutC+INC90LAg0LjQt9C80LXQvdC10L3QuNC1LlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZyxzb25hcmpzL3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEud2FyZWhvdXNlcy5maW5kKCh3YXJlaG91c2UpID0+IGRhdGEucmVnaW9uICYmIHdhcmVob3VzZS5yZWdpb25zPy5pbmNsdWRlcyhkYXRhLnJlZ2lvbikpPy5pZCB8fCBkYXRhLndhcmVob3VzZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pc01haW4pPy5pZCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWxlY3RlZElkKSA9PiBzZWxlY3RlZElkICE9PSB1bmRlZmluZWQgJiYgdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QudmFsdWUgIT09IHNlbGVjdGVkSWQpLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgICAgICAgbWFwKChzZWxlY3RlZElkKSA9PiBzZWxlY3RlZElkISksXG4gICAgICAgICAgICAgICAgdGFwKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0V2FyZWhvdXNlSWRTZWxlY3RDaGFuZ2Uoc2VsZWN0ZWRJZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAg0LIge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRXYXJlaG91c2VJZFNlbGVjdENoYW5nZSh3YXJlaG91c2VJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0Lm5leHQod2FyZWhvdXNlSWQpO1xuXG4gICAgICAgIC8vIHRoaXMudWlTZXJ2aWNlLnNldFNlbGVjdGVkV2FyZWhvdXNlSWQod2FyZWhvdXNlSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIGdldFdhcmVob3VzZVNlbGVjdENoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY0lXYXJlaG91c2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgod2FyZWhvdXNlcykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGlkKSA9PiB3YXJlaG91c2VzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKSA/PyB3YXJlaG91c2VzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNNYWluKSksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigod2FyZWhvdXNlKSA9PiB3YXJlaG91c2UgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKCh3YXJlaG91c2UpID0+IHdhcmVob3VzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQutC70LDQtNCwINC00LvRjyDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREZWxpdmVyeVdhcmVob3VzZSQoKTogT2JzZXJ2YWJsZTxTY0lXYXJlaG91c2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIG1hcCgod2FyZWhvdXNlcykgPT4gd2FyZWhvdXNlcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzTWFpbikpLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQutC70LDQtNCwINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDRgtC+0LPQviwg0LPQtNC1INC30LDQv9GD0YnQtdC90L4g0L/RgNC40LvQvtC20LXQvdC40LUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyDQldGB0LvQuCDQv9GA0LjQu9C+0LbQtdC90LjQtSDQt9Cw0L/Rg9GJ0LXQvdC+INC90LAg0YLQtdGA0LzQuNC90LDQu9C1INC4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0LrQu9Cw0LTQsCDQv9GA0LjQstGP0LfQsNC90L3QvtCz0L4g0Log0YLQtdGA0LzQuNC90LDQu9GDINC90LUgbnVsbCwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiDRgdC60LvQsNC0INGC0LXRgNC80LjQvdCw0LvQsCxcbiAgICAgKiDQstC+INCy0YHQtdGFINC+0YHRgtCw0LvRjNC90YvRhSDRgdC70YPRh9Cw0Y/RhSDQstC+0LfQstGA0LDRidCw0LXRgiDQvtGB0L3QvtCy0L3QvtC5INGB0LrQu9Cw0LQuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGFsb2dXYXJlaG91c2VDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLndhcmVob3VzZXMkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHdhcmVob3VzZXMpID0+IHdhcmVob3VzZXMuZmluZCgodykgPT4gdy5pZCA9PT0gdGhpcy50ZXJtaW5hbC53YXJlaG91c2VJZCkgPz8gd2FyZWhvdXNlcy5maW5kKCh3KSA9PiB3LmlzTWFpbikpLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQv9C40YHQutCwINGB0LrQu9Cw0LTQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXYXJlaG91c2VzJCgpOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLndhcmVob3VzZXMkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFdhcmVob3VzZUlkU2VsZWN0KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICB9XG59XG4iXX0=