@snabcentr/client-ui 4.21.0 → 4.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/alerts/confirm-alert/sc-confirm-alert.component.d.ts +22 -0
  2. package/alerts/index.d.ts +1 -0
  3. package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +1 -1
  4. package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +3 -3
  5. package/catalog/input-quantity/sc-input-quantity.component.d.ts +17 -1
  6. package/esm2022/alerts/confirm-alert/sc-confirm-alert.component.mjs +29 -0
  7. package/esm2022/alerts/index.mjs +2 -0
  8. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +4 -3
  9. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +5 -16
  10. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +24 -4
  11. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +21 -11
  12. package/esm2022/helpers/sc-api-error-helper.mjs +25 -0
  13. package/esm2022/helpers/sc-file-helper.mjs +29 -0
  14. package/esm2022/order/draft/helpers/sc-draft-list-helper.mjs +83 -0
  15. package/esm2022/order/draft/models/sc-i-draft-list-item.mjs +2 -0
  16. package/esm2022/order/draft/profstroy/actualization-panel/sc-profstroy-actualization-panel.component.mjs +73 -0
  17. package/esm2022/order/draft/profstroy/badge/sc-profstroy-badge.component.mjs +21 -0
  18. package/esm2022/order/draft/profstroy/badges/sc-profstroy-draft-badges.component.mjs +31 -0
  19. package/esm2022/order/draft/profstroy/create-dialog/sc-profstroy-draft-create-dialog.component.mjs +139 -0
  20. package/esm2022/order/draft/profstroy/enums/sc-profstroy-draft-state.mjs +32 -0
  21. package/esm2022/order/draft/profstroy/helpers/sc-profstroy-draft-helper.mjs +94 -0
  22. package/esm2022/order/draft/profstroy/index.mjs +8 -0
  23. package/esm2022/order/draft/profstroy/models/sc-i-profstroy-draft-state-view.mjs +2 -0
  24. package/esm2022/order/draft/sc-draft.component.mjs +148 -14
  25. package/esm2022/order/draft/services/sc-draft-expiration-clock.service.mjs +42 -0
  26. package/esm2022/order/draft/services/sc-draft-list-updates.service.mjs +288 -0
  27. package/esm2022/order/index.mjs +6 -1
  28. package/esm2022/order/new-order-items/sc-new-order-items.component.mjs +11 -3
  29. package/esm2022/order/order-form/sc-order-form.component.mjs +4 -2
  30. package/esm2022/order/order-item/sc-order-item.component.mjs +37 -5
  31. package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +254 -47
  32. package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +1 -1
  33. package/esm2022/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.mjs +15 -3
  34. package/esm2022/pipes/sc-format-date.mjs +1 -1
  35. package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +30 -0
  36. package/esm2022/providers/index.mjs +2 -1
  37. package/esm2022/providers/sc-date-formatter.mjs +1 -1
  38. package/esm2022/public-api.mjs +2 -2
  39. package/esm2022/samples/sc-sample.module.mjs +10 -3
  40. package/esm2022/services/index.mjs +1 -2
  41. package/feedback/feedback-form/sc-feedback-form.component.d.ts +1 -1
  42. package/fesm2022/snabcentr-client-ui.mjs +1399 -477
  43. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  44. package/helpers/sc-api-error-helper.d.ts +18 -0
  45. package/helpers/sc-file-helper.d.ts +13 -0
  46. package/order/draft/helpers/sc-draft-list-helper.d.ts +51 -0
  47. package/order/draft/models/sc-i-draft-list-item.d.ts +14 -0
  48. package/order/draft/profstroy/actualization-panel/sc-profstroy-actualization-panel.component.d.ts +58 -0
  49. package/order/draft/profstroy/badge/sc-profstroy-badge.component.d.ts +12 -0
  50. package/order/draft/profstroy/badges/sc-profstroy-draft-badges.component.d.ts +21 -0
  51. package/order/draft/profstroy/create-dialog/sc-profstroy-draft-create-dialog.component.d.ts +65 -0
  52. package/order/draft/profstroy/enums/sc-profstroy-draft-state.d.ts +29 -0
  53. package/order/draft/profstroy/helpers/sc-profstroy-draft-helper.d.ts +33 -0
  54. package/order/draft/profstroy/index.d.ts +7 -0
  55. package/order/draft/profstroy/models/sc-i-profstroy-draft-state-view.d.ts +17 -0
  56. package/order/draft/sc-draft.component.d.ts +73 -1
  57. package/order/draft/services/sc-draft-expiration-clock.service.d.ts +29 -0
  58. package/order/draft/services/sc-draft-list-updates.service.d.ts +158 -0
  59. package/order/index.d.ts +5 -0
  60. package/order/new-order-items/sc-new-order-items.component.d.ts +9 -1
  61. package/order/order-form/sc-order-form.component.d.ts +1 -0
  62. package/order/order-item/sc-order-item.component.d.ts +25 -1
  63. package/order/order-items-list/sc-order-items-list.component.d.ts +132 -9
  64. package/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.d.ts +13 -1
  65. package/package.json +3 -2
  66. package/pipes/sc-format-date.d.ts +1 -1
  67. package/providers/cleanup-recaptcha-artifacts.d.ts +7 -0
  68. package/providers/index.d.ts +1 -0
  69. package/providers/sc-date-formatter.d.ts +1 -1
  70. package/public-api.d.ts +1 -1
  71. package/release_notes.tmp +2 -10
  72. package/samples/sc-sample.module.d.ts +2 -1
  73. package/services/index.d.ts +0 -1
  74. package/styles/tailwind/tailwind.scss +43 -40
  75. package/esm2022/services/sc-scripts.service.mjs +0 -106
  76. package/esm2022/smart-captcha/index.mjs +0 -5
  77. package/esm2022/smart-captcha/interfaces/index.mjs +0 -6
  78. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-api.mjs +0 -2
  79. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-event.mjs +0 -2
  80. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-language.mjs +0 -2
  81. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-render-params.mjs +0 -2
  82. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-settings.mjs +0 -2
  83. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-window.mjs +0 -2
  84. package/esm2022/smart-captcha/sc-smart-captcha.component.mjs +0 -167
  85. package/esm2022/smart-captcha/services/index.mjs +0 -2
  86. package/esm2022/smart-captcha/services/sc-smart-captcha-loader.service.mjs +0 -87
  87. package/esm2022/smart-captcha/tokens/index.mjs +0 -3
  88. package/esm2022/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.mjs +0 -8
  89. package/esm2022/smart-captcha/tokens/sc-smart-captcha-settings.token.mjs +0 -6
  90. package/services/sc-scripts.service.d.ts +0 -51
  91. package/smart-captcha/index.d.ts +0 -4
  92. package/smart-captcha/interfaces/index.d.ts +0 -5
  93. package/smart-captcha/interfaces/sc-smart-captcha-api.d.ts +0 -36
  94. package/smart-captcha/interfaces/sc-smart-captcha-event.d.ts +0 -4
  95. package/smart-captcha/interfaces/sc-smart-captcha-language.d.ts +0 -4
  96. package/smart-captcha/interfaces/sc-smart-captcha-render-params.d.ts +0 -16
  97. package/smart-captcha/interfaces/sc-smart-captcha-settings.d.ts +0 -16
  98. package/smart-captcha/interfaces/sc-smart-captcha-window.d.ts +0 -14
  99. package/smart-captcha/sc-smart-captcha.component.d.ts +0 -92
  100. package/smart-captcha/services/index.d.ts +0 -1
  101. package/smart-captcha/services/sc-smart-captcha-loader.service.d.ts +0 -50
  102. package/smart-captcha/tokens/index.d.ts +0 -2
  103. package/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.d.ts +0 -5
  104. package/smart-captcha/tokens/sc-smart-captcha-settings.token.d.ts +0 -6
@@ -0,0 +1,288 @@
1
+ import { computed, DestroyRef, inject, Injectable, signal } from '@angular/core';
2
+ import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
3
+ import { ScOrderDraftsService } from '@snabcentr/client-core';
4
+ import { TuiAlertService } from '@taiga-ui/core';
5
+ import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
6
+ import { catchError, defaultIfEmpty, distinctUntilChanged, EMPTY, finalize, map, Subject, switchMap, tap } from 'rxjs';
7
+ import { ScConfirmAlertComponent } from '../../../alerts/confirm-alert/sc-confirm-alert.component';
8
+ import { ScDraftListHelper } from '../helpers/sc-draft-list-helper';
9
+ import { ScDraftExpirationClockService } from './sc-draft-expiration-clock.service';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * Сервис загрузки и фонового обновления страницы списка черновиков. Предоставляется компонентом списка.
13
+ *
14
+ * Страница загружается по параметрам из {@link connect} с индикатором загрузки, после показа загруженной страницы сервис сообщает о её загрузке.
15
+ *
16
+ * Если состав страницы не изменился, черновики обновляются на месте с сохранением раскрытых строк. Если черновики появились, пропали
17
+ * или поменялся порядок, полученная страница откладывается и показывается уведомление с предложением перезагрузить список.
18
+ * После отказа уведомление о том же составе не повторяется. Черновики Профстрой в обработке дополнительно опрашиваются лёгким запросом,
19
+ * текущий момент для меток срока берётся из общего источника {@link ScDraftExpirationClockService}.
20
+ */
21
+ export class ScDraftListUpdatesService {
22
+ /**
23
+ * Инициализирует экземпляр класса {@link ScDraftListUpdatesService}.
24
+ */
25
+ constructor() {
26
+ /**
27
+ * Сервис для работы с черновиками заказов.
28
+ */
29
+ this.draftsService = inject(ScOrderDraftsService);
30
+ /**
31
+ * Сервис уведомлений.
32
+ */
33
+ this.alerts = inject(TuiAlertService);
34
+ /**
35
+ * Сервис текущего момента для меток срока актуализации.
36
+ */
37
+ this.expirationClock = inject(ScDraftExpirationClockService);
38
+ /**
39
+ * Ссылка для автоматического управления уничтожением зависимостей.
40
+ */
41
+ this.destroyRef = inject(DestroyRef);
42
+ /**
43
+ * Элементы текущей страницы списка.
44
+ */
45
+ this.pageItems = signal(null);
46
+ /**
47
+ * Данные пагинации текущей страницы.
48
+ */
49
+ this.pageMeta = signal(null);
50
+ /**
51
+ * Признак загрузки страницы списка по действию пользователя.
52
+ */
53
+ this.pageLoading = signal(false);
54
+ /**
55
+ * {@link Subject} события загрузки страницы списка по действию пользователя.
56
+ */
57
+ this.pageLoadedSubject = new Subject();
58
+ /**
59
+ * Страница с изменённым составом, которая ждёт решения пользователя.
60
+ */
61
+ this.pendingPage = null;
62
+ /**
63
+ * Подпись состава страницы, от перезагрузки которой пользователь отказался.
64
+ */
65
+ this.declinedSignature = null;
66
+ /**
67
+ * Номера черновиков в обработке, которых не оказалось в ответе опроса: черновики удалены, и опрашивать их не нужно.
68
+ */
69
+ this.missingIds = signal(new Set());
70
+ /**
71
+ * Номера раскрытых черновиков, перезапрос которых уже выполняется.
72
+ */
73
+ this.refreshingIds = new Set();
74
+ /**
75
+ * Подписка на показанное уведомление об изменении списка.
76
+ */
77
+ this.alertSubscription = null;
78
+ /**
79
+ * Номера черновиков Профстрой в обработке на текущей странице.
80
+ */
81
+ this.processingIds = computed(() => (this.pageItems() ?? [])
82
+ .filter(({ order }) => order.isProfstroy && order.actualization?.isProcessing === true && !this.missingIds().has(order.id))
83
+ .map(({ order }) => order.id), { equal: (previous, current) => previous.join(',') === current.join(',') });
84
+ /**
85
+ * Элементы текущей страницы списка.
86
+ */
87
+ this.items = this.pageItems.asReadonly();
88
+ /**
89
+ * Данные пагинации текущей страницы.
90
+ */
91
+ this.meta = this.pageMeta.asReadonly();
92
+ /**
93
+ * Текущий момент для определения состояния черновиков Профстрой из общего источника.
94
+ */
95
+ this.now = toSignal(this.expirationClock.now$, { initialValue: new Date() });
96
+ /**
97
+ * Признак загрузки страницы списка по действию пользователя (фильтры, сортировка, пагинация). Фоновые проверки его не включают.
98
+ */
99
+ this.loading = this.pageLoading.asReadonly();
100
+ /**
101
+ * {@link Observable} события загрузки страницы списка по действию пользователя: страница уже показана.
102
+ */
103
+ this.pageLoaded$ = this.pageLoadedSubject.asObservable();
104
+ toObservable(this.processingIds)
105
+ .pipe(switchMap((ids) => (ids.length > 0 ? this.draftsService.watchShortList$(ids).pipe(map((drafts) => ({ ids, drafts }))) : EMPTY)), takeUntilDestroyed(this.destroyRef))
106
+ .subscribe(({ ids, drafts }) => {
107
+ this.markMissing(ids, drafts);
108
+ this.applyDrafts(drafts);
109
+ });
110
+ this.destroyRef.onDestroy(() => {
111
+ this.dismissAlert();
112
+ });
113
+ }
114
+ /**
115
+ * Подключает к сервису параметры запроса текущей страницы: при каждом изменении параметров загружает страницу с индикатором загрузки
116
+ * и сообщает о её загрузке, а по текущим параметрам в фоне проверяет изменения списка. Если страница не загрузилась, остаётся текущая,
117
+ * а смена параметров загружает список заново.
118
+ *
119
+ * @param params$ {@link Observable} параметров запроса текущей страницы.
120
+ */
121
+ connect(params$) {
122
+ params$
123
+ .pipe(switchMap((params) => this.draftsService.getList$(params).pipe(tap({
124
+ subscribe: () => {
125
+ this.pageLoading.set(true);
126
+ },
127
+ finalize: () => {
128
+ this.pageLoading.set(false);
129
+ },
130
+ }), catchError(() => EMPTY))), takeUntilDestroyed(this.destroyRef))
131
+ .subscribe((page) => {
132
+ this.setPage(page);
133
+ this.pageLoadedSubject.next();
134
+ });
135
+ params$
136
+ .pipe(distinctUntilChanged((previous, current) => previous.toString() === current.toString()), switchMap((params) => this.draftsService.watchList$(params)), takeUntilDestroyed(this.destroyRef))
137
+ .subscribe((page) => {
138
+ this.checkPage(page);
139
+ });
140
+ }
141
+ /**
142
+ * Подставляет в строку текущей страницы полные данные черновика. Опрос черновиков в обработке сразу учитывает их состояние.
143
+ *
144
+ * @param draft Полные данные черновика.
145
+ */
146
+ setFullDraft(draft) {
147
+ const items = this.pageItems();
148
+ const item = items?.find(({ order }) => order.id === draft.id);
149
+ if (!items || !item) {
150
+ return;
151
+ }
152
+ item.order = draft;
153
+ this.pageItems.set([...items]);
154
+ }
155
+ /**
156
+ * Показывает страницу, загруженную по действию пользователя: строки свёрнуты, отложенные данные и уведомление сбрасываются.
157
+ *
158
+ * @param page Страница списка.
159
+ */
160
+ setPage(page) {
161
+ this.pendingPage = null;
162
+ this.declinedSignature = null;
163
+ this.missingIds.set(new Set());
164
+ this.dismissAlert();
165
+ this.pageItems.set(page.data.map((order) => ({ order, isExpanded: false })));
166
+ this.pageMeta.set(page.meta);
167
+ }
168
+ /**
169
+ * Сравнивает полученную в фоне страницу с текущей: при том же составе обновляет черновики на месте, иначе откладывает страницу и предлагает перезагрузить список.
170
+ *
171
+ * @param page Страница, полученная в фоне.
172
+ */
173
+ checkPage(page) {
174
+ const items = this.pageItems();
175
+ const meta = this.pageMeta();
176
+ if (!items || !meta) {
177
+ return;
178
+ }
179
+ if (ScDraftListHelper.isSamePage(items, meta.total, page.data, page.meta.total)) {
180
+ this.pendingPage = null;
181
+ this.declinedSignature = null;
182
+ this.dismissAlert();
183
+ this.applyDrafts(page.data);
184
+ return;
185
+ }
186
+ this.pendingPage = page;
187
+ if (ScDraftListHelper.getSignature(page) !== this.declinedSignature) {
188
+ this.showAlert();
189
+ }
190
+ }
191
+ /**
192
+ * Обновляет на месте краткие данные черновиков и перезапрашивает полные данные раскрытых черновиков, состояние которых изменилось.
193
+ * Перезапрос раскрытого черновика не повторяется, пока выполняется предыдущий. Ошибка перезапроса не показывается:
194
+ * это фоновое обновление, его повторит следующий опрос.
195
+ *
196
+ * @param drafts Краткие данные черновиков.
197
+ */
198
+ applyDrafts(drafts) {
199
+ const items = this.pageItems();
200
+ if (!items) {
201
+ return;
202
+ }
203
+ ScDraftListHelper.getChangedFullDraftIds(items, drafts)
204
+ .filter((draftId) => !this.refreshingIds.has(draftId))
205
+ .forEach((draftId) => {
206
+ this.refreshingIds.add(draftId);
207
+ this.draftsService
208
+ .fetch$(draftId)
209
+ .pipe(catchError(() => EMPTY), finalize(() => {
210
+ this.refreshingIds.delete(draftId);
211
+ }), takeUntilDestroyed(this.destroyRef))
212
+ .subscribe();
213
+ });
214
+ this.pageItems.set(ScDraftListHelper.merge(items, drafts));
215
+ }
216
+ /**
217
+ * Запоминает черновики, которых не оказалось в ответе опроса, чтобы больше их не опрашивать.
218
+ *
219
+ * @param ids Номера опрошенных черновиков.
220
+ * @param drafts Полученные краткие данные черновиков.
221
+ */
222
+ markMissing(ids, drafts) {
223
+ const missing = ids.filter((id) => !drafts.some((draft) => draft.id === id));
224
+ if (missing.length > 0) {
225
+ this.missingIds.update((current) => new Set([...current, ...missing]));
226
+ }
227
+ }
228
+ /**
229
+ * Показывает уведомление об изменении списка, если оно ещё не показано. Ответ «Нет» и закрытие уведомления считаются отказом
230
+ * от перезагрузки отложенного состава.
231
+ */
232
+ showAlert() {
233
+ if (this.alertSubscription) {
234
+ return;
235
+ }
236
+ this.alertSubscription = this.alerts
237
+ .open(new PolymorpheusComponent(ScConfirmAlertComponent), {
238
+ label: 'Список черновиков изменился',
239
+ data: { content: 'Перезагрузить список?' },
240
+ appearance: 'info',
241
+ autoClose: 0,
242
+ })
243
+ .pipe(defaultIfEmpty(false), finalize(() => {
244
+ this.alertSubscription = null;
245
+ }))
246
+ .subscribe((isConfirmed) => {
247
+ if (isConfirmed) {
248
+ this.applyPendingPage();
249
+ }
250
+ else {
251
+ this.declinePendingPage();
252
+ }
253
+ });
254
+ }
255
+ /**
256
+ * Закрывает показанное уведомление об изменении списка.
257
+ */
258
+ dismissAlert() {
259
+ this.alertSubscription?.unsubscribe();
260
+ this.alertSubscription = null;
261
+ }
262
+ /**
263
+ * Показывает отложенную страницу с сохранением раскрытых строк. Уведомление закрывается всякий раз, когда отложенная страница
264
+ * сбрасывается, поэтому при согласии пользователя она всегда есть.
265
+ */
266
+ applyPendingPage() {
267
+ const page = this.pendingPage;
268
+ if (!page) {
269
+ return;
270
+ }
271
+ this.pendingPage = null;
272
+ this.missingIds.set(new Set());
273
+ this.pageItems.set(ScDraftListHelper.fromPage(this.pageItems() ?? [], page.data));
274
+ this.pageMeta.set(page.meta);
275
+ }
276
+ /**
277
+ * Запоминает отказ от перезагрузки отложенного состава: уведомление о нём больше не показывается, пока состав снова не изменится.
278
+ */
279
+ declinePendingPage() {
280
+ this.declinedSignature = this.pendingPage ? ScDraftListHelper.getSignature(this.pendingPage) : null;
281
+ }
282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScDraftListUpdatesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
283
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScDraftListUpdatesService }); }
284
+ }
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScDraftListUpdatesService, decorators: [{
286
+ type: Injectable
287
+ }], ctorParameters: () => [] });
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZHJhZnQtbGlzdC11cGRhdGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvb3JkZXIvZHJhZnQvc2VydmljZXMvc2MtZHJhZnQtbGlzdC11cGRhdGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQW1FLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqSixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFcEY7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQXNHbEM7O09BRUc7SUFDSDtRQXhHQTs7V0FFRztRQUNjLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFOUQ7O1dBRUc7UUFDYyxXQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxD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QUFXLENBQUM7UUFFOUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQjtRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hHLENBQUM7K0dBMVVRLHlCQUF5QjttSEFBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNvbXB1dGVkLCBEZXN0cm95UmVmLCBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2NJUGFnaW5hdGUsIFNjSVBhZ2luYXRpb25NZXRhLCBTY09yZGVyRHJhZnQsIFNjT3JkZXJEcmFmdFNob3J0LCBTY09yZGVyRHJhZnRzU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpQWxlcnRTZXJ2aWNlIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgUG9seW1vcnBoZXVzQ29tcG9uZW50IH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWZhdWx0SWZFbXB0eSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEVNUFRZLCBmaW5hbGl6ZSwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjQ29uZmlybUFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYWxlcnRzL2NvbmZpcm0tYWxlcnQvc2MtY29uZmlybS1hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NEcmFmdExpc3RIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3NjLWRyYWZ0LWxpc3QtaGVscGVyJztcbmltcG9ydCB7IFNjSURyYWZ0TGlzdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvc2MtaS1kcmFmdC1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgU2NEcmFmdEV4cGlyYXRpb25DbG9ja1NlcnZpY2UgfSBmcm9tICcuL3NjLWRyYWZ0LWV4cGlyYXRpb24tY2xvY2suc2VydmljZSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC30LDQs9GA0YPQt9C60Lgg0Lgg0YTQvtC90L7QstC+0LPQviDQvtCx0L3QvtCy0LvQtdC90LjRjyDRgdGC0YDQsNC90LjRhtGLINGB0L/QuNGB0LrQsCDRh9C10YDQvdC+0LLQuNC60L7Qsi4g0J/RgNC10LTQvtGB0YLQsNCy0LvRj9C10YLRgdGPINC60L7QvNC/0L7QvdC10L3RgtC+0Lwg0YHQv9C40YHQutCwLlxuICpcbiAqINCh0YLRgNCw0L3QuNGG0LAg0LfQsNCz0YDRg9C20LDQtdGC0YHRjyDQv9C+INC/0LDRgNCw0LzQtdGC0YDQsNC8INC40Lcge0BsaW5rIGNvbm5lY3R9INGBINC40L3QtNC40LrQsNGC0L7RgNC+0Lwg0LfQsNCz0YDRg9C30LrQuCwg0L/QvtGB0LvQtSDQv9C+0LrQsNC30LAg0LfQsNCz0YDRg9C20LXQvdC90L7QuSDRgdGC0YDQsNC90LjRhtGLINGB0LXRgNCy0LjRgSDRgdC+0L7QsdGJ0LDQtdGCINC+INC10ZEg0LfQsNCz0YDRg9C30LrQtS5cbiAqXG4gKiDQldGB0LvQuCDRgdC+0YHRgtCw0LIg0YHRgtGA0LDQvdC40YbRiyDQvdC1INC40LfQvNC10L3QuNC70YHRjywg0YfQtdGA0L3QvtCy0LjQutC4INC+0LHQvdC+0LLQu9GP0Y7RgtGB0Y8g0L3QsCDQvNC10YHRgtC1INGBINGB0L7RhdGA0LDQvdC10L3QuNC10Lwg0YDQsNGB0LrRgNGL0YLRi9GFINGB0YLRgNC+0LouINCV0YHQu9C4INGH0LXRgNC90L7QstC40LrQuCDQv9C+0Y/QstC40LvQuNGB0YwsINC/0YDQvtC/0LDQu9C4XG4gKiDQuNC70Lgg0L/QvtC80LXQvdGP0LvRgdGPINC/0L7RgNGP0LTQvtC6LCDQv9C+0LvRg9GH0LXQvdC90LDRjyDRgdGC0YDQsNC90LjRhtCwINC+0YLQutC70LDQtNGL0LLQsNC10YLRgdGPINC4INC/0L7QutCw0LfRi9Cy0LDQtdGC0YHRjyDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1INGBINC/0YDQtdC00LvQvtC20LXQvdC40LXQvCDQv9C10YDQtdC30LDQs9GA0YPQt9C40YLRjCDRgdC/0LjRgdC+0LouXG4gKiDQn9C+0YHQu9C1INC+0YLQutCw0LfQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1INC+INGC0L7QvCDQttC1INGB0L7RgdGC0LDQstC1INC90LUg0L/QvtCy0YLQvtGA0Y/QtdGC0YHRjy4g0KfQtdGA0L3QvtCy0LjQutC4INCf0YDQvtGE0YHRgtGA0L7QuSDQsiDQvtCx0YDQsNCx0L7RgtC60LUg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L4g0L7Qv9GA0LDRiNC40LLQsNGO0YLRgdGPINC70ZHQs9C60LjQvCDQt9Cw0L/RgNC+0YHQvtC8LFxuICog0YLQtdC60YPRidC40Lkg0LzQvtC80LXQvdGCINC00LvRjyDQvNC10YLQvtC6INGB0YDQvtC60LAg0LHQtdGA0ZHRgtGB0Y8g0LjQtyDQvtCx0YnQtdCz0L4g0LjRgdGC0L7Rh9C90LjQutCwIHtAbGluayBTY0RyYWZ0RXhwaXJhdGlvbkNsb2NrU2VydmljZX0uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTY0RyYWZ0TGlzdFVwZGF0ZXNTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDRh9C10YDQvdC+0LLQuNC60LDQvNC4INC30LDQutCw0LfQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJhZnRzU2VydmljZSA9IGluamVjdChTY09yZGVyRHJhZnRzU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPQstC10LTQvtC80LvQtdC90LjQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0cyA9IGluamVjdChUdWlBbGVydFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINGC0LXQutGD0YnQtdCz0L4g0LzQvtC80LXQvdGC0LAg0LTQu9GPINC80LXRgtC+0Log0YHRgNC+0LrQsCDQsNC60YLRg9Cw0LvQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBleHBpcmF0aW9uQ2xvY2sgPSBpbmplY3QoU2NEcmFmdEV4cGlyYXRpb25DbG9ja1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHRgdGL0LvQutCwINC00LvRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQvtCz0L4g0YPQv9GA0LDQstC70LXQvdC40Y8g0YPQvdC40YfRgtC+0LbQtdC90LjQtdC8INC30LDQstC40YHQuNC80L7RgdGC0LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiDQrdC70LXQvNC10L3RgtGLINGC0LXQutGD0YnQtdC5INGB0YLRgNCw0L3QuNGG0Ysg0YHQv9C40YHQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZUl0ZW1zID0gc2lnbmFsPFNjSURyYWZ0TGlzdEl0ZW1bXSB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC/0LDQs9C40L3QsNGG0LjQuCDRgtC10LrRg9GJ0LXQuSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZU1ldGEgPSBzaWduYWw8U2NJUGFnaW5hdGlvbk1ldGEgfCBudWxsPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC30LDQs9GA0YPQt9C60Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC/0LjRgdC60LAg0L/QviDQtNC10LnRgdGC0LLQuNGOINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDRgdC+0LHRi9GC0LjRjyDQt9Cw0LPRgNGD0LfQutC4INGB0YLRgNCw0L3QuNGG0Ysg0YHQv9C40YHQutCwINC/0L4g0LTQtdC50YHRgtCy0LjRjiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlTG9hZGVkU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodGC0YDQsNC90LjRhtCwINGBINC40LfQvNC10L3RkdC90L3Ri9C8INGB0L7RgdGC0LDQstC+0LwsINC60L7RgtC+0YDQsNGPINC20LTRkdGCINGA0LXRiNC10L3QuNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHBlbmRpbmdQYWdlOiBTY0lQYWdpbmF0ZTxTY09yZGVyRHJhZnRTaG9ydD4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqINCf0L7QtNC/0LjRgdGMINGB0L7RgdGC0LDQstCwINGB0YLRgNCw0L3QuNGG0YssINC+0YIg0L/QtdGA0LXQt9Cw0LPRgNGD0LfQutC4INC60L7RgtC+0YDQvtC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQvtGC0LrQsNC30LDQu9GB0Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZWNsaW5lZFNpZ25hdHVyZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiDQndC+0LzQtdGA0LAg0YfQtdGA0L3QvtCy0LjQutC+0LIg0LIg0L7QsdGA0LDQsdC+0YLQutC1LCDQutC+0YLQvtGA0YvRhSDQvdC1INC+0LrQsNC30LDQu9C+0YHRjCDQsiDQvtGC0LLQtdGC0LUg0L7Qv9GA0L7RgdCwOiDRh9C10YDQvdC+0LLQuNC60Lgg0YPQtNCw0LvQtdC90YssINC4INC+0L/RgNCw0YjQuNCy0LDRgtGMINC40YUg0L3QtSDQvdGD0LbQvdC+LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWlzc2luZ0lkcyA9IHNpZ25hbDxSZWFkb25seVNldDxudW1iZXI+PihuZXcgU2V0PG51bWJlcj4oKSk7XG5cbiAgICAvKipcbiAgICAgKiDQndC+0LzQtdGA0LAg0YDQsNGB0LrRgNGL0YLRi9GFINGH0LXRgNC90L7QstC40LrQvtCyLCDQv9C10YDQtdC30LDQv9GA0L7RgSDQutC+0YLQvtGA0YvRhSDRg9C20LUg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hpbmdJZHMgPSBuZXcgU2V0PG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqINCf0L7QtNC/0LjRgdC60LAg0L3QsCDQv9C+0LrQsNC30LDQvdC90L7QtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1INC+0LEg0LjQt9C80LXQvdC10L3QuNC4INGB0L/QuNGB0LrQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFsZXJ0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqINCd0L7QvNC10YDQsCDRh9C10YDQvdC+0LLQuNC60L7QsiDQn9GA0L7RhNGB0YLRgNC+0Lkg0LIg0L7QsdGA0LDQsdC+0YLQutC1INC90LAg0YLQtdC60YPRidC10Lkg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NpbmdJZHMgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICh0aGlzLnBhZ2VJdGVtcygpID8/IFtdKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHsgb3JkZXIgfSkgPT4gb3JkZXIuaXNQcm9mc3Ryb3kgJiYgb3JkZXIuYWN0dWFsaXphdGlvbj8uaXNQcm9jZXNzaW5nID09PSB0cnVlICYmICF0aGlzLm1pc3NpbmdJZHMoKS5oYXMob3JkZXIuaWQpKVxuICAgICAgICAgICAgICAgIC5tYXAoKHsgb3JkZXIgfSkgPT4gb3JkZXIuaWQpLFxuICAgICAgICB7IGVxdWFsOiAocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzLmpvaW4oJywnKSA9PT0gY3VycmVudC5qb2luKCcsJykgfVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQrdC70LXQvNC10L3RgtGLINGC0LXQutGD0YnQtdC5INGB0YLRgNCw0L3QuNGG0Ysg0YHQv9C40YHQutCwLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpdGVtcyA9IHRoaXMucGFnZUl0ZW1zLmFzUmVhZG9ubHkoKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQv9Cw0LPQuNC90LDRhtC40Lgg0YLQtdC60YPRidC10Lkg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWV0YSA9IHRoaXMucGFnZU1ldGEuYXNSZWFkb25seSgpO1xuXG4gICAgLyoqXG4gICAgICog0KLQtdC60YPRidC40Lkg0LzQvtC80LXQvdGCINC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDRh9C10YDQvdC+0LLQuNC60L7QsiDQn9GA0L7RhNGB0YLRgNC+0Lkg0LjQtyDQvtCx0YnQtdCz0L4g0LjRgdGC0L7Rh9C90LjQutCwLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBub3cgPSB0b1NpZ25hbCh0aGlzLmV4cGlyYXRpb25DbG9jay5ub3ckLCB7IGluaXRpYWxWYWx1ZTogbmV3IERhdGUoKSB9KTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC30LDQs9GA0YPQt9C60Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC/0LjRgdC60LAg0L/QviDQtNC10LnRgdGC0LLQuNGOINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAo0YTQuNC70YzRgtGA0YssINGB0L7RgNGC0LjRgNC+0LLQutCwLCDQv9Cw0LPQuNC90LDRhtC40Y8pLiDQpNC+0L3QvtCy0YvQtSDQv9GA0L7QstC10YDQutC4INC10LPQviDQvdC1INCy0LrQu9GO0YfQsNGO0YIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmcgPSB0aGlzLnBhZ2VMb2FkaW5nLmFzUmVhZG9ubHkoKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0LHRi9GC0LjRjyDQt9Cw0LPRgNGD0LfQutC4INGB0YLRgNCw0L3QuNGG0Ysg0YHQv9C40YHQutCwINC/0L4g0LTQtdC50YHRgtCy0LjRjiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y86INGB0YLRgNCw0L3QuNGG0LAg0YPQttC1INC/0L7QutCw0LfQsNC90LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHBhZ2VMb2FkZWQkOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5wYWdlTG9hZGVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NEcmFmdExpc3RVcGRhdGVzU2VydmljZX0uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0b09ic2VydmFibGUodGhpcy5wcm9jZXNzaW5nSWRzKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChpZHMpID0+IChpZHMubGVuZ3RoID4gMCA/IHRoaXMuZHJhZnRzU2VydmljZS53YXRjaFNob3J0TGlzdCQoaWRzKS5waXBlKG1hcCgoZHJhZnRzKSA9PiAoeyBpZHMsIGRyYWZ0cyB9KSkpIDogRU1QVFkpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBpZHMsIGRyYWZ0cyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrTWlzc2luZyhpZHMsIGRyYWZ0cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseURyYWZ0cyhkcmFmdHMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc21pc3NBbGVydCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LTQutC70Y7Rh9Cw0LXRgiDQuiDRgdC10YDQstC40YHRgyDQv9Cw0YDQsNC80LXRgtGA0Ysg0LfQsNC/0YDQvtGB0LAg0YLQtdC60YPRidC10Lkg0YHRgtGA0LDQvdC40YbRizog0L/RgNC4INC60LDQttC00L7QvCDQuNC30LzQtdC90LXQvdC40Lgg0L/QsNGA0LDQvNC10YLRgNC+0LIg0LfQsNCz0YDRg9C20LDQtdGCINGB0YLRgNCw0L3QuNGG0YMg0YEg0LjQvdC00LjQutCw0YLQvtGA0L7QvCDQt9Cw0LPRgNGD0LfQutC4XG4gICAgICog0Lgg0YHQvtC+0LHRidCw0LXRgiDQviDQtdGRINC30LDQs9GA0YPQt9C60LUsINCwINC/0L4g0YLQtdC60YPRidC40Lwg0L/QsNGA0LDQvNC10YLRgNCw0Lwg0LIg0YTQvtC90LUg0L/RgNC+0LLQtdGA0Y/QtdGCINC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAuINCV0YHQu9C4INGB0YLRgNCw0L3QuNGG0LAg0L3QtSDQt9Cw0LPRgNGD0LfQuNC70LDRgdGMLCDQvtGB0YLQsNGR0YLRgdGPINGC0LXQutGD0YnQsNGPLFxuICAgICAqINCwINGB0LzQtdC90LAg0L/QsNGA0LDQvNC10YLRgNC+0LIg0LfQsNCz0YDRg9C20LDQtdGCINGB0L/QuNGB0L7QuiDQt9Cw0L3QvtCy0L4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFyYW1zJCB7QGxpbmsgT2JzZXJ2YWJsZX0g0L/QsNGA0LDQvNC10YLRgNC+0LIg0LfQsNC/0YDQvtGB0LAg0YLQtdC60YPRidC10Lkg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29ubmVjdChwYXJhbXMkOiBPYnNlcnZhYmxlPEh0dHBQYXJhbXM+KTogdm9pZCB7XG4gICAgICAgIHBhcmFtcyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYWZ0c1NlcnZpY2UuZ2V0TGlzdCQocGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBFTVBUWSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2UocGFnZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVkU3ViamVjdC5uZXh0KCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBwYXJhbXMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzLnRvU3RyaW5nKCkgPT09IGN1cnJlbnQudG9TdHJpbmcoKSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChwYXJhbXMpID0+IHRoaXMuZHJhZnRzU2VydmljZS53YXRjaExpc3QkKHBhcmFtcykpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1BhZ2UocGFnZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LTRgdGC0LDQstC70Y/QtdGCINCyINGB0YLRgNC+0LrRgyDRgtC10LrRg9GJ0LXQuSDRgdGC0YDQsNC90LjRhtGLINC/0L7Qu9C90YvQtSDQtNCw0L3QvdGL0LUg0YfQtdGA0L3QvtCy0LjQutCwLiDQntC/0YDQvtGBINGH0LXRgNC90L7QstC40LrQvtCyINCyINC+0LHRgNCw0LHQvtGC0LrQtSDRgdGA0LDQt9GDINGD0YfQuNGC0YvQstCw0LXRgiDQuNGFINGB0L7RgdGC0L7Rj9C90LjQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkcmFmdCDQn9C+0LvQvdGL0LUg0LTQsNC90L3Ri9C1INGH0LXRgNC90L7QstC40LrQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RnVsbERyYWZ0KGRyYWZ0OiBTY09yZGVyRHJhZnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnBhZ2VJdGVtcygpO1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXM/LmZpbmQoKHsgb3JkZXIgfSkgPT4gb3JkZXIuaWQgPT09IGRyYWZ0LmlkKTtcblxuICAgICAgICBpZiAoIWl0ZW1zIHx8ICFpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtLm9yZGVyID0gZHJhZnQ7XG4gICAgICAgIHRoaXMucGFnZUl0ZW1zLnNldChbLi4uaXRlbXNdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LrQsNC30YvQstCw0LXRgiDRgdGC0YDQsNC90LjRhtGDLCDQt9Cw0LPRgNGD0LbQtdC90L3Rg9GOINC/0L4g0LTQtdC50YHRgtCy0LjRjiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y86INGB0YLRgNC+0LrQuCDRgdCy0ZHRgNC90YPRgtGLLCDQvtGC0LvQvtC20LXQvdC90YvQtSDQtNCw0L3QvdGL0LUg0Lgg0YPQstC10LTQvtC80LvQtdC90LjQtSDRgdCx0YDQsNGB0YvQstCw0Y7RgtGB0Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnZSDQodGC0YDQsNC90LjRhtCwINGB0L/QuNGB0LrQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2UocGFnZTogU2NJUGFnaW5hdGU8U2NPcmRlckRyYWZ0U2hvcnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucGVuZGluZ1BhZ2UgPSBudWxsO1xuICAgICAgICB0aGlzLmRlY2xpbmVkU2lnbmF0dXJlID0gbnVsbDtcbiAgICAgICAgdGhpcy5taXNzaW5nSWRzLnNldChuZXcgU2V0PG51bWJlcj4oKSk7XG4gICAgICAgIHRoaXMuZGlzbWlzc0FsZXJ0KCk7XG4gICAgICAgIHRoaXMucGFnZUl0ZW1zLnNldChwYWdlLmRhdGEubWFwKChvcmRlcikgPT4gKHsgb3JkZXIsIGlzRXhwYW5kZWQ6IGZhbHNlIH0pKSk7XG4gICAgICAgIHRoaXMucGFnZU1ldGEuc2V0KHBhZ2UubWV0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHRgNCw0LLQvdC40LLQsNC10YIg0L/QvtC70YPRh9C10L3QvdGD0Y4g0LIg0YTQvtC90LUg0YHRgtGA0LDQvdC40YbRgyDRgSDRgtC10LrRg9GJ0LXQuTog0L/RgNC4INGC0L7QvCDQttC1INGB0L7RgdGC0LDQstC1INC+0LHQvdC+0LLQu9GP0LXRgiDRh9C10YDQvdC+0LLQuNC60Lgg0L3QsCDQvNC10YHRgtC1LCDQuNC90LDRh9C1INC+0YLQutC70LDQtNGL0LLQsNC10YIg0YHRgtGA0LDQvdC40YbRgyDQuCDQv9GA0LXQtNC70LDQs9Cw0LXRgiDQv9C10YDQtdC30LDQs9GA0YPQt9C40YLRjCDRgdC/0LjRgdC+0LouXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnZSDQodGC0YDQsNC90LjRhtCwLCDQv9C+0LvRg9GH0LXQvdC90LDRjyDQsiDRhNC+0L3QtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNoZWNrUGFnZShwYWdlOiBTY0lQYWdpbmF0ZTxTY09yZGVyRHJhZnRTaG9ydD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnBhZ2VJdGVtcygpO1xuICAgICAgICBjb25zdCBtZXRhID0gdGhpcy5wYWdlTWV0YSgpO1xuXG4gICAgICAgIGlmICghaXRlbXMgfHwgIW1ldGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChTY0RyYWZ0TGlzdEhlbHBlci5pc1NhbWVQYWdlKGl0ZW1zLCBtZXRhLnRvdGFsLCBwYWdlLmRhdGEsIHBhZ2UubWV0YS50b3RhbCkpIHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1BhZ2UgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5kZWNsaW5lZFNpZ25hdHVyZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmRpc21pc3NBbGVydCgpO1xuICAgICAgICAgICAgdGhpcy5hcHBseURyYWZ0cyhwYWdlLmRhdGEpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBlbmRpbmdQYWdlID0gcGFnZTtcblxuICAgICAgICBpZiAoU2NEcmFmdExpc3RIZWxwZXIuZ2V0U2lnbmF0dXJlKHBhZ2UpICE9PSB0aGlzLmRlY2xpbmVkU2lnbmF0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dBbGVydCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC90LAg0LzQtdGB0YLQtSDQutGA0LDRgtC60LjQtSDQtNCw0L3QvdGL0LUg0YfQtdGA0L3QvtCy0LjQutC+0LIg0Lgg0L/QtdGA0LXQt9Cw0L/RgNCw0YjQuNCy0LDQtdGCINC/0L7Qu9C90YvQtSDQtNCw0L3QvdGL0LUg0YDQsNGB0LrRgNGL0YLRi9GFINGH0LXRgNC90L7QstC40LrQvtCyLCDRgdC+0YHRgtC+0Y/QvdC40LUg0LrQvtGC0L7RgNGL0YUg0LjQt9C80LXQvdC40LvQvtGB0YwuXG4gICAgICog0J/QtdGA0LXQt9Cw0L/RgNC+0YEg0YDQsNGB0LrRgNGL0YLQvtCz0L4g0YfQtdGA0L3QvtCy0LjQutCwINC90LUg0L/QvtCy0YLQvtGA0Y/QtdGC0YHRjywg0L/QvtC60LAg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQv9GA0LXQtNGL0LTRg9GJ0LjQuS4g0J7RiNC40LHQutCwINC/0LXRgNC10LfQsNC/0YDQvtGB0LAg0L3QtSDQv9C+0LrQsNC30YvQstCw0LXRgtGB0Y86XG4gICAgICog0Y3RgtC+INGE0L7QvdC+0LLQvtC1INC+0LHQvdC+0LLQu9C10L3QuNC1LCDQtdCz0L4g0L/QvtCy0YLQvtGA0LjRgiDRgdC70LXQtNGD0Y7RidC40Lkg0L7Qv9GA0L7RgS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkcmFmdHMg0JrRgNCw0YLQutC40LUg0LTQsNC90L3Ri9C1INGH0LXRgNC90L7QstC40LrQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgYXBwbHlEcmFmdHMoZHJhZnRzOiBTY09yZGVyRHJhZnRTaG9ydFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5wYWdlSXRlbXMoKTtcblxuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBTY0RyYWZ0TGlzdEhlbHBlci5nZXRDaGFuZ2VkRnVsbERyYWZ0SWRzKGl0ZW1zLCBkcmFmdHMpXG4gICAgICAgICAgICAuZmlsdGVyKChkcmFmdElkKSA9PiAhdGhpcy5yZWZyZXNoaW5nSWRzLmhhcyhkcmFmdElkKSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChkcmFmdElkKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nSWRzLmFkZChkcmFmdElkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWZ0c1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmZldGNoJChkcmFmdElkKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gRU1QVFkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ0lkcy5kZWxldGUoZHJhZnRJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wYWdlSXRlbXMuc2V0KFNjRHJhZnRMaXN0SGVscGVyLm1lcmdlKGl0ZW1zLCBkcmFmdHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0L/QvtC80LjQvdCw0LXRgiDRh9C10YDQvdC+0LLQuNC60LgsINC60L7RgtC+0YDRi9GFINC90LUg0L7QutCw0LfQsNC70L7RgdGMINCyINC+0YLQstC10YLQtSDQvtC/0YDQvtGB0LAsINGH0YLQvtCx0Ysg0LHQvtC70YzRiNC1INC40YUg0L3QtSDQvtC/0YDQsNGI0LjQstCw0YLRjC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZHMg0J3QvtC80LXRgNCwINC+0L/RgNC+0YjQtdC90L3Ri9GFINGH0LXRgNC90L7QstC40LrQvtCyLlxuICAgICAqIEBwYXJhbSBkcmFmdHMg0J/QvtC70YPRh9C10L3QvdGL0LUg0LrRgNCw0YLQutC40LUg0LTQsNC90L3Ri9C1INGH0LXRgNC90L7QstC40LrQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgbWFya01pc3NpbmcoaWRzOiBudW1iZXJbXSwgZHJhZnRzOiBTY09yZGVyRHJhZnRTaG9ydFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1pc3NpbmcgPSBpZHMuZmlsdGVyKChpZCkgPT4gIWRyYWZ0cy5zb21lKChkcmFmdCkgPT4gZHJhZnQuaWQgPT09IGlkKSk7XG5cbiAgICAgICAgaWYgKG1pc3NpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5taXNzaW5nSWRzLnVwZGF0ZSgoY3VycmVudCkgPT4gbmV3IFNldChbLi4uY3VycmVudCwgLi4ubWlzc2luZ10pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7QutCw0LfRi9Cy0LDQtdGCINGD0LLQtdC00L7QvNC70LXQvdC40LUg0L7QsSDQuNC30LzQtdC90LXQvdC40Lgg0YHQv9C40YHQutCwLCDQtdGB0LvQuCDQvtC90L4g0LXRidGRINC90LUg0L/QvtC60LDQt9Cw0L3Qvi4g0J7RgtCy0LXRgiDCq9Cd0LXRgsK7INC4INC30LDQutGA0YvRgtC40LUg0YPQstC10LTQvtC80LvQtdC90LjRjyDRgdGH0LjRgtCw0Y7RgtGB0Y8g0L7RgtC60LDQt9C+0LxcbiAgICAgKiDQvtGCINC/0LXRgNC10LfQsNCz0YDRg9C30LrQuCDQvtGC0LvQvtC20LXQvdC90L7Qs9C+INGB0L7RgdGC0LDQstCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2hvd0FsZXJ0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hbGVydFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbGVydFN1YnNjcmlwdGlvbiA9IHRoaXMuYWxlcnRzXG4gICAgICAgICAgICAub3Blbjxib29sZWFuPihuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KFNjQ29uZmlybUFsZXJ0Q29tcG9uZW50KSwge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAn0KHQv9C40YHQvtC6INGH0LXRgNC90L7QstC40LrQvtCyINC40LfQvNC10L3QuNC70YHRjycsXG4gICAgICAgICAgICAgICAgZGF0YTogeyBjb250ZW50OiAn0J/QtdGA0LXQt9Cw0LPRgNGD0LfQuNGC0Ywg0YHQv9C40YHQvtC6PycgfSxcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiAnaW5mbycsXG4gICAgICAgICAgICAgICAgYXV0b0Nsb3NlOiAwLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KGZhbHNlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc0NvbmZpcm1lZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc0NvbmZpcm1lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5UGVuZGluZ1BhZ2UoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlY2xpbmVQZW5kaW5nUGFnZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQutGA0YvQstCw0LXRgiDQv9C+0LrQsNC30LDQvdC90L7QtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1INC+0LEg0LjQt9C80LXQvdC10L3QuNC4INGB0L/QuNGB0LrQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRpc21pc3NBbGVydCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbGVydFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hbGVydFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtC60LDQt9GL0LLQsNC10YIg0L7RgtC70L7QttC10L3QvdGD0Y4g0YHRgtGA0LDQvdC40YbRgyDRgSDRgdC+0YXRgNCw0L3QtdC90LjQtdC8INGA0LDRgdC60YDRi9GC0YvRhSDRgdGC0YDQvtC6LiDQo9Cy0LXQtNC+0LzQu9C10L3QuNC1INC30LDQutGA0YvQstCw0LXRgtGB0Y8g0LLRgdGP0LrQuNC5INGA0LDQtywg0LrQvtCz0LTQsCDQvtGC0LvQvtC20LXQvdC90LDRjyDRgdGC0YDQsNC90LjRhtCwXG4gICAgICog0YHQsdGA0LDRgdGL0LLQsNC10YLRgdGPLCDQv9C+0Y3RgtC+0LzRgyDQv9GA0Lgg0YHQvtCz0LvQsNGB0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L7QvdCwINCy0YHQtdCz0LTQsCDQtdGB0YLRjC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5UGVuZGluZ1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBlbmRpbmdQYWdlO1xuXG4gICAgICAgIGlmICghcGFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wZW5kaW5nUGFnZSA9IG51bGw7XG4gICAgICAgIHRoaXMubWlzc2luZ0lkcy5zZXQobmV3IFNldDxudW1iZXI+KCkpO1xuICAgICAgICB0aGlzLnBhZ2VJdGVtcy5zZXQoU2NEcmFmdExpc3RIZWxwZXIuZnJvbVBhZ2UodGhpcy5wYWdlSXRlbXMoKSA/PyBbXSwgcGFnZS5kYXRhKSk7XG4gICAgICAgIHRoaXMucGFnZU1ldGEuc2V0KHBhZ2UubWV0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC/0L7QvNC40L3QsNC10YIg0L7RgtC60LDQtyDQvtGCINC/0LXRgNC10LfQsNCz0YDRg9C30LrQuCDQvtGC0LvQvtC20LXQvdC90L7Qs9C+INGB0L7RgdGC0LDQstCwOiDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1INC+INC90ZHQvCDQsdC+0LvRjNGI0LUg0L3QtSDQv9C+0LrQsNC30YvQstCw0LXRgtGB0Y8sINC/0L7QutCwINGB0L7RgdGC0LDQsiDRgdC90L7QstCwINC90LUg0LjQt9C80LXQvdC40YLRgdGPLlxuICAgICAqL1xuICAgIHByaXZhdGUgZGVjbGluZVBlbmRpbmdQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlY2xpbmVkU2lnbmF0dXJlID0gdGhpcy5wZW5kaW5nUGFnZSA/IFNjRHJhZnRMaXN0SGVscGVyLmdldFNpZ25hdHVyZSh0aGlzLnBlbmRpbmdQYWdlKSA6IG51bGw7XG4gICAgfVxufVxuIl19
@@ -7,7 +7,12 @@ export * from './order-item/sc-order-item.component';
7
7
  export * from './order-items-list/sc-order-items-list.component';
8
8
  export * from './order-items-list-with-actions/sc-order-items-list-with-actions.component';
9
9
  export * from './order-items-list-by-stock/sc-order-items-list-by-stock.component';
10
+ export * from './draft/helpers/sc-draft-list-helper';
11
+ export * from './draft/models/sc-i-draft-list-item';
12
+ export * from './draft/services/sc-draft-expiration-clock.service';
13
+ export * from './draft/services/sc-draft-list-updates.service';
14
+ export * from './draft/profstroy';
10
15
  export * from './draft/sc-draft.component';
11
16
  export * from './sc-payment-status/sc-payment-status.component';
12
17
  export * from './sc-order.module';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvb3JkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2ktbmV3LW9yZGVyLWZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9uZXctb3JkZXItaXRlbXMvc2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyLWZvcm0vc2Mtb3JkZXItZm9ybS5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9vcmRlci1mb3JtL3NjLW9yZGVyLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItaXRlbS9zYy1vcmRlci1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyLWl0ZW1zLWxpc3Qvc2Mtb3JkZXItaXRlbXMtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vcmRlci1pdGVtcy1saXN0LXdpdGgtYWN0aW9ucy9zYy1vcmRlci1pdGVtcy1saXN0LXdpdGgtYWN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vcmRlci1pdGVtcy1saXN0LWJ5LXN0b2NrL3NjLW9yZGVyLWl0ZW1zLWxpc3QtYnktc3RvY2suY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZnQvc2MtZHJhZnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtcGF5bWVudC1zdGF0dXMvc2MtcGF5bWVudC1zdGF0dXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2Mtb3JkZXIubW9kdWxlJztcbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvb3JkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9pLW5ldy1vcmRlci1mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vbmV3LW9yZGVyLWl0ZW1zL3NjLW5ldy1vcmRlci1pdGVtcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vcmRlci1mb3JtL3NjLW9yZGVyLWZvcm0uY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItZm9ybS9zYy1vcmRlci1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyLWl0ZW0vc2Mtb3JkZXItaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vcmRlci1pdGVtcy1saXN0L3NjLW9yZGVyLWl0ZW1zLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnMvc2Mtb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItaXRlbXMtbGlzdC1ieS1zdG9jay9zYy1vcmRlci1pdGVtcy1saXN0LWJ5LXN0b2NrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWZ0L2hlbHBlcnMvc2MtZHJhZnQtbGlzdC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFmdC9tb2RlbHMvc2MtaS1kcmFmdC1saXN0LWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFmdC9zZXJ2aWNlcy9zYy1kcmFmdC1leHBpcmF0aW9uLWNsb2NrLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFmdC9zZXJ2aWNlcy9zYy1kcmFmdC1saXN0LXVwZGF0ZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWZ0L3Byb2ZzdHJveSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWZ0L3NjLWRyYWZ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXBheW1lbnQtc3RhdHVzL3NjLXBheW1lbnQtc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLW9yZGVyLm1vZHVsZSc7XG4iXX0=
@@ -20,6 +20,14 @@ export class ScNewOrderItemsComponent {
20
20
  * Включить выбор позиций чекбоксами.
21
21
  */
22
22
  this.selectable = input(true);
23
+ /**
24
+ * Признак, что цена за единицу берётся из позиции, а не из текущей цены товара.
25
+ */
26
+ this.useLinePrice = input(false);
27
+ /**
28
+ * Подпись итоговой суммы.
29
+ */
30
+ this.totalLabel = input('Итого');
23
31
  /**
24
32
  * Время обработки и принятия заказов (из настроек окружения приложения).
25
33
  */
@@ -30,10 +38,10 @@ export class ScNewOrderItemsComponent {
30
38
  this.selectedItemsIdsChange = output();
31
39
  }
32
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNewOrderItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScNewOrderItemsComponent, isStandalone: true, selector: "sc-new-order-items", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, orderProcessingAcceptanceTime: { classPropertyName: "orderProcessingAcceptanceTime", publicName: "orderProcessingAcceptanceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItemsIdsChange: "selectedItemsIdsChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-5\">\n <ul class=\"ml-4 list-disc text-tui-success-fill\">\n <li>\u0417\u0430\u044F\u0432\u043A\u0438 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u043E\u0433\u043E \u0434\u043D\u044F \u043F\u043E\u0441\u0442\u0430\u0432\u043A\u0438.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B \u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u043E\u0439 \u043D\u0430 \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0434\u043E {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B \u0438\u043B\u0438 \u0432 \u0441\u0443\u0431\u0431\u043E\u0442\u0443/\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B \u0432 \u0431\u0443\u0434\u043D\u0438\u0435 \u0434\u043D\u0438.</li>\n <li>\n \u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043F\u0438\u0441\u043A\u043E\u043C \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u043E\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\n <a\n tuiLink\n routerLink=\"/profile\"\n >\n \u043B\u0438\u0447\u043D\u043E\u043C \u043A\u0430\u0431\u0438\u043D\u0435\u0442\u0435\n </a>\n .\n </li>\n </ul>\n\n <div class=\"sub-title\">\u0421\u043E\u0441\u0442\u0430\u0432 \u0437\u0430\u043A\u0430\u0437\u0430</div>\n\n <sc-order-items-list-with-actions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-with-actions>\n</div>\n", dependencies: [{ kind: "component", type: ScOrderItemsListWithActionsComponent, selector: "sc-order-items-list-with-actions", inputs: ["items", "selectable", "editable", "selectedItemsIds"], outputs: ["selectedItemsIdsChange"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScNewOrderItemsComponent, isStandalone: true, selector: "sc-new-order-items", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, useLinePrice: { classPropertyName: "useLinePrice", publicName: "useLinePrice", isSignal: true, isRequired: false, transformFunction: null }, totalLabel: { classPropertyName: "totalLabel", publicName: "totalLabel", isSignal: true, isRequired: false, transformFunction: null }, orderProcessingAcceptanceTime: { classPropertyName: "orderProcessingAcceptanceTime", publicName: "orderProcessingAcceptanceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItemsIdsChange: "selectedItemsIdsChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-5\">\n <ul class=\"ml-4 list-disc text-tui-success-fill\">\n <li>\u0417\u0430\u044F\u0432\u043A\u0438 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u043E\u0433\u043E \u0434\u043D\u044F \u043F\u043E\u0441\u0442\u0430\u0432\u043A\u0438.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B \u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u043E\u0439 \u043D\u0430 \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0434\u043E {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B \u0438\u043B\u0438 \u0432 \u0441\u0443\u0431\u0431\u043E\u0442\u0443/\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B \u0432 \u0431\u0443\u0434\u043D\u0438\u0435 \u0434\u043D\u0438.</li>\n <li>\n \u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043F\u0438\u0441\u043A\u043E\u043C \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u043E\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\n <a\n tuiLink\n routerLink=\"/profile\"\n >\n \u043B\u0438\u0447\u043D\u043E\u043C \u043A\u0430\u0431\u0438\u043D\u0435\u0442\u0435\n </a>\n .\n </li>\n </ul>\n\n <div class=\"sub-title\">\u0421\u043E\u0441\u0442\u0430\u0432 \u0437\u0430\u043A\u0430\u0437\u0430</div>\n\n <sc-order-items-list-with-actions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n [useLinePrice]=\"useLinePrice()\"\n [totalLabel]=\"totalLabel()\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-with-actions>\n</div>\n", dependencies: [{ kind: "component", type: ScOrderItemsListWithActionsComponent, selector: "sc-order-items-list-with-actions", inputs: ["items", "selectable", "editable", "useLinePrice", "deleteConfirmationTarget", "totalLabel", "selectedItemsIds"], outputs: ["selectedItemsIdsChange"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
42
  }
35
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNewOrderItemsComponent, decorators: [{
36
44
  type: Component,
37
- args: [{ standalone: true, selector: 'sc-new-order-items', imports: [ScOrderItemsListWithActionsComponent, RouterLink, TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-5\">\n <ul class=\"ml-4 list-disc text-tui-success-fill\">\n <li>\u0417\u0430\u044F\u0432\u043A\u0438 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u043E\u0433\u043E \u0434\u043D\u044F \u043F\u043E\u0441\u0442\u0430\u0432\u043A\u0438.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B \u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u043E\u0439 \u043D\u0430 \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0434\u043E {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B \u0438\u043B\u0438 \u0432 \u0441\u0443\u0431\u0431\u043E\u0442\u0443/\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B \u0432 \u0431\u0443\u0434\u043D\u0438\u0435 \u0434\u043D\u0438.</li>\n <li>\n \u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043F\u0438\u0441\u043A\u043E\u043C \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u043E\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\n <a\n tuiLink\n routerLink=\"/profile\"\n >\n \u043B\u0438\u0447\u043D\u043E\u043C \u043A\u0430\u0431\u0438\u043D\u0435\u0442\u0435\n </a>\n .\n </li>\n </ul>\n\n <div class=\"sub-title\">\u0421\u043E\u0441\u0442\u0430\u0432 \u0437\u0430\u043A\u0430\u0437\u0430</div>\n\n <sc-order-items-list-with-actions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-with-actions>\n</div>\n" }]
45
+ args: [{ standalone: true, selector: 'sc-new-order-items', imports: [ScOrderItemsListWithActionsComponent, RouterLink, TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-5\">\n <ul class=\"ml-4 list-disc text-tui-success-fill\">\n <li>\u0417\u0430\u044F\u0432\u043A\u0438 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u043E\u0433\u043E \u0434\u043D\u044F \u043F\u043E\u0441\u0442\u0430\u0432\u043A\u0438.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B \u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u043E\u0439 \u043D\u0430 \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0434\u043E {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B \u0438\u043B\u0438 \u0432 \u0441\u0443\u0431\u0431\u043E\u0442\u0443/\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B \u0432 \u0431\u0443\u0434\u043D\u0438\u0435 \u0434\u043D\u0438.</li>\n <li>\n \u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043F\u0438\u0441\u043A\u043E\u043C \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u043E\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\n <a\n tuiLink\n routerLink=\"/profile\"\n >\n \u043B\u0438\u0447\u043D\u043E\u043C \u043A\u0430\u0431\u0438\u043D\u0435\u0442\u0435\n </a>\n .\n </li>\n </ul>\n\n <div class=\"sub-title\">\u0421\u043E\u0441\u0442\u0430\u0432 \u0437\u0430\u043A\u0430\u0437\u0430</div>\n\n <sc-order-items-list-with-actions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n [useLinePrice]=\"useLinePrice()\"\n [totalLabel]=\"totalLabel()\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-with-actions>\n</div>\n" }]
38
46
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9uZXctb3JkZXItaXRlbXMvc2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9uZXctb3JkZXItaXRlbXMvc2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDZFQUE2RSxDQUFDOztBQUVuSTs7R0FFRztBQVFILE1BQU0sT0FBTyx3QkFBd0I7SUFQckM7UUFRSTs7V0FFRztRQUNhLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRXhEOztXQUVHO1FBQ2EsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNhLGVBQVUsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYSxrQ0FBNkIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFbEU7O1dBRUc7UUFDYSwyQkFBc0IsR0FBRyxNQUFNLEVBQVksQ0FBQztLQUMvRDsrR0F6Qlksd0JBQXdCO21HQUF4Qix3QkFBd0Isd3RCQ2pCckMsc3pFQStCQSw0Q0RqQmMsb0NBQW9DLG1MQUFFLFVBQVUsb09BQUUsT0FBTzs7NEZBRzFELHdCQUF3QjtrQkFQcEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sb0JBQW9CLFdBRXJCLENBQUMsb0NBQW9DLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxtQkFDbkQsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2NPcmRlckl0ZW0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUxpbmsgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7IFNjT3JkZXJJdGVtc0xpc3RXaXRoQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zL3NjLW9yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0KHQv9C40YHQvtC6INGC0L7QstCw0YDQvtCyINC+0YTQvtGA0LzQu9GP0LXQvNC+0LPQviDQt9Cw0LrQsNC30LAg0YEg0LLRi9Cx0L7RgNC+0Lwg0L/QvtC30LjRhtC40LkuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1uZXctb3JkZXItaXRlbXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1uZXctb3JkZXItaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtTY09yZGVySXRlbXNMaXN0V2l0aEFjdGlvbnNDb21wb25lbnQsIFJvdXRlckxpbmssIFR1aUxpbmtdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY05ld09yZGVySXRlbXNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCi0L7QstCw0YDRiyDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8U2NPcmRlckl0ZW1bXT4oKTtcblxuICAgIC8qKlxuICAgICAqINCg0LDQt9GA0LXRiNC40YLRjCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INC/0L7Qt9C40YbQuNC5ICjQutC+0LvQuNGH0LXRgdGC0LLQviwg0YPQtNCw0LvQtdC90LjQtSkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICog0JLQutC70Y7Rh9C40YLRjCDQstGL0LHQvtGAINC/0L7Qt9C40YbQuNC5INGH0LXQutCx0L7QutGB0LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGA0LXQvNGPINC+0LHRgNCw0LHQvtGC0LrQuCDQuCDQv9GA0LjQvdGP0YLQuNGPINC30LDQutCw0LfQvtCyICjQuNC3INC90LDRgdGC0YDQvtC10Log0L7QutGA0YPQttC10L3QuNGPINC/0YDQuNC70L7QttC10L3QuNGPKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcblxuICAgIC8qKlxuICAgICAqINCY0LfQvNC10L3QtdC90LjQtSDQstGL0LHQvtGA0LAg0L/QvtC30LjRhtC40Lkg0LTQu9GPINC+0YTQvtGA0LzQu9C10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZEl0ZW1zSWRzQ2hhbmdlID0gb3V0cHV0PHN0cmluZ1tdPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTVcIj5cbiAgICA8dWwgY2xhc3M9XCJtbC00IGxpc3QtZGlzYyB0ZXh0LXR1aS1zdWNjZXNzLWZpbGxcIj5cbiAgICAgICAgPGxpPtCX0LDRj9Cy0LrQuCDQv9GA0LjQvdC40LzQsNGO0YLRgdGPINC90LUg0L/QvtC30LTQvdC10LUge3sgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUoKSB9fSDQv9C70LDQvdC40YDRg9C10LzQvtCz0L4g0LTQvdGPINC/0L7RgdGC0LDQstC60LguPC9saT5cbiAgICAgICAgPGxpPtCX0LDQutCw0LfRiyDRgSDQtNC+0YHRgtCw0LLQutC+0Lkg0L3QsCDQv9C+0L3QtdC00LXQu9GM0L3QuNC6INC/0YDQuNC90LjQvNCw0Y7RgtGB0Y8g0LTQviB7eyBvcmRlclByb2Nlc3NpbmdBY2NlcHRhbmNlVGltZSgpIH19INC/0Y/RgtC90LjRhtGLLjwvbGk+XG4gICAgICAgIDxsaT7Ql9Cw0LrQsNC30YssINGB0L7Qt9C00LDQvdC90YvQtSDQv9C+0LfQtNC90LXQtSB7eyBvcmRlclByb2Nlc3NpbmdBY2NlcHRhbmNlVGltZSgpIH19INC/0Y/RgtC90LjRhtGLINC40LvQuCDQsiDRgdGD0LHQsdC+0YLRgy/QstC+0YHQutGA0LXRgdC10L3RjNC1INCx0YPQtNGD0YIg0L7QsdGA0LDQsdC+0YLQsNC90Ysg0LIg0LHRg9C00L3QuNC1INC00L3QuC48L2xpPlxuICAgICAgICA8bGk+XG4gICAgICAgICAgICDQo9C/0YDQsNCy0LvRj9GC0Ywg0YHQv9C40YHQutC+0Lwg0LrQvtC90YLRgNCw0LPQtdC90YLQvtCyINCy0Ysg0LzQvtC20LXRgtC1INCyXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL3Byb2ZpbGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINC70LjRh9C90L7QvCDQutCw0LHQuNC90LXRgtC1XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAuXG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cblxuICAgIDxkaXYgY2xhc3M9XCJzdWItdGl0bGVcIj7QodC+0YHRgtCw0LIg0LfQsNC60LDQt9CwPC9kaXY+XG5cbiAgICA8c2Mtb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnNcbiAgICAgICAgW2l0ZW1zXT1cIml0ZW1zKClcIlxuICAgICAgICBbZWRpdGFibGVdPVwiZWRpdGFibGUoKVwiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGUoKVwiXG4gICAgICAgIChzZWxlY3RlZEl0ZW1zSWRzQ2hhbmdlKT1cInNlbGVjdGVkSXRlbXNJZHNDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBzZWxlY3Q9XCJbZm9vdGVyQWN0aW9uc11cIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJbZm9vdGVyQWN0aW9uc11cIlxuICAgICAgICAvPlxuICAgIDwvc2Mtb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnM+XG48L2Rpdj5cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9uZXctb3JkZXItaXRlbXMvc2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9uZXctb3JkZXItaXRlbXMvc2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDZFQUE2RSxDQUFDOztBQUVuSTs7R0FFRztBQVFILE1BQU0sT0FBTyx3QkFBd0I7SUFQckM7UUFRSTs7V0FFRztRQUNhLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRXhEOztXQUVHO1FBQ2EsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNhLGVBQVUsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYSxpQkFBWSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNhLGVBQVUsR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFFcEQ7O1dBRUc7UUFDYSxrQ0FBNkIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFbEU7O1dBRUc7UUFDYSwyQkFBc0IsR0FBRyxNQUFNLEVBQVksQ0FBQztLQUMvRDsrR0FuQ1ksd0JBQXdCO21HQUF4Qix3QkFBd0IsNCtCQ2pCckMsdzRFQWlDQSw0Q0RuQmMsb0NBQW9DLDZPQUFFLFVBQVUsb09BQUUsT0FBTzs7NEZBRzFELHdCQUF3QjtrQkFQcEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sb0JBQW9CLFdBRXJCLENBQUMsb0NBQW9DLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxtQkFDbkQsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2NPcmRlckl0ZW0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUxpbmsgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7IFNjT3JkZXJJdGVtc0xpc3RXaXRoQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zL3NjLW9yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0KHQv9C40YHQvtC6INGC0L7QstCw0YDQvtCyINC+0YTQvtGA0LzQu9GP0LXQvNC+0LPQviDQt9Cw0LrQsNC30LAg0YEg0LLRi9Cx0L7RgNC+0Lwg0L/QvtC30LjRhtC40LkuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1uZXctb3JkZXItaXRlbXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1uZXctb3JkZXItaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtTY09yZGVySXRlbXNMaXN0V2l0aEFjdGlvbnNDb21wb25lbnQsIFJvdXRlckxpbmssIFR1aUxpbmtdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY05ld09yZGVySXRlbXNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCi0L7QstCw0YDRiyDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8U2NPcmRlckl0ZW1bXT4oKTtcblxuICAgIC8qKlxuICAgICAqINCg0LDQt9GA0LXRiNC40YLRjCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INC/0L7Qt9C40YbQuNC5ICjQutC+0LvQuNGH0LXRgdGC0LLQviwg0YPQtNCw0LvQtdC90LjQtSkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICog0JLQutC70Y7Rh9C40YLRjCDQstGL0LHQvtGAINC/0L7Qt9C40YbQuNC5INGH0LXQutCx0L7QutGB0LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGG0LXQvdCwINC30LAg0LXQtNC40L3QuNGG0YMg0LHQtdGA0ZHRgtGB0Y8g0LjQtyDQv9C+0LfQuNGG0LjQuCwg0LAg0L3QtSDQuNC3INGC0LXQutGD0YnQtdC5INGG0LXQvdGLINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlTGluZVByaWNlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/QvtC00L/QuNGB0Ywg0LjRgtC+0LPQvtCy0L7QuSDRgdGD0LzQvNGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSB0b3RhbExhYmVsID0gaW5wdXQ8c3RyaW5nPign0JjRgtC+0LPQvicpO1xuXG4gICAgLyoqXG4gICAgICog0JLRgNC10LzRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0Lgg0L/RgNC40L3Rj9GC0LjRjyDQt9Cw0LrQsNC30L7QsiAo0LjQtyDQvdCw0YHRgtGA0L7QtdC6INC+0LrRgNGD0LbQtdC90LjRjyDQv9GA0LjQu9C+0LbQtdC90LjRjykuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG9yZGVyUHJvY2Vzc2luZ0FjY2VwdGFuY2VUaW1lID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC30LzQtdC90LXQvdC40LUg0LLRi9Cx0L7RgNCwINC/0L7Qt9C40YbQuNC5INC00LvRjyDQvtGE0L7RgNC80LvQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtc0lkc0NoYW5nZSA9IG91dHB1dDxzdHJpbmdbXT4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01XCI+XG4gICAgPHVsIGNsYXNzPVwibWwtNCBsaXN0LWRpc2MgdGV4dC10dWktc3VjY2Vzcy1maWxsXCI+XG4gICAgICAgIDxsaT7Ql9Cw0Y/QstC60Lgg0L/RgNC40L3QuNC80LDRjtGC0YHRjyDQvdC1INC/0L7Qt9C00L3QtdC1IHt7IG9yZGVyUHJvY2Vzc2luZ0FjY2VwdGFuY2VUaW1lKCkgfX0g0L/Qu9Cw0L3QuNGA0YPQtdC80L7Qs9C+INC00L3RjyDQv9C+0YHRgtCw0LLQutC4LjwvbGk+XG4gICAgICAgIDxsaT7Ql9Cw0LrQsNC30Ysg0YEg0LTQvtGB0YLQsNCy0LrQvtC5INC90LAg0L/QvtC90LXQtNC10LvRjNC90LjQuiDQv9GA0LjQvdC40LzQsNGO0YLRgdGPINC00L4ge3sgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUoKSB9fSDQv9GP0YLQvdC40YbRiy48L2xpPlxuICAgICAgICA8bGk+0JfQsNC60LDQt9GLLCDRgdC+0LfQtNCw0L3QvdGL0LUg0L/QvtC30LTQvdC10LUge3sgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUoKSB9fSDQv9GP0YLQvdC40YbRiyDQuNC70Lgg0LIg0YHRg9Cx0LHQvtGC0YMv0LLQvtGB0LrRgNC10YHQtdC90YzQtSDQsdGD0LTRg9GCINC+0LHRgNCw0LHQvtGC0LDQvdGLINCyINCx0YPQtNC90LjQtSDQtNC90LguPC9saT5cbiAgICAgICAgPGxpPlxuICAgICAgICAgICAg0KPQv9GA0LDQstC70Y/RgtGMINGB0L/QuNGB0LrQvtC8INC60L7QvdGC0YDQsNCz0LXQvdGC0L7QsiDQstGLINC80L7QttC10YLQtSDQslxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQu9C40YfQvdC+0Lwg0LrQsNCx0LjQvdC10YLQtVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgLlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG5cbiAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlXCI+0KHQvtGB0YLQsNCyINC30LDQutCw0LfQsDwvZGl2PlxuXG4gICAgPHNjLW9yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zXG4gICAgICAgIFtpdGVtc109XCJpdGVtcygpXCJcbiAgICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlKClcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlKClcIlxuICAgICAgICBbdXNlTGluZVByaWNlXT1cInVzZUxpbmVQcmljZSgpXCJcbiAgICAgICAgW3RvdGFsTGFiZWxdPVwidG90YWxMYWJlbCgpXCJcbiAgICAgICAgKHNlbGVjdGVkSXRlbXNJZHNDaGFuZ2UpPVwic2VsZWN0ZWRJdGVtc0lkc0NoYW5nZS5lbWl0KCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIHNlbGVjdD1cIltmb290ZXJBY3Rpb25zXVwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cIltmb290ZXJBY3Rpb25zXVwiXG4gICAgICAgIC8+XG4gICAgPC9zYy1vcmRlci1pdGVtcy1saXN0LXdpdGgtYWN0aW9ucz5cbjwvZGl2PlxuIl19