@snabcentr/client-core 2.65.2 → 2.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/banners/dto/sc-banner.d.ts +2 -2
- package/cart/classes/index.d.ts +1 -0
- package/cart/{dto → classes}/sc-cart.d.ts +7 -7
- package/cart/classes/sc-sum.d.ts +1 -1
- package/cart/index.d.ts +0 -1
- package/cart/internal/index.d.ts +1 -2
- package/cart/internal/{sc-i-cart-dto.d.ts → sc-i-cart.d.ts} +4 -6
- package/cart/services/sc-cart.service.d.ts +32 -30
- package/catalog/classes/sc-cached-item.d.ts +25 -5
- package/catalog/dto/sc-product.d.ts +2 -2
- package/catalog/interfaces/sc-i-category-product-params.d.ts +2 -10
- package/catalog/interfaces/sc-property-filters.d.ts +2 -4
- package/esm2022/banners/dto/sc-banner.mjs +12 -12
- package/esm2022/cart/classes/index.mjs +2 -1
- package/esm2022/cart/classes/sc-cart.mjs +18 -0
- package/esm2022/cart/classes/sc-sum.mjs +2 -2
- package/esm2022/cart/index.mjs +1 -2
- package/esm2022/cart/internal/index.mjs +2 -3
- package/esm2022/cart/internal/sc-i-cart.mjs +2 -0
- package/esm2022/cart/services/sc-cart.service.mjs +50 -52
- package/esm2022/catalog/classes/sc-cached-item.mjs +31 -6
- package/esm2022/catalog/dto/sc-product.mjs +1 -1
- package/esm2022/catalog/interfaces/sc-i-category-product-params.mjs +1 -1
- package/esm2022/catalog/interfaces/sc-property-filters.mjs +1 -1
- package/esm2022/catalog/services/sc-catalog.service.mjs +6 -6
- package/esm2022/catalog/services/sc-recommendation.service.mjs +8 -7
- package/esm2022/contragent/services/sc-contragent.service.mjs +3 -3
- package/esm2022/delivery-address/services/sc-delivery-address.service.mjs +4 -2
- package/esm2022/order/classes/index.mjs +11 -0
- package/esm2022/order/classes/sc-delivery-cost.mjs +19 -0
- package/esm2022/order/classes/sc-order-base.mjs +28 -0
- package/esm2022/order/classes/sc-order-delivery.mjs +2 -0
- package/esm2022/order/classes/sc-order-draft-short.mjs +17 -0
- package/esm2022/order/classes/sc-order-draft.mjs +59 -0
- package/esm2022/order/classes/sc-order-history.mjs +2 -0
- package/esm2022/order/classes/sc-order-item.mjs +60 -0
- package/esm2022/order/classes/sc-order-payment.mjs +2 -0
- package/esm2022/order/classes/sc-order-short.mjs +30 -0
- package/esm2022/order/classes/sc-order.mjs +100 -0
- package/esm2022/order/enums/index.mjs +2 -1
- package/esm2022/order/enums/sc-order-draft-type.mjs +16 -0
- package/esm2022/order/index.mjs +5 -3
- package/esm2022/order/internal/index.mjs +14 -3
- package/esm2022/order/internal/sc-i-delivery-cost-dto.mjs +1 -1
- package/esm2022/order/internal/sc-i-new-order-draft-request.mjs +2 -0
- package/esm2022/order/internal/sc-i-new-order-item-base.mjs +2 -0
- package/esm2022/order/internal/sc-i-new-order-item-measured.mjs +2 -0
- package/esm2022/order/internal/sc-i-new-order.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-base.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-list-params.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-short.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-item.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-loader.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-short.mjs +2 -0
- package/esm2022/order/internal/sc-i-order.mjs +2 -0
- package/esm2022/order/internal/sc-i-update-order-order-request.mjs +2 -0
- package/esm2022/order/services/index.mjs +3 -0
- package/esm2022/order/services/sc-order-drafts.service.mjs +195 -0
- package/esm2022/order/services/sc-orders.service.mjs +33 -54
- package/esm2022/order/tokens/index.mjs +2 -0
- package/esm2022/order/tokens/sc-order-loader.token.mjs +25 -0
- package/esm2022/pagination/dto/index.mjs +3 -1
- package/esm2022/pagination/dto/sc-i-range-filter.mjs +2 -0
- package/esm2022/pagination/dto/sc-i-sort-order.mjs +2 -0
- package/esm2022/reclamation/interfaces/sc-i-pagination-params.mjs +1 -1
- package/esm2022/references/enums/sc-order-state-status.mjs +1 -5
- package/esm2022/seo/classes/schema-org-factory.mjs +41 -2
- package/esm2022/seo/interfaces/index.mjs +2 -2
- package/esm2022/seo/interfaces/sc-i-breadcrumb-item.mjs +12 -0
- package/esm2022/seo/services/sc-seo.service.mjs +11 -2
- package/esm2022/ui/services/sc-ui.service.mjs +1 -1
- package/esm2022/user/dto/sc-user-metadata.mjs +1 -1
- package/esm2022/user-metrika/enums/sc-user-metrika-goals-enum.mjs +19 -1
- package/fesm2022/snabcentr-client-core.mjs +1093 -768
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/order/{dto → classes}/index.d.ts +5 -3
- package/order/{dto → classes}/sc-delivery-cost.d.ts +2 -2
- package/order/classes/sc-order-base.d.ts +32 -0
- package/order/classes/sc-order-draft-short.d.ts +22 -0
- package/order/classes/sc-order-draft.d.ts +63 -0
- package/order/{dto → classes}/sc-order-history.d.ts +1 -1
- package/order/classes/sc-order-item.d.ts +98 -0
- package/order/{dto → classes}/sc-order-payment.d.ts +1 -1
- package/order/classes/sc-order-short.d.ts +44 -0
- package/order/classes/sc-order.d.ts +102 -0
- package/order/enums/index.d.ts +1 -0
- package/order/enums/sc-order-draft-type.d.ts +13 -0
- package/order/index.d.ts +4 -2
- package/order/internal/index.d.ts +13 -2
- package/order/internal/sc-i-delivery-cost-dto.d.ts +1 -1
- package/order/internal/sc-i-new-order-draft-request.d.ts +13 -0
- package/{cart/dto/sc-i-new-cart-item-base.d.ts → order/internal/sc-i-new-order-item-base.d.ts} +2 -2
- package/order/internal/sc-i-new-order-item-measured.d.ts +10 -0
- package/order/{dto → internal}/sc-i-new-order.d.ts +1 -5
- package/order/internal/sc-i-order-base.d.ts +25 -0
- package/order/internal/sc-i-order-draft-list-params.d.ts +32 -0
- package/order/internal/sc-i-order-draft-short.d.ts +15 -0
- package/order/internal/sc-i-order-draft.d.ts +43 -0
- package/{cart/dto/sc-cart-item.d.ts → order/internal/sc-i-order-item.d.ts} +6 -13
- package/order/internal/sc-i-order-loader.d.ts +51 -0
- package/order/internal/{sc-i-order-short-dto.d.ts → sc-i-order-short.d.ts} +14 -16
- package/order/{dto/sc-order.d.ts → internal/sc-i-order.d.ts} +15 -67
- package/order/internal/sc-i-update-order-order-request.d.ts +9 -0
- package/order/services/index.d.ts +2 -0
- package/order/services/sc-order-drafts.service.d.ts +118 -0
- package/order/services/sc-orders.service.d.ts +19 -20
- package/order/tokens/index.d.ts +1 -0
- package/order/tokens/sc-order-loader.token.d.ts +26 -0
- package/package.json +1 -1
- package/pagination/dto/index.d.ts +2 -0
- package/pagination/dto/sc-i-range-filter.d.ts +15 -0
- package/pagination/dto/sc-i-sort-order.d.ts +15 -0
- package/reclamation/interfaces/sc-i-pagination-params.d.ts +3 -21
- package/references/enums/sc-order-state-status.d.ts +0 -4
- package/seo/classes/schema-org-factory.d.ts +9 -2
- package/seo/interfaces/index.d.ts +1 -1
- package/seo/interfaces/sc-i-breadcrumb-item.d.ts +25 -0
- package/seo/services/sc-seo.service.d.ts +1 -1
- package/ui/services/sc-ui.service.d.ts +1 -1
- package/user/dto/sc-user-metadata.d.ts +1 -1
- package/user-metrika/enums/sc-user-metrika-goals-enum.d.ts +18 -0
- package/cart/dto/index.d.ts +0 -5
- package/cart/dto/sc-i-new-cart-item-measured.d.ts +0 -10
- package/cart/dto/sc-i-sales-direction-cart.d.ts +0 -37
- package/cart/internal/sc-i-cart-item-dto.d.ts +0 -73
- package/esm2022/cart/dto/index.mjs +0 -6
- package/esm2022/cart/dto/sc-cart-item.mjs +0 -60
- package/esm2022/cart/dto/sc-cart.mjs +0 -18
- package/esm2022/cart/dto/sc-i-new-cart-item-base.mjs +0 -2
- package/esm2022/cart/dto/sc-i-new-cart-item-measured.mjs +0 -2
- package/esm2022/cart/dto/sc-i-sales-direction-cart.mjs +0 -21
- package/esm2022/cart/internal/sc-i-cart-dto.mjs +0 -2
- package/esm2022/cart/internal/sc-i-cart-item-dto.mjs +0 -2
- package/esm2022/order/dto/index.mjs +0 -9
- package/esm2022/order/dto/sc-delivery-cost.mjs +0 -19
- package/esm2022/order/dto/sc-i-new-order-from-draft.mjs +0 -2
- package/esm2022/order/dto/sc-i-new-order.mjs +0 -2
- package/esm2022/order/dto/sc-order-delivery.mjs +0 -2
- package/esm2022/order/dto/sc-order-history.mjs +0 -2
- package/esm2022/order/dto/sc-order-payment.mjs +0 -2
- package/esm2022/order/dto/sc-order-short.mjs +0 -46
- package/esm2022/order/dto/sc-order.mjs +0 -134
- package/esm2022/order/internal/sc-i-order-dto.mjs +0 -2
- package/esm2022/order/internal/sc-i-order-short-dto.mjs +0 -2
- package/esm2022/seo/interfaces/sc-i-schema-org-breadcrumb-list.mjs +0 -2
- package/order/dto/sc-i-new-order-from-draft.d.ts +0 -10
- package/order/dto/sc-order-short.d.ts +0 -65
- package/order/internal/sc-i-order-dto.d.ts +0 -94
- package/seo/interfaces/sc-i-schema-org-breadcrumb-list.d.ts +0 -34
- /package/order/{dto → classes}/sc-order-delivery.d.ts +0 -0
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { map,
|
|
3
|
+
import { map, of, tap } from 'rxjs';
|
|
4
|
+
import { ScCachedItem } from '../../catalog/classes/sc-cached-item';
|
|
5
|
+
import { loadingPlaceholder } from '../../order/tokens/sc-order-loader.token';
|
|
4
6
|
import { IS_BROWSER } from '../../providers/ssr.providers';
|
|
5
|
-
import { ScReferencesService } from '../../references/services/sc-references.service';
|
|
6
7
|
import { SC_URLS } from '../../tokens/sc-urls';
|
|
7
8
|
import { ScUIService } from '../../ui/services/sc-ui.service';
|
|
8
9
|
import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
|
|
9
10
|
import { ScUserMetrikaGoalsEnum } from '../../user-metrika/enums/sc-user-metrika-goals-enum';
|
|
10
11
|
import { ScUserMetrikaService } from '../../user-metrika/services/sc-user-metrika.service';
|
|
11
12
|
import { ScWarehouseService } from '../../warehouse';
|
|
13
|
+
import { ScCart } from '../classes/sc-cart';
|
|
12
14
|
import { ScSum } from '../classes/sc-sum';
|
|
13
|
-
import { ScCart } from '../dto/sc-cart';
|
|
14
|
-
import { ScISalesDirectionCart } from '../dto/sc-i-sales-direction-cart';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Данные о сервисе корзины.
|
|
18
18
|
*/
|
|
19
19
|
export class ScCartService {
|
|
20
20
|
/**
|
|
21
21
|
* Инициализирует экземпляр класса {@link ScCartService}.
|
|
22
|
-
*
|
|
23
22
|
*/
|
|
24
23
|
constructor() {
|
|
25
|
-
/**
|
|
26
|
-
* {@link ReplaySubject} для содержимого корзины.
|
|
27
|
-
*/
|
|
28
|
-
this.cart$ = new ReplaySubject(1);
|
|
29
24
|
/**
|
|
30
25
|
* Признак, что скрипт выполняется в браузере.
|
|
31
26
|
*/
|
|
@@ -55,72 +50,73 @@ export class ScCartService {
|
|
|
55
50
|
*/
|
|
56
51
|
this.userMetrikaService = inject(ScUserMetrikaService);
|
|
57
52
|
if (this.isBrowser) {
|
|
58
|
-
this.
|
|
59
|
-
|
|
53
|
+
this.cartCachedItem$ = new ScCachedItem(Infinity, this.getCartData$(), loadingPlaceholder);
|
|
54
|
+
this.user$.subscribe(() => {
|
|
55
|
+
this.cartCachedItem$.update();
|
|
60
56
|
});
|
|
61
57
|
}
|
|
62
58
|
else {
|
|
63
|
-
this.
|
|
59
|
+
this.cartCachedItem$ = new ScCachedItem(Infinity, of(new ScCart()), loadingPlaceholder);
|
|
64
60
|
}
|
|
65
|
-
this.cartDirections$ = inject(ScReferencesService).directions$.pipe(switchMap((directions) => this.cart$.pipe(switchMap((cart) => this.warehouseService.getWarehouseSelectChange$().pipe(map((warehouse) => directions
|
|
66
|
-
.map((direction) => new ScISalesDirectionCart(direction, cart.items.filter((cartItem) => !cartItem.product.isNull && !cartItem.product.isHidden && cartItem.salesDirection === direction.id), cart.directionsSum[direction.id], warehouse.id))
|
|
67
|
-
.filter((direction) => direction.items.length > 0 || direction.itemsOnOrder.length > 0 || direction.itemsNotInWarehouseStock.length > 0)))))));
|
|
68
61
|
}
|
|
69
62
|
/**
|
|
70
|
-
*
|
|
63
|
+
* Создаёт запрос получения содержимого корзины и обновляет корзину, возвращая {@link Observable} содержимого корзины.
|
|
71
64
|
*/
|
|
72
|
-
|
|
73
|
-
return this.cart
|
|
65
|
+
getCartData$() {
|
|
66
|
+
return this.http.get(`${this.urls.apiUrl}/cart`).pipe(map((cartDTO) => new ScCart(cartDTO)));
|
|
74
67
|
}
|
|
75
68
|
/**
|
|
76
|
-
*
|
|
69
|
+
* Возвращает полную информацию о корзине (контекст загрузчика).
|
|
77
70
|
*/
|
|
78
|
-
|
|
79
|
-
return this.
|
|
80
|
-
this.cart$.next(cart);
|
|
81
|
-
}));
|
|
71
|
+
get$() {
|
|
72
|
+
return this.cartCachedItem$.item$;
|
|
82
73
|
}
|
|
83
74
|
/**
|
|
84
|
-
*
|
|
75
|
+
* Возвращает список элементов корзины.
|
|
76
|
+
*/
|
|
77
|
+
getItems$() {
|
|
78
|
+
return this.get$().pipe(map((cart) => (cart === loadingPlaceholder ? loadingPlaceholder : cart.items)));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Добавляет продукт в корзину.
|
|
85
82
|
*
|
|
86
|
-
* @param
|
|
83
|
+
* @param data Данные добавляемого продукта.
|
|
87
84
|
*/
|
|
88
|
-
|
|
89
|
-
return this.http.patch(`${this.urls.apiUrl}/cart`,
|
|
90
|
-
if (
|
|
85
|
+
addProduct$(data) {
|
|
86
|
+
return this.http.patch(`${this.urls.apiUrl}/cart`, data).pipe(map((cartDTO) => new ScCart(cartDTO)), tap(() => {
|
|
87
|
+
if (data.productId) {
|
|
91
88
|
this.userMetrikaService.emitUserMetrikaEvent({
|
|
92
89
|
target: ScUserMetrikaGoalsEnum.cartItemAdded,
|
|
93
|
-
params: { product_id:
|
|
90
|
+
params: { product_id: data.productId },
|
|
94
91
|
});
|
|
95
92
|
}
|
|
96
93
|
}), tap((cart) => {
|
|
97
|
-
this.
|
|
94
|
+
this.cartCachedItem$.setValue(cart);
|
|
98
95
|
}));
|
|
99
96
|
}
|
|
100
97
|
/**
|
|
101
|
-
*
|
|
98
|
+
* Изменяет продукт в корзине.
|
|
102
99
|
*
|
|
103
|
-
* @param
|
|
104
|
-
* @param
|
|
100
|
+
* @param id Идентификатор позиции.
|
|
101
|
+
* @param patch Частичные данные для обновления.
|
|
105
102
|
*/
|
|
106
|
-
|
|
107
|
-
return this.http.patch(`${this.urls.apiUrl}/cart/${
|
|
108
|
-
this.
|
|
103
|
+
updateProduct$(id, patch) {
|
|
104
|
+
return this.http.patch(`${this.urls.apiUrl}/cart/${id}`, patch).pipe(map((cartDTO) => new ScCart(cartDTO)), tap((cart) => {
|
|
105
|
+
this.cartCachedItem$.setValue(cart);
|
|
109
106
|
}));
|
|
110
107
|
}
|
|
111
108
|
/**
|
|
112
|
-
*
|
|
109
|
+
* Удаляет продукт из корзины.
|
|
113
110
|
*
|
|
114
|
-
* @param
|
|
111
|
+
* @param item Удаляемая позиция.
|
|
115
112
|
*/
|
|
116
|
-
|
|
117
|
-
return this.http.delete(`${this.urls.apiUrl}/cart/${
|
|
113
|
+
deleteProduct$(item) {
|
|
114
|
+
return this.http.delete(`${this.urls.apiUrl}/cart/${item.id}`).pipe(map((cartDTO) => new ScCart(cartDTO)), tap((cart) => {
|
|
115
|
+
this.cartCachedItem$.setValue(cart);
|
|
118
116
|
this.userMetrikaService.emitUserMetrikaEvent({
|
|
119
117
|
target: ScUserMetrikaGoalsEnum.cartItemDeleted,
|
|
120
|
-
params: { product_id:
|
|
118
|
+
params: { product_id: item.product.id },
|
|
121
119
|
});
|
|
122
|
-
}), tap((cart) => {
|
|
123
|
-
this.cart$.next(cart);
|
|
124
120
|
}));
|
|
125
121
|
}
|
|
126
122
|
/**
|
|
@@ -133,20 +129,22 @@ export class ScCartService {
|
|
|
133
129
|
});
|
|
134
130
|
}), tap(() => {
|
|
135
131
|
this.uiService.removeAllNewOrdersMetadata();
|
|
136
|
-
this.
|
|
132
|
+
this.cartCachedItem$.setValue(new ScCart());
|
|
137
133
|
}));
|
|
138
134
|
}
|
|
139
135
|
/**
|
|
140
|
-
*
|
|
136
|
+
* Обновляет корзину.
|
|
141
137
|
*/
|
|
142
|
-
|
|
143
|
-
|
|
138
|
+
updateCart() {
|
|
139
|
+
this.cartCachedItem$.update();
|
|
144
140
|
}
|
|
145
141
|
/**
|
|
146
142
|
* Возвращает {@link Observable} позиций в корзине с товарами, которые были удалены из прайс-лита и больше не продаются.
|
|
143
|
+
*
|
|
144
|
+
* @deprecated
|
|
147
145
|
*/
|
|
148
146
|
getNullCartItems$() {
|
|
149
|
-
return this.
|
|
147
|
+
return this.get$().pipe(map((cart) => (cart === loadingPlaceholder ? loadingPlaceholder : cart.items.filter((item) => item.product.isNull || item.product.isHidden))));
|
|
150
148
|
}
|
|
151
149
|
/**
|
|
152
150
|
* Возвращает объект {@link ScCart} корзины, созданный из объекта заказа.
|
|
@@ -156,7 +154,7 @@ export class ScCartService {
|
|
|
156
154
|
// eslint-disable-next-line class-methods-use-this
|
|
157
155
|
getCartByOrder(order) {
|
|
158
156
|
return {
|
|
159
|
-
items: order.products
|
|
157
|
+
items: order.products,
|
|
160
158
|
resultSum: { rub: order.sum },
|
|
161
159
|
directionsSum: { [order.direction]: new ScSum(order.sum) },
|
|
162
160
|
};
|
|
@@ -178,7 +176,7 @@ export class ScCartService {
|
|
|
178
176
|
*/
|
|
179
177
|
addProductsFromCsv$(file) {
|
|
180
178
|
return this.http.post(`${this.urls.apiUrl}/cart/csv`, { file }).pipe(map((cartDTO) => new ScCart(cartDTO)), tap((cart) => {
|
|
181
|
-
this.
|
|
179
|
+
this.cartCachedItem$.setValue(cart);
|
|
182
180
|
this.userMetrikaService.emitUserMetrikaEvent({
|
|
183
181
|
target: ScUserMetrikaGoalsEnum.cartCsvUpload,
|
|
184
182
|
});
|
|
@@ -193,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
193
191
|
providedIn: 'root',
|
|
194
192
|
}]
|
|
195
193
|
}], ctorParameters: () => [] });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jYXJ0L3NlcnZpY2VzL3NjLWNhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFHekU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQThDdEI7OztPQUdHO0lBQ0g7UUFqREE7O1dBRUc7UUFDYyxVQUFLLEdBQTBCLElBQUksYUFBYSxDQUFTLENB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QUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLElBQW9CO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzVFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDckMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxhQUFhO2FBQy9DLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOytHQXZPUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZy9zYy1pLXVybHMnO1xuaW1wb3J0IHsgU2NVcGxvYWRlZEZpbGUgfSBmcm9tICcuLi8uLi9jb250YWN0cy9kdG8vc2MtdXBsb2FkZWQtZmlsZSc7XG5pbXBvcnQgeyBTY09yZGVyIH0gZnJvbSAnLi4vLi4vb3JkZXIvZHRvL3NjLW9yZGVyJztcbmltcG9ydCB7IElTX0JST1dTRVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvc3NyLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY1JlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9zZXJ2aWNlcy9zYy1yZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy11cmxzJztcbmltcG9ydCB7IFNjVUlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkvc2VydmljZXMvc2MtdWkuc2VydmljZSc7XG5pbXBvcnQgeyBTY1VzZXIgfSBmcm9tICcuLi8uLi91c2VyL2R0by9zYy11c2VyJztcbmltcG9ydCB7IFNDX1VTRVJfSU5GTyB9IGZyb20gJy4uLy4uL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0gfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2EvZW51bXMvc2MtdXNlci1tZXRyaWthLWdvYWxzLWVudW0nO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYVNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2Evc2VydmljZXMvc2MtdXNlci1tZXRyaWthLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NXYXJlaG91c2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2FyZWhvdXNlJztcbmltcG9ydCB7IFNjU3VtIH0gZnJvbSAnLi4vY2xhc3Nlcy9zYy1zdW0nO1xuaW1wb3J0IHsgU2NDYXJ0IH0gZnJvbSAnLi4vZHRvL3NjLWNhcnQnO1xuaW1wb3J0IHsgU2NDYXJ0SXRlbSB9IGZyb20gJy4uL2R0by9zYy1jYXJ0LWl0ZW0nO1xuaW1wb3J0IHsgU2NJTmV3Q2FydEl0ZW1CYXNlIH0gZnJvbSAnLi4vZHRvL3NjLWktbmV3LWNhcnQtaXRlbS1iYXNlJztcbmltcG9ydCB7IFNjSVNhbGVzRGlyZWN0aW9uQ2FydCB9IGZyb20gJy4uL2R0by9zYy1pLXNhbGVzLWRpcmVjdGlvbi1jYXJ0JztcbmltcG9ydCB7IFNjSUNhcnREVE8gfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLWNhcnQtZHRvJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutC+0YDQt9C40L3QvtC5LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NhcnRTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LTQu9GPINGB0L7QtNC10YDQttC40LzQvtCz0L4g0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0JDogUmVwbGF5U3ViamVjdDxTY0NhcnQ+ID0gbmV3IFJlcGxheVN1YmplY3Q8U2NDYXJ0PigxKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60L7RgNC30LjQvdGLINC/0L4g0L3QsNC/0YDQsNCy0LvQtdC90LjRj9C8INC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnREaXJlY3Rpb25zJDogT2JzZXJ2YWJsZTxTY0lTYWxlc0RpcmVjdGlvbkNhcnRbXT47XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGB0LrRgNC40L/RgiDQstGL0L/QvtC70L3Rj9C10YLRgdGPINCyINCx0YDQsNGD0LfQtdGA0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW4gPSBpbmplY3QoSVNfQlJPV1NFUik7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPFNjVXNlcj4gPSBpbmplY3QoU0NfVVNFUl9JTkZPKTtcblxuICAgIC8qKlxuICAgICAqIEhUVFAt0LrQu9C40LXQvdGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVUkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1aVNlcnZpY2U6IFNjVUlTZXJ2aWNlID0gaW5qZWN0KFNjVUlTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGB0L4g0YHQutC70LDQtNCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHdhcmVob3VzZVNlcnZpY2U6IFNjV2FyZWhvdXNlU2VydmljZSA9IGluamVjdChTY1dhcmVob3VzZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlID0gaW5qZWN0KFNjVXNlck1ldHJpa2FTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NDYXJ0U2VydmljZX0uXG4gICAgICpcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgdGhpcy51c2VyJC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLnVwZGF0ZUNhcnQkKCkpKS5zdWJzY3JpYmUoKGNhcnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnQkLm5leHQoY2FydCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2FydCQubmV4dChuZXcgU2NDYXJ0KCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYXJ0RGlyZWN0aW9ucyQgPSBpbmplY3QoU2NSZWZlcmVuY2VzU2VydmljZSkuZGlyZWN0aW9ucyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZGlyZWN0aW9ucykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNhcnQkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoY2FydCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FyZWhvdXNlU2VydmljZS5nZXRXYXJlaG91c2VTZWxlY3RDaGFuZ2UkKCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoKHdhcmVob3VzZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGlyZWN0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU2NJU2FsZXNEaXJlY3Rpb25DYXJ0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FydC5pdGVtcy5maWx0ZXIoKGNhcnRJdGVtKSA9PiAhY2FydEl0ZW0ucHJvZHVjdC5pc051bGwgJiYgIWNhcnRJdGVtLnByb2R1Y3QuaXNIaWRkZW4gJiYgY2FydEl0ZW0uc2FsZXNEaXJlY3Rpb24gPT09IGRpcmVjdGlvbi5pZCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0LmRpcmVjdGlvbnNTdW1bZGlyZWN0aW9uLmlkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcmVob3VzZS5pZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChkaXJlY3Rpb24pID0+IGRpcmVjdGlvbi5pdGVtcy5sZW5ndGggPiAwIHx8IGRpcmVjdGlvbi5pdGVtc09uT3JkZXIubGVuZ3RoID4gMCB8fCBkaXJlY3Rpb24uaXRlbXNOb3RJbldhcmVob3VzZVN0b2NrLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJ0Q2hhbmdlJCgpOiBPYnNlcnZhYmxlPFNjQ2FydD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJ0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L7QtNC10YDQttC40LzQvtCz0L4g0LrQvtGA0LfQuNC90Ysg0Lgg0L7QsdC90L7QstC70Y/QtdGCINC60L7RgNC30LjQvdGDLCDQstC+0LfQstGA0LDRidCw0Y8ge0BsaW5rIE9ic2VydmFibGV9INGB0L7QtNC10YDQttC40LzQvtCz0L4g0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUNhcnQkKCk6IE9ic2VydmFibGU8U2NDYXJ0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSUNhcnREVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhcnRgKS5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXJ0RFRPKSA9PiBuZXcgU2NDYXJ0KGNhcnREVE8pKSxcbiAgICAgICAgICAgIHRhcCgoY2FydCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FydCQubmV4dChjYXJ0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINC00L7QsdCw0LLQu9C10L3QuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3RgyDQuCDQstC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtC00LXRgNC20LjQvNC+0LPQviDQutC+0YDQt9C40L3Riy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0TmV3SXRlbSDQndC+0LLRi9C5INGN0LvQtdC80LXQvdGCINC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRUb0NhcnQkKGNhcnROZXdJdGVtOiBTY0lOZXdDYXJ0SXRlbUJhc2UpOiBPYnNlcnZhYmxlPFNjQ2FydD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPFNjSUNhcnREVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhcnRgLCBjYXJ0TmV3SXRlbSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FydERUTykgPT4gbmV3IFNjQ2FydChjYXJ0RFRPKSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjYXJ0TmV3SXRlbS5wcm9kdWN0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLmNhcnRJdGVtQWRkZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgcHJvZHVjdF9pZDogY2FydE5ld0l0ZW0ucHJvZHVjdElkIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKChjYXJ0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0JC5uZXh0KGNhcnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0L7QsdC90L7QstC70LXQvdC40Y8g0L/QvtC30LjRhtC40Lgg0LIg0LrQvtGA0LfQuNC90LUg0Lgg0LLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L7QtNC10YDQttC40LzQvtCz0L4g0LrQvtGA0LfQuNC90YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydEl0ZW1JZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRjdC70LXQvNC10L3RgtCwINC60L7RgNC30LjQvdGLLlxuICAgICAqIEBwYXJhbSBjYXJ0UGF0Y2hJdGVtINCd0L7QstGL0LUg0LTQsNC90L3Ri9C1INGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIHBhdGNoQ2FydEl0ZW0kKGNhcnRJdGVtSWQ6IHN0cmluZywgY2FydFBhdGNoSXRlbTogT21pdDxTY0lOZXdDYXJ0SXRlbUJhc2UsICdwcm9kdWN0SWQnPik6IE9ic2VydmFibGU8U2NDYXJ0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8U2NJQ2FydERUTz4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydC8ke2NhcnRJdGVtSWR9YCwgY2FydFBhdGNoSXRlbSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FydERUTykgPT4gbmV3IFNjQ2FydChjYXJ0RFRPKSksXG4gICAgICAgICAgICB0YXAoKGNhcnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnQkLm5leHQoY2FydCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINC30LDQv9GA0L7RgSDRg9C00LDQu9C10L3QuNGPINC/0L7Qt9C40YbQuNC4INC40Lcg0LrQvtGA0LfQuNC90Ysg0Lgg0LLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L7QtNC10YDQttC40LzQvtCz0L4g0LrQvtGA0LfQuNC90YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydEl0ZW0g0JfQsNC/0LjRgdGMINC60L7RgNC30LjQvdGLLCDQutC+0YLQvtGA0YPRjiDQvdC10L7QsdGF0L7QtNC40LzQviDRg9C00LDQu9C40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlQ2FydEl0ZW0kKGNhcnRJdGVtOiBTY0NhcnRJdGVtKTogT2JzZXJ2YWJsZTxTY0NhcnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8U2NJQ2FydERUTz4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydC8ke2NhcnRJdGVtLmlkfWApLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNhcnREVE8pID0+IG5ldyBTY0NhcnQoY2FydERUTykpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5jYXJ0SXRlbURlbGV0ZWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBwcm9kdWN0X2lkOiBjYXJ0SXRlbS5wcm9kdWN0LmlkIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgoY2FydCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FydCQubmV4dChjYXJ0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINC+0YfQuNGB0YLQutC4INC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckNhcnQkKCk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydGApLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLmNhcnRDbGVhcmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudWlTZXJ2aWNlLnJlbW92ZUFsbE5ld09yZGVyc01ldGFkYXRhKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0JC5uZXh0KG5ldyBTY0NhcnQoKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60L7RgNC30LjQvdGLINC/0L4g0L3QsNC/0YDQsNCy0LvQtdC90LjRj9C8INC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FydERpcmVjdGlvbnNDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NJU2FsZXNEaXJlY3Rpb25DYXJ0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FydERpcmVjdGlvbnMkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQv9C+0LfQuNGG0LjQuSDQsiDQutC+0YDQt9C40L3QtSDRgSDRgtC+0LLQsNGA0LDQvNC4LCDQutC+0YLQvtGA0YvQtSDQsdGL0LvQuCDRg9C00LDQu9C10L3RiyDQuNC3INC/0YDQsNC50YEt0LvQuNGC0LAg0Lgg0LHQvtC70YzRiNC1INC90LUg0L/RgNC+0LTQsNGO0YLRgdGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROdWxsQ2FydEl0ZW1zJCgpOiBPYnNlcnZhYmxlPFNjQ2FydEl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDYXJ0Q2hhbmdlJCgpLnBpcGUobWFwKChjYXJ0KSA9PiBjYXJ0Lml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wcm9kdWN0LmlzTnVsbCB8fCBpdGVtLnByb2R1Y3QuaXNIaWRkZW4pKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7QsdGK0LXQutGCIHtAbGluayBTY0NhcnR9INC60L7RgNC30LjQvdGLLCDRgdC+0LfQtNCw0L3QvdGL0Lkg0LjQtyDQvtCx0YrQtdC60YLQsCDQt9Cw0LrQsNC30LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3JkZXIg0JTQsNC90L3Ri9C1INC+INC30LDQutCw0LfQtS5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHB1YmxpYyBnZXRDYXJ0QnlPcmRlcihvcmRlcjogU2NPcmRlcik6IFNjQ2FydCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogb3JkZXIucHJvZHVjdHMgPz8gW10sXG4gICAgICAgICAgICByZXN1bHRTdW06IHsgcnViOiBvcmRlci5zdW0gfSxcbiAgICAgICAgICAgIGRpcmVjdGlvbnNTdW06IHsgW29yZGVyLmRpcmVjdGlvbl06IG5ldyBTY1N1bShvcmRlci5zdW0pIH0sXG4gICAgICAgIH0gYXMgU2NDYXJ0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0YDQuNC80LXRgCBDU1Yg0YTQsNC50LvQsCDQtNC70Y8g0LTQvtCx0LDQstC70LXQvdC40Y8g0L/RgNC+0LTRg9C60YLQvtCyINCyINC60L7RgNC30LjQvdGDLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJ0Q3N2RXhhbXBsZSQoKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydC9jc3YvZXhhbXBsZWAsIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKGJsb2IpID0+IG5ldyBCbG9iKFtibG9iXSwgeyB0eXBlOiAndGV4dC9jc3YnIH0pKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JTQvtCx0LDQstC70Y/QtdGCINGC0L7QstCw0YDRiyDQsiDQutC+0YDQt9C40L3RgyDQuNC3INGE0LDQudC70LAgQ1NWLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGUg0JfQsNCz0YDRg9C20LDQtdC80YvQuSDRhNCw0LnQuyDQsiDRhNC+0YDQvNCw0YLQtSBiYXNlNjQuXG4gICAgICovXG4gICAgcHVibGljIGFkZFByb2R1Y3RzRnJvbUNzdiQoZmlsZTogU2NVcGxvYWRlZEZpbGUpOiBPYnNlcnZhYmxlPFNjQ2FydD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2NJQ2FydERUTz4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydC9jc3ZgLCB7IGZpbGUgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FydERUTykgPT4gbmV3IFNjQ2FydChjYXJ0RFRPKSksXG4gICAgICAgICAgICB0YXAoKGNhcnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnQkLm5leHQoY2FydCk7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0uY2FydENzdlVwbG9hZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jYXJ0L3NlcnZpY2VzL3NjLWNhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU9wRSxPQUFPLEVBQUUsa0JBQWtCLEVBQWtCLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRzFDOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUF5Q3RCOztPQUVHO0lBQ0g7UUF0Q0E7O1dBRUc7UUFDYyxjQUFTLEdBQVksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpE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Q0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxtQkFBbUIsRUFBRTtZQUN6QyxZQUFZLEVBQUUsTUFBTTtTQUN2QixDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLElBQW9CO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3pFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDckMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxhQUFhO2FBQy9DLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOytHQTlNUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0NhY2hlZEl0ZW0gfSBmcm9tICcuLi8uLi9jYXRhbG9nL2NsYXNzZXMvc2MtY2FjaGVkLWl0ZW0nO1xuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZy9zYy1pLXVybHMnO1xuaW1wb3J0IHsgU2NVcGxvYWRlZEZpbGUgfSBmcm9tICcuLi8uLi9jb250YWN0cy9kdG8vc2MtdXBsb2FkZWQtZmlsZSc7XG5pbXBvcnQgeyBTY09yZGVyIH0gZnJvbSAnLi4vLi4vb3JkZXIvY2xhc3Nlcy9zYy1vcmRlcic7XG5pbXBvcnQgeyBTY09yZGVySXRlbSB9IGZyb20gJy4uLy4uL29yZGVyL2NsYXNzZXMvc2Mtb3JkZXItaXRlbSc7XG5pbXBvcnQgeyBTY0lOZXdPcmRlckl0ZW1CYXNlIH0gZnJvbSAnLi4vLi4vb3JkZXIvaW50ZXJuYWwvc2MtaS1uZXctb3JkZXItaXRlbS1iYXNlJztcbmltcG9ydCB7IFNjSU9yZGVyRWRpdG9yTG9hZGVyIH0gZnJvbSAnLi4vLi4vb3JkZXIvaW50ZXJuYWwvc2MtaS1vcmRlci1sb2FkZXInO1xuaW1wb3J0IHsgbG9hZGluZ1BsYWNlaG9sZGVyLCBTY09yZGVyTG9hZGluZyB9IGZyb20gJy4uLy4uL29yZGVyL3Rva2Vucy9zYy1vcmRlci1sb2FkZXIudG9rZW4nO1xuaW1wb3J0IHsgSVNfQlJPV1NFUiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9zc3IucHJvdmlkZXJzJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY1VJU2VydmljZSB9IGZyb20gJy4uLy4uL3VpL3NlcnZpY2VzL3NjLXVpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NVc2VyIH0gZnJvbSAnLi4vLi4vdXNlci9kdG8vc2MtdXNlcic7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthR29hbHNFbnVtIH0gZnJvbSAnLi4vLi4vdXNlci1tZXRyaWthL2VudW1zL3NjLXVzZXItbWV0cmlrYS1nb2Fscy1lbnVtJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1tZXRyaWthL3NlcnZpY2VzL3NjLXVzZXItbWV0cmlrYS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjV2FyZWhvdXNlU2VydmljZSB9IGZyb20gJy4uLy4uL3dhcmVob3VzZSc7XG5pbXBvcnQgeyBTY0NhcnQgfSBmcm9tICcuLi9jbGFzc2VzL3NjLWNhcnQnO1xuaW1wb3J0IHsgU2NTdW0gfSBmcm9tICcuLi9jbGFzc2VzL3NjLXN1bSc7XG5pbXBvcnQgeyBTY0lDYXJ0IH0gZnJvbSAnLi4vaW50ZXJuYWwvc2MtaS1jYXJ0JztcblxuLyoqXG4gKiDQlNCw0L3QvdGL0LUg0L4g0YHQtdGA0LLQuNGB0LUg0LrQvtGA0LfQuNC90YsuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ2FydFNlcnZpY2UgaW1wbGVtZW50cyBTY0lPcmRlckVkaXRvckxvYWRlcjxTY09yZGVySXRlbSwgU2NDYXJ0PiB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIFJlcGxheVN1YmplY3R9INC00LvRjyDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgY2FydENhY2hlZEl0ZW0kOiBTY0NhY2hlZEl0ZW08U2NDYXJ0LCBTY09yZGVyTG9hZGluZz47XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGB0LrRgNC40L/RgiDQstGL0L/QvtC70L3Rj9C10YLRgdGPINCyINCx0YDQsNGD0LfQtdGA0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW4gPSBpbmplY3QoSVNfQlJPV1NFUik7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LTQsNC90L3Ri9GFINC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPFNjVXNlcj4gPSBpbmplY3QoU0NfVVNFUl9JTkZPKTtcblxuICAgIC8qKlxuICAgICAqIEhUVFAt0LrQu9C40LXQvdGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVUkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1aVNlcnZpY2U6IFNjVUlTZXJ2aWNlID0gaW5qZWN0KFNjVUlTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGB0L4g0YHQutC70LDQtNCw0LzQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHdhcmVob3VzZVNlcnZpY2U6IFNjV2FyZWhvdXNlU2VydmljZSA9IGluamVjdChTY1dhcmVob3VzZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlID0gaW5qZWN0KFNjVXNlck1ldHJpa2FTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NDYXJ0U2VydmljZX0uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2FydENhY2hlZEl0ZW0kID0gbmV3IFNjQ2FjaGVkSXRlbShJbmZpbml0eSwgdGhpcy5nZXRDYXJ0RGF0YSQoKSwgbG9hZGluZ1BsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgIHRoaXMudXNlciQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRDYWNoZWRJdGVtJC51cGRhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYXJ0Q2FjaGVkSXRlbSQgPSBuZXcgU2NDYWNoZWRJdGVtKEluZmluaXR5LCBvZihuZXcgU2NDYXJ0KCkpLCBsb2FkaW5nUGxhY2Vob2xkZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60L7RgNC30LjQvdGLINC4INC+0LHQvdC+0LLQu9GP0LXRgiDQutC+0YDQt9C40L3Rgywg0LLQvtC30LLRgNCw0YnQsNGPIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q2FydERhdGEkKCk6IE9ic2VydmFibGU8U2NDYXJ0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSUNhcnQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhcnRgKS5waXBlKG1hcCgoY2FydERUTykgPT4gbmV3IFNjQ2FydChjYXJ0RFRPKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0L7Qu9C90YPRjiDQuNC90YTQvtGA0LzQsNGG0LjRjiDQviDQutC+0YDQt9C40L3QtSAo0LrQvtC90YLQtdC60YHRgiDQt9Cw0LPRgNGD0LfRh9C40LrQsCkuXG4gICAgICovXG4gICAgcHVibGljIGdldCQoKTogT2JzZXJ2YWJsZTxTY0NhcnQgfCBTY09yZGVyTG9hZGluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJ0Q2FjaGVkSXRlbSQuaXRlbSQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INGN0LvQtdC80LXQvdGC0L7QsiDQutC+0YDQt9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SXRlbXMkKCk6IE9ic2VydmFibGU8U2NPcmRlckl0ZW1bXSB8IFNjT3JkZXJMb2FkaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCQoKS5waXBlKG1hcCgoY2FydCkgPT4gKGNhcnQgPT09IGxvYWRpbmdQbGFjZWhvbGRlciA/IGxvYWRpbmdQbGFjZWhvbGRlciA6IChjYXJ0IGFzIFNjQ2FydCkuaXRlbXMpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JTQvtCx0LDQstC70Y/QtdGCINC/0YDQvtC00YPQutGCINCyINC60L7RgNC30LjQvdGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEg0JTQsNC90L3Ri9C1INC00L7QsdCw0LLQu9GP0LXQvNC+0LPQviDQv9GA0L7QtNGD0LrRgtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRQcm9kdWN0JChkYXRhOiBTY0lOZXdPcmRlckl0ZW1CYXNlKTogT2JzZXJ2YWJsZTxTY0NhcnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxTY0lDYXJ0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXJ0YCwgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FydERUTykgPT4gbmV3IFNjQ2FydChjYXJ0RFRPKSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLnByb2R1Y3RJZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0uY2FydEl0ZW1BZGRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBwcm9kdWN0X2lkOiBkYXRhLnByb2R1Y3RJZCB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgoY2FydCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FydENhY2hlZEl0ZW0kLnNldFZhbHVlKGNhcnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC30LzQtdC90Y/QtdGCINC/0YDQvtC00YPQutGCINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC/0L7Qt9C40YbQuNC4LlxuICAgICAqIEBwYXJhbSBwYXRjaCDQp9Cw0YHRgtC40YfQvdGL0LUg0LTQsNC90L3Ri9C1INC00LvRjyDQvtCx0L3QvtCy0LvQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlUHJvZHVjdCQoaWQ6IHN0cmluZywgcGF0Y2g6IE9taXQ8U2NJTmV3T3JkZXJJdGVtQmFzZSwgJ3Byb2R1Y3RJZCc+KTogT2JzZXJ2YWJsZTxTY0NhcnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxTY0lDYXJ0PihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXJ0LyR7aWR9YCwgcGF0Y2gpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNhcnREVE8pID0+IG5ldyBTY0NhcnQoY2FydERUTykpLFxuICAgICAgICAgICAgdGFwKChjYXJ0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0Q2FjaGVkSXRlbSQuc2V0VmFsdWUoY2FydCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINC/0YDQvtC00YPQutGCINC40Lcg0LrQvtGA0LfQuNC90YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbSDQo9C00LDQu9GP0LXQvNCw0Y8g0L/QvtC30LjRhtC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZVByb2R1Y3QkKGl0ZW06IFNjT3JkZXJJdGVtKTogT2JzZXJ2YWJsZTxTY0NhcnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8U2NJQ2FydD4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydC8ke2l0ZW0uaWR9YCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FydERUTykgPT4gbmV3IFNjQ2FydChjYXJ0RFRPKSksXG4gICAgICAgICAgICB0YXAoKGNhcnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRDYWNoZWRJdGVtJC5zZXRWYWx1ZShjYXJ0KTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5jYXJ0SXRlbURlbGV0ZWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyBwcm9kdWN0X2lkOiBpdGVtLnByb2R1Y3QuaWQgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0LfQsNC/0YDQvtGBINC+0YfQuNGB0YLQutC4INC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckNhcnQkKCk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydGApLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLmNhcnRDbGVhcmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudWlTZXJ2aWNlLnJlbW92ZUFsbE5ld09yZGVyc01ldGFkYXRhKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0Q2FjaGVkSXRlbSQuc2V0VmFsdWUobmV3IFNjQ2FydCgpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC60L7RgNC30LjQvdGDLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVDYXJ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhcnRDYWNoZWRJdGVtJC51cGRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0L/QvtC30LjRhtC40Lkg0LIg0LrQvtGA0LfQuNC90LUg0YEg0YLQvtCy0LDRgNCw0LzQuCwg0LrQvtGC0L7RgNGL0LUg0LHRi9C70Lgg0YPQtNCw0LvQtdC90Ysg0LjQtyDQv9GA0LDQudGBLdC70LjRgtCwINC4INCx0L7Qu9GM0YjQtSDQvdC1INC/0YDQvtC00LDRjtGC0YHRjy5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIGdldE51bGxDYXJ0SXRlbXMkKCk6IE9ic2VydmFibGU8U2NPcmRlckl0ZW1bXSB8IFNjT3JkZXJMb2FkaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCQoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXJ0KSA9PiAoY2FydCA9PT0gbG9hZGluZ1BsYWNlaG9sZGVyID8gbG9hZGluZ1BsYWNlaG9sZGVyIDogKGNhcnQgYXMgU2NDYXJ0KS5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ucHJvZHVjdC5pc051bGwgfHwgaXRlbS5wcm9kdWN0LmlzSGlkZGVuKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7QsdGK0LXQutGCIHtAbGluayBTY0NhcnR9INC60L7RgNC30LjQvdGLLCDRgdC+0LfQtNCw0L3QvdGL0Lkg0LjQtyDQvtCx0YrQtdC60YLQsCDQt9Cw0LrQsNC30LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3JkZXIg0JTQsNC90L3Ri9C1INC+INC30LDQutCw0LfQtS5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHB1YmxpYyBnZXRDYXJ0QnlPcmRlcihvcmRlcjogU2NPcmRlcik6IFNjQ2FydCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogb3JkZXIucHJvZHVjdHMsXG4gICAgICAgICAgICByZXN1bHRTdW06IHsgcnViOiBvcmRlci5zdW0gfSxcbiAgICAgICAgICAgIGRpcmVjdGlvbnNTdW06IHsgW29yZGVyLmRpcmVjdGlvbl06IG5ldyBTY1N1bShvcmRlci5zdW0pIH0sXG4gICAgICAgIH0gYXMgU2NDYXJ0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0YDQuNC80LXRgCBDU1Yg0YTQsNC50LvQsCDQtNC70Y8g0LTQvtCx0LDQstC70LXQvdC40Y8g0L/RgNC+0LTRg9C60YLQvtCyINCyINC60L7RgNC30LjQvdGDLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJ0Q3N2RXhhbXBsZSQoKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydC9jc3YvZXhhbXBsZWAsIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKGJsb2IpID0+IG5ldyBCbG9iKFtibG9iXSwgeyB0eXBlOiAndGV4dC9jc3YnIH0pKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JTQvtCx0LDQstC70Y/QtdGCINGC0L7QstCw0YDRiyDQsiDQutC+0YDQt9C40L3RgyDQuNC3INGE0LDQudC70LAgQ1NWLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGUg0JfQsNCz0YDRg9C20LDQtdC80YvQuSDRhNCw0LnQuyDQsiDRhNC+0YDQvNCw0YLQtSBiYXNlNjQuXG4gICAgICovXG4gICAgcHVibGljIGFkZFByb2R1Y3RzRnJvbUNzdiQoZmlsZTogU2NVcGxvYWRlZEZpbGUpOiBPYnNlcnZhYmxlPFNjQ2FydD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2NJQ2FydD4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2FydC9jc3ZgLCB7IGZpbGUgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FydERUTykgPT4gbmV3IFNjQ2FydChjYXJ0RFRPKSksXG4gICAgICAgICAgICB0YXAoKGNhcnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRDYWNoZWRJdGVtJC5zZXRWYWx1ZShjYXJ0KTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5jYXJ0Q3N2VXBsb2FkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BehaviorSubject, dematerialize, materialize, shareReplay, startWith, switchMap, tap } from 'rxjs';
|
|
1
|
+
import { BehaviorSubject, dematerialize, materialize, merge, shareReplay, startWith, Subject, switchMap, tap } from 'rxjs';
|
|
2
2
|
/**
|
|
3
3
|
* Модель кэшированных данных.
|
|
4
4
|
*/
|
|
@@ -8,15 +8,28 @@ export class ScCachedItem {
|
|
|
8
8
|
*
|
|
9
9
|
* @param lifeTime Время жизни записи в ms.
|
|
10
10
|
* @param item$ {@link Observable} запроса кэшируемых данных.
|
|
11
|
+
* @param initialValue Начальное значение данных.
|
|
11
12
|
*/
|
|
12
|
-
constructor(lifeTime, item
|
|
13
|
+
constructor(lifeTime, item$, initialValue) {
|
|
13
14
|
/**
|
|
14
15
|
* {@link Observable} обновления данных.
|
|
15
16
|
*/
|
|
16
17
|
this.update$ = new BehaviorSubject(undefined);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Текущее значение данных, установленное напрямую.
|
|
20
|
+
*/
|
|
21
|
+
this.currentValue$ = new Subject();
|
|
22
|
+
this.lifeTime = lifeTime;
|
|
23
|
+
const requestData$ = this.update$.pipe(switchMap(() => item$.pipe(tap(() => {
|
|
24
|
+
this.updateCacheTime();
|
|
25
|
+
}), startWith((initialValue ?? null)))), materialize(), shareReplay(1), dematerialize());
|
|
26
|
+
this.item$ = merge(this.currentValue$, requestData$).pipe(shareReplay());
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Обновляет время кэширования данных.
|
|
30
|
+
*/
|
|
31
|
+
updateCacheTime() {
|
|
32
|
+
this.cachedUntil = Date.now() + this.lifeTime;
|
|
20
33
|
}
|
|
21
34
|
/**
|
|
22
35
|
* Возвращает признак того, что кэшированные данные актуальны.
|
|
@@ -31,5 +44,17 @@ export class ScCachedItem {
|
|
|
31
44
|
this.cachedUntil = undefined;
|
|
32
45
|
this.update$.next();
|
|
33
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Устанавливает значение данных напрямую без провоцирования запроса через {@link Observable}.
|
|
49
|
+
*
|
|
50
|
+
* @param value Новое значение данных.
|
|
51
|
+
* @param updateCacheTime Обновить время кэширования. По умолчанию true.
|
|
52
|
+
*/
|
|
53
|
+
setValue(value, updateCacheTime = true) {
|
|
54
|
+
if (updateCacheTime) {
|
|
55
|
+
this.updateCacheTime();
|
|
56
|
+
}
|
|
57
|
+
this.currentValue$.next(value);
|
|
58
|
+
}
|
|
34
59
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FjaGVkLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NhdGFsb2cvY2xhc3Nlcy9zYy1jYWNoZWQtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkk7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQTBCckI7Ozs7OztPQU1HO0lBQ0gsWUFBbUIsUUFBZ0IsRUFBRSxLQUErQixFQUFFLFlBQXVCO1FBdEI3Rjs7V0FFRztRQUNjLFlBQU8sR0FBMEIsSUFBSSxlQUFlLENBQU8sU0FBUyxDQUFDLENBQUM7UUFFdkY7O1dBRUc7UUFDYyxrQkFBYSxHQUEwQixJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQWVoRixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbEMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNYLEtBQUssQ0FBQyxJQUFJLENBQ04sR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFhLENBQUMsQ0FDaEQsQ0FDSixFQUNELFdBQVcsRUFBRSxFQUNiLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDZCxhQUFhLEVBQUUsQ0FDbEIsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZTtRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQjtRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQUMsS0FBbUIsRUFBRSxrQkFBMkIsSUFBSTtRQUNoRSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZW1hdGVyaWFsaXplLCBtYXRlcmlhbGl6ZSwgbWVyZ2UsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JzQvtC00LXQu9GMINC60Y3RiNC40YDQvtCy0LDQvdC90YvRhSDQtNCw0L3QvdGL0YUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY0NhY2hlZEl0ZW08VCwgVEluaXRpYWwgPSBudWxsPiB7XG4gICAgLyoqXG4gICAgICog0JLRgNC10LzRjywg0LTQviDQutC+0YLQvtGA0L7Qs9C+INC00LDQvdC90YvQtSDQutGN0YjQuNGA0L7QstCw0L3RiyDQsiBtcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNhY2hlZFVudGlsPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0JLRgNC10LzRjyDQttC40LfQvdC4INC30LDQv9C40YHQuCDQsiBtcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpZmVUaW1lOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0L7QsdC90L7QstC70LXQvdC40Y8g0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlJDogQmVoYXZpb3JTdWJqZWN0PHZvaWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPih1bmRlZmluZWQpO1xuXG4gICAgLyoqXG4gICAgICog0KLQtdC60YPRidC10LUg0LfQvdCw0YfQtdC90LjQtSDQtNCw0L3QvdGL0YUsINGD0YHRgtCw0L3QvtCy0LvQtdC90L3QvtC1INC90LDQv9GA0Y/QvNGD0Y4uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50VmFsdWUkOiBTdWJqZWN0PFQgfCBUSW5pdGlhbD4gPSBuZXcgU3ViamVjdDxUIHwgVEluaXRpYWw+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC60Y3RiNC40YDRg9C10LzRi9GFINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaXRlbSQ6IE9ic2VydmFibGU8VCB8IFRJbml0aWFsPjtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NDYWNoZWRJdGVtfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaWZlVGltZSDQktGA0LXQvNGPINC20LjQt9C90Lgg0LfQsNC/0LjRgdC4INCyIG1zLlxuICAgICAqIEBwYXJhbSBpdGVtJCB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LrRjdGI0LjRgNGD0LXQvNGL0YUg0LTQsNC90L3Ri9GFLlxuICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUg0J3QsNGH0LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihsaWZlVGltZTogbnVtYmVyLCBpdGVtJDogT2JzZXJ2YWJsZTxUIHwgVEluaXRpYWw+LCBpbml0aWFsVmFsdWU/OiBUSW5pdGlhbCkge1xuICAgICAgICB0aGlzLmxpZmVUaW1lID0gbGlmZVRpbWU7XG4gICAgICAgIGNvbnN0IHJlcXVlc3REYXRhJCA9IHRoaXMudXBkYXRlJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgaXRlbSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGVUaW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoKGluaXRpYWxWYWx1ZSA/PyBudWxsKSBhcyBUSW5pdGlhbClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWF0ZXJpYWxpemUoKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgICAgICAgZGVtYXRlcmlhbGl6ZSgpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pdGVtJCA9IG1lcmdlKHRoaXMuY3VycmVudFZhbHVlJCwgcmVxdWVzdERhdGEkKS5waXBlKHNoYXJlUmVwbGF5KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQstGA0LXQvNGPINC60Y3RiNC40YDQvtCy0LDQvdC40Y8g0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlQ2FjaGVUaW1lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhY2hlZFVudGlsID0gRGF0ZS5ub3coKSArIHRoaXMubGlmZVRpbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQutGN0YjQuNGA0L7QstCw0L3QvdGL0LUg0LTQsNC90L3Ri9C1INCw0LrRgtGD0LDQu9GM0L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FjaGVkRGF0YUlzQWN0dWFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY2FjaGVkVW50aWwgfHwgdGhpcy5jYWNoZWRVbnRpbCA+IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C/0L7Qu9C90Y/QtdGCINC+0LHQvdC+0LLQu9C10L3QuNGPIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQutGN0YjQuNGA0YPQtdC80YvRhSDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWNoZWRVbnRpbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy51cGRhdGUkLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQt9C90LDRh9C10L3QuNC1INC00LDQvdC90YvRhSDQvdCw0L/RgNGP0LzRg9GOINCx0LXQtyDQv9GA0L7QstC+0YbQuNGA0L7QstCw0L3QuNGPINC30LDQv9GA0L7RgdCwINGH0LXRgNC10Lcge0BsaW5rIE9ic2VydmFibGV9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCd0L7QstC+0LUg0LfQvdCw0YfQtdC90LjQtSDQtNCw0L3QvdGL0YUuXG4gICAgICogQHBhcmFtIHVwZGF0ZUNhY2hlVGltZSDQntCx0L3QvtCy0LjRgtGMINCy0YDQtdC80Y8g0LrRjdGI0LjRgNC+0LLQsNC90LjRjy4g0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4gdHJ1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IFQgfCBUSW5pdGlhbCwgdXBkYXRlQ2FjaGVUaW1lOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodXBkYXRlQ2FjaGVUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlVGltZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUkLm5leHQodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -156,4 +156,4 @@ export class ScProduct extends ScCatalogItem {
|
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9kdG8vc2MtcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUEwQjtJQXlIckQ7Ozs7O09BS0c7SUFDSCxZQUFtQixJQUF1QixFQUFFLE1BQWMsQ0FBQztRQUN2RCxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBMUM3Qjs7V0FFRztRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPakM7O1dBRUc7UUFDSSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBTy9COztXQUVHO1FBQ0ksbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFPdkM7O1dBRUc7UUFDSSx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFXeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxV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Q0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUN4RyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLFNBQXVCO1FBQzdDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDM0QsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQztRQUVuRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakQsT0FBTyxXQUFXLENBQUM7UUFDdkIsQ0FBQztRQUVELGtKQUFrSjtRQUNsSixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXhHLFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDZixLQUFLLENBQUM7Z0JBQ0YsT0FBTyxlQUFlLENBQUM7WUFDM0IsS0FBSyxDQUFDO2dCQUNGLE9BQU8sY0FBYyxDQUFDO1lBQzFCLEtBQUssQ0FBQztnQkFDRixPQUFPLG1CQUFtQixDQUFDO1lBQy9CO2dCQUNJLE9BQU8sYUFBYSxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVpRGF5IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmltcG9ydCB7IFNjQ2FydEl0ZW0gfSBmcm9tICcuLi8uLi9jYXJ0L2R0by9zYy1jYXJ0LWl0ZW0nO1xuaW1wb3J0IHsgU2NJQ3VycmVuY3kgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2VzL2R0by9zYy1pLWN1cnJlbmN5JztcbmltcG9ydCB7IFNjSVByb2R1Y3RVbml0IH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9kdG8vc2MtaS1wcm9kdWN0LXVuaXQnO1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlU3RvY2tDb3VudCB9IGZyb20gJy4uLy4uL3dhcmVob3VzZS9kdG8vc2MtaS13YXJlaG91c2Utc3RvY2stY291bnQnO1xuaW1wb3J0IHsgU2NJV2FyZWhvdXNlIH0gZnJvbSAnLi4vLi4vd2FyZWhvdXNlL2R0by9zYy13YXJlaG91c2UnO1xuaW1wb3J0IHsgU2NDYXRhbG9nSXRlbSB9IGZyb20gJy4uL2NsYXNzZXMvc2MtY2F0YWxvZy1pdGVtJztcbmltcG9ydCB7IFNjSUNhdGVnb3J5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVByb2R1Y3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktcHJvZHVjdCc7XG5pbXBvcnQgeyBTY1ByaWNlSGlzdG9yeSB9IGZyb20gJy4uL3R5cGVzL3NjLXByaWNlLWhpc3RvcnknO1xuaW1wb3J0IHsgU2NDYXRlZ29yeSB9IGZyb20gJy4vc2MtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJRGlzY291bnQgfSBmcm9tICcuL3NjLWktZGlzY291bnQnO1xuaW1wb3J0IHsgU2NJUHJvZHVjdEltYWdlcyB9IGZyb20gJy4vc2MtaS1wcm9kdWN0LWltYWdlcyc7XG5cbi8qKlxuICog0JzQvtC00LXQu9GMINC00LDQvdC90YvRhSDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICovXG5leHBvcnQgY2xhc3MgU2NQcm9kdWN0IGV4dGVuZHMgU2NDYXRhbG9nSXRlbTxTY0lDYXRlZ29yeT4gaW1wbGVtZW50cyBTY0lQcm9kdWN0IHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpc0hpZGRlbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHN1cHBsaWVyU2t1Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0KFAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjb3N0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdFJ1Yj86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3REYXRlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY3VycmVuY3k6IFNjSUN1cnJlbmN5O1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5pdDogU2NJUHJvZHVjdFVuaXQ7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBtaW5Db3VudD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHN0b2NrQ291bnQ/OiBTY0lXYXJlaG91c2VTdG9ja0NvdW50W107XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBvbk9yZGVyPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHBhY2s/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpc0Zhdm9yaXRlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmV2aW91c2x5T3JkZXJlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpbWFnZXM/OiByZWFkb25seSBTY0lQcm9kdWN0SW1hZ2VzW107XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjYXRlZ29yaWVzOiBTY0lDYXRlZ29yeVtdO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzY291bnQ/OiBTY0lEaXNjb3VudDtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHByaW1hcnlDYXRlZ29yeT86IFNjSUNhdGVnb3J5O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0L3QsNC70LjRh9C40Y8g0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDRgyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIGhhc0ltYWdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0Y3Qu9C10LzQtdC90YLQsCDQutC+0YDQt9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2FydEl0ZW0/OiBTY0NhcnRJdGVtO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgtC+0LLQsNGAINC+0YLRgdGD0YLRgdGC0LLRg9C10YIuXG4gICAgICovXG4gICAgcHVibGljIGlzTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/QvtGA0Y/QtNC+0Log0YHQu9C10LTQvtCy0LDQvdC40Y8g0YLQvtCy0LDRgNCwINCyINGB0L/QuNGB0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3JkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INGC0L7QstCw0YAg0YHQutGA0YvQu9C4INGE0LjQu9GM0YLRgNC+0LwuXG4gICAgICovXG4gICAgcHVibGljIGlzSGlkZGVuRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQmNGB0YLQvtGA0LjRjyDQuNC30LzQtdC90LXQvdC40Y8g0YbQtdC90Ysg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0LguXG4gICAgICovXG4gICAgcHVibGljIHByaWNlSGlzdG9yeT86IFNjUHJpY2VIaXN0b3J5O1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Lgg0LjQs9C90L7RgNC40YDQvtCy0LDRgtGMINC/0YDQvtCy0LXRgNC60YMg0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC4INC60YDQsNGC0L3QvtGB0YLQuCDQv9GA0Lgg0LTQvtCx0LDQstC70LXQvdC40Lgg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdGDINC4INGB0L7Qt9C00LDQvdC40Lgg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBpZ25vcmVNaW5Db3VudENoZWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUHJvZHVjdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUg0L4g0L/RgNC+0LTRg9C60YLQtS5cbiAgICAgKiBAcGFyYW0gb3JkINCf0L7RgNGP0LTQvtC6INGB0LvQtdC00L7QstCw0L3QuNGPINC/0YDQvtC00YPQutGC0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBTY0lQcm9kdWN0IHwgbnVsbCwgb3JkOiBudW1iZXIgPSAwKSB7XG4gICAgICAgIHN1cGVyKGRhdGEgPz8gdW5kZWZpbmVkKTtcblxuICAgICAgICB0aGlzLmlzSGlkZGVuID0gZGF0YT8uaXNIaWRkZW4gPz8gZmFsc2U7XG4gICAgICAgIHRoaXMub3JkID0gb3JkO1xuXG4gICAgICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmlzTnVsbCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAn0KLQvtCy0LDRgCDQvdC1INC90LDQudC00LXQvSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmltYWdlID0gZGF0YS5pbWFnZXM/LmZpbmQoKGltZykgPT4gaW1nLmlzRGVmYXVsdCk/LmltYWdlID8/IGRhdGEucHJvcGVydGllcz8uaW1hZ2U7XG5cbiAgICAgICAgICAgIHRoaXMuc3VwcGxpZXJTa3UgPSBkYXRhLnN1cHBsaWVyU2t1O1xuICAgICAgICAgICAgdGhpcy5jb3N0ID0gZGF0YS5jb3N0O1xuICAgICAgICAgICAgdGhpcy5jb3N0UnViID0gZGF0YS5jb3N0UnViO1xuICAgICAgICAgICAgdGhpcy5jb3N0RGF0ZSA9IGRhdGEuY29zdERhdGU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gZGF0YS5jdXJyZW5jeTtcbiAgICAgICAgICAgIHRoaXMudW5pdCA9IGRhdGEudW5pdDtcbiAgICAgICAgICAgIHRoaXMubWluQ291bnQgPSBkYXRhLm1pbkNvdW50O1xuICAgICAgICAgICAgdGhpcy5zdG9ja0NvdW50ID0gZGF0YS5zdG9ja0NvdW50O1xuICAgICAgICAgICAgdGhpcy5vbk9yZGVyID0gZGF0YS5vbk9yZGVyO1xuICAgICAgICAgICAgdGhpcy5wYWNrID0gZGF0YS5wYWNrO1xuICAgICAgICAgICAgdGhpcy5pc0Zhdm9yaXRlID0gQm9vbGVhbihkYXRhLmlzRmF2b3JpdGUpO1xuICAgICAgICAgICAgdGhpcy5pc1ByZXZpb3VzbHlPcmRlcmVkID0gZGF0YS5pc1ByZXZpb3VzbHlPcmRlcmVkO1xuICAgICAgICAgICAgdGhpcy5oYXNJbWFnZSA9IChkYXRhLmltYWdlcyAmJiBkYXRhLmltYWdlcy5sZW5ndGggPiAwKSA/PyBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VzID0gZGF0YS5pbWFnZXM/LnNsaWNlKCkuc29ydCgoaW1nMSwgaW1nMikgPT4gTnVtYmVyKGltZzIuaXNEZWZhdWx0KSAtIE51bWJlcihpbWcxLmlzRGVmYXVsdCkpO1xuICAgICAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gZGF0YS5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnkpID0+IG5ldyBTY0NhdGVnb3J5KGNhdGVnb3J5KSk7XG4gICAgICAgICAgICB0aGlzLnByaW1hcnlDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzUHJpbWFyeSk7XG4gICAgICAgICAgICB0aGlzLmlnbm9yZU1pbkNvdW50Q2hlY2sgPSBkYXRhLnByb3BlcnRpZXM/Lmlnbm9yZU1pbkNvdW50Q2hlY2sgPz8gdGhpcy5wcm9wZXJ0aWVzPy5pZ25vcmVNaW5Db3VudENoZWNrID8/IHRoaXMuaWdub3JlTWluQ291bnRDaGVjaztcbiAgICAgICAgICAgIHRoaXMuZGlzY291bnQgPSBkYXRhLmRpc2NvdW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHRgtC+0LjQvNC+0YHRgtGMINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4INGBINCy0LDQu9GO0YLQvtC5INC4INC10LTQuNC90LjRhtC10Lkg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29zdFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0ID8gYCR7dGhpcy5jb3N0LnRvTG9jYWxlU3RyaW5nKCl9ICR7dGhpcy5jdXJyZW5jeS5zeW1ib2x9IC8gJHt0aGlzLnVuaXQubmFtZX1gIDogJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHRgtC+0LjQvNC+0YHRgtGMINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4INCyINGA0YPQsdC70Y/RhSDQuCDRgSDQtdC00LjQvdC40YbQtdC5INC40LfQvNC10YDQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvc3RSdWJTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29zdFJ1YiA/IGAke3RoaXMuY29zdFJ1Yi50b0xvY2FsZVN0cmluZygpfSDigr0gLyAke3RoaXMudW5pdC5uYW1lfWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0YEg0LLQsNC70Y7RgtC+0Lkg0Lgg0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8g0LTQviDQv9GA0LjQvNC10L3QtdC90LjRjyDRgdC60LjQtNC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXNjb3VudENvc3RTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzY291bnQ/Lm9sZENvc3QgPyBgJHt0aGlzLmRpc2NvdW50Lm9sZENvc3QudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLmN1cnJlbmN5LnN5bWJvbH0gLyAke3RoaXMudW5pdC5uYW1lfWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGC0L7QstCw0YAg0L/RgNC+0LTQsNGR0YLRgdGPINCyINGA0YPQsdC70Y/RhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHByaWNlSW5SdWIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbmN5LnN5bWJvbCA9PT0gJ+KCvSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/QtdGA0LLQvtC1INC40LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwLiDQldGB0LvQuCDQuNC30L7QsdGA0LDQttC10L3QuNC5INC90LXRgiwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiB1bmRlZmluZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW1nSW5kZXgg0JjQvdC00LXQutGBINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LIg0LzQsNGB0YHQuNCy0LUuXG4gICAgICovXG4gICAgcHVibGljIGdldEltYWdlKGltZ0luZGV4OiBudW1iZXIgPSAwKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzPy5bYCR7aW1nSW5kZXh9YF0uaW1hZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L7RgdC90L7QstC90L7QtSDQuNC30L7QsdGA0LDQttC10L3QuNC1INGC0L7QstCw0YDQsCDQsiDRhNC+0YDQvNCw0YLQtSBXZWJQLiDQldGB0LvQuCBXZWJQINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0L3QtdGCLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIHVuZGVmaW5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbWdJbmRleCDQmNC90LTQtdC60YEg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQsiDQvNCw0YHRgdC40LLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SW1hZ2VXZWJwKGltZ0luZGV4OiBudW1iZXIgPSAwKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzPy5bYCR7aW1nSW5kZXh9YF0uaW1hZ2VXZWJwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0LXRgNCy0L7QtSDQv9GA0LXQstGM0Y4t0LjQt9C+0LHRgNCw0LbQtdC90LjQtSDRgtC+0LLQsNGA0LAuINCV0YHQu9C4INC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNC5INC90LXRgiwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiB1bmRlZmluZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW1nSW5kZXgg0JjQvdC00LXQutGBINC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNGPINCyINC80LDRgdGB0LjQstC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbWFnZVByZXZpZXcoaW1nSW5kZXg6IG51bWJlciA9IDApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXM/LltgJHtpbWdJbmRleH1gXS5wcmV2aWV3O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNC1INGC0L7QstCw0YDQsCDQsiDRhNC+0YDQvNCw0YLQtSBXZWJQLiDQldGB0LvQuCBXZWJQINC/0YDQtdCy0YzRjiDQvdC10YIsINGC0L4g0LLQvtC30LLRgNCw0YnQsNC10YIgdW5kZWZpbmVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGltZ0luZGV4INCY0L3QtNC10LrRgSDQv9GA0LXQstGM0Y4t0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQsiDQvNCw0YHRgdC40LLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SW1hZ2VQcmV2aWV3V2VicChpbWdJbmRleDogbnVtYmVyID0gMCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlcz8uW2Ake2ltZ0luZGV4fWBdLnByZXZpZXdXZWJwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60L7Qu9C40YfQtdGB0YLQstC+INGC0L7QstCw0YDQsCDQvdCwINGB0LrQu9Cw0LTQtSAo0L7RgdGC0LDRgtC+0LopLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdhcmVob3VzZUlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0V2FyZWhvdXNlU3RvY2tDb3VudCh3YXJlaG91c2VJZDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvY2tDb3VudD8uZmluZCgoc2MpID0+IHNjLndhcmVob3VzZUlkID09PSB3YXJlaG91c2VJZCk/LmNvdW50ID8/IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC40LfQvdCw0LosINGH0YLQviDQuNC80LXQtdGC0YHRjyDQvtGB0YLQsNGC0L7QuiDRgtC+0LLQsNGA0LAg0L3QsCDRgdC60LvQsNC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1dhcmVob3VzZVN0b2NrRXhpc3Qod2FyZWhvdXNlSWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMub25PcmRlciAmJiB0aGlzLnN0b2NrQ291bnQ/LmZpbmQoKHNjKSA9PiBzYy53YXJlaG91c2VJZCA9PT0gd2FyZWhvdXNlSWQpICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQvtC+0LHRidC10L3QuNC1INC+0LEg0L7RgtGB0YPRgtGB0YLQstC40Lgg0YLQvtCy0LDRgNCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdhcmVob3VzZSDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIGdldE5vdFN0b2NrTWVzc2FnZSh3YXJlaG91c2U6IFNjSVdhcmVob3VzZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLm9uT3JkZXIgPz8gdGhpcy5pc1dhcmVob3VzZVN0b2NrRXhpc3Qod2FyZWhvdXNlLmlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBsYW5pbmdEYXRlID0gdGhpcy5wcm9wZXJ0aWVzPy5wbGFuaW5nSW5jb21pbmdEYXRlID8/IHRoaXMucHJvcGVydGllcz8ucGxhbmluZ1Byb2R1Y3Rpb25EYXRlO1xuXG4gICAgICAgIGlmICghd2FyZWhvdXNlLmlzTWFpbiB8fCBwbGFuaW5nRGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gJ9Cg0LDRgdC60YPQv9C40LvQuCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbFxuICAgICAgICBjb25zdCBkYXlzRGlmZiA9IFR1aURheS5sZW5ndGhCZXR3ZWVuKFR1aURheS5jdXJyZW50TG9jYWwoKSwgVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKHBsYW5pbmdEYXRlLCAnRE1ZJykpO1xuXG4gICAgICAgIHN3aXRjaCAoZGF5c0RpZmYpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9CR0YPQtNC10YIg0YHQtdCz0L7QtNC90Y8nO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJldHVybiAn0JHRg9C00LXRgiDQt9Cw0LLRgtGA0LAnO1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIHJldHVybiAn0JHRg9C00LXRgiDQv9C+0YHQu9C10LfQsNCy0YLRgNCwJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGDQntC20LjQtNCw0LXRgtGB0Y8gJHtwbGFuaW5nRGF0ZX1gO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9kdG8vc2MtcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUEwQjtJQXlIckQ7Ozs7O09BS0c7SUFDSCxZQUFtQixJQUF1QixFQUFFLE1BQWMsQ0FBQztRQUN2RCxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBMUM3Qjs7V0FFRztRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPakM7O1dBRUc7UUFDSSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBTy9COztXQUVHO1FBQ0ksbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFPdkM7O1dBRUc7UUFDSSx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFXeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxV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Q0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUN4RyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLFNBQXVCO1FBQzdDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDM0QsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQztRQUVuRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakQsT0FBTyxXQUFXLENBQUM7UUFDdkIsQ0FBQztRQUVELGtKQUFrSjtRQUNsSixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXhHLFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDZixLQUFLLENBQUM7Z0JBQ0YsT0FBTyxlQUFlLENBQUM7WUFDM0IsS0FBSyxDQUFDO2dCQUNGLE9BQU8sY0FBYyxDQUFDO1lBQzFCLEtBQUssQ0FBQztnQkFDRixPQUFPLG1CQUFtQixDQUFDO1lBQy9CO2dCQUNJLE9BQU8sYUFBYSxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVpRGF5IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmltcG9ydCB7IFNjT3JkZXJJdGVtIH0gZnJvbSAnLi4vLi4vb3JkZXIvY2xhc3Nlcy9zYy1vcmRlci1pdGVtJztcbmltcG9ydCB7IFNjSUN1cnJlbmN5IH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9kdG8vc2MtaS1jdXJyZW5jeSc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0VW5pdCB9IGZyb20gJy4uLy4uL3JlZmVyZW5jZXMvZHRvL3NjLWktcHJvZHVjdC11bml0JztcbmltcG9ydCB7IFNjSVdhcmVob3VzZVN0b2NrQ291bnQgfSBmcm9tICcuLi8uLi93YXJlaG91c2UvZHRvL3NjLWktd2FyZWhvdXNlLXN0b2NrLWNvdW50JztcbmltcG9ydCB7IFNjSVdhcmVob3VzZSB9IGZyb20gJy4uLy4uL3dhcmVob3VzZS9kdG8vc2Mtd2FyZWhvdXNlJztcbmltcG9ydCB7IFNjQ2F0YWxvZ0l0ZW0gfSBmcm9tICcuLi9jbGFzc2VzL3NjLWNhdGFsb2ctaXRlbSc7XG5pbXBvcnQgeyBTY0lDYXRlZ29yeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtaS1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLXByb2R1Y3QnO1xuaW1wb3J0IHsgU2NQcmljZUhpc3RvcnkgfSBmcm9tICcuLi90eXBlcy9zYy1wcmljZS1oaXN0b3J5JztcbmltcG9ydCB7IFNjQ2F0ZWdvcnkgfSBmcm9tICcuL3NjLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSURpc2NvdW50IH0gZnJvbSAnLi9zYy1pLWRpc2NvdW50JztcbmltcG9ydCB7IFNjSVByb2R1Y3RJbWFnZXMgfSBmcm9tICcuL3NjLWktcHJvZHVjdC1pbWFnZXMnO1xuXG4vKipcbiAqINCc0L7QtNC10LvRjCDQtNCw0L3QvdGL0YUg0YLQvtCy0LDRgNCwL9GD0YHQu9GD0LPQuC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjUHJvZHVjdCBleHRlbmRzIFNjQ2F0YWxvZ0l0ZW08U2NJQ2F0ZWdvcnk+IGltcGxlbWVudHMgU2NJUHJvZHVjdCB7XG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNIaWRkZW46IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBzdXBwbGllclNrdT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINChQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29zdD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGNvc3RSdWI/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjb3N0RGF0ZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGN1cnJlbmN5OiBTY0lDdXJyZW5jeTtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIHVuaXQ6IFNjSVByb2R1Y3RVbml0O1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgbWluQ291bnQ/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBzdG9ja0NvdW50PzogU2NJV2FyZWhvdXNlU3RvY2tDb3VudFtdO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgb25PcmRlcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBwYWNrPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNGYXZvcml0ZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGlzUHJldmlvdXNseU9yZGVyZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2VzPzogcmVhZG9ubHkgU2NJUHJvZHVjdEltYWdlc1tdO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY2F0ZWdvcmllczogU2NJQ2F0ZWdvcnlbXTtcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcHVibGljIGRpc2NvdW50PzogU2NJRGlzY291bnQ7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHB1YmxpYyBwcmltYXJ5Q2F0ZWdvcnk/OiBTY0lDYXRlZ29yeTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC90LDQu9C40YfQuNGPINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0YMg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXNJbWFnZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCINGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIGNhcnRJdGVtPzogU2NPcmRlckl0ZW07XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGC0L7QstCw0YAg0L7RgtGB0YPRgtGB0YLQstGD0LXRgi5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNOdWxsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0YDRj9C00L7QuiDRgdC70LXQtNC+0LLQsNC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBvcmQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDRh9GC0L4g0YLQvtCy0LDRgCDRgdC60YDRi9C70Lgg0YTQuNC70YzRgtGA0L7QvC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNIaWRkZW5GaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCY0YHRgtC+0YDQuNGPINC40LfQvNC10L3QtdC90LjRjyDRhtC10L3RiyDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJpY2VIaXN0b3J5PzogU2NQcmljZUhpc3Rvcnk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQuNCz0L3QvtGA0LjRgNC+0LLQsNGC0Ywg0L/RgNC+0LLQtdGA0LrRgyDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0Lgg0LrRgNCw0YLQvdC+0YHRgtC4INC/0YDQuCDQtNC+0LHQsNCy0LvQtdC90LjQuCDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90YMg0Lgg0YHQvtC30LTQsNC90LjQuCDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIGlnbm9yZU1pbkNvdW50Q2hlY2s6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQcm9kdWN0fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQviDQv9GA0L7QtNGD0LrRgtC1LlxuICAgICAqIEBwYXJhbSBvcmQg0J/QvtGA0Y/QtNC+0Log0YHQu9C10LTQvtCy0LDQvdC40Y8g0L/RgNC+0LTRg9C60YLQsCDQsiDRgdC/0LjRgdC60LUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IFNjSVByb2R1Y3QgfCBudWxsLCBvcmQ6IG51bWJlciA9IDApIHtcbiAgICAgICAgc3VwZXIoZGF0YSA/PyB1bmRlZmluZWQpO1xuXG4gICAgICAgIHRoaXMuaXNIaWRkZW4gPSBkYXRhPy5pc0hpZGRlbiA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5vcmQgPSBvcmQ7XG5cbiAgICAgICAgaWYgKGRhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNOdWxsID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9ICfQotC+0LLQsNGAINC90LUg0L3QsNC50LTQtdC9JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBkYXRhLmltYWdlcz8uZmluZCgoaW1nKSA9PiBpbWcuaXNEZWZhdWx0KT8uaW1hZ2UgPz8gZGF0YS5wcm9wZXJ0aWVzPy5pbWFnZTtcblxuICAgICAgICAgICAgdGhpcy5zdXBwbGllclNrdSA9IGRhdGEuc3VwcGxpZXJTa3U7XG4gICAgICAgICAgICB0aGlzLmNvc3QgPSBkYXRhLmNvc3Q7XG4gICAgICAgICAgICB0aGlzLmNvc3RSdWIgPSBkYXRhLmNvc3RSdWI7XG4gICAgICAgICAgICB0aGlzLmNvc3REYXRlID0gZGF0YS5jb3N0RGF0ZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVuY3kgPSBkYXRhLmN1cnJlbmN5O1xuICAgICAgICAgICAgdGhpcy51bml0ID0gZGF0YS51bml0O1xuICAgICAgICAgICAgdGhpcy5taW5Db3VudCA9IGRhdGEubWluQ291bnQ7XG4gICAgICAgICAgICB0aGlzLnN0b2NrQ291bnQgPSBkYXRhLnN0b2NrQ291bnQ7XG4gICAgICAgICAgICB0aGlzLm9uT3JkZXIgPSBkYXRhLm9uT3JkZXI7XG4gICAgICAgICAgICB0aGlzLnBhY2sgPSBkYXRhLnBhY2s7XG4gICAgICAgICAgICB0aGlzLmlzRmF2b3JpdGUgPSBCb29sZWFuKGRhdGEuaXNGYXZvcml0ZSk7XG4gICAgICAgICAgICB0aGlzLmlzUHJldmlvdXNseU9yZGVyZWQgPSBkYXRhLmlzUHJldmlvdXNseU9yZGVyZWQ7XG4gICAgICAgICAgICB0aGlzLmhhc0ltYWdlID0gKGRhdGEuaW1hZ2VzICYmIGRhdGEuaW1hZ2VzLmxlbmd0aCA+IDApID8/IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pbWFnZXMgPSBkYXRhLmltYWdlcz8uc2xpY2UoKS5zb3J0KChpbWcxLCBpbWcyKSA9PiBOdW1iZXIoaW1nMi5pc0RlZmF1bHQpIC0gTnVtYmVyKGltZzEuaXNEZWZhdWx0KSk7XG4gICAgICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSBkYXRhLmNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gbmV3IFNjQ2F0ZWdvcnkoY2F0ZWdvcnkpKTtcbiAgICAgICAgICAgIHRoaXMucHJpbWFyeUNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yaWVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNQcmltYXJ5KTtcbiAgICAgICAgICAgIHRoaXMuaWdub3JlTWluQ291bnRDaGVjayA9IGRhdGEucHJvcGVydGllcz8uaWdub3JlTWluQ291bnRDaGVjayA/PyB0aGlzLnByb3BlcnRpZXM/Lmlnbm9yZU1pbkNvdW50Q2hlY2sgPz8gdGhpcy5pZ25vcmVNaW5Db3VudENoZWNrO1xuICAgICAgICAgICAgdGhpcy5kaXNjb3VudCA9IGRhdGEuZGlzY291bnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0YEg0LLQsNC70Y7RgtC+0Lkg0Lgg0LXQtNC40L3QuNGG0LXQuSDQuNC30LzQtdGA0LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb3N0U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvc3QgPyBgJHt0aGlzLmNvc3QudG9Mb2NhbGVTdHJpbmcoKX0gJHt0aGlzLmN1cnJlbmN5LnN5bWJvbH0gLyAke3RoaXMudW5pdC5uYW1lfWAgOiAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGC0L7QuNC80L7RgdGC0Ywg0YLQvtCy0LDRgNCwINC40LvQuCDRg9GB0LvRg9Cz0Lgg0LIg0YDRg9Cx0LvRj9GFINC4INGBINC10LTQuNC90LjRhtC10Lkg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29zdFJ1YlN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3N0UnViID8gYCR7dGhpcy5jb3N0UnViLnRvTG9jYWxlU3RyaW5nKCl9IOKCvSAvICR7dGhpcy51bml0Lm5hbWV9YCA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0YLQvtC40LzQvtGB0YLRjCDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuCDRgSDQstCw0LvRjtGC0L7QuSDQuCDQtdC00LjQvdC40YbQtdC5INC40LfQvNC10YDQtdC90LjRjyDQtNC+INC/0YDQuNC80LXQvdC10L3QuNGPINGB0LrQuNC00LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpc2NvdW50Q29zdFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNjb3VudD8ub2xkQ29zdCA/IGAke3RoaXMuZGlzY291bnQub2xkQ29zdC50b0xvY2FsZVN0cmluZygpfSAke3RoaXMuY3VycmVuY3kuc3ltYm9sfSAvICR7dGhpcy51bml0Lm5hbWV9YCA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YLQvtCy0LDRgCDQv9GA0L7QtNCw0ZHRgtGB0Y8g0LIg0YDRg9Cx0LvRj9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcHJpY2VJblJ1YigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY3kuc3ltYm9sID09PSAn4oK9JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9C10YDQstC+0LUg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSDRgtC+0LLQsNGA0LAuINCV0YHQu9C4INC40LfQvtCx0YDQsNC20LXQvdC40Lkg0L3QtdGCLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIHVuZGVmaW5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbWdJbmRleCDQmNC90LTQtdC60YEg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQsiDQvNCw0YHRgdC40LLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SW1hZ2UoaW1nSW5kZXg6IG51bWJlciA9IDApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXM/LltgJHtpbWdJbmRleH1gXS5pbWFnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQvtGB0L3QvtCy0L3QvtC1INC40LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwINCyINGE0L7RgNC80LDRgtC1IFdlYlAuINCV0YHQu9C4IFdlYlAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQvdC10YIsINGC0L4g0LLQvtC30LLRgNCw0YnQsNC10YIgdW5kZWZpbmVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGltZ0luZGV4INCY0L3QtNC10LrRgSDQuNC30L7QsdGA0LDQttC10L3QuNGPINCyINC80LDRgdGB0LjQstC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbWFnZVdlYnAoaW1nSW5kZXg6IG51bWJlciA9IDApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXM/LltgJHtpbWdJbmRleH1gXS5pbWFnZVdlYnA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/QtdGA0LLQvtC1INC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNC1INGC0L7QstCw0YDQsC4g0JXRgdC70Lgg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40Lkg0L3QtdGCLCDRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIHVuZGVmaW5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbWdJbmRleCDQmNC90LTQtdC60YEg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LIg0LzQsNGB0YHQuNCy0LUuXG4gICAgICovXG4gICAgcHVibGljIGdldEltYWdlUHJldmlldyhpbWdJbmRleDogbnVtYmVyID0gMCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlcz8uW2Ake2ltZ0luZGV4fWBdLnByZXZpZXc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC10LLRjNGOLdC40LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwINCyINGE0L7RgNC80LDRgtC1IFdlYlAuINCV0YHQu9C4IFdlYlAg0L/RgNC10LLRjNGOINC90LXRgiwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiB1bmRlZmluZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW1nSW5kZXgg0JjQvdC00LXQutGBINC/0YDQtdCy0YzRji3QuNC30L7QsdGA0LDQttC10L3QuNGPINCyINC80LDRgdGB0LjQstC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbWFnZVByZXZpZXdXZWJwKGltZ0luZGV4OiBudW1iZXIgPSAwKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzPy5bYCR7aW1nSW5kZXh9YF0ucHJldmlld1dlYnA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtCy0LDRgNCwINC90LAg0YHQutC70LDQtNC1ICjQvtGB0YLQsNGC0L7QuikuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXYXJlaG91c2VTdG9ja0NvdW50KHdhcmVob3VzZUlkOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9ja0NvdW50Py5maW5kKChzYykgPT4gc2Mud2FyZWhvdXNlSWQgPT09IHdhcmVob3VzZUlkKT8uY291bnQgPz8gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9GA0LjQt9C90LDQuiwg0YfRgtC+INC40LzQtdC10YLRgdGPINC+0YHRgtCw0YLQvtC6INGC0L7QstCw0YDQsCDQvdCwINGB0LrQu9Cw0LTQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3YXJlaG91c2VJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIGlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2VJZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5vbk9yZGVyICYmIHRoaXMuc3RvY2tDb3VudD8uZmluZCgoc2MpID0+IHNjLndhcmVob3VzZUlkID09PSB3YXJlaG91c2VJZCkgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC+0L7QsdGJ0LXQvdC40LUg0L7QsSDQvtGC0YHRg9GC0YHRgtCy0LjQuCDRgtC+0LLQsNGA0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Tm90U3RvY2tNZXNzYWdlKHdhcmVob3VzZTogU2NJV2FyZWhvdXNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMub25PcmRlciA/PyB0aGlzLmlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2UuaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGxhbmluZ0RhdGUgPSB0aGlzLnByb3BlcnRpZXM/LnBsYW5pbmdJbmNvbWluZ0RhdGUgPz8gdGhpcy5wcm9wZXJ0aWVzPy5wbGFuaW5nUHJvZHVjdGlvbkRhdGU7XG5cbiAgICAgICAgaWYgKCF3YXJlaG91c2UuaXNNYWluIHx8IHBsYW5pbmdEYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAn0KDQsNGB0LrRg9C/0LjQu9C4JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcywgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgIGNvbnN0IGRheXNEaWZmID0gVHVpRGF5Lmxlbmd0aEJldHdlZW4oVHVpRGF5LmN1cnJlbnRMb2NhbCgpLCBUdWlEYXkubm9ybWFsaXplUGFyc2UocGxhbmluZ0RhdGUsICdETVknKSk7XG5cbiAgICAgICAgc3dpdGNoIChkYXlzRGlmZikge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIHJldHVybiAn0JHRg9C00LXRgiDRgdC10LPQvtC00L3Rjyc7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQkdGD0LTQtdGCINC30LDQstGC0YDQsCc7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQkdGD0LTQtdGCINC/0L7RgdC70LXQt9Cw0LLRgtGA0LAnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYNCe0LbQuNC00LDQtdGC0YHRjyAke3BsYW5pbmdEYXRlfWA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jYXRlZ29yeS1wcm9kdWN0LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnktcHJvZHVjdC1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjSVNvcnRPcmRlciB9IGZyb20gJy4uLy4uL3BhZ2luYXRpb24nO1xuaW1wb3J0IHsgU2NQcm9wZXJ0eUZpbHRlcnMgfSBmcm9tICcuL3NjLXByb3BlcnR5LWZpbHRlcnMnO1xuXG4vKipcbiAqINCc0L7QtNC10LvRjCDQtNCw0L3QvdGL0YUg0L/QsNGA0LDQvNC10YLRgNC+0LIg0LfQsNC/0YDQvtGB0LAg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjSUNhdGVnb3J5UHJvZHVjdFBhcmFtcyB7XG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4INC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBjYXRlZ29yeUlkPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2x1ZyDQutCw0YLQtdCz0L7RgNC40Lgg0YLQvtCy0LDRgNC+0LIuXG4gICAgICovXG4gICAgY2F0ZWdvcnlTbHVnPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J/QsNGA0LDQvNC10YLRgNGLINGE0LjQu9GM0YLRgNCw0YbQuNC4LlxuICAgICAqL1xuICAgIGZpbHRlcnM/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQodGC0YDQvtC60LAg0LTQu9GPINC/0L7QuNGB0LrQsCDQv9GA0L7QtNGD0LrRgtC+0LIuXG4gICAgICAgICAqL1xuICAgICAgICBzZWFyY2g/OiBzdHJpbmc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0LLQtdGA0L3Rg9GC0Ywg0YLQvtC70YzQutC+INGA0LDQvdC10LUg0LfQsNC60LDQt9Cw0L3QvdGL0LUg0L/RgNC+0LTRg9C60YLRiyDRg9C60LDQt9Cw0L3QvdC+0LPQviDQutC70LjQtdC90YLQsC5cbiAgICAgICAgICovXG4gICAgICAgIG9ubHlPcmRlcmVkPzogYm9vbGVhbjtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQstC10YDQvdGD0YLRjCDRgtC+0LvRjNC60L4g0LjQt9Cx0YDQsNC90L3Ri9C1INC/0YDQvtC00YPQutGC0Ysg0LrQu9C40LXQvdGC0LAuXG4gICAgICAgICAqL1xuICAgICAgICBvbmx5RmF2b3JpdGU/OiBib29sZWFuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INCy0LXRgNC90YPRgtGMINGC0L7Qu9GM0LrQviDQv9GA0L7QtNGD0LrRgtGLINC90LAg0LrQvtGC0L7RgNGL0LUg0LTQtdC50YHRgtCy0YPRjtGCINGB0LrQuNC00LrQuCDQtNC70Y8g0LrQu9C40LXQvdGC0LAuXG4gICAgICAgICAqL1xuICAgICAgICBvbmx5RGlzY291bnRlZD86IGJvb2xlYW47XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCh0L/QuNGB0L7QuiDRhNC40LvRjNGC0YDQvtCyINC/0L4g0YHQstC+0LnRgdGC0LLQsNC8INC/0YDQvtC00YPQutGC0L7QsiDQsiDRhNC+0YDQvNCw0YLQtSDQutC70Y7Rhy0+0LfQvdCw0YfQtdC90LjQtS5cbiAgICAgICAgICovXG4gICAgICAgIHByb3BlcnRpZXM/OiBTY1Byb3BlcnR5RmlsdGVycztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICog0J/QsNGA0LDQvNC10YLRgNGLINGB0L7RgNGC0LjRgNC+0LLQutC4LlxuICAgICAqL1xuICAgIHNvcnQ/OiBTY0lTb3J0T3JkZXI8J25hbWUnIHwgJ2luX3N0b2NrJyB8ICdjb3N0Jz47XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvcGVydHktZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9pbnRlcmZhY2VzL3NjLXByb3BlcnR5LWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjSVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vcGFnaW5hdGlvbic7XG5cbi8qKlxuICog0KTQuNC70YzRgtGA0Ysg0L/QviDRgdCy0L7QudGB0YLQstCw0Lwg0L/RgNC+0LTRg9C60YLQvtCyLlxuICovXG5leHBvcnQgdHlwZSBTY1Byb3BlcnR5RmlsdGVycyA9IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4gfCBzdHJpbmdbXSB8IFNjSVJhbmdlRmlsdGVyPHN0cmluZz4+O1xuIl19
|