@skyux/lookup 11.27.0 → 11.29.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.
@@ -76,7 +76,7 @@ export class SkyLookupShowMoreModalComponent {
76
76
  ngAfterViewInit() {
77
77
  this.repeaterItemTemplate = this.context.userConfig.itemTemplate || null;
78
78
  this.searchText = this.context.initialSearch;
79
- this.addItems();
79
+ void this.addItems();
80
80
  }
81
81
  ngOnDestroy() {
82
82
  this.#ngUnsubscribe.next();
@@ -85,7 +85,7 @@ export class SkyLookupShowMoreModalComponent {
85
85
  addButtonClicked() {
86
86
  this.addClick.next();
87
87
  }
88
- addItems() {
88
+ async addItems() {
89
89
  this.itemsLoading = true;
90
90
  if (!this.items || this.items.length === 0) {
91
91
  const selectedItems = this.selectedItems.slice();
@@ -108,7 +108,7 @@ export class SkyLookupShowMoreModalComponent {
108
108
  }
109
109
  });
110
110
  this.selectedItems = selectedItems;
111
- this.updateDataState();
111
+ await this.updateDataState();
112
112
  this.#changeDetector.markForCheck();
113
113
  }
114
114
  // if onlyShowSelected is checked, then only iterate through the initial selection
@@ -116,32 +116,31 @@ export class SkyLookupShowMoreModalComponent {
116
116
  ? this.items.filter((item) => item.selected)
117
117
  : this.items;
118
118
  this.#itemIndex = this.#itemIndex + 10;
119
- this.searchItems(items).then((searchedItems) => {
120
- this.displayedItems = searchedItems.slice(0, this.#itemIndex);
121
- if (this.#itemIndex > searchedItems.length) {
122
- this.itemsHaveMore = false;
123
- }
124
- else {
125
- this.itemsHaveMore = true;
126
- }
127
- this.itemsLoading = false;
128
- this.#announceSelectionState(this.selectedItems.length, this.displayedItems.length);
129
- this.#changeDetector.markForCheck();
130
- });
119
+ const searchedItems = await this.searchItems(items);
120
+ this.displayedItems = searchedItems.slice(0, this.#itemIndex);
121
+ if (this.#itemIndex > searchedItems.length) {
122
+ this.itemsHaveMore = false;
123
+ }
124
+ else {
125
+ this.itemsHaveMore = true;
126
+ }
127
+ this.itemsLoading = false;
128
+ this.#announceSelectionState(this.selectedItems.length, this.displayedItems.length);
129
+ this.#changeDetector.markForCheck();
131
130
  }
132
- clearAll() {
131
+ async clearAll() {
133
132
  this.displayedItems.forEach((item) => {
134
133
  if (item.selected) {
135
134
  item.selected = false;
136
135
  }
137
136
  });
138
137
  this.selectedItems = [];
139
- this.updateDataState();
138
+ await this.updateDataState();
140
139
  this.#changeDetector.markForCheck();
141
140
  }
142
141
  itemClick(selectedItem) {
143
142
  if (this.context.selectMode === 'single') {
144
- this.onItemSelect(!selectedItem.selected, selectedItem);
143
+ void this.onItemSelect(!selectedItem.selected, selectedItem);
145
144
  }
146
145
  }
147
146
  onItemSelect(newSelectState, itemToSelect) {
@@ -182,7 +181,7 @@ export class SkyLookupShowMoreModalComponent {
182
181
  }
183
182
  this.selectedItems = selectedItems;
184
183
  }
185
- this.updateDataState();
184
+ void this.updateDataState();
186
185
  this.#changeDetector.markForCheck();
187
186
  }
188
187
  searchApplied(searchText) {
@@ -197,7 +196,7 @@ export class SkyLookupShowMoreModalComponent {
197
196
  // We need to ensure that the scroll event makes it all the way through the infinite scroll workflow before updating the data state.
198
197
  // Without this, the infinite scroll can add items improperly because it can see the above scroll after the items finish searching.
199
198
  setTimeout(() => {
200
- this.updateDataState();
199
+ void this.updateDataState();
201
200
  }, 100);
202
201
  }
203
202
  searchItems(items) {
@@ -221,7 +220,7 @@ export class SkyLookupShowMoreModalComponent {
221
220
  return Promise.resolve(items);
222
221
  }
223
222
  }
224
- selectAll() {
223
+ async selectAll() {
225
224
  const items = this.items;
226
225
  const selectedItems = this.selectedItems;
227
226
  this.displayedItems.forEach((item) => {
@@ -238,33 +237,32 @@ export class SkyLookupShowMoreModalComponent {
238
237
  }
239
238
  });
240
239
  this.selectedItems = selectedItems;
241
- this.updateDataState();
240
+ await this.updateDataState();
242
241
  this.#changeDetector.markForCheck();
243
242
  }
244
- updateDataState() {
243
+ async updateDataState() {
245
244
  const items = this.items;
246
245
  const selectedItems = this.selectedItems;
247
246
  items?.forEach((item, index) => {
248
247
  item.selected =
249
248
  selectedItems.findIndex((selectedItem) => selectedItem.index === index) !== -1;
250
249
  });
251
- this.searchItems(items).then((searchedItems) => {
252
- if (this.onlyShowSelected) {
253
- searchedItems = searchedItems.filter((item) => item.selected);
254
- }
255
- this.displayedItems = searchedItems.slice(0, this.#itemIndex);
256
- if (this.#itemIndex > searchedItems.length) {
257
- this.itemsHaveMore = false;
258
- }
259
- else {
260
- this.itemsHaveMore = true;
261
- }
262
- this.itemsLoading = false;
263
- this.#announceSelectionState(selectedItems.length, this.displayedItems.length);
264
- this.#changeDetector.markForCheck();
265
- });
250
+ let searchedItems = await this.searchItems(items);
251
+ if (this.onlyShowSelected) {
252
+ searchedItems = searchedItems.filter((item) => item.selected);
253
+ }
254
+ this.displayedItems = searchedItems.slice(0, this.#itemIndex);
255
+ if (this.#itemIndex > searchedItems.length) {
256
+ this.itemsHaveMore = false;
257
+ }
258
+ else {
259
+ this.itemsHaveMore = true;
260
+ }
261
+ this.itemsLoading = false;
262
+ this.#announceSelectionState(selectedItems.length, this.displayedItems.length);
263
+ this.#changeDetector.markForCheck();
266
264
  }
267
- updateItemData(data) {
265
+ async updateItemData(data) {
268
266
  this.context.items = data;
269
267
  this.items = [];
270
268
  this.#itemIndex = 10;
@@ -275,7 +273,7 @@ export class SkyLookupShowMoreModalComponent {
275
273
  }
276
274
  });
277
275
  });
278
- this.addItems();
276
+ await this.addItems();
279
277
  this.#changeDetector.markForCheck();
280
278
  }
281
279
  #announceSelectionState(selectedItemCount, displayedItemCount) {
@@ -305,4 +303,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
305
303
  SkyViewkeeperModule,
306
304
  ], template: "<sky-modal\n class=\"sky-lookup-show-more-modal\"\n [attr.id]=\"id\"\n [ngClass]=\"'sky-lookup-show-more-modal-' + context.selectMode\"\n>\n <sky-modal-header>\n @if (context.userConfig?.title) {\n {{ context.userConfig.title }}\n } @else {\n {{\n 'skyux_lookup_show_more_modal_title'\n | skyLibResources: context.userConfig.selectionDescriptor\n }}\n }\n </sky-modal-header>\n <sky-modal-content\n [skyViewkeeper]=\"['.sky-lookup-show-more-toolbar-wrapper']\"\n >\n <div class=\"sky-lookup-show-more-toolbar-wrapper\">\n <sky-toolbar\n class=\"sky-lookup-show-more-modal-toolbar\"\n [listDescriptor]=\"context.userConfig.selectionDescriptor\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <sky-search\n [debounceTime]=\"250\"\n [searchText]=\"searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n @if (context.showAddButton) {\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-add\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_add_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"addButtonClicked()\"\n >\n <sky-icon icon=\"add\" />\n {{ 'skyux_lookup_show_more_add' | skyLibResources }}\n </button>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n @if (context.selectMode === 'multiple') {\n <sky-toolbar class=\"sky-lookup-show-more-modal-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"selectAll()\"\n >\n {{\n 'skyux_lookup_show_more_select_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_clear_all_button_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"clearAll()\"\n >\n {{\n 'skyux_lookup_show_more_clear_all_button_title'\n | skyLibResources\n }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [label]=\"\n 'skyux_lookup_show_more_show_selected_option_aria_label'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n [(checked)]=\"onlyShowSelected\"\n (change)=\"updateDataState()\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_lookup_show_more_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n </div>\n @if (displayedItems.length === 0) {\n <div class=\"sky-font-deemphasized sky-lookup-show-more-no-results\">\n {{ 'skyux_lookup_show_more_no_results' | skyLibResources }}\n </div>\n }\n <sky-repeater class=\"sky-lookup-show-more-repeater\" expandMode=\"none\">\n @for (item of displayedItems; track item) {\n <sky-repeater-item\n [selectable]=\"context.selectMode === 'multiple'\"\n [(isSelected)]=\"item.selected\"\n (click)=\"itemClick(item)\"\n (keyup.enter)=\"itemClick(item)\"\n (isSelectedChange)=\"onItemSelect($event, item)\"\n >\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n repeaterItemTemplate ?? defaultItemTemplate;\n context: { item: item.value }\n \"\n />\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n <sky-infinite-scroll\n [enabled]=\"itemsHaveMore\"\n [loading]=\"itemsLoading\"\n (scrollEnd)=\"addItems()\"\n />\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary sky-margin-inline-compact sky-lookup-show-more-modal-save\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_lookup_show_more_select_context'\n | skyLibResources: context.userConfig.selectionDescriptor\n \"\n (click)=\"modalInstance.save(selectedItems)\"\n >\n {{ 'skyux_lookup_show_more_select' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-lookup-show-more-modal-close\"\n type=\"button\"\n (click)=\"modalInstance.close()\"\n >\n {{ 'skyux_lookup_show_more_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n\n<ng-template #defaultItemTemplate let-item=\"item\">\n {{ item[context.descriptorProperty] }}\n</ng-template>\n", styles: [".sky-lookup-show-more-no-results{padding:20px 0}:host-context(.sky-theme-modern) .sky-lookup-show-more-no-results{padding:30px 0}.sky-theme-modern .sky-lookup-show-more-no-results{padding:30px 0}\n"] }]
307
305
  }], ctorParameters: () => [] });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUdULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFFdEc7OztHQUdHO0FBcUJILE1BQU0sT0FBTywrQkFBK0I7SUErQzFDLFVBQVUsQ0FBSztJQUNmLGNBQWMsQ0FBdUI7SUFJNUIsZUFBZSxDQUE2QjtJQUM1QyxNQUFNLENBQXdCO0lBQzlCLGlCQUFpQixDQUFtQztJQUNwRCxhQUFhLENBQWtDO0lBRXhEO1FBdERBOzs7V0FHRztRQUNJLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBTy9CLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsc0JBQWlCLEdBQUc7WUFDekIsV0FBVyxFQUFFO2dCQUNYO29CQUNFLEVBQUUsRUFBRSxJQUFJO29CQUNSLEtBQUssRUFBRSxzQkFBc0I7b0JBQzdCLFVBQVUsRUFBRSxLQUFLO29CQUNqQixZQUFZLEVBQUUsTUFBTTtpQkFDckI7Z0JBQ0Q7b0JBQ0UsRUFBRSxFQUFFLElBQUk7b0JBQ1IsS0FBSyxFQUFFLHNCQUFzQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFlBQVksRUFBRSxNQUFNO2lCQUNyQjthQUNGO1NBQ0YsQ0FBQztRQUVLLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6Qix5QkFBb0IsR0FBZ0MsSUFBSSxDQUFDO1FBRXpELGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsa0JBQWEsR0FBdUMsRUFBRSxDQUFDO1FBRTlELGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbEIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDakUsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFHdEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLGFBQWEsR0FBVSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRXhELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzNDLE9BQU87b0JBQ0wsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sY0FBYyxHQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUUzQyxNQUFNLGNBQWMsR0FBWSxLQUFLLENBQUMsT0FBTyxDQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FDMUIsQ0FBQztnQkFDRixNQUFNLHdCQUF3QixHQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQ2pDLENBQUMsV0FBZ0IsRUFBRSxFQUFFLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQ2pELElBQUksQ0FBQyxDQUFDO2dCQUVULElBQUksY0FBYyxJQUFJLENBQUMsY0FBYyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztvQkFDbkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMzQyxJQUNFLGFBQWEsQ0FBQyxTQUFTLENBQ3JCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FDbkQsR0FBRyxDQUFDLEVBQ0wsQ0FBQzt3QkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQ2pFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUVELGtGQUFrRjtRQUNsRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM1QyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUVmLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUU5RCxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRTFCLElBQUksQ0FBQyx1QkFBdUIsQ0FDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUMzQixDQUFDO1lBRUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxZQUFpQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLGNBQXVCLEVBQUUsWUFBaUI7UUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLGtGQUFrRjtZQUNsRiwwQkFBMEI7WUFDMUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQzdCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBQ3hCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBQ3hCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FDL0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FDNUMsQ0FBQztnQkFDRixJQUFJLENBQUMsYUFBYSxHQUFHO29CQUNuQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUU7aUJBQ3ZELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNyQixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUNuQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsS0FBSyxDQUM1QyxDQUFDO1lBQ0YsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUNoRCxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxhQUFhLENBQ3ZELENBQUM7WUFFRixJQUFJLGNBQWMsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUNqQixLQUFLLEVBQUUsYUFBYTtvQkFDcEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLO2lCQUNyQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksQ0FBQyxjQUFjLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDeEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBa0I7UUFDckMsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckMsb0lBQW9JO1FBQ3BJLG1JQUFtSTtRQUNuSSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBWTtRQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRW5DLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDdEMsVUFBVSxFQUNWLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxFQUNGLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUNyQixDQUFDO1lBRUYsSUFBSSxZQUFZLFlBQVksS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ3pCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQ2hELENBQUM7Z0JBQ0YsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDbEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDekIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDMUMsQ0FBQztvQkFDRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUztRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFekIsTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFFckIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFbEMsMEJBQTBCO2dCQUMxQixJQUNFLGFBQWEsQ0FBQyxTQUFTLENBQ3JCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FDL0MsR0FBRyxDQUFDLEVBQ0wsQ0FBQztvQkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDO3dCQUNqQixLQUFLLEVBQUUsS0FBSzt3QkFDWixRQUFRLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUs7cUJBQzdCLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV6QixNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyQixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxRQUFRO2dCQUNYLGFBQWEsQ0FBQyxTQUFTLENBQ3JCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FDL0MsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMxQixhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUU5RCxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRTFCLElBQUksQ0FBQyx1QkFBdUIsQ0FDMUIsYUFBYSxDQUFDLE1BQU0sRUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQzNCLENBQUM7WUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFXO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDdEQsSUFBSSxZQUFZLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNuQyxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsdUJBQXVCLENBQ3JCLGlCQUF5QixFQUN6QixrQkFBMEI7UUFFMUIsSUFBSSxDQUFDLGFBQWE7YUFDZixTQUFTLENBQ1IsZ0RBQWdELEVBQ2hELGlCQUFpQixDQUFDLFFBQVEsRUFBRSxFQUM1QixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FDOUI7YUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBaldVLCtCQUErQjttR0FBL0IsK0JBQStCLHNGQ3RENUMsMHlMQWlLQSw4UER4SEksWUFBWSxtU0FDWixpQkFBaUIsOGRBQ2pCLGFBQWEsbUtBQ2IsdUJBQXVCLDJKQUN2Qix3QkFBd0IsdUdBQ3hCLGNBQWMsMGJBQ2QsaUJBQWlCLG9rQkFDakIsZUFBZSx1UkFDZixjQUFjLDhCQUNkLGdCQUFnQiw0VUFDaEIsbUJBQW1COzs0RkFHViwrQkFBK0I7a0JBcEIzQyxTQUFTO2lDQUNJLElBQUksWUFDTiw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5SWRTZXJ2aWNlLFxuICBTa3lMaXZlQW5ub3VuY2VyU2VydmljZSxcbiAgU2t5Vmlld2tlZXBlck1vZHVsZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5pbXBvcnQgeyBTa3lJbmZpbml0ZVNjcm9sbE1vZHVsZSwgU2t5UmVwZWF0ZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGlzdHMnO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSwgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lTZWFyY2hNb2R1bGUgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lMb29rdXBSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxvb2t1cC1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5TG9va3VwU2hvd01vcmVOYXRpdmVQaWNrZXJDb250ZXh0IH0gZnJvbSAnLi90eXBlcy9sb29rdXAtc2hvdy1tb3JlLW5hdGl2ZS1waWNrZXItY29udGV4dCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBJbnRlcm5hbCBjb21wb25lbnQgdG8gaW1wbGVtZW50IHRoZSBuYXRpdmUgcGlja2VyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lDaGVja2JveE1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIFNreUxvb2t1cFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lNb2RhbE1vZHVsZSxcbiAgICBTa3lSZXBlYXRlck1vZHVsZSxcbiAgICBTa3lTZWFyY2hNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gICAgU2t5VG9vbGJhck1vZHVsZSxcbiAgICBTa3lWaWV3a2VlcGVyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMb29rdXBTaG93TW9yZU1vZGFsQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGJ1dHRvbiB0byBhZGQgbmV3IG9wdGlvbnMgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2xpY2sgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGFzc29jaWF0ZSB0aGlzIG1vZGFsIHdpdGggaXRzIG93bmluZyBsb29rdXAgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgcHVibGljIGl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gIHB1YmxpYyBpdGVtc0xvYWRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgZGF0YU1hbmFnZXJDb25maWcgPSB7XG4gICAgc29ydE9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdheicsXG4gICAgICAgIGxhYmVsOiAnQWxwaGFiZXRpY2FsIChBIC0gWiknLFxuICAgICAgICBkZXNjZW5kaW5nOiBmYWxzZSxcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnbmFtZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3phJyxcbiAgICAgICAgbGFiZWw6ICdBbHBoYWJldGljYWwgKFogLSBBKScsXG4gICAgICAgIGRlc2NlbmRpbmc6IHRydWUsXG4gICAgICAgIHByb3BlcnR5TmFtZTogJ25hbWUnLFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuXG4gIHB1YmxpYyBkaXNwbGF5ZWRJdGVtczogYW55W10gPSBbXTtcblxuICBwdWJsaWMgaXRlbXNIYXZlTW9yZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBvbmx5U2hvd1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgcHVibGljIHJlcGVhdGVySXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBzZWFyY2hUZXh0ID0gJyc7XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPSBbXTtcblxuICAjaXRlbUluZGV4ID0gMDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RhbEluc3RhbmNlID0gaW5qZWN0KFNreU1vZGFsSW5zdGFuY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dCA9IGluamVjdChTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQpO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVwZWF0ZXJJdGVtVGVtcGxhdGUgPSB0aGlzLmNvbnRleHQudXNlckNvbmZpZy5pdGVtVGVtcGxhdGUgfHwgbnVsbDtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSB0aGlzLmNvbnRleHQuaW5pdGlhbFNlYXJjaDtcbiAgICB0aGlzLmFkZEl0ZW1zKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGFkZEJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRDbGljay5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgYWRkSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtc0xvYWRpbmcgPSB0cnVlO1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtczogYW55W10gPSB0aGlzLnNlbGVjdGVkSXRlbXMuc2xpY2UoKTtcblxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuY29udGV4dC5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzSW5pdGlhbFZhbHVlOiBib29sZWFuID1cbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlID09PSBpdGVtLnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IGluaXRpYWxJc0FycmF5OiBib29sZWFuID0gQXJyYXkuaXNBcnJheShcbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWVDb250YWluc0l0ZW06IGJvb2xlYW4gPVxuICAgICAgICAgIHRoaXMuY29udGV4dC5pbml0aWFsVmFsdWUuZmluZEluZGV4KFxuICAgICAgICAgICAgKGluaXRpYWxJdGVtOiBhbnkpID0+IGluaXRpYWxJdGVtID09PSBpdGVtLnZhbHVlLFxuICAgICAgICAgICkgPj0gMDtcblxuICAgICAgICBpZiAoaXNJbml0aWFsVmFsdWUgfHwgKGluaXRpYWxJc0FycmF5ICYmIGluaXRpYWxWYWx1ZUNvbnRhaW5zSXRlbSkpIHtcbiAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLml0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gaXRlbUluZGV4LFxuICAgICAgICAgICAgKSA8IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaCh7IGluZGV4OiBpdGVtSW5kZXgsIGl0ZW1EYXRhOiBpdGVtLnZhbHVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLy8gaWYgb25seVNob3dTZWxlY3RlZCBpcyBjaGVja2VkLCB0aGVuIG9ubHkgaXRlcmF0ZSB0aHJvdWdoIHRoZSBpbml0aWFsIHNlbGVjdGlvblxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5vbmx5U2hvd1NlbGVjdGVkXG4gICAgICA/IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKVxuICAgICAgOiB0aGlzLml0ZW1zO1xuXG4gICAgdGhpcy4jaXRlbUluZGV4ID0gdGhpcy4jaXRlbUluZGV4ICsgMTA7XG4gICAgdGhpcy5zZWFyY2hJdGVtcyhpdGVtcykudGhlbigoc2VhcmNoZWRJdGVtcykgPT4ge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuc2xpY2UoMCwgdGhpcy4jaXRlbUluZGV4KTtcblxuICAgICAgaWYgKHRoaXMuI2l0ZW1JbmRleCA+IHNlYXJjaGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaXRlbXNIYXZlTW9yZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXRlbXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuI2Fubm91bmNlU2VsZWN0aW9uU3RhdGUoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgsXG4gICAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICAgKTtcblxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5zZWxlY3RlZCkge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpdGVtQ2xpY2soc2VsZWN0ZWRJdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZXh0LnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLm9uSXRlbVNlbGVjdCghc2VsZWN0ZWRJdGVtLnNlbGVjdGVkLCBzZWxlY3RlZEl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkl0ZW1TZWxlY3QobmV3U2VsZWN0U3RhdGU6IGJvb2xlYW4sIGl0ZW1Ub1NlbGVjdDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zO1xuXG4gICAgaWYgKHRoaXMuY29udGV4dC5zZWxlY3RNb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgLyogU2FuaXR5IGNoZWNrIC0gc2luZ2xlIHNlbGVjdCBtb2RlIHNob3VsZCBvbmx5IGFsb3cgZm9yIGEgYHRydWVgIHNlbGVjdCBzdGF0ZSAqL1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChuZXdTZWxlY3RTdGF0ZSkge1xuICAgICAgICBpdGVtVG9TZWxlY3Quc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0udmFsdWUgIT09IGl0ZW1Ub1NlbGVjdC52YWx1ZSkge1xuICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLnZhbHVlICE9PSBpdGVtVG9TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IGl0ZW1Ub1NlbGVjdC52YWx1ZSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW1xuICAgICAgICAgIHsgaW5kZXg6IGl0ZW1JbmRleCwgaXRlbURhdGE6IGl0ZW1zW2l0ZW1JbmRleF0udmFsdWUgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcztcbiAgICAgIGNvbnN0IGFsbEl0ZW1zSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBpdGVtVG9TZWxlY3QudmFsdWUsXG4gICAgICApO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtc0luZGV4ID0gc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gYWxsSXRlbXNJbmRleCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChuZXdTZWxlY3RTdGF0ZSAmJiBzZWxlY3RlZEl0ZW1zSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaCh7XG4gICAgICAgICAgaW5kZXg6IGFsbEl0ZW1zSW5kZXgsXG4gICAgICAgICAgaXRlbURhdGE6IGl0ZW1zW2FsbEl0ZW1zSW5kZXhdLnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoIW5ld1NlbGVjdFN0YXRlICYmIHNlbGVjdGVkSXRlbXNJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5zcGxpY2Uoc2VsZWN0ZWRJdGVtc0luZGV4LCAxKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICB9XG4gICAgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBcHBsaWVkKHNlYXJjaFRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuc2VhcmNoVGV4dCAhPT0gc2VhcmNoVGV4dCkge1xuICAgICAgdGhpcy4jaXRlbUluZGV4ID0gMTA7XG4gICAgICB0aGlzLm1vZGFsSW5zdGFuY2Uuc2Nyb2xsQ29udGVudFRvVG9wKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ7XG4gICAgdGhpcy5pdGVtc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIHNjcm9sbCBldmVudCBtYWtlcyBpdCBhbGwgdGhlIHdheSB0aHJvdWdoIHRoZSBpbmZpbml0ZSBzY3JvbGwgd29ya2Zsb3cgYmVmb3JlIHVwZGF0aW5nIHRoZSBkYXRhIHN0YXRlLlxuICAgIC8vIFdpdGhvdXQgdGhpcywgdGhlIGluZmluaXRlIHNjcm9sbCBjYW4gYWRkIGl0ZW1zIGltcHJvcGVybHkgYmVjYXVzZSBpdCBjYW4gc2VlIHRoZSBhYm92ZSBzY3JvbGwgYWZ0ZXIgdGhlIGl0ZW1zIGZpbmlzaCBzZWFyY2hpbmcuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoSXRlbXMoaXRlbXM6IGFueVtdKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaFRleHQ7XG5cbiAgICBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgY29uc3QgcmVzdWx0VmFsdWVzID0gdGhpcy5jb250ZXh0LnNlYXJjaChcbiAgICAgICAgc2VhcmNoVGV4dCxcbiAgICAgICAgaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gICAgICAgIH0pLFxuICAgICAgICB7IGNvbnRleHQ6ICdtb2RhbCcgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChyZXN1bHRWYWx1ZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW0pID0+IHJlc3VsdFZhbHVlcy5pbmRleE9mKGl0ZW0udmFsdWUpID49IDAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHRWYWx1ZXMudGhlbigodmFsdWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAgICAgKGl0ZW0pID0+IHZhbHVlcy5pbmRleE9mKGl0ZW0udmFsdWUpID49IDAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGl0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcztcblxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPVxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zO1xuXG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmICghaXRlbS5zZWxlY3RlZCkge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmluZGV4T2YoaXRlbSk7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmluZGV4ID09PSBpbmRleCxcbiAgICAgICAgICApIDwgMFxuICAgICAgICApIHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgaXRlbURhdGE6IGl0ZW1zW2luZGV4XS52YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURhdGFTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM7XG5cbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zOiB7IGluZGV4OiBudW1iZXI7IGl0ZW1EYXRhOiBhbnkgfVtdID1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcztcbiAgICBpdGVtcz8uZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmluZGV4ID09PSBpbmRleCxcbiAgICAgICAgKSAhPT0gLTE7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlYXJjaEl0ZW1zKGl0ZW1zKS50aGVuKChzZWFyY2hlZEl0ZW1zKSA9PiB7XG4gICAgICBpZiAodGhpcy5vbmx5U2hvd1NlbGVjdGVkKSB7XG4gICAgICAgIHNlYXJjaGVkSXRlbXMgPSBzZWFyY2hlZEl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VhcmNoZWRJdGVtcy5zbGljZSgwLCB0aGlzLiNpdGVtSW5kZXgpO1xuXG4gICAgICBpZiAodGhpcy4jaXRlbUluZGV4ID4gc2VhcmNoZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLml0ZW1zSGF2ZU1vcmUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5pdGVtc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgdGhpcy4jYW5ub3VuY2VTZWxlY3Rpb25TdGF0ZShcbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5sZW5ndGgsXG4gICAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICAgKTtcblxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSXRlbURhdGEoZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuaXRlbXMgPSBkYXRhO1xuICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICB0aGlzLiNpdGVtSW5kZXggPSAxMDtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoc2VsZWN0ZWRJdGVtKSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQuaXRlbXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0uaXRlbURhdGEgPT09IGl0ZW0pIHtcbiAgICAgICAgICBzZWxlY3RlZEl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEl0ZW1zKCk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNhbm5vdW5jZVNlbGVjdGlvblN0YXRlKFxuICAgIHNlbGVjdGVkSXRlbUNvdW50OiBudW1iZXIsXG4gICAgZGlzcGxheWVkSXRlbUNvdW50OiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc291cmNlc1N2Y1xuICAgICAgLmdldFN0cmluZyhcbiAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfZGlzcGxheWVkX2l0ZW1zX3VwZGF0ZWQnLFxuICAgICAgICBzZWxlY3RlZEl0ZW1Db3VudC50b1N0cmluZygpLFxuICAgICAgICBkaXNwbGF5ZWRJdGVtQ291bnQudG9TdHJpbmcoKSxcbiAgICAgIClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXNvdXJjZXNTdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShyZXNvdXJjZXNTdHJpbmcpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxza3ktbW9kYWxcbiAgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbFwiXG4gIFthdHRyLmlkXT1cImlkXCJcbiAgW25nQ2xhc3NdPVwiJ3NreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLScgKyBjb250ZXh0LnNlbGVjdE1vZGVcIlxuPlxuICA8c2t5LW1vZGFsLWhlYWRlcj5cbiAgICBAaWYgKGNvbnRleHQudXNlckNvbmZpZz8udGl0bGUpIHtcbiAgICAgIHt7IGNvbnRleHQudXNlckNvbmZpZy50aXRsZSB9fVxuICAgIH0gQGVsc2Uge1xuICAgICAge3tcbiAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfbW9kYWxfdGl0bGUnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICB9fVxuICAgIH1cbiAgPC9za3ktbW9kYWwtaGVhZGVyPlxuICA8c2t5LW1vZGFsLWNvbnRlbnRcbiAgICBbc2t5Vmlld2tlZXBlcl09XCJbJy5za3ktbG9va3VwLXNob3ctbW9yZS10b29sYmFyLXdyYXBwZXInXVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWxvb2t1cC1zaG93LW1vcmUtdG9vbGJhci13cmFwcGVyXCI+XG4gICAgICA8c2t5LXRvb2xiYXJcbiAgICAgICAgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC10b29sYmFyXCJcbiAgICAgICAgW2xpc3REZXNjcmlwdG9yXT1cImNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXCJcbiAgICAgID5cbiAgICAgICAgPHNreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXNlYXJjaFxuICAgICAgICAgICAgICBbZGVib3VuY2VUaW1lXT1cIjI1MFwiXG4gICAgICAgICAgICAgIFtzZWFyY2hUZXh0XT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgICAgICAoc2VhcmNoQXBwbHkpPVwic2VhcmNoQXBwbGllZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICAgICAgICBAaWYgKGNvbnRleHQuc2hvd0FkZEJ1dHRvbikge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1hZGRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9hZGRfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnVzZXJDb25maWcuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImFkZFwiIC8+XG4gICAgICAgICAgICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfYWRkJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIEBpZiAoY29udGV4dC5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgIDxza3ktdG9vbGJhciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLW11bHRpc2VsZWN0LXRvb2xiYXJcIj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zZWxlY3QtYWxsLWJ0blwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdF9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnVzZXJDb25maWcuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zZWxlY3RfYWxsX2J1dHRvbl90aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1jbGVhci1hbGwtYnRuXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfY2xlYXJfYWxsX2J1dHRvbl9hcmlhX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC51c2VyQ29uZmlnLnNlbGVjdGlvbkRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jbGVhcl9hbGxfYnV0dG9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnVzZXJDb25maWcuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgWyhjaGVja2VkKV09XCJvbmx5U2hvd1NlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZURhdGFTdGF0ZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxza3ktY2hlY2tib3gtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9zaG93X3NlbGVjdGVkX29wdGlvbl90aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3NreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAgPC9za3ktY2hlY2tib3g+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICAgIDwvc2t5LXRvb2xiYXI+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChkaXNwbGF5ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZm9udC1kZWVtcGhhc2l6ZWQgc2t5LWxvb2t1cC1zaG93LW1vcmUtbm8tcmVzdWx0c1wiPlxuICAgICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9ub19yZXN1bHRzJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxza3ktcmVwZWF0ZXIgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS1yZXBlYXRlclwiIGV4cGFuZE1vZGU9XCJub25lXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGRpc3BsYXllZEl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbVxuICAgICAgICAgIFtzZWxlY3RhYmxlXT1cImNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJ1wiXG4gICAgICAgICAgWyhpc1NlbGVjdGVkKV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiaXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiaXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAoaXNTZWxlY3RlZENoYW5nZSk9XCJvbkl0ZW1TZWxlY3QoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICByZXBlYXRlckl0ZW1UZW1wbGF0ZSA/PyBkZWZhdWx0SXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgaXRlbTogaXRlbS52YWx1ZSB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudD5cbiAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbT5cbiAgICAgIH1cbiAgICA8L3NreS1yZXBlYXRlcj5cbiAgICA8c2t5LWluZmluaXRlLXNjcm9sbFxuICAgICAgW2VuYWJsZWRdPVwiaXRlbXNIYXZlTW9yZVwiXG4gICAgICBbbG9hZGluZ109XCJpdGVtc0xvYWRpbmdcIlxuICAgICAgKHNjcm9sbEVuZCk9XCJhZGRJdGVtcygpXCJcbiAgICAvPlxuICA8L3NreS1tb2RhbC1jb250ZW50PlxuICA8c2t5LW1vZGFsLWZvb3Rlcj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1wcmltYXJ5IHNreS1tYXJnaW4taW5saW5lLWNvbXBhY3Qgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtc2F2ZVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdF9jb250ZXh0J1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnVzZXJDb25maWcuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJtb2RhbEluc3RhbmNlLnNhdmUoc2VsZWN0ZWRJdGVtcylcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsb3NlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2UuY2xvc2UoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfY2FuY2VsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NreS1tb2RhbC1mb290ZXI+XG48L3NreS1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICB7eyBpdGVtW2NvbnRleHQuZGVzY3JpcHRvclByb3BlcnR5XSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9sb29rdXAvbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUdULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxl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LElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FyV1UsK0JBQStCO21HQUEvQiwrQkFBK0Isc0ZDdEQ1QywweUxBaUtBLDhQRHhISSxZQUFZLG1TQUNaLGlCQUFpQiw4ZEFDakIsYUFBYSxtS0FDYix1QkFBdUIsMkpBQ3ZCLHdCQUF3Qix1R0FDeEIsY0FBYywwYkFDZCxpQkFBaUIsb2tCQUNqQixlQUFlLHVSQUNmLGNBQWMsOEJBQ2QsZ0JBQWdCLDRVQUNoQixtQkFBbUI7OzRGQUdWLCtCQUErQjtrQkFwQjNDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lJZFNlcnZpY2UsXG4gIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlLFxuICBTa3lWaWV3a2VlcGVyTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRvb2xiYXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcbmltcG9ydCB7IFNreUluZmluaXRlU2Nyb2xsTW9kdWxlLCBTa3lSZXBlYXRlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0cyc7XG5pbXBvcnQgeyBTa3lNb2RhbEluc3RhbmNlLCBTa3lNb2RhbE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVNlYXJjaE1vZHVsZSB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2gubW9kdWxlJztcbmltcG9ydCB7IFNreUxvb2t1cFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktbG9va3VwLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zaG93LW1vcmUtbmF0aXZlLXBpY2tlci1jb250ZXh0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEludGVybmFsIGNvbXBvbmVudCB0byBpbXBsZW1lbnQgdGhlIG5hdGl2ZSBwaWNrZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvb2t1cC1zaG93LW1vcmUtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb29rdXAtc2hvdy1tb3JlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgU2t5TG9va3VwUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreVJlcGVhdGVyTW9kdWxlLFxuICAgIFNreVNlYXJjaE1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUb29sYmFyTW9kdWxlLFxuICAgIFNreVZpZXdrZWVwZXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxvb2t1cFNob3dNb3JlTW9kYWxDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgYnV0dG9uIHRvIGFkZCBuZXcgb3B0aW9ucyB0byB0aGUgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBhZGRDbGljayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gYXNzb2NpYXRlIHRoaXMgbW9kYWwgd2l0aCBpdHMgb3duaW5nIGxvb2t1cCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICBwdWJsaWMgaXRlbXM6IGFueVtdID0gW107XG5cbiAgcHVibGljIGl0ZW1zTG9hZGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBkYXRhTWFuYWdlckNvbmZpZyA9IHtcbiAgICBzb3J0T3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBpZDogJ2F6JyxcbiAgICAgICAgbGFiZWw6ICdBbHBoYWJldGljYWwgKEEgLSBaKScsXG4gICAgICAgIGRlc2NlbmRpbmc6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0eU5hbWU6ICduYW1lJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnemEnLFxuICAgICAgICBsYWJlbDogJ0FscGhhYmV0aWNhbCAoWiAtIEEpJyxcbiAgICAgICAgZGVzY2VuZGluZzogdHJ1ZSxcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnbmFtZScsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgcHVibGljIGRpc3BsYXllZEl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gIHB1YmxpYyBpdGVtc0hhdmVNb3JlID0gZmFsc2U7XG5cbiAgcHVibGljIG9ubHlTaG93U2VsZWN0ZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVwZWF0ZXJJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHNlYXJjaFRleHQgPSAnJztcblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9IFtdO1xuXG4gICNpdGVtSW5kZXggPSAwO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGFsSW5zdGFuY2UgPSBpbmplY3QoU2t5TW9kYWxJbnN0YW5jZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0KFNreUxvb2t1cFNob3dNb3JlTmF0aXZlUGlja2VyQ29udGV4dCk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICByZWFkb25seSAjbGl2ZUFubm91bmNlclN2YyA9IGluamVjdChTa3lMaXZlQW5ub3VuY2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNyZXNvdXJjZXNTdmMgPSBpbmplY3QoU2t5TGliUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBlYXRlckl0ZW1UZW1wbGF0ZSA9IHRoaXMuY29udGV4dC51c2VyQ29uZmlnLml0ZW1UZW1wbGF0ZSB8fCBudWxsO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuY29udGV4dC5pbml0aWFsU2VhcmNoO1xuICAgIHZvaWQgdGhpcy5hZGRJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2submV4dCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEl0ZW1zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXRlbXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IGFueVtdID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNsaWNlKCk7XG5cbiAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNvbnRleHQuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBpc0luaXRpYWxWYWx1ZTogYm9vbGVhbiA9XG4gICAgICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZSA9PT0gaXRlbS52YWx1ZTtcblxuICAgICAgICBjb25zdCBpbml0aWFsSXNBcnJheTogYm9vbGVhbiA9IEFycmF5LmlzQXJyYXkoXG4gICAgICAgICAgdGhpcy5jb250ZXh0LmluaXRpYWxWYWx1ZSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlQ29udGFpbnNJdGVtOiBib29sZWFuID1cbiAgICAgICAgICB0aGlzLmNvbnRleHQuaW5pdGlhbFZhbHVlLmZpbmRJbmRleChcbiAgICAgICAgICAgIChpbml0aWFsSXRlbTogYW55KSA9PiBpbml0aWFsSXRlbSA9PT0gaXRlbS52YWx1ZSxcbiAgICAgICAgICApID49IDA7XG5cbiAgICAgICAgaWYgKGlzSW5pdGlhbFZhbHVlIHx8IChpbml0aWFsSXNBcnJheSAmJiBpbml0aWFsVmFsdWVDb250YWluc0l0ZW0pKSB7XG4gICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGl0ZW1JbmRleCxcbiAgICAgICAgICAgICkgPCAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goeyBpbmRleDogaXRlbUluZGV4LCBpdGVtRGF0YTogaXRlbS52YWx1ZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZEl0ZW1zO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8vIGlmIG9ubHlTaG93U2VsZWN0ZWQgaXMgY2hlY2tlZCwgdGhlbiBvbmx5IGl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5pdGlhbCBzZWxlY3Rpb25cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMub25seVNob3dTZWxlY3RlZFxuICAgICAgPyB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZClcbiAgICAgIDogdGhpcy5pdGVtcztcblxuICAgIHRoaXMuI2l0ZW1JbmRleCA9IHRoaXMuI2l0ZW1JbmRleCArIDEwO1xuXG4gICAgY29uc3Qgc2VhcmNoZWRJdGVtcyA9IGF3YWl0IHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMpO1xuXG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuc2xpY2UoMCwgdGhpcy4jaXRlbUluZGV4KTtcblxuICAgIGlmICh0aGlzLiNpdGVtSW5kZXggPiBzZWFyY2hlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXRlbXNIYXZlTW9yZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuaXRlbXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLiNhbm5vdW5jZVNlbGVjdGlvblN0YXRlKFxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhckFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGl0ZW1DbGljayhzZWxlY3RlZEl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHZvaWQgdGhpcy5vbkl0ZW1TZWxlY3QoIXNlbGVjdGVkSXRlbS5zZWxlY3RlZCwgc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JdGVtU2VsZWN0KG5ld1NlbGVjdFN0YXRlOiBib29sZWFuLCBpdGVtVG9TZWxlY3Q6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcztcblxuICAgIGlmICh0aGlzLmNvbnRleHQuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIC8qIFNhbml0eSBjaGVjayAtIHNpbmdsZSBzZWxlY3QgbW9kZSBzaG91bGQgb25seSBhbG93IGZvciBhIGB0cnVlYCBzZWxlY3Qgc3RhdGUgKi9cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUpIHtcbiAgICAgICAgaXRlbVRvU2VsZWN0LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtLnZhbHVlICE9PSBpdGVtVG9TZWxlY3QudmFsdWUpIHtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS52YWx1ZSAhPT0gaXRlbVRvU2VsZWN0LnZhbHVlKSB7XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBpdGVtVG9TZWxlY3QudmFsdWUsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtcbiAgICAgICAgICB7IGluZGV4OiBpdGVtSW5kZXgsIGl0ZW1EYXRhOiBpdGVtc1tpdGVtSW5kZXhdLnZhbHVlIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IHsgaW5kZXg6IG51bWJlcjsgaXRlbURhdGE6IGFueSB9W10gPVxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXM7XG4gICAgICBjb25zdCBhbGxJdGVtc0luZGV4ID0gaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gaXRlbVRvU2VsZWN0LnZhbHVlLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXNJbmRleCA9IHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0uaW5kZXggPT09IGFsbEl0ZW1zSW5kZXgsXG4gICAgICApO1xuXG4gICAgICBpZiAobmV3U2VsZWN0U3RhdGUgJiYgc2VsZWN0ZWRJdGVtc0luZGV4ID09PSAtMSkge1xuICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgIGluZGV4OiBhbGxJdGVtc0luZGV4LFxuICAgICAgICAgIGl0ZW1EYXRhOiBpdGVtc1thbGxJdGVtc0luZGV4XS52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKCFuZXdTZWxlY3RTdGF0ZSAmJiBzZWxlY3RlZEl0ZW1zSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbXMuc3BsaWNlKHNlbGVjdGVkSXRlbXNJbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgfVxuXG4gICAgdm9pZCB0aGlzLnVwZGF0ZURhdGFTdGF0ZSgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEFwcGxpZWQoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0ICE9PSBzZWFyY2hUZXh0KSB7XG4gICAgICB0aGlzLiNpdGVtSW5kZXggPSAxMDtcbiAgICAgIHRoaXMubW9kYWxJbnN0YW5jZS5zY3JvbGxDb250ZW50VG9Ub3AoKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc2VhcmNoVGV4dDtcbiAgICB0aGlzLml0ZW1zTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgc2Nyb2xsIGV2ZW50IG1ha2VzIGl0IGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIGluZmluaXRlIHNjcm9sbCB3b3JrZmxvdyBiZWZvcmUgdXBkYXRpbmcgdGhlIGRhdGEgc3RhdGUuXG4gICAgLy8gV2l0aG91dCB0aGlzLCB0aGUgaW5maW5pdGUgc2Nyb2xsIGNhbiBhZGQgaXRlbXMgaW1wcm9wZXJseSBiZWNhdXNlIGl0IGNhbiBzZWUgdGhlIGFib3ZlIHNjcm9sbCBhZnRlciB0aGUgaXRlbXMgZmluaXNoIHNlYXJjaGluZy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHZvaWQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gdGhpcy5zZWFyY2hUZXh0O1xuXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdFZhbHVlcyA9IHRoaXMuY29udGV4dC5zZWFyY2goXG4gICAgICAgIHNlYXJjaFRleHQsXG4gICAgICAgIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgeyBjb250ZXh0OiAnbW9kYWwnIH0sXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0VmFsdWVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiByZXN1bHRWYWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSA+PSAwLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzdWx0VmFsdWVzLnRoZW4oKHZhbHVlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGl0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIChpdGVtKSA9PiB2YWx1ZXMuaW5kZXhPZihpdGVtLnZhbHVlKSA+PSAwLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdEFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM7XG5cbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zOiB7IGluZGV4OiBudW1iZXI7IGl0ZW1EYXRhOiBhbnkgfVtdID1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcztcblxuICAgIHRoaXMuZGlzcGxheWVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtcy5pbmRleE9mKGl0ZW0pO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pbmRleCA9PT0gaW5kZXgsXG4gICAgICAgICAgKSA8IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGl0ZW1EYXRhOiBpdGVtc1tpbmRleF0udmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVEYXRhU3RhdGUoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVEYXRhU3RhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtczogeyBpbmRleDogbnVtYmVyOyBpdGVtRGF0YTogYW55IH1bXSA9XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXM7XG5cbiAgICBpdGVtcz8uZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmluZGV4ID09PSBpbmRleCxcbiAgICAgICAgKSAhPT0gLTE7XG4gICAgfSk7XG5cbiAgICBsZXQgc2VhcmNoZWRJdGVtcyA9IGF3YWl0IHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMpO1xuXG4gICAgaWYgKHRoaXMub25seVNob3dTZWxlY3RlZCkge1xuICAgICAgc2VhcmNoZWRJdGVtcyA9IHNlYXJjaGVkSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zID0gc2VhcmNoZWRJdGVtcy5zbGljZSgwLCB0aGlzLiNpdGVtSW5kZXgpO1xuXG4gICAgaWYgKHRoaXMuI2l0ZW1JbmRleCA+IHNlYXJjaGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLml0ZW1zSGF2ZU1vcmUgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtc0hhdmVNb3JlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pdGVtc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMuI2Fubm91bmNlU2VsZWN0aW9uU3RhdGUoXG4gICAgICBzZWxlY3RlZEl0ZW1zLmxlbmd0aCxcbiAgICAgIHRoaXMuZGlzcGxheWVkSXRlbXMubGVuZ3RoLFxuICAgICk7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVJdGVtRGF0YShkYXRhOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY29udGV4dC5pdGVtcyA9IGRhdGE7XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgIHRoaXMuI2l0ZW1JbmRleCA9IDEwO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChzZWxlY3RlZEl0ZW0pID0+IHtcbiAgICAgIHRoaXMuY29udGV4dC5pdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5pdGVtRGF0YSA9PT0gaXRlbSkge1xuICAgICAgICAgIHNlbGVjdGVkSXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuYWRkSXRlbXMoKTtcblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgI2Fubm91bmNlU2VsZWN0aW9uU3RhdGUoXG4gICAgc2VsZWN0ZWRJdGVtQ291bnQ6IG51bWJlcixcbiAgICBkaXNwbGF5ZWRJdGVtQ291bnQ6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAuZ2V0U3RyaW5nKFxuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9kaXNwbGF5ZWRfaXRlbXNfdXBkYXRlZCcsXG4gICAgICAgIHNlbGVjdGVkSXRlbUNvdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGRpc3BsYXllZEl0ZW1Db3VudC50b1N0cmluZygpLFxuICAgICAgKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlc1N0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyU3ZjLmFubm91bmNlKHJlc291cmNlc1N0cmluZyk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNreS1tb2RhbFxuICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbbmdDbGFzc109XCInc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtJyArIGNvbnRleHQuc2VsZWN0TW9kZVwiXG4+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIEBpZiAoY29udGV4dC51c2VyQ29uZmlnPy50aXRsZSkge1xuICAgICAge3sgY29udGV4dC51c2VyQ29uZmlnLnRpdGxlIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICB7e1xuICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9tb2RhbF90aXRsZSdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29udGV4dC51c2VyQ29uZmlnLnNlbGVjdGlvbkRlc2NyaXB0b3JcbiAgICAgIH19XG4gICAgfVxuICA8L3NreS1tb2RhbC1oZWFkZXI+XG4gIDxza3ktbW9kYWwtY29udGVudFxuICAgIFtza3lWaWV3a2VlcGVyXT1cIlsnLnNreS1sb29rdXAtc2hvdy1tb3JlLXRvb2xiYXItd3JhcHBlciddXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktbG9va3VwLXNob3ctbW9yZS10b29sYmFyLXdyYXBwZXJcIj5cbiAgICAgIDxza3ktdG9vbGJhclxuICAgICAgICBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXRvb2xiYXJcIlxuICAgICAgICBbbGlzdERlc2NyaXB0b3JdPVwiY29udGV4dC51c2VyQ29uZmlnLnNlbGVjdGlvbkRlc2NyaXB0b3JcIlxuICAgICAgPlxuICAgICAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIDxza3ktc2VhcmNoXG4gICAgICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMjUwXCJcbiAgICAgICAgICAgICAgW3NlYXJjaFRleHRdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAgIChzZWFyY2hBcHBseSk9XCJzZWFyY2hBcHBsaWVkKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgICAgICAgIEBpZiAoY29udGV4dC5zaG93QWRkQnV0dG9uKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWFkZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2FkZF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQnV0dG9uQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwiYWRkXCIgLz5cbiAgICAgICAgICAgICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9hZGQnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgICA8L3NreS10b29sYmFyPlxuICAgICAgQGlmIChjb250ZXh0LnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgPHNreS10b29sYmFyIGNsYXNzPVwic2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtbXVsdGlzZWxlY3QtdG9vbGJhclwiPlxuICAgICAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLXNlbGVjdC1hbGwtYnRuXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2FsbF9idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3NlbGVjdF9hbGxfYnV0dG9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsZWFyLWFsbC1idG5cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jbGVhcl9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBjb250ZXh0LnVzZXJDb25maWcuc2VsZWN0aW9uRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX2NsZWFyX2FsbF9idXR0b25fdGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2hvd19zZWxlY3RlZF9vcHRpb25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbKGNoZWNrZWQpXT1cIm9ubHlTaG93U2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlRGF0YVN0YXRlKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdza3l1eF9sb29rdXBfc2hvd19tb3JlX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhcj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGRpc3BsYXllZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPGRpdiBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktbG9va3VwLXNob3ctbW9yZS1uby1yZXN1bHRzXCI+XG4gICAgICAgIHt7ICdza3l1eF9sb29rdXBfc2hvd19tb3JlX25vX3Jlc3VsdHMnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHNreS1yZXBlYXRlciBjbGFzcz1cInNreS1sb29rdXAtc2hvdy1tb3JlLXJlcGVhdGVyXCIgZXhwYW5kTW9kZT1cIm5vbmVcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheWVkSXRlbXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtXG4gICAgICAgICAgW3NlbGVjdGFibGVdPVwiY29udGV4dC5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnXCJcbiAgICAgICAgICBbKGlzU2VsZWN0ZWQpXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgIChjbGljayk9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJpdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgIChpc1NlbGVjdGVkQ2hhbmdlKT1cIm9uSXRlbVNlbGVjdCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHJlcGVhdGVySXRlbVRlbXBsYXRlID8/IGRlZmF1bHRJdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBpdGVtOiBpdGVtLnZhbHVlIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtPlxuICAgICAgfVxuICAgIDwvc2t5LXJlcGVhdGVyPlxuICAgIDxza3ktaW5maW5pdGUtc2Nyb2xsXG4gICAgICBbZW5hYmxlZF09XCJpdGVtc0hhdmVNb3JlXCJcbiAgICAgIFtsb2FkaW5nXT1cIml0ZW1zTG9hZGluZ1wiXG4gICAgICAoc2Nyb2xsRW5kKT1cImFkZEl0ZW1zKClcIlxuICAgIC8+XG4gIDwvc2t5LW1vZGFsLWNvbnRlbnQ+XG4gIDxza3ktbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnkgc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdCBza3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zYXZlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0X2NvbnRleHQnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGNvbnRleHQudXNlckNvbmZpZy5zZWxlY3Rpb25EZXNjcmlwdG9yXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsSW5zdGFuY2Uuc2F2ZShzZWxlY3RlZEl0ZW1zKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2xvb2t1cF9zaG93X21vcmVfc2VsZWN0JyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtY2xvc2VcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwibW9kYWxJbnN0YW5jZS5jbG9zZSgpXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfbG9va3VwX3Nob3dfbW9yZV9jYW5jZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gIDwvc2t5LW1vZGFsLWZvb3Rlcj5cbjwvc2t5LW1vZGFsPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJdGVtVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIHt7IGl0ZW1bY29udGV4dC5kZXNjcmlwdG9yUHJvcGVydHldIH19XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -71,7 +71,7 @@ export class SkyCountryFieldFixture {
71
71
  * Clears the country selection and input field.
72
72
  */
73
73
  async clear() {
74
- this.#enterSearch('', this.#fixture);
74
+ await this.#enterSearch('', this.#fixture);
75
75
  this.#fixture.detectChanges();
76
76
  await this.#fixture.whenStable();
77
77
  }
@@ -115,7 +115,7 @@ export class SkyCountryFieldFixture {
115
115
  // Note: the ordering of these events is important!
116
116
  SkyAppTestUtility.fireDomEvent(inputElement, 'change');
117
117
  SkyAppTestUtility.fireDomEvent(searchResults[index], 'click');
118
- this.#blurInput(fixture);
118
+ await this.#blurInput(fixture);
119
119
  }
120
120
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1maWVsZC1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC90ZXN0aW5nL3NyYy9sZWdhY3kvY291bnRyeS1maWVsZC9jb3VudHJ5LWZpZWxkLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsUUFBUSxDQUFlO0lBRXZCOzs7T0FHRztJQUNILElBQVcscUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxvQkFBb0I7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQTRCO0lBRXBDLFlBQVksT0FBa0MsRUFBRSxTQUFpQjtRQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN2RCxPQUFPLEVBQ1AsU0FBUyxFQUNULG1CQUFtQixDQUNwQixD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WUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixRQUFnQixFQUNoQixPQUFrQztRQUVsQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLGdCQUFnQixDQUNwRCwwQkFBMEIsQ0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLFFBQWdCLEVBQ2hCLEtBQWEsRUFDYixPQUFrQztRQUVsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFekUsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELGlCQUFpQixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWJ1Z0VsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgQnkgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFNreUFwcFRlc3RVdGlsaXR5IH0gZnJvbSAnQHNreXV4LXNkay90ZXN0aW5nJztcblxuLyoqXG4gKiBBbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBjb3VudHJ5IGZpZWxkIGNvbXBvbmVudC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5Q291bnRyeUZpZWxkRml4dHVyZSB7XG4gICNkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQncyBhdXRvY29tcGxldGUgYXR0cmlidXRlLlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgY291bnRyeSBmaWVsZCBjb21wb25lbnQncyBgYXV0b2NvbXBsZXRlQXR0cmlidXRlYCBpcyBkZXByZWNhdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBhdXRvY29tcGxldGVBdHRyaWJ1dGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuI2dldElucHV0RWxlbWVudCgpLmdldEF0dHJpYnV0ZSgnYXV0b2NvbXBsZXRlJyk7XG4gIH1cblxuICAvKipcbiAgICogQSBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGNvdW50cnkgZmxhZyBpcyBjdXJyZW50bHkgdmlzaWJsZS5cbiAgICogVGhlIGZsYWcgd2lsbCBiZSB2aXNpYmxlIG9ubHkgaWYgYSBzZWxlY3Rpb24gaGFzIGJlZW4gbWFkZVxuICAgKiBhbmQgaWYgdGhlIGhpZGVTZWxlY3RlZENvdW50cnlGbGFnIG9wdGlvbiBpcyBmYWxzZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgY291bnRyeUZsYWdJc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmxhZyA9IHRoaXMuI2dldENvdW50cnlGbGFnKCk7XG4gICAgcmV0dXJuIGZsYWcgIT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIGlucHV0IGhhcyBiZWVuIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jZ2V0SW5wdXRFbGVtZW50KCkuZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dCBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VhcmNoVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNnZXRJbnB1dEVsZW1lbnQoKS52YWx1ZTtcbiAgfVxuXG4gICNmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPHVua25vd24+O1xuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8dW5rbm93bj4sIHNreVRlc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy4jZml4dHVyZSA9IGZpeHR1cmU7XG4gICAgdGhpcy4jZGVidWdFbCA9IFNreUFwcFRlc3RVdGlsaXR5LmdldERlYnVnRWxlbWVudEJ5VGVzdElkKFxuICAgICAgZml4dHVyZSxcbiAgICAgIHNreVRlc3RJZCxcbiAgICAgICdza3ktY291bnRyeS1maWVsZCcsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlcnMgdGhlIHNlYXJjaCB0ZXh0IGludG8gdGhlIGlucHV0IGZpZWxkIGRpc3BsYXlpbmcgc2VhcmNoIHJlc3VsdHMsIGJ1dCBtYWtpbmcgbm8gc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0gc2VhcmNoVGV4dCBUaGUgbmFtZSBvZiB0aGUgY291bnRyeSB0byBzZWxlY3QuXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGNvdW50cnkgbmFtZXMgbWF0Y2hpbmcgdGhlIHNlYXJjaCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlYXJjaChzZWFyY2hUZXh0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgcmVzdWx0Tm9kZXMgPSBhd2FpdCB0aGlzLiNzZWFyY2hBbmRHZXRSZXN1bHRzKFxuICAgICAgc2VhcmNoVGV4dCxcbiAgICAgIHRoaXMuI2ZpeHR1cmUsXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHRBcnJheSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJlc3VsdE5vZGVzKTtcbiAgICBjb25zdCByZXN1bHRzID0gcmVzdWx0QXJyYXlcbiAgICAgIC5tYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zdCBjb3VudHJ5TmFtZUVsID0gcmVzdWx0LnF1ZXJ5U2VsZWN0b3IoJy5za3ktaGlnaGxpZ2h0LW1hcmsnKTtcbiAgICAgICAgY29uc3QgY291bnRyeU5hbWUgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KGNvdW50cnlOYW1lRWwpO1xuICAgICAgICByZXR1cm4gY291bnRyeU5hbWU7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigocmVzdWx0KSA9PiByZXN1bHQgIT09IHVuZGVmaW5lZCk7XG5cbiAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICBhd2FpdCB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcblxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudGVycyB0aGUgc2VhcmNoIHRleHQgaW50byB0aGUgaW5wdXQgZmllbGQgYW5kIHNlbGVjdHMgdGhlIGZpcnN0IHJlc3VsdCAoaWYgYW55KS5cbiAgICogQHBhcmFtIHNlYXJjaFRleHQgVGhlIG5hbWUgb2YgdGhlIGNvdW50cnkgdG8gc2VsZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlYXJjaEFuZFNlbGVjdEZpcnN0UmVzdWx0KHNlYXJjaFRleHQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuI3NlYXJjaEFuZFNlbGVjdChzZWFyY2hUZXh0LCAwLCB0aGlzLiNmaXh0dXJlKTtcblxuICAgIHRoaXMuI2ZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGF3YWl0IHRoaXMuI2ZpeHR1cmUud2hlblN0YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY291bnRyeSBzZWxlY3Rpb24gYW5kIGlucHV0IGZpZWxkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsZWFyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuI2VudGVyU2VhcmNoKCcnLCB0aGlzLiNmaXh0dXJlKTtcblxuICAgIHRoaXMuI2ZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGF3YWl0IHRoaXMuI2ZpeHR1cmUud2hlblN0YWJsZSgpO1xuICB9XG5cbiAgLy8jcmVnaW9uIGhlbHBlcnNcblxuICAjZ2V0Q291bnRyeUZsYWcoKTogRGVidWdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktY291bnRyeS1maWVsZC1mbGFnJykpO1xuICB9XG5cbiAgI2dldEF1dG9jb21wbGV0ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LWF1dG9jb21wbGV0ZS1yZXN1bHRzJykgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICAjZ2V0SW5wdXRFbGVtZW50KCk6IEhUTUxUZXh0QXJlYUVsZW1lbnQge1xuICAgIGNvbnN0IGRlYnVnRWwgPSB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygndGV4dGFyZWEnKSk7XG4gICAgcmV0dXJuIGRlYnVnRWwubmF0aXZlRWxlbWVudCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICB9XG5cbiAgYXN5bmMgI2JsdXJJbnB1dChmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KHRoaXMuI2dldElucHV0RWxlbWVudCgpLCAnYmx1cicpO1xuXG4gICAgZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgYXdhaXQgZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICBhc3luYyAjZW50ZXJTZWFyY2goXG4gICAgbmV3VmFsdWU6IHN0cmluZyxcbiAgICBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPHVua25vd24+LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLiNnZXRJbnB1dEVsZW1lbnQoKTtcbiAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQoaW5wdXRFbGVtZW50LCAnZm9jdXMnKTtcbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQoaW5wdXRFbGVtZW50LCAna2V5dXAnKTtcbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQoaW5wdXRFbGVtZW50LCAnaW5wdXQnKTtcbiAgICBmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICBhd2FpdCBmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgfVxuXG4gIGFzeW5jICNzZWFyY2hBbmRHZXRSZXN1bHRzKFxuICAgIG5ld1ZhbHVlOiBzdHJpbmcsXG4gICAgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTx1bmtub3duPixcbiAgKTogUHJvbWlzZTxOb2RlTGlzdE9mPEhUTUxFbGVtZW50Pj4ge1xuICAgIGF3YWl0IHRoaXMuI2VudGVyU2VhcmNoKG5ld1ZhbHVlLCBmaXh0dXJlKTtcbiAgICBmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICBhd2FpdCBmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgICByZXR1cm4gdGhpcy4jZ2V0QXV0b2NvbXBsZXRlRWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAnLnNreS1hdXRvY29tcGxldGUtcmVzdWx0JyxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgI3NlYXJjaEFuZFNlbGVjdChcbiAgICBuZXdWYWx1ZTogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTx1bmtub3duPixcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy4jZ2V0SW5wdXRFbGVtZW50KCk7XG4gICAgY29uc3Qgc2VhcmNoUmVzdWx0cyA9IGF3YWl0IHRoaXMuI3NlYXJjaEFuZEdldFJlc3VsdHMobmV3VmFsdWUsIGZpeHR1cmUpO1xuXG4gICAgaWYgKHNlYXJjaFJlc3VsdHMubGVuZ3RoIDwgaW5kZXggKyAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZSBmb3IgcmVzdWx0cycpO1xuICAgIH1cblxuICAgIC8vIE5vdGU6IHRoZSBvcmRlcmluZyBvZiB0aGVzZSBldmVudHMgaXMgaW1wb3J0YW50IVxuICAgIFNreUFwcFRlc3RVdGlsaXR5LmZpcmVEb21FdmVudChpbnB1dEVsZW1lbnQsICdjaGFuZ2UnKTtcbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQoc2VhcmNoUmVzdWx0c1tpbmRleF0sICdjbGljaycpO1xuICAgIHRoaXMuI2JsdXJJbnB1dChmaXh0dXJlKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvbiBoZWxwZXJzXG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1maWVsZC1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC90ZXN0aW5nL3NyYy9sZWdhY3kvY291bnRyeS1maWVsZC9jb3VudHJ5LWZpZWxkLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsUUFBUSxDQUFlO0lBRXZCOzs7T0FHRztJQUNILElBQVcscUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxvQkFBb0I7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQTRCO0lBRXBDLFlBQVksT0FBa0MsRUFBRSxTQUFpQjtRQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN2RCxPQUFPLEVBQ1AsU0FBUyxFQUNULG1CQUFtQixDQUNwQixD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ZSc7XG5pbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IEJ5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQWxsb3dzIGludGVyYWN0aW9uIHdpdGggYSBTS1kgVVggY291bnRyeSBmaWVsZCBjb21wb25lbnQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreUNvdW50cnlGaWVsZEZpeHR1cmUge1xuICAjZGVidWdFbDogRGVidWdFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0IGZpZWxkJ3MgYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZS5cbiAgICogQGRlcHJlY2F0ZWQgVGhlIGNvdW50cnkgZmllbGQgY29tcG9uZW50J3MgYGF1dG9jb21wbGV0ZUF0dHJpYnV0ZWAgaXMgZGVwcmVjYXRlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXV0b2NvbXBsZXRlQXR0cmlidXRlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLiNnZXRJbnB1dEVsZW1lbnQoKS5nZXRBdHRyaWJ1dGUoJ2F1dG9jb21wbGV0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSBjb3VudHJ5IGZsYWcgaXMgY3VycmVudGx5IHZpc2libGUuXG4gICAqIFRoZSBmbGFnIHdpbGwgYmUgdmlzaWJsZSBvbmx5IGlmIGEgc2VsZWN0aW9uIGhhcyBiZWVuIG1hZGVcbiAgICogYW5kIGlmIHRoZSBoaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZyBvcHRpb24gaXMgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvdW50cnlGbGFnSXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZsYWcgPSB0aGlzLiNnZXRDb3VudHJ5RmxhZygpO1xuICAgIHJldHVybiBmbGFnICE9PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCBoYXMgYmVlbiBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2dldElucHV0RWxlbWVudCgpLmRpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNlYXJjaFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZ2V0SW5wdXRFbGVtZW50KCkudmFsdWU7XG4gIH1cblxuICAjZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTx1bmtub3duPjtcblxuICBjb25zdHJ1Y3RvcihmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPHVua25vd24+LCBza3lUZXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMuI2ZpeHR1cmUgPSBmaXh0dXJlO1xuICAgIHRoaXMuI2RlYnVnRWwgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXREZWJ1Z0VsZW1lbnRCeVRlc3RJZChcbiAgICAgIGZpeHR1cmUsXG4gICAgICBza3lUZXN0SWQsXG4gICAgICAnc2t5LWNvdW50cnktZmllbGQnLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRW50ZXJzIHRoZSBzZWFyY2ggdGV4dCBpbnRvIHRoZSBpbnB1dCBmaWVsZCBkaXNwbGF5aW5nIHNlYXJjaCByZXN1bHRzLCBidXQgbWFraW5nIG5vIHNlbGVjdGlvbi5cbiAgICogQHBhcmFtIHNlYXJjaFRleHQgVGhlIG5hbWUgb2YgdGhlIGNvdW50cnkgdG8gc2VsZWN0LlxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBjb3VudHJ5IG5hbWVzIG1hdGNoaW5nIHRoZSBzZWFyY2ggdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWFyY2goc2VhcmNoVGV4dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHJlc3VsdE5vZGVzID0gYXdhaXQgdGhpcy4jc2VhcmNoQW5kR2V0UmVzdWx0cyhcbiAgICAgIHNlYXJjaFRleHQsXG4gICAgICB0aGlzLiNmaXh0dXJlLFxuICAgICk7XG4gICAgY29uc3QgcmVzdWx0QXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZXN1bHROb2Rlcyk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHJlc3VsdEFycmF5XG4gICAgICAubWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgY29uc3QgY291bnRyeU5hbWVFbCA9IHJlc3VsdC5xdWVyeVNlbGVjdG9yKCcuc2t5LWhpZ2hsaWdodC1tYXJrJyk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlOYW1lID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dChjb3VudHJ5TmFtZUVsKTtcbiAgICAgICAgcmV0dXJuIGNvdW50cnlOYW1lO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKHJlc3VsdCkgPT4gcmVzdWx0ICE9PSB1bmRlZmluZWQpO1xuXG4gICAgdGhpcy4jZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgYXdhaXQgdGhpcy4jZml4dHVyZS53aGVuU3RhYmxlKCk7XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlcnMgdGhlIHNlYXJjaCB0ZXh0IGludG8gdGhlIGlucHV0IGZpZWxkIGFuZCBzZWxlY3RzIHRoZSBmaXJzdCByZXN1bHQgKGlmIGFueSkuXG4gICAqIEBwYXJhbSBzZWFyY2hUZXh0IFRoZSBuYW1lIG9mIHRoZSBjb3VudHJ5IHRvIHNlbGVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWFyY2hBbmRTZWxlY3RGaXJzdFJlc3VsdChzZWFyY2hUZXh0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLiNzZWFyY2hBbmRTZWxlY3Qoc2VhcmNoVGV4dCwgMCwgdGhpcy4jZml4dHVyZSk7XG5cbiAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICBhd2FpdCB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGNvdW50cnkgc2VsZWN0aW9uIGFuZCBpbnB1dCBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGVhcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLiNlbnRlclNlYXJjaCgnJywgdGhpcy4jZml4dHVyZSk7XG5cbiAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICBhd2FpdCB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBoZWxwZXJzXG5cbiAgI2dldENvdW50cnlGbGFnKCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LWNvdW50cnktZmllbGQtZmxhZycpKTtcbiAgfVxuXG4gICNnZXRBdXRvY29tcGxldGVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1hdXRvY29tcGxldGUtcmVzdWx0cycpIGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgI2dldElucHV0RWxlbWVudCgpOiBIVE1MVGV4dEFyZWFFbGVtZW50IHtcbiAgICBjb25zdCBkZWJ1Z0VsID0gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJ3RleHRhcmVhJykpO1xuICAgIHJldHVybiBkZWJ1Z0VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgfVxuXG4gIGFzeW5jICNibHVySW5wdXQoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIFNreUFwcFRlc3RVdGlsaXR5LmZpcmVEb21FdmVudCh0aGlzLiNnZXRJbnB1dEVsZW1lbnQoKSwgJ2JsdXInKTtcblxuICAgIGZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGF3YWl0IGZpeHR1cmUud2hlblN0YWJsZSgpO1xuICB9XG5cbiAgYXN5bmMgI2VudGVyU2VhcmNoKFxuICAgIG5ld1ZhbHVlOiBzdHJpbmcsXG4gICAgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTx1bmtub3duPixcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy4jZ2V0SW5wdXRFbGVtZW50KCk7XG4gICAgaW5wdXRFbGVtZW50LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KGlucHV0RWxlbWVudCwgJ2ZvY3VzJyk7XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KGlucHV0RWxlbWVudCwgJ2tleXVwJyk7XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KGlucHV0RWxlbWVudCwgJ2lucHV0Jyk7XG4gICAgZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgYXdhaXQgZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICBhc3luYyAjc2VhcmNoQW5kR2V0UmVzdWx0cyhcbiAgICBuZXdWYWx1ZTogc3RyaW5nLFxuICAgIGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8dW5rbm93bj4sXG4gICk6IFByb21pc2U8Tm9kZUxpc3RPZjxIVE1MRWxlbWVudD4+IHtcbiAgICBhd2FpdCB0aGlzLiNlbnRlclNlYXJjaChuZXdWYWx1ZSwgZml4dHVyZSk7XG4gICAgZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgYXdhaXQgZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gICAgcmV0dXJuIHRoaXMuI2dldEF1dG9jb21wbGV0ZUVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgJy5za3ktYXV0b2NvbXBsZXRlLXJlc3VsdCcsXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jICNzZWFyY2hBbmRTZWxlY3QoXG4gICAgbmV3VmFsdWU6IHN0cmluZyxcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8dW5rbm93bj4sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuI2dldElucHV0RWxlbWVudCgpO1xuICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBhd2FpdCB0aGlzLiNzZWFyY2hBbmRHZXRSZXN1bHRzKG5ld1ZhbHVlLCBmaXh0dXJlKTtcblxuICAgIGlmIChzZWFyY2hSZXN1bHRzLmxlbmd0aCA8IGluZGV4ICsgMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UgZm9yIHJlc3VsdHMnKTtcbiAgICB9XG5cbiAgICAvLyBOb3RlOiB0aGUgb3JkZXJpbmcgb2YgdGhlc2UgZXZlbnRzIGlzIGltcG9ydGFudCFcbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQoaW5wdXRFbGVtZW50LCAnY2hhbmdlJyk7XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KHNlYXJjaFJlc3VsdHNbaW5kZXhdLCAnY2xpY2snKTtcbiAgICBhd2FpdCB0aGlzLiNibHVySW5wdXQoZml4dHVyZSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb24gaGVscGVyc1xufVxuIl19
@@ -19,6 +19,7 @@ export class SkySearchFixture {
19
19
  return this.#getInputEl().nativeElement.placeholder;
20
20
  }
21
21
  #debugEl;
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
23
  constructor(fixture, skyTestId) {
23
24
  this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-search');
24
25
  }
@@ -57,4 +58,4 @@ export class SkySearchFixture {
57
58
  return this.#debugEl.query(By.css('.sky-search-input'));
58
59
  }
59
60
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3Rlc3Rpbmcvc3JjL2xlZ2FjeS9zZWFyY2gvc2VhcmNoLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVEsQ0FBZTtJQUV2QixZQUFZLE9BQThCLEVBQUUsU0FBaUI7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FDdkQsT0FBTyxFQUNQLFNBQVMsRUFDVCxZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFVBQW1CO1FBQzlCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixpQkFBaUIsQ0FBQyxhQUFhLENBQzdCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxhQUFhLEVBQ2hDLFVBQVUsQ0FDWCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUVwQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLO1FBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQ2IscUZBQXFGO2dCQUNuRixxQ0FBcUMsQ0FDeEMsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFcEMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWJ1Z0VsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgQnkgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFNreUFwcFRlc3RVdGlsaXR5IH0gZnJvbSAnQHNreXV4LXNkay90ZXN0aW5nJztcblxuLyoqXG4gKiBBbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBzZWFyY2ggY29tcG9uZW50LlxuICogQGRlcHJlY2F0ZWQgVXNlIGBTa3lTZWFyY2hIYXJuZXNzYCBpbnN0ZWFkLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTZWFyY2hGaXh0dXJlIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIHNlYXJjaCdzIGN1cnJlbnQgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VhcmNoVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNnZXRJbnB1dEVsKCkubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzZWFyY2gncyBjdXJyZW50IHBsYWNlaG9sZGVyIHRleHQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNnZXRJbnB1dEVsKCkubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlcjtcbiAgfVxuXG4gICNkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LCBza3lUZXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMuI2RlYnVnRWwgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXREZWJ1Z0VsZW1lbnRCeVRlc3RJZChcbiAgICAgIGZpeHR1cmUsXG4gICAgICBza3lUZXN0SWQsXG4gICAgICAnc2t5LXNlYXJjaCcsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBzcGVjaWZpZWQgc2VhcmNoIHRleHQsIGludm9raW5nIHRoZSBzZWFyY2guXG4gICAqIEBwYXJhbSBzZWFyY2hUZXh0IFRoZSBzZWFyY2ggdGV4dCB0byBhcHBseS4gIElmIG5vbmUgaXMgc3BlY2lmaWVkLCB0aGUgc2VhcmNoJ3NcbiAgICogY3VycmVudCBzZWFyY2ggdGV4dCB3aWxsIGJlIGFwcGxpZWQuXG4gICAqL1xuICBwdWJsaWMgYXBwbHkoc2VhcmNoVGV4dD86IHN0cmluZykge1xuICAgIGlmIChzZWFyY2hUZXh0KSB7XG4gICAgICBTa3lBcHBUZXN0VXRpbGl0eS5zZXRJbnB1dFZhbHVlKFxuICAgICAgICB0aGlzLiNnZXRJbnB1dEVsKCkubmF0aXZlRWxlbWVudCxcbiAgICAgICAgc2VhcmNoVGV4dCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYnRuRWwgPSB0aGlzLiNnZXRBcHBseUJ0bkVsKCk7XG5cbiAgICBidG5FbC50cmlnZ2VyRXZlbnRIYW5kbGVyKCdjbGljaycsIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGN1cnJlbnQgc2VhcmNoIHRleHQuIElmIHRoZXJlIGlzIG5vIHNlYXJjaCB0ZXh0IG9yIHRoZSBzZWFyY2ggdGV4dCBpc1xuICAgKiBub3QgY3VycmVudGx5IGFwcGxpZWQsIGFuIGVycm9yIGlzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICBjb25zdCBjbGVhckVsID0gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktaW5wdXQtZ3JvdXAtY2xlYXInKSk7XG5cbiAgICBpZiAoIVNreUFwcFRlc3RVdGlsaXR5LmlzVmlzaWJsZShjbGVhckVsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlcmUgY3VycmVudGx5IGlzIG5vIHNlYXJjaCB0ZXh0IG9yIHRoZSBjdXJyZW50IHNlYXJjaCB0ZXh0IGhhcyBub3QgYmVlbiBhcHBsaWVkLCAnICtcbiAgICAgICAgICAnc28gdGhlIGNsZWFyIGJ1dHRvbiBpcyBub3QgdmlzaWJsZS4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBidG5FbCA9IHRoaXMuI2dldENsZWFyQnRuRWwoKTtcblxuICAgIGJ0bkVsLnRyaWdnZXJFdmVudEhhbmRsZXIoJ2NsaWNrJywge30pO1xuICB9XG5cbiAgI2dldEFwcGx5QnRuRWwoKTogRGVidWdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktc2VhcmNoLWJ0bi1hcHBseScpKTtcbiAgfVxuXG4gICNnZXRDbGVhckJ0bkVsKCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LXNlYXJjaC1idG4tY2xlYXInKSk7XG4gIH1cblxuICAjZ2V0SW5wdXRFbCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1zZWFyY2gtaW5wdXQnKSk7XG4gIH1cbn1cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3Rlc3Rpbmcvc3JjL2xlZ2FjeS9zZWFyY2gvc2VhcmNoLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVEsQ0FBZTtJQUV2Qiw4REFBOEQ7SUFDOUQsWUFBWSxPQUE4QixFQUFFLFNBQWlCO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQ3ZELE9BQU8sRUFDUCxTQUFTLEVBQ1QsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxVQUFtQjtRQUM5QixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsaUJBQWlCLENBQUMsYUFBYSxDQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxFQUNoQyxVQUFVLENBQ1gsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFcEMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSztRQUNWLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksS0FBSyxDQUNiLHFGQUFxRjtnQkFDbkYscUNBQXFDLENBQ3hDLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXBDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVidWdFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IEJ5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQWxsb3dzIGludGVyYWN0aW9uIHdpdGggYSBTS1kgVVggc2VhcmNoIGNvbXBvbmVudC5cbiAqIEBkZXByZWNhdGVkIFVzZSBgU2t5U2VhcmNoSGFybmVzc2AgaW5zdGVhZC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5U2VhcmNoRml4dHVyZSB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzZWFyY2gncyBjdXJyZW50IHRleHQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNlYXJjaFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZ2V0SW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2VhcmNoJ3MgY3VycmVudCBwbGFjZWhvbGRlciB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCBwbGFjZWhvbGRlclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZ2V0SW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXI7XG4gIH1cblxuICAjZGVidWdFbDogRGVidWdFbGVtZW50O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55Piwgc2t5VGVzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNkZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1zZWFyY2gnLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgc3BlY2lmaWVkIHNlYXJjaCB0ZXh0LCBpbnZva2luZyB0aGUgc2VhcmNoLlxuICAgKiBAcGFyYW0gc2VhcmNoVGV4dCBUaGUgc2VhcmNoIHRleHQgdG8gYXBwbHkuICBJZiBub25lIGlzIHNwZWNpZmllZCwgdGhlIHNlYXJjaCdzXG4gICAqIGN1cnJlbnQgc2VhcmNoIHRleHQgd2lsbCBiZSBhcHBsaWVkLlxuICAgKi9cbiAgcHVibGljIGFwcGx5KHNlYXJjaFRleHQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgU2t5QXBwVGVzdFV0aWxpdHkuc2V0SW5wdXRWYWx1ZShcbiAgICAgICAgdGhpcy4jZ2V0SW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHNlYXJjaFRleHQsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGJ0bkVsID0gdGhpcy4jZ2V0QXBwbHlCdG5FbCgpO1xuXG4gICAgYnRuRWwudHJpZ2dlckV2ZW50SGFuZGxlcignY2xpY2snLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjdXJyZW50IHNlYXJjaCB0ZXh0LiBJZiB0aGVyZSBpcyBubyBzZWFyY2ggdGV4dCBvciB0aGUgc2VhcmNoIHRleHQgaXNcbiAgICogbm90IGN1cnJlbnRseSBhcHBsaWVkLCBhbiBlcnJvciBpcyB0aHJvd24uXG4gICAqL1xuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgY29uc3QgY2xlYXJFbCA9IHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LWlucHV0LWdyb3VwLWNsZWFyJykpO1xuXG4gICAgaWYgKCFTa3lBcHBUZXN0VXRpbGl0eS5pc1Zpc2libGUoY2xlYXJFbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZXJlIGN1cnJlbnRseSBpcyBubyBzZWFyY2ggdGV4dCBvciB0aGUgY3VycmVudCBzZWFyY2ggdGV4dCBoYXMgbm90IGJlZW4gYXBwbGllZCwgJyArXG4gICAgICAgICAgJ3NvIHRoZSBjbGVhciBidXR0b24gaXMgbm90IHZpc2libGUuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYnRuRWwgPSB0aGlzLiNnZXRDbGVhckJ0bkVsKCk7XG5cbiAgICBidG5FbC50cmlnZ2VyRXZlbnRIYW5kbGVyKCdjbGljaycsIHt9KTtcbiAgfVxuXG4gICNnZXRBcHBseUJ0bkVsKCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LXNlYXJjaC1idG4tYXBwbHknKSk7XG4gIH1cblxuICAjZ2V0Q2xlYXJCdG5FbCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1zZWFyY2gtYnRuLWNsZWFyJykpO1xuICB9XG5cbiAgI2dldElucHV0RWwoKTogRGVidWdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktc2VhcmNoLWlucHV0JykpO1xuICB9XG59XG4iXX0=
@@ -28,27 +28,31 @@ export class SkyCountryFieldHarness extends SkyAutocompleteHarness {
28
28
  }
29
29
  /**
30
30
  * Blurs the country field input.
31
+ * @deprecated Call `await (await countryField.getControl()).blur()` instead.
31
32
  */
32
33
  async blur() {
33
- return await super.blur();
34
+ return await (await super.getControl()).blur();
34
35
  }
35
36
  /**
36
37
  * Clears the country field input value.
38
+ * @deprecated Call `await (await countryField.getControl()).clear()` instead.
37
39
  */
38
40
  async clear() {
39
- return await super.clear();
41
+ return await (await super.getControl()).clear();
40
42
  }
41
43
  /**
42
44
  * Enters text into the country field input.
45
+ * @deprecated Call `await (await countryField.getControl()).setValue()` instead.
43
46
  */
44
47
  async enterText(value) {
45
- return await super.enterText(value);
48
+ return await (await super.getControl()).setValue(value);
46
49
  }
47
50
  /**
48
51
  * Focuses the country field input.
52
+ * @deprecated Call `await (await countryField.getControl()).focus()` instead.
49
53
  */
50
54
  async focus() {
51
- return await super.focus();
55
+ return await (await super.getControl()).focus();
52
56
  }
53
57
  /**
54
58
  * Gets the country field `aria-labelledby` value.
@@ -91,9 +95,10 @@ export class SkyCountryFieldHarness extends SkyAutocompleteHarness {
91
95
  }
92
96
  /**
93
97
  * Gets the value of the country field input.
98
+ * @deprecated Call `await (await countryField.getControl()).getValue()` instead.
94
99
  */
95
100
  async getValue() {
96
- return await super.getValue();
101
+ return await (await super.getControl()).getValue();
97
102
  }
98
103
  /**
99
104
  * Gets the text displayed when no search results are found.
@@ -107,15 +112,17 @@ export class SkyCountryFieldHarness extends SkyAutocompleteHarness {
107
112
  }
108
113
  /**
109
114
  * Whether the country field input is disabled.
115
+ * @deprecated Call `await (await countryField.getControl()).isDisabled()` instead.
110
116
  */
111
117
  async isDisabled() {
112
- return await super.isDisabled();
118
+ return await (await super.getControl()).isDisabled();
113
119
  }
114
120
  /**
115
121
  * Whether the country field input is focused.
122
+ * @deprecated Call `await (await countryField.getControl()).isFocused()` instead.
116
123
  */
117
124
  async isFocused() {
118
- return await super.isFocused();
125
+ return await (await super.getControl()).isFocused();
119
126
  }
120
127
  /**
121
128
  * Whether the country field is open.
@@ -136,4 +143,4 @@ export class SkyCountryFieldHarness extends SkyAutocompleteHarness {
136
143
  : null;
137
144
  }
138
145
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1maWVsZC1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC90ZXN0aW5nL3NyYy9tb2R1bGVzL2NvdW50cnktZmllbGQvY291bnRyeS1maWVsZC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3pGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzNGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQUNoRTs7Ozs7T0FLRzthQUNvQixpQkFBWSxHQUNqQyxnREFBZ0QsQ0FBQztJQUVuRCxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUV6RCxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBRXpEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQVUsSUFBSSxDQUN6QixPQUFzQztRQUV0QyxPQUFPLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNhLEtBQUssQ0FBQyxJQUFJO1FBQ3hCLE9BQU8sTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ2EsS0FBSyxDQUFDLEtBQUs7UUFDekIsT0FBTyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDYSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWE7UUFDM0MsT0FB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LENBQUMsa0JBQWtCLENBQ2hELGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDdEQsRUFBRTtZQUNMLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreU92ZXJsYXlIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZUhhcm5lc3MgfSBmcm9tICcuLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlSW5wdXRIYXJuZXNzIH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1pbnB1dC1oYXJuZXNzJztcblxuaW1wb3J0IHsgU2t5Q291bnRyeUZpZWxkSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2NvdW50cnktZmllbGQtaGFybmVzcy1maWx0ZXJzJztcbmltcG9ydCB7IFNreUNvdW50cnlGaWVsZFNlYXJjaFJlc3VsdEhhcm5lc3MgfSBmcm9tICcuL2NvdW50cnktZmllbGQtc2VhcmNoLXJlc3VsdC1oYXJuZXNzJztcbmltcG9ydCB7IFNreUNvdW50cnlGaWVsZFNlYXJjaFJlc3VsdEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9jb3VudHJ5LWZpZWxkLXNlYXJjaC1yZXN1bHQtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgY291bnRyeSBmaWVsZCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lDb3VudHJ5RmllbGRIYXJuZXNzIGV4dGVuZHMgU2t5QXV0b2NvbXBsZXRlSGFybmVzcyB7XG4gIC8qKlxuICAgKiBGaW5kcyBhIHN0YW5kYXJkIGNvdW50cnkgZmllbGQgY29tcG9uZW50LCBvciBhIGNvdW50cnkgZmllbGQgY29tcG9uZW50IHRoYXQgaXMgd3JhcHBlZCBieSBhbiBpbnB1dCBib3ggY29tcG9uZW50LlxuICAgKiBGb3IgaW5wdXQgYm94IGltcGxlbWVudGF0aW9ucywgd2UgbmVlZCB0byB1c2UgdGhlIGAuc2t5LWlucHV0LWJveGAgc2VsZWN0b3Igc2luY2UgdGhlIGBza3ktY291bnRyeS1maWVsZGBcbiAgICogZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIERPTS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGhvc3RTZWxlY3RvciA9XG4gICAgJ3NreS1jb3VudHJ5LWZpZWxkLC5za3ktY291bnRyeS1maWVsZC1jb250YWluZXInO1xuXG4gICNkb2N1bWVudFJvb3RMb2NhdG9yID0gdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpO1xuXG4gICNnZXRJbnB1dCA9IHRoaXMubG9jYXRvckZvcihTa3lBdXRvY29tcGxldGVJbnB1dEhhcm5lc3MpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lDb3VudHJ5RmllbGRIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqIFRoZXNlIGZpbHRlcnMgb25seSB3b3JrIGZvciBzdGFuZGFsb25lIGNvdW50cnkgZmllbGRzLlxuICAgKiBGb3IgY291bnRyeSBmaWVsZHMgd3JhcHBlZCBpbnNpZGUgYHNreS1pbnB1dC1ib3hgLCBwbGFjZSBmaWx0ZXJzXG4gICAqIG9uIHRoZSBpbnB1dCBib3ggaW5zdGVhZCwgYW5kIHF1ZXJ5IHRoZSBjb3VudHJ5IGZpZWxkIHVzaW5nIGEgYFNreUlucHV0Qm94SGFybmVzc2AuXG4gICAqIEZvciB0aGUgaW5wdXQgYm94IGltcGxlbWVudGF0aW9uLCBzZWUgdGhlIGNvZGUgZXhhbXBsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lDb3VudHJ5RmllbGRIYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lDb3VudHJ5RmllbGRIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreUNvdW50cnlGaWVsZEhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJsdXJzIHRoZSBjb3VudHJ5IGZpZWxkIGlucHV0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGJsdXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJsdXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGNvdW50cnkgZmllbGQgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgY2xlYXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogRW50ZXJzIHRleHQgaW50byB0aGUgY291bnRyeSBmaWVsZCBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBlbnRlclRleHQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5lbnRlclRleHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGNvdW50cnkgZmllbGQgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgZm9jdXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY291bnRyeSBmaWVsZCAgYGFyaWEtbGFiZWxsZWRieWAgdmFsdWUuXG4gICAqIFRoaXMgaXMgbm90IG5lZWRlZCBmb3IgY291bnRyeSBmaWVsZCBiZWNhdXNlIHRoZSBpZCBpcyBnZW5lcmF0ZWQgaW50ZXJuYWxseSxcbiAgICogYW5kIHRoZSBtZXRob2QgaXMgbWFya2VkIGludGVybmFsIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBkb2N1bWVudGVkIHB1YmxpY2x5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBnZXRBcmlhTGFiZWxsZWRieSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuZ2V0QXJpYUxhYmVsbGVkYnkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGNvdW50cnkgZmllbGQgc2VhcmNoIHJlc3VsdCBoYXJuZXNzZXMuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgZ2V0U2VhcmNoUmVzdWx0cyhcbiAgICBmaWx0ZXJzPzogU2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8U2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc1tdPiB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IGF3YWl0IHRoaXMuI2dldE92ZXJsYXkoKTtcblxuICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVW5hYmxlIHRvIHJldHJpZXZlIHNlYXJjaCByZXN1bHRzLiBUaGUgY291bnRyeSBmaWVsZCBpcyBjbG9zZWQuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFybmVzc2VzID0gYXdhaXQgb3ZlcmxheS5xdWVyeUhhcm5lc3NlcyhcbiAgICAgIFNreUNvdW50cnlGaWVsZFNlYXJjaFJlc3VsdEhhcm5lc3Mud2l0aChmaWx0ZXJzIHx8IHt9KSxcbiAgICApO1xuXG4gICAgaWYgKGZpbHRlcnMgJiYgaGFybmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gU3RyaW5naWZ5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gc28gdGhhdCBpdCdzIHJlYWRhYmxlIGluIHRoZSBjb25zb2xlIGxvZy5cbiAgICAgIGlmIChmaWx0ZXJzLnRleHQgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgZmlsdGVycy50ZXh0ID0gZmlsdGVycy50ZXh0LnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCBmaW5kIHNlYXJjaCByZXN1bHRzIG1hdGNoaW5nIGZpbHRlcihzKTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBoYXJuZXNzZXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdGV4dCBjb250ZW50IGZvciBlYWNoIGNvdW50cnkgZmllbGQgc2VhcmNoIHJlc3VsdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBnZXRTZWFyY2hSZXN1bHRzVGV4dChcbiAgICBmaWx0ZXJzPzogU2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBoYXJuZXNzZXMgPSBhd2FpdCB0aGlzLmdldFNlYXJjaFJlc3VsdHMoZmlsdGVycyk7XG5cbiAgICBjb25zdCB0ZXh0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgaGFybmVzcyBvZiBoYXJuZXNzZXMpIHtcbiAgICAgIHRleHQucHVzaChhd2FpdCBoYXJuZXNzLmdldFRleHQoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvdW50cnkgZmllbGQgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgZ2V0VmFsdWUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0ZXh0IGRpc3BsYXllZCB3aGVuIG5vIHNlYXJjaCByZXN1bHRzIGFyZSBmb3VuZC5cbiAgICogRm9yIGEgY291bnRyeSBmaWVsZCwgdGhpcyBpcyBhbHdheXMgdGhlIGRlZmF1bHQgdGV4dCBhbmQgdGhlIG1ldGhvZFxuICAgKiBpcyBtYXJrZWQgaW50ZXJuYWwgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIGRvY3VtZW50ZWQgcHVibGljbHkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGdldE5vUmVzdWx0c0ZvdW5kVGV4dCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5nZXROb1Jlc3VsdHNGb3VuZFRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb3VudHJ5IGZpZWxkIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmlzRGlzYWJsZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb3VudHJ5IGZpZWxkIGlucHV0IGlzIGZvY3VzZWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgaXNGb2N1c2VkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5pc0ZvY3VzZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb3VudHJ5IGZpZWxkIGlzIG9wZW4uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgaXNPcGVuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5pc09wZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgc2VhcmNoIHJlc3VsdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBzZWxlY3RTZWFyY2hSZXN1bHQoXG4gICAgZmlsdGVyczogU2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5zZWxlY3RTZWFyY2hSZXN1bHQoZmlsdGVycyk7XG4gIH1cblxuICBhc3luYyAjZ2V0T3ZlcmxheSgpOiBQcm9taXNlPFNreU92ZXJsYXlIYXJuZXNzIHwgbnVsbD4ge1xuICAgIGNvbnN0IG92ZXJsYXlJZCA9IGF3YWl0IChhd2FpdCB0aGlzLiNnZXRJbnB1dCgpKS5nZXRBcmlhQ29udHJvbHMoKTtcblxuICAgIHJldHVybiBvdmVybGF5SWRcbiAgICAgID8gYXdhaXQgdGhpcy4jZG9jdW1lbnRSb290TG9jYXRvci5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICAgICAgU2t5T3ZlcmxheUhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiBgIyR7b3ZlcmxheUlkfWAgfSksXG4gICAgICAgICkoKVxuICAgICAgOiBudWxsO1xuICB9XG59XG4iXX0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1maWVsZC1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC90ZXN0aW5nL3NyYy9tb2R1bGVzL2NvdW50cnktZmllbGQvY291bnRyeS1maWVsZC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3pGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzNGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQUNoRTs7Ozs7T0FLRzthQUNvQixpQkFBWSxHQUNqQyxnREFBZ0QsQ0FBQztJQUVuRCxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUV6RCxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBRXpEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQVUsSUFBSSxDQUN6QixPQUFzQztRQUV0QyxPQUFPLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7O09BR0c7SUFDYSxLQUFLLENBQUMsSUFBSTtRQUN4QixPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDYSxLQUFLLENBQUMsS0FBSztRQUN6QixPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFD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O1FBRWxELE9BQU8sTUFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFbkUsT0FBTyxTQUFTO1lBQ2QsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUNoRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQ3RELEVBQUU7WUFDTCxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lPdmVybGF5SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVIYXJuZXNzIH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1oYXJuZXNzJztcbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZUlucHV0SGFybmVzcyB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaW5wdXQtaGFybmVzcyc7XG5cbmltcG9ydCB7IFNreUNvdW50cnlGaWVsZEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9jb3VudHJ5LWZpZWxkLWhhcm5lc3MtZmlsdGVycyc7XG5pbXBvcnQgeyBTa3lDb3VudHJ5RmllbGRTZWFyY2hSZXN1bHRIYXJuZXNzIH0gZnJvbSAnLi9jb3VudHJ5LWZpZWxkLXNlYXJjaC1yZXN1bHQtaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lDb3VudHJ5RmllbGRTZWFyY2hSZXN1bHRIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vY291bnRyeS1maWVsZC1zZWFyY2gtcmVzdWx0LWhhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIGNvdW50cnkgZmllbGQgY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5Q291bnRyeUZpZWxkSGFybmVzcyBleHRlbmRzIFNreUF1dG9jb21wbGV0ZUhhcm5lc3Mge1xuICAvKipcbiAgICogRmluZHMgYSBzdGFuZGFyZCBjb3VudHJ5IGZpZWxkIGNvbXBvbmVudCwgb3IgYSBjb3VudHJ5IGZpZWxkIGNvbXBvbmVudCB0aGF0IGlzIHdyYXBwZWQgYnkgYW4gaW5wdXQgYm94IGNvbXBvbmVudC5cbiAgICogRm9yIGlucHV0IGJveCBpbXBsZW1lbnRhdGlvbnMsIHdlIG5lZWQgdG8gdXNlIHRoZSBgLnNreS1pbnB1dC1ib3hgIHNlbGVjdG9yIHNpbmNlIHRoZSBgc2t5LWNvdW50cnktZmllbGRgXG4gICAqIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBET00uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBob3N0U2VsZWN0b3IgPVxuICAgICdza3ktY291bnRyeS1maWVsZCwuc2t5LWNvdW50cnktZmllbGQtY29udGFpbmVyJztcblxuICAjZG9jdW1lbnRSb290TG9jYXRvciA9IHRoaXMuZG9jdW1lbnRSb290TG9jYXRvckZhY3RvcnkoKTtcblxuICAjZ2V0SW5wdXQgPSB0aGlzLmxvY2F0b3JGb3IoU2t5QXV0b2NvbXBsZXRlSW5wdXRIYXJuZXNzKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5Q291bnRyeUZpZWxkSGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKiBUaGVzZSBmaWx0ZXJzIG9ubHkgd29yayBmb3Igc3RhbmRhbG9uZSBjb3VudHJ5IGZpZWxkcy5cbiAgICogRm9yIGNvdW50cnkgZmllbGRzIHdyYXBwZWQgaW5zaWRlIGBza3ktaW5wdXQtYm94YCwgcGxhY2UgZmlsdGVyc1xuICAgKiBvbiB0aGUgaW5wdXQgYm94IGluc3RlYWQsIGFuZCBxdWVyeSB0aGUgY291bnRyeSBmaWVsZCB1c2luZyBhIGBTa3lJbnB1dEJveEhhcm5lc3NgLlxuICAgKiBGb3IgdGhlIGlucHV0IGJveCBpbXBsZW1lbnRhdGlvbiwgc2VlIHRoZSBjb2RlIGV4YW1wbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHdpdGgoXG4gICAgZmlsdGVyczogU2t5Q291bnRyeUZpZWxkSGFybmVzc0ZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5Q291bnRyeUZpZWxkSGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lDb3VudHJ5RmllbGRIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbHVycyB0aGUgY291bnRyeSBmaWVsZCBpbnB1dC5cbiAgICogQGRlcHJlY2F0ZWQgQ2FsbCBgYXdhaXQgKGF3YWl0IGNvdW50cnlGaWVsZC5nZXRDb250cm9sKCkpLmJsdXIoKWAgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBibHVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgc3VwZXIuZ2V0Q29udHJvbCgpKS5ibHVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjb3VudHJ5IGZpZWxkIGlucHV0IHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBDYWxsIGBhd2FpdCAoYXdhaXQgY291bnRyeUZpZWxkLmdldENvbnRyb2woKSkuY2xlYXIoKWAgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBjbGVhcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHN1cGVyLmdldENvbnRyb2woKSkuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlcnMgdGV4dCBpbnRvIHRoZSBjb3VudHJ5IGZpZWxkIGlucHV0LlxuICAgKiBAZGVwcmVjYXRlZCBDYWxsIGBhd2FpdCAoYXdhaXQgY291bnRyeUZpZWxkLmdldENvbnRyb2woKSkuc2V0VmFsdWUoKWAgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBlbnRlclRleHQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgc3VwZXIuZ2V0Q29udHJvbCgpKS5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgY291bnRyeSBmaWVsZCBpbnB1dC5cbiAgICogQGRlcHJlY2F0ZWQgQ2FsbCBgYXdhaXQgKGF3YWl0IGNvdW50cnlGaWVsZC5nZXRDb250cm9sKCkpLmZvY3VzKClgIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgZm9jdXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCBzdXBlci5nZXRDb250cm9sKCkpLmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY291bnRyeSBmaWVsZCAgYGFyaWEtbGFiZWxsZWRieWAgdmFsdWUuXG4gICAqIFRoaXMgaXMgbm90IG5lZWRlZCBmb3IgY291bnRyeSBmaWVsZCBiZWNhdXNlIHRoZSBpZCBpcyBnZW5lcmF0ZWQgaW50ZXJuYWxseSxcbiAgICogYW5kIHRoZSBtZXRob2QgaXMgbWFya2VkIGludGVybmFsIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBkb2N1bWVudGVkIHB1YmxpY2x5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBnZXRBcmlhTGFiZWxsZWRieSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuZ2V0QXJpYUxhYmVsbGVkYnkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGNvdW50cnkgZmllbGQgc2VhcmNoIHJlc3VsdCBoYXJuZXNzZXMuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgZ2V0U2VhcmNoUmVzdWx0cyhcbiAgICBmaWx0ZXJzPzogU2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8U2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc1tdPiB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IGF3YWl0IHRoaXMuI2dldE92ZXJsYXkoKTtcblxuICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVW5hYmxlIHRvIHJldHJpZXZlIHNlYXJjaCByZXN1bHRzLiBUaGUgY291bnRyeSBmaWVsZCBpcyBjbG9zZWQuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFybmVzc2VzID0gYXdhaXQgb3ZlcmxheS5xdWVyeUhhcm5lc3NlcyhcbiAgICAgIFNreUNvdW50cnlGaWVsZFNlYXJjaFJlc3VsdEhhcm5lc3Mud2l0aChmaWx0ZXJzIHx8IHt9KSxcbiAgICApO1xuXG4gICAgaWYgKGZpbHRlcnMgJiYgaGFybmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gU3RyaW5naWZ5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gc28gdGhhdCBpdCdzIHJlYWRhYmxlIGluIHRoZSBjb25zb2xlIGxvZy5cbiAgICAgIGlmIChmaWx0ZXJzLnRleHQgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgZmlsdGVycy50ZXh0ID0gZmlsdGVycy50ZXh0LnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCBmaW5kIHNlYXJjaCByZXN1bHRzIG1hdGNoaW5nIGZpbHRlcihzKTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBoYXJuZXNzZXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdGV4dCBjb250ZW50IGZvciBlYWNoIGNvdW50cnkgZmllbGQgc2VhcmNoIHJlc3VsdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBnZXRTZWFyY2hSZXN1bHRzVGV4dChcbiAgICBmaWx0ZXJzPzogU2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBoYXJuZXNzZXMgPSBhd2FpdCB0aGlzLmdldFNlYXJjaFJlc3VsdHMoZmlsdGVycyk7XG5cbiAgICBjb25zdCB0ZXh0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgaGFybmVzcyBvZiBoYXJuZXNzZXMpIHtcbiAgICAgIHRleHQucHVzaChhd2FpdCBoYXJuZXNzLmdldFRleHQoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvdW50cnkgZmllbGQgaW5wdXQuXG4gICAqIEBkZXByZWNhdGVkIENhbGwgYGF3YWl0IChhd2FpdCBjb3VudHJ5RmllbGQuZ2V0Q29udHJvbCgpKS5nZXRWYWx1ZSgpYCBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGdldFZhbHVlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCBzdXBlci5nZXRDb250cm9sKCkpLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdGV4dCBkaXNwbGF5ZWQgd2hlbiBubyBzZWFyY2ggcmVzdWx0cyBhcmUgZm91bmQuXG4gICAqIEZvciBhIGNvdW50cnkgZmllbGQsIHRoaXMgaXMgYWx3YXlzIHRoZSBkZWZhdWx0IHRleHQgYW5kIHRoZSBtZXRob2RcbiAgICogaXMgbWFya2VkIGludGVybmFsIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBkb2N1bWVudGVkIHB1YmxpY2x5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBnZXROb1Jlc3VsdHNGb3VuZFRleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuZ2V0Tm9SZXN1bHRzRm91bmRUZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY291bnRyeSBmaWVsZCBpbnB1dCBpcyBkaXNhYmxlZC5cbiAgICogQGRlcHJlY2F0ZWQgQ2FsbCBgYXdhaXQgKGF3YWl0IGNvdW50cnlGaWVsZC5nZXRDb250cm9sKCkpLmlzRGlzYWJsZWQoKWAgaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBpc0Rpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgc3VwZXIuZ2V0Q29udHJvbCgpKS5pc0Rpc2FibGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY291bnRyeSBmaWVsZCBpbnB1dCBpcyBmb2N1c2VkLlxuICAgKiBAZGVwcmVjYXRlZCBDYWxsIGBhd2FpdCAoYXdhaXQgY291bnRyeUZpZWxkLmdldENvbnRyb2woKSkuaXNGb2N1c2VkKClgIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgaXNGb2N1c2VkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgc3VwZXIuZ2V0Q29udHJvbCgpKS5pc0ZvY3VzZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb3VudHJ5IGZpZWxkIGlzIG9wZW4uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgaXNPcGVuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5pc09wZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgc2VhcmNoIHJlc3VsdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBzZWxlY3RTZWFyY2hSZXN1bHQoXG4gICAgZmlsdGVyczogU2t5Q291bnRyeUZpZWxkU2VhcmNoUmVzdWx0SGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5zZWxlY3RTZWFyY2hSZXN1bHQoZmlsdGVycyk7XG4gIH1cblxuICBhc3luYyAjZ2V0T3ZlcmxheSgpOiBQcm9taXNlPFNreU92ZXJsYXlIYXJuZXNzIHwgbnVsbD4ge1xuICAgIGNvbnN0IG92ZXJsYXlJZCA9IGF3YWl0IChhd2FpdCB0aGlzLiNnZXRJbnB1dCgpKS5nZXRBcmlhQ29udHJvbHMoKTtcblxuICAgIHJldHVybiBvdmVybGF5SWRcbiAgICAgID8gYXdhaXQgdGhpcy4jZG9jdW1lbnRSb290TG9jYXRvci5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICAgICAgU2t5T3ZlcmxheUhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiBgIyR7b3ZlcmxheUlkfWAgfSksXG4gICAgICAgICkoKVxuICAgICAgOiBudWxsO1xuICB9XG59XG4iXX0=