sidesys-generic-ui 2.4.4 → 2.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/esm2022/lib/avatar/components/profile-group/s-profile-group.component.mjs +13 -13
  2. package/esm2022/lib/avatar/s-avatar.component.mjs +19 -15
  3. package/esm2022/lib/badge/s-badge.component.mjs +1 -1
  4. package/esm2022/lib/breadcrum/s-breadcrum.component.mjs +1 -1
  5. package/esm2022/lib/card/s-card.component.mjs +3 -3
  6. package/esm2022/lib/collapse/s-collapse.component.mjs +3 -3
  7. package/esm2022/lib/empty/empty.component.mjs +1 -1
  8. package/esm2022/lib/grid-multi-inputs/grid-multi-inputs.component.mjs +1 -1
  9. package/esm2022/lib/icon-material/s-icon-material.component.mjs +6 -8
  10. package/esm2022/lib/icon-material/s-icon-material.model.mjs +1 -1
  11. package/esm2022/lib/input/components/calendar/s-calendar.component.mjs +1 -1
  12. package/esm2022/lib/input/components/color/s-color.component.mjs +1 -1
  13. package/esm2022/lib/input/components/error-control/s-error-control.component.mjs +1 -1
  14. package/esm2022/lib/input/components/input/s-input.component.mjs +1 -1
  15. package/esm2022/lib/input/components/input-number/s-input-number.component.mjs +1 -1
  16. package/esm2022/lib/input/components/time/s-time.component.mjs +1 -1
  17. package/esm2022/lib/list/s-list.component.mjs +1 -1
  18. package/esm2022/lib/modal/modal-confirm/modal-confirm.component.mjs +3 -3
  19. package/esm2022/lib/navbar/components/icon-menu/components/s-notificaction.component.mjs +1 -1
  20. package/esm2022/lib/navbar/components/icon-menu/s-icon-menu.component.mjs +1 -1
  21. package/esm2022/lib/navbar/components/menu-main/s-menu-main.component.mjs +1 -1
  22. package/esm2022/lib/navbar/s-navbar.component.mjs +3 -3
  23. package/esm2022/lib/pagination/s-pagination.component.mjs +1 -1
  24. package/esm2022/lib/popup/s-popup.component.mjs +1 -1
  25. package/esm2022/lib/precode/s-precode.component.mjs +1 -1
  26. package/esm2022/lib/progressbar/s-progressbar.component.mjs +1 -1
  27. package/esm2022/lib/select/select/s-select.component.mjs +3 -3
  28. package/esm2022/lib/select/select-multiple/s-select-multiple.component.mjs +3 -3
  29. package/esm2022/lib/select/select-multiple-old/s-select-multiple-old.component.mjs +3 -3
  30. package/esm2022/lib/select/select-simple/s-select-simple.component.mjs +3 -3
  31. package/esm2022/lib/sidebar/s-sidebar.component.mjs +3 -3
  32. package/esm2022/lib/sub-menu/s-sub-menu.component.mjs +3 -3
  33. package/esm2022/lib/table-double/table-double.component.mjs +41 -16
  34. package/esm2022/lib/table-double/table-double.model.mjs +1 -1
  35. package/esm2022/lib/table-double-complete/index.mjs +3 -0
  36. package/esm2022/lib/table-double-complete/table-double-complete.component.mjs +39 -25
  37. package/esm2022/lib/table-double-complete/table-double-complete.model.mjs +1 -1
  38. package/esm2022/lib/table-t/s-tablet-model.mjs +1 -1
  39. package/esm2022/lib/table-t/s-tablet.component.mjs +3 -3
  40. package/esm2022/lib/table-t/table-actions-buttons/table-actions-buttons.component.mjs +3 -3
  41. package/esm2022/lib/tabs/s-tabs.component.mjs +1 -1
  42. package/esm2022/lib/timeline/s-timeline.component.mjs +3 -3
  43. package/esm2022/lib/toast/s-toast.component.mjs +1 -1
  44. package/esm2022/lib/toggle-switch/s-toggle-switch.component.mjs +3 -3
  45. package/esm2022/lib/toggle-switch/toggle-switch-form/toggle-switch-form.component.mjs +1 -1
  46. package/esm2022/lib/toolbar-top/toolbar-top.component.mjs +4 -6
  47. package/esm2022/lib/tree-list/s-tree-list.component.mjs +1 -1
  48. package/esm2022/public-api.mjs +2 -2
  49. package/fesm2022/sidesys-generic-ui.mjs +161 -125
  50. package/fesm2022/sidesys-generic-ui.mjs.map +1 -1
  51. package/lib/avatar/components/profile-group/s-profile-group.component.d.ts +1 -1
  52. package/lib/avatar/s-avatar.component.d.ts +1 -3
  53. package/lib/icon-material/s-icon-material.component.d.ts +1 -2
  54. package/lib/icon-material/s-icon-material.model.d.ts +1 -2
  55. package/lib/table-double/table-double.component.d.ts +5 -2
  56. package/lib/table-double/table-double.model.d.ts +6 -2
  57. package/lib/table-double-complete/index.d.ts +2 -0
  58. package/lib/table-double-complete/table-double-complete.component.d.ts +5 -2
  59. package/lib/table-double-complete/table-double-complete.model.d.ts +2 -0
  60. package/lib/table-t/s-tablet-model.d.ts +2 -0
  61. package/lib/toolbar-top/toolbar-top.component.d.ts +2 -0
  62. package/package.json +1 -1
  63. package/public-api.d.ts +1 -2
@@ -1,7 +1,8 @@
1
- import { Component, EventEmitter, Input, Output, ViewEncapsulation, signal, } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, signal, inject, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { STabsModule } from '../tabs';
4
4
  import { STableDoubleComponent } from '../table-double/table-double.component';
5
+ import { STranslateService } from '../services/translate/translate.service';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../tabs/s-tabs.component";
7
8
  export class STableDoubleCompleteComponent {
@@ -18,13 +19,13 @@ export class STableDoubleCompleteComponent {
18
19
  this.pillButtonPositionEvent = new EventEmitter();
19
20
  this.scrollPositionEvent = new EventEmitter();
20
21
  this.selectPositionEvent = new EventEmitter();
22
+ this.switchChangeEvent = new EventEmitter();
21
23
  this.rightTableState = [];
22
24
  this.expandedNodes = new Map();
25
+ this._sTranslateService = inject(STranslateService);
23
26
  }
24
27
  ngOnInit() {
25
- this.rightTableState = [
26
- ...(this.config.tableConfig.tableRightItems ?? []),
27
- ];
28
+ this.rightTableState = [...(this.config.tableConfig.tableRightItems ?? [])];
28
29
  const selectedTab = this.config.tabs.find(t => t.selected);
29
30
  if (selectedTab) {
30
31
  this.setActiveTab(selectedTab);
@@ -46,10 +47,8 @@ export class STableDoubleCompleteComponent {
46
47
  onUpdateTables(event) {
47
48
  const prevRightIds = new Set(this.rightTableState.map(i => i.id));
48
49
  const sourceLeft = this.config.itemsByTab[this.activeTabKey] ?? [];
49
- const selectedRightItems = event.tableRightItems.filter(i => i.itemSelected);
50
- const parentId = this.config.treeMode && selectedRightItems.length === 1
51
- ? selectedRightItems[0].id
52
- : null;
50
+ const selectedRightItems = event.tableRightItems.filter(i => i.selected);
51
+ const parentId = this.config.treeMode && selectedRightItems.length === 1 ? selectedRightItems[0].id : null;
53
52
  const nextRight = event.tableRightItems.map(item => {
54
53
  const prev = this.rightTableState.find(r => r.id === item.id);
55
54
  const fromLeft = sourceLeft.find(l => l.id === item.id);
@@ -57,7 +56,7 @@ export class STableDoubleCompleteComponent {
57
56
  ...(prev ?? fromLeft ?? {}),
58
57
  id: item.id,
59
58
  name: item.name,
60
- selectedCheckbox: !!item.selectedCheckbox,
59
+ checked: !!item.checked,
61
60
  parentId: prev?.parentId ?? null,
62
61
  };
63
62
  });
@@ -77,6 +76,7 @@ export class STableDoubleCompleteComponent {
77
76
  let tableRightItems = this.mapToTableDoubleItems(this.rightTableState);
78
77
  if (this.config.treeMode) {
79
78
  tableRightItems = this.flattenTree(this.buildTree(this.rightTableState));
79
+ tableLeftItems;
80
80
  }
81
81
  this.tableDoubleAdapter = this.buildTableDoubleAdapter(tableLeftItems, tableRightItems);
82
82
  this.updateEvent.emit({
@@ -88,7 +88,7 @@ export class STableDoubleCompleteComponent {
88
88
  buildTableDoubleAdapter(leftItems, rightItems) {
89
89
  const rightColumns = [...this.config.tableConfig.tableRightConfig.columns];
90
90
  if (this.config.showOrderButtons && !rightColumns.some(c => c.id === 'actions')) {
91
- rightColumns.push({ id: 'actions', title: '' });
91
+ rightColumns.push({ id: 'actions', title: this._sTranslateService.instant('ui.generic.actions') });
92
92
  }
93
93
  return {
94
94
  additionButton: true,
@@ -100,7 +100,7 @@ export class STableDoubleCompleteComponent {
100
100
  totalItems: leftItems.length,
101
101
  isTreeMode: false,
102
102
  configBottomStatusBar: signal({
103
- counter: leftItems.filter(i => i.selectedCheckbox).length,
103
+ counter: leftItems.filter(i => i.checked).length,
104
104
  total: leftItems.length,
105
105
  disabled: leftItems.length === 0,
106
106
  }),
@@ -111,7 +111,7 @@ export class STableDoubleCompleteComponent {
111
111
  totalItems: rightItems.length,
112
112
  isTreeMode: !!this.config.treeMode,
113
113
  configBottomStatusBar: signal({
114
- counter: rightItems.filter(i => i.selectedCheckbox).length,
114
+ counter: rightItems.filter(i => i.checked).length,
115
115
  total: rightItems.length,
116
116
  disabled: rightItems.length === 0,
117
117
  }),
@@ -124,7 +124,7 @@ export class STableDoubleCompleteComponent {
124
124
  return items.map((item, index) => ({
125
125
  ...item,
126
126
  name: item.name ?? '',
127
- selectedCheckbox: item.selectedCheckbox ?? false,
127
+ checked: item.checked ?? false,
128
128
  }));
129
129
  }
130
130
  buildTree(items) {
@@ -152,9 +152,9 @@ export class STableDoubleCompleteComponent {
152
152
  const hasChildren = !!node.children?.length;
153
153
  const isExpanded = this.expandedNodes.get(node.id) ?? true;
154
154
  result.push({
155
- id: node.id,
155
+ ...node,
156
156
  name: node.name ?? '',
157
- selectedCheckbox: !!node.selectedCheckbox,
157
+ checked: !!node.checked,
158
158
  parentId: node.parentId ?? null,
159
159
  level: level,
160
160
  expanded: isExpanded,
@@ -169,14 +169,28 @@ export class STableDoubleCompleteComponent {
169
169
  resetSelections() {
170
170
  const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];
171
171
  leftItems.forEach(i => {
172
- i.selectedCheckbox = false;
173
- i.itemSelected = false;
172
+ i.checked = false;
173
+ i.selected = false;
174
174
  });
175
175
  this.rightTableState.forEach(i => {
176
- i.selectedCheckbox = false;
177
- i.itemSelected = false;
176
+ i.checked = false;
177
+ i.selected = false;
178
178
  });
179
179
  }
180
+ onSwitchChange(event) {
181
+ if (event.isLeftTable) {
182
+ const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];
183
+ const item = leftItems.find(i => i.id === event.itemId);
184
+ if (item)
185
+ item[event.columnId] = event.value;
186
+ }
187
+ else {
188
+ const item = this.rightTableState.find(i => i.id === event.itemId);
189
+ if (item)
190
+ item[event.columnId] = event.value;
191
+ }
192
+ this.switchChangeEvent.emit(event);
193
+ }
180
194
  toggleNodeExpansion(nodeId) {
181
195
  const currentState = this.expandedNodes.get(nodeId) ?? true;
182
196
  this.expandedNodes.set(nodeId, !currentState);
@@ -214,18 +228,16 @@ export class STableDoubleCompleteComponent {
214
228
  siblings.splice(siblingIndex, 1);
215
229
  siblings.splice(targetIndex, 0, item);
216
230
  this.rightTableState = this.rightTableState.filter(i => (i.parentId ?? null) !== parentId);
217
- const insertRef = parentId
218
- ? this.rightTableState.findIndex(i => i.id === parentId) + 1
219
- : 0;
231
+ const insertRef = parentId ? this.rightTableState.findIndex(i => i.id === parentId) + 1 : 0;
220
232
  this.rightTableState.splice(insertRef, 0, ...siblings);
221
233
  this.refreshTables();
222
234
  }
223
235
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STableDoubleCompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
224
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: STableDoubleCompleteComponent, isStandalone: true, selector: "s-table-double-complete", inputs: { config: "config" }, outputs: { updateEvent: "updateEvent", actionPositionEvent: "actionPositionEvent", bottomStatusBarPositionEvent: "bottomStatusBarPositionEvent", checkAllPositionEvent: "checkAllPositionEvent", deletePositionEvent: "deletePositionEvent", emptyPositionEvent: "emptyPositionEvent", filterPositionEvent: "filterPositionEvent", multiSelectPositionEvent: "multiSelectPositionEvent", orderByPositionEvent: "orderByPositionEvent", pillButtonPositionEvent: "pillButtonPositionEvent", scrollPositionEvent: "scrollPositionEvent", selectPositionEvent: "selectPositionEvent" }, ngImport: i0, template: "<div class=\"s-table-double-complete\">\n <s-tabs\n [tabs]=\"config.tabs\"\n [configTabs]=\"config.configTabs\"\n (eventSelect)=\"onTabSelect($event)\">\n </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\">\n</s-table-double>\n</div>\n", styles: [".s-table-double-complete{display:flex;flex-direction:row;gap:.5rem}s-table-double{width:100%}s-tabs{width:15%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: STabsModule }, { kind: "component", type: i1.STabsComponent, selector: "s-tabs", inputs: ["tabs", "configTabs"], outputs: ["eventSelect"] }, { kind: "component", type: STableDoubleComponent, selector: "s-table-double", inputs: ["config"], outputs: ["actionPositionEvent", "bottomStatusBarPositionEvent", "checkAllPositionEvent", "deletePositionEvent", "emptyPositionEvent", "eventUpdateTables", "filterPositionEvent", "multiSelectPositionEvent", "orderByPositionEvent", "pagePositionEvent", "paginationPositionEvent", "pillButtonPositionEvent", "scrollPositionEvent", "selectPositionEvent", "rowSelectPositionEvent", "actionEvent", "toggleExpandEvent", "reorderItemEvent"] }], encapsulation: i0.ViewEncapsulation.None }); }
236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: STableDoubleCompleteComponent, isStandalone: true, selector: "s-table-double-complete", inputs: { config: "config" }, outputs: { updateEvent: "updateEvent", actionPositionEvent: "actionPositionEvent", bottomStatusBarPositionEvent: "bottomStatusBarPositionEvent", checkAllPositionEvent: "checkAllPositionEvent", deletePositionEvent: "deletePositionEvent", emptyPositionEvent: "emptyPositionEvent", filterPositionEvent: "filterPositionEvent", multiSelectPositionEvent: "multiSelectPositionEvent", orderByPositionEvent: "orderByPositionEvent", pillButtonPositionEvent: "pillButtonPositionEvent", scrollPositionEvent: "scrollPositionEvent", selectPositionEvent: "selectPositionEvent", switchChangeEvent: "switchChangeEvent" }, ngImport: i0, template: "<div class=\"s-table-double-complete\">\n <s-tabs\n [tabs]=\"config.tabs\"\n [configTabs]=\"config.configTabs\"\n (eventSelect)=\"onTabSelect($event)\">\n </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\"\n (switchChangeEvent)=\"onSwitchChange($event)\">\n</s-table-double>\n</div>\n", styles: [".s-table-double-complete{display:flex;flex-direction:row;gap:.5rem}s-table-double{width:100%}s-tabs{width:15%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: STabsModule }, { kind: "component", type: i1.STabsComponent, selector: "s-tabs", inputs: ["tabs", "configTabs"], outputs: ["eventSelect"] }, { kind: "component", type: STableDoubleComponent, selector: "s-table-double", inputs: ["config"], outputs: ["actionPositionEvent", "bottomStatusBarPositionEvent", "checkAllPositionEvent", "deletePositionEvent", "emptyPositionEvent", "eventUpdateTables", "filterPositionEvent", "multiSelectPositionEvent", "orderByPositionEvent", "pagePositionEvent", "paginationPositionEvent", "pillButtonPositionEvent", "scrollPositionEvent", "selectPositionEvent", "rowSelectPositionEvent", "actionEvent", "toggleExpandEvent", "reorderItemEvent", "switchChangeEvent"] }], encapsulation: i0.ViewEncapsulation.None }); }
225
237
  }
226
238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STableDoubleCompleteComponent, decorators: [{
227
239
  type: Component,
228
- args: [{ selector: 's-table-double-complete', standalone: true, imports: [CommonModule, STabsModule, STableDoubleComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"s-table-double-complete\">\n <s-tabs\n [tabs]=\"config.tabs\"\n [configTabs]=\"config.configTabs\"\n (eventSelect)=\"onTabSelect($event)\">\n </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\">\n</s-table-double>\n</div>\n", styles: [".s-table-double-complete{display:flex;flex-direction:row;gap:.5rem}s-table-double{width:100%}s-tabs{width:15%}\n"] }]
240
+ args: [{ selector: 's-table-double-complete', standalone: true, imports: [CommonModule, STabsModule, STableDoubleComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"s-table-double-complete\">\n <s-tabs\n [tabs]=\"config.tabs\"\n [configTabs]=\"config.configTabs\"\n (eventSelect)=\"onTabSelect($event)\">\n </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\"\n (switchChangeEvent)=\"onSwitchChange($event)\">\n</s-table-double>\n</div>\n", styles: [".s-table-double-complete{display:flex;flex-direction:row;gap:.5rem}s-table-double{width:100%}s-tabs{width:15%}\n"] }]
229
241
  }], propDecorators: { config: [{
230
242
  type: Input
231
243
  }], updateEvent: [{
@@ -252,5 +264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
252
264
  type: Output
253
265
  }], selectPositionEvent: [{
254
266
  type: Output
267
+ }], switchChangeEvent: [{
268
+ type: Output
255
269
  }] } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZG91YmxlLWNvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS90YWJsZS1kb3VibGUtY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvdGFibGUtZG91YmxlLWNvbXBsZXRlL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUVqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQTRCL0UsTUFBTSxPQUFPLDZCQUE2QjtJQVIxQztRQVdZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQW1DLENBQUM7UUFDbEUsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNsRCxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUM1RSwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUNyRSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2xELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDakQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQWdDLENBQUM7UUFDdkUsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQWdDLENBQUM7UUFDNUUseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN0RCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2xELHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBR3BFLG9CQUFlLEdBQStCLEVBQUUsQ0FBQztRQUNqRCxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0tBcVBwRDtJQWpQQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztTQUNuRCxDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFTO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFTO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdkUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQ3BELGNBQWMsRUFDZCxlQUFlLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWtCO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdFLE1BQU0sUUFBUSxHQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFWCxNQUFNLFNBQVMsR0FBK0IsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTztnQkFDTCxHQUFHLENBQUMsSUFBSSxJQUFJLFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3pDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUk7YUFDakMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0QsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2RSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FDcEQsY0FBYyxFQUNkLGVBQWUsQ0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN6QixjQUFjO1lBQ2QsZUFBZTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLFNBQTZCLEVBQzdCLFVBQThCO1FBRTlCLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2hGLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPO1lBQ0wsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDbEMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO1lBQ2hELHVCQUF1QixFQUFFLElBQUk7WUFDN0IsZUFBZSxFQUFFO2dCQUNmLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsZUFBZTtnQkFDMUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2dCQUM1QixVQUFVLEVBQUUsS0FBSztnQkFDakIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO29CQUM1QixPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU07b0JBQ3pELEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtvQkFDdkIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztpQkFDakMsQ0FBQzthQUNIO1lBQ0QsZ0JBQWdCLEVBQUU7Z0JBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO2dCQUMzQyxPQUFPLEVBQUUsWUFBWTtnQkFDckIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUM3QixVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtnQkFDbEMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO29CQUM1QixPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU07b0JBQzFELEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTTtvQkFDeEIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztpQkFDbEMsQ0FBQzthQUNIO1lBQ0QsY0FBYyxFQUFFLFNBQVM7WUFDekIsZUFBZSxFQUFFLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFpQztRQUM3RCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEdBQUcsSUFBSTtZQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDckIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEtBQUs7U0FDakQsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWlDO1FBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUErRSxDQUFDO1FBQ25HLE1BQU0sS0FBSyxHQUErQixFQUFFLENBQUM7UUFFN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLE1BQU07b0JBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWlDLEVBQUUsUUFBZ0IsQ0FBQztRQUN0RSxJQUFJLE1BQU0sR0FBdUIsRUFBRSxDQUFDO1FBRXBDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztZQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO1lBRTNELE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3JCLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO2dCQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO2dCQUMvQixLQUFLLEVBQUUsS0FBSztnQkFDWixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsV0FBVyxFQUFFLFdBQVc7YUFDTCxDQUFDLENBQUM7WUFFdkIsSUFBSSxXQUFXLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixDQUFDLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWM7UUFDaEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQStCO1FBQzNDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFFbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7UUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDckYsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxZQUFZLEtBQUssQ0FBQyxDQUFDO1lBQUUsT0FBTztRQUVoQyxJQUFJLFdBQW1CLENBQUM7UUFDeEIsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNsQixLQUFLLEtBQUs7Z0JBQ1IsV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDaEIsTUFBTTtZQUNSLEtBQUssSUFBSTtnQkFDUCxXQUFXLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxXQUFXLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxXQUFXLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLE1BQU07WUFDUjtnQkFDRSxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksV0FBVyxHQUFHLENBQUMsSUFBSSxXQUFXLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxXQUFXLEtBQUssWUFBWTtZQUFFLE9BQU87UUFFOUYsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDM0YsTUFBTSxTQUFTLEdBQUcsUUFBUTtZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzsrR0F0UVUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsc3FCQ3hDMUMsb2pDQXdCQSx5S0RXWSxZQUFZLDhCQUFFLFdBQVcsNkpBQUUscUJBQXFCOzs0RkFLL0MsNkJBQTZCO2tCQVJ6QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixDQUFDLGlCQUc1QyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csNEJBQTRCO3NCQUFyQyxNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTVGFic01vZHVsZSB9IGZyb20gJy4uL3RhYnMnO1xuaW1wb3J0IHsgU1RhYmxlRG91YmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtZG91YmxlL3RhYmxlLWRvdWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTVGFibGVEb3VibGVDb21wbGV0ZUNvbmZpZyxcbiAgU1RhYmxlRG91YmxlQ29tcGxldGVVcGRhdGVFdmVudCxcbiAgU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtLFxufSBmcm9tICcuL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS5tb2RlbCc7XG5cbmltcG9ydCB7IElUYWIgfSBmcm9tICcuLi90YWJzL21vZGVscyc7XG5pbXBvcnQge1xuICBTVGFibGVEb3VibGUsXG4gIFNUYWJsZXNEYXRhLFxuICBTVGFibGVEb3VibGVJdGVtLFxuICBTVGFibGVEb3VibGVCb29sZWFuRXZlbnQsXG4gIFNUYWJsZURvdWJsZVJlb3JkZXJFdmVudCxcbiAgU1RhYmxlRG91YmxlU3RyaW5nQXJyYXlFdmVudCxcbiAgU1RhYmxlRG91YmxlU29ydEV2ZW50LFxuICBTVGFibGVEb3VibGVTdHJpbmdFdmVudCxcbn0gZnJvbSAnLi4vdGFibGUtZG91YmxlL3RhYmxlLWRvdWJsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3MtdGFibGUtZG91YmxlLWNvbXBsZXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU1RhYnNNb2R1bGUsIFNUYWJsZURvdWJsZUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1kb3VibGUtY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUtZG91YmxlLWNvbXBsZXRlLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU1RhYmxlRG91YmxlQ29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb25maWchOiBTVGFibGVEb3VibGVDb21wbGV0ZUNvbmZpZztcblxuICBAT3V0cHV0KCkgdXBkYXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFNUYWJsZURvdWJsZUNvbXBsZXRlVXBkYXRlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25Qb3NpdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgYm90dG9tU3RhdHVzQmFyUG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U1RhYmxlRG91YmxlQm9vbGVhbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hlY2tBbGxQb3NpdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTVGFibGVEb3VibGVCb29sZWFuRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkZWxldGVQb3NpdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZW1wdHlQb3NpdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZmlsdGVyUG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U1RhYmxlRG91YmxlU3RyaW5nQXJyYXlFdmVudD4oKTtcbiAgQE91dHB1dCgpIG11bHRpU2VsZWN0UG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U1RhYmxlRG91YmxlU3RyaW5nQXJyYXlFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9yZGVyQnlQb3NpdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTVGFibGVEb3VibGVTb3J0RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBwaWxsQnV0dG9uUG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHNjcm9sbFBvc2l0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RQb3NpdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTVGFibGVEb3VibGVTdHJpbmdFdmVudD4oKTtcblxuICBwcml2YXRlIGFjdGl2ZVRhYktleSE6IHN0cmluZztcbiAgcHJpdmF0ZSByaWdodFRhYmxlU3RhdGU6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdID0gW107XG4gIHByaXZhdGUgZXhwYW5kZWROb2RlcyA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gIHRhYmxlRG91YmxlQWRhcHRlciE6IFNUYWJsZURvdWJsZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJpZ2h0VGFibGVTdGF0ZSA9IFtcbiAgICAgIC4uLih0aGlzLmNvbmZpZy50YWJsZUNvbmZpZy50YWJsZVJpZ2h0SXRlbXMgPz8gW10pLFxuICAgIF07XG5cbiAgICBjb25zdCBzZWxlY3RlZFRhYiA9IHRoaXMuY29uZmlnLnRhYnMuZmluZCh0ID0+IHQuc2VsZWN0ZWQpO1xuICAgIGlmIChzZWxlY3RlZFRhYikge1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWIoc2VsZWN0ZWRUYWIpO1xuICAgIH1cbiAgfVxuXG4gIG9uVGFiU2VsZWN0KHRhYjogSVRhYik6IHZvaWQge1xuICAgIHRoaXMuc2V0QWN0aXZlVGFiKHRhYik7XG4gIH1cbiAgXG4gIHByaXZhdGUgc2V0QWN0aXZlVGFiKHRhYjogSVRhYik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVGFiS2V5ID0gU3RyaW5nKHRhYi52YWx1ZSA/PyB0YWIudGV4dCk7XG5cbiAgICBjb25zdCBsZWZ0SXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtc0J5VGFiW3RoaXMuYWN0aXZlVGFiS2V5XSA/PyBbXTtcbiAgICBjb25zdCB0YWJsZUxlZnRJdGVtcyA9IHRoaXMubWFwVG9UYWJsZURvdWJsZUl0ZW1zKGxlZnRJdGVtcyk7XG5cbiAgICBsZXQgdGFibGVSaWdodEl0ZW1zID0gdGhpcy5tYXBUb1RhYmxlRG91YmxlSXRlbXModGhpcy5yaWdodFRhYmxlU3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnRyZWVNb2RlKSB7XG4gICAgICB0YWJsZVJpZ2h0SXRlbXMgPSB0aGlzLmZsYXR0ZW5UcmVlKHRoaXMuYnVpbGRUcmVlKHRoaXMucmlnaHRUYWJsZVN0YXRlKSk7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZURvdWJsZUFkYXB0ZXIgPSB0aGlzLmJ1aWxkVGFibGVEb3VibGVBZGFwdGVyKFxuICAgICAgdGFibGVMZWZ0SXRlbXMsXG4gICAgICB0YWJsZVJpZ2h0SXRlbXNcbiAgICApO1xuICB9XG5cbiAgb25VcGRhdGVUYWJsZXMoZXZlbnQ6IFNUYWJsZXNEYXRhKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlJpZ2h0SWRzID0gbmV3IFNldCh0aGlzLnJpZ2h0VGFibGVTdGF0ZS5tYXAoaSA9PiBpLmlkKSk7XG4gICAgY29uc3Qgc291cmNlTGVmdCA9IHRoaXMuY29uZmlnLml0ZW1zQnlUYWJbdGhpcy5hY3RpdmVUYWJLZXldID8/IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkUmlnaHRJdGVtcyA9IGV2ZW50LnRhYmxlUmlnaHRJdGVtcy5maWx0ZXIoaSA9PiBpLml0ZW1TZWxlY3RlZCk7XG4gICAgY29uc3QgcGFyZW50SWQgPVxuICAgICAgdGhpcy5jb25maWcudHJlZU1vZGUgJiYgc2VsZWN0ZWRSaWdodEl0ZW1zLmxlbmd0aCA9PT0gMVxuICAgICAgICA/IHNlbGVjdGVkUmlnaHRJdGVtc1swXS5pZFxuICAgICAgICA6IG51bGw7XG5cbiAgICBjb25zdCBuZXh0UmlnaHQ6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdID0gZXZlbnQudGFibGVSaWdodEl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHByZXYgPSB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5maW5kKHIgPT4gci5pZCA9PT0gaXRlbS5pZCk7XG4gICAgICBjb25zdCBmcm9tTGVmdCA9IHNvdXJjZUxlZnQuZmluZChsID0+IGwuaWQgPT09IGl0ZW0uaWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uKHByZXYgPz8gZnJvbUxlZnQgPz8ge30pLFxuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgICBzZWxlY3RlZENoZWNrYm94OiAhIWl0ZW0uc2VsZWN0ZWRDaGVja2JveCxcbiAgICAgICAgcGFyZW50SWQ6IHByZXY/LnBhcmVudElkID8/IG51bGwsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgYWRkZWRJdGVtcyA9IG5leHRSaWdodC5maWx0ZXIoaSA9PiAhcHJldlJpZ2h0SWRzLmhhcyhpLmlkKSk7XG5cbiAgICBpZiAodGhpcy5jb25maWcudHJlZU1vZGUgJiYgcGFyZW50SWQpIHtcbiAgICAgIGFkZGVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5wYXJlbnRJZCA9IHBhcmVudElkO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yaWdodFRhYmxlU3RhdGUgPSBuZXh0UmlnaHQ7XG4gICAgdGhpcy5yZXNldFNlbGVjdGlvbnMoKTtcbiAgICB0aGlzLnJlZnJlc2hUYWJsZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFRhYmxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBsZWZ0SXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtc0J5VGFiW3RoaXMuYWN0aXZlVGFiS2V5XSA/PyBbXTtcbiAgICBjb25zdCB0YWJsZUxlZnRJdGVtcyA9IHRoaXMubWFwVG9UYWJsZURvdWJsZUl0ZW1zKGxlZnRJdGVtcyk7XG5cbiAgICBsZXQgdGFibGVSaWdodEl0ZW1zID0gdGhpcy5tYXBUb1RhYmxlRG91YmxlSXRlbXModGhpcy5yaWdodFRhYmxlU3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnRyZWVNb2RlKSB7XG4gICAgICB0YWJsZVJpZ2h0SXRlbXMgPSB0aGlzLmZsYXR0ZW5UcmVlKHRoaXMuYnVpbGRUcmVlKHRoaXMucmlnaHRUYWJsZVN0YXRlKSk7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZURvdWJsZUFkYXB0ZXIgPSB0aGlzLmJ1aWxkVGFibGVEb3VibGVBZGFwdGVyKFxuICAgICAgdGFibGVMZWZ0SXRlbXMsXG4gICAgICB0YWJsZVJpZ2h0SXRlbXNcbiAgICApO1xuXG4gICAgdGhpcy51cGRhdGVFdmVudC5lbWl0KHtcbiAgICAgIHRhYktleTogdGhpcy5hY3RpdmVUYWJLZXksXG4gICAgICB0YWJsZUxlZnRJdGVtcyxcbiAgICAgIHRhYmxlUmlnaHRJdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUYWJsZURvdWJsZUFkYXB0ZXIoXG4gICAgbGVmdEl0ZW1zOiBTVGFibGVEb3VibGVJdGVtW10sXG4gICAgcmlnaHRJdGVtczogU1RhYmxlRG91YmxlSXRlbVtdXG4gICk6IFNUYWJsZURvdWJsZSB7XG4gICAgY29uc3QgcmlnaHRDb2x1bW5zID0gWy4uLnRoaXMuY29uZmlnLnRhYmxlQ29uZmlnLnRhYmxlUmlnaHRDb25maWcuY29sdW1uc107XG4gICAgaWYgKHRoaXMuY29uZmlnLnNob3dPcmRlckJ1dHRvbnMgJiYgIXJpZ2h0Q29sdW1ucy5zb21lKGMgPT4gYy5pZCA9PT0gJ2FjdGlvbnMnKSkge1xuICAgICAgcmlnaHRDb2x1bW5zLnB1c2goeyBpZDogJ2FjdGlvbnMnLCB0aXRsZTogJycgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZGl0aW9uQnV0dG9uOiB0cnVlLFxuICAgICAgaXNUcmVlTW9kZTogISF0aGlzLmNvbmZpZy50cmVlTW9kZSxcbiAgICAgIHNob3dPcmRlckJ1dHRvbnM6ICEhdGhpcy5jb25maWcuc2hvd09yZGVyQnV0dG9ucyxcbiAgICAgIGRpc2FibGVMZWZ0Um93U2VsZWN0aW9uOiB0cnVlLFxuICAgICAgdGFibGVMZWZ0Q29uZmlnOiB7XG4gICAgICAgIC4uLnRoaXMuY29uZmlnLnRhYmxlQ29uZmlnLnRhYmxlTGVmdENvbmZpZyxcbiAgICAgICAgdG90YWxJdGVtczogbGVmdEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgaXNUcmVlTW9kZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ0JvdHRvbVN0YXR1c0Jhcjogc2lnbmFsKHtcbiAgICAgICAgICBjb3VudGVyOiBsZWZ0SXRlbXMuZmlsdGVyKGkgPT4gaS5zZWxlY3RlZENoZWNrYm94KS5sZW5ndGgsXG4gICAgICAgICAgdG90YWw6IGxlZnRJdGVtcy5sZW5ndGgsXG4gICAgICAgICAgZGlzYWJsZWQ6IGxlZnRJdGVtcy5sZW5ndGggPT09IDAsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIHRhYmxlUmlnaHRDb25maWc6IHtcbiAgICAgICAgLi4udGhpcy5jb25maWcudGFibGVDb25maWcudGFibGVSaWdodENvbmZpZyxcbiAgICAgICAgY29sdW1uczogcmlnaHRDb2x1bW5zLFxuICAgICAgICB0b3RhbEl0ZW1zOiByaWdodEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgaXNUcmVlTW9kZTogISF0aGlzLmNvbmZpZy50cmVlTW9kZSxcbiAgICAgICAgY29uZmlnQm90dG9tU3RhdHVzQmFyOiBzaWduYWwoe1xuICAgICAgICAgIGNvdW50ZXI6IHJpZ2h0SXRlbXMuZmlsdGVyKGkgPT4gaS5zZWxlY3RlZENoZWNrYm94KS5sZW5ndGgsXG4gICAgICAgICAgdG90YWw6IHJpZ2h0SXRlbXMubGVuZ3RoLFxuICAgICAgICAgIGRpc2FibGVkOiByaWdodEl0ZW1zLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgdGFibGVMZWZ0SXRlbXM6IGxlZnRJdGVtcyxcbiAgICAgIHRhYmxlUmlnaHRJdGVtczogcmlnaHRJdGVtcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUb1RhYmxlRG91YmxlSXRlbXMoaXRlbXM6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdKTogU1RhYmxlRG91YmxlSXRlbVtdIHtcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBuYW1lOiBpdGVtLm5hbWUgPz8gJycsXG4gICAgICBzZWxlY3RlZENoZWNrYm94OiBpdGVtLnNlbGVjdGVkQ2hlY2tib3ggPz8gZmFsc2UsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRyZWUoaXRlbXM6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdKTogU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtW10ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW0gJiB7IGNoaWxkcmVuOiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXSB9PigpO1xuICAgIGNvbnN0IHJvb3RzOiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXSA9IFtdO1xuXG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIG1hcC5zZXQoaXRlbS5pZCwgeyAuLi5pdGVtLCBjaGlsZHJlbjogW10gfSk7XG4gICAgfSk7XG5cbiAgICBtYXAuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLnBhcmVudElkKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IG1hcC5nZXQoaXRlbS5wYXJlbnRJZCk7XG4gICAgICAgIGlmIChwYXJlbnQpIHBhcmVudC5jaGlsZHJlbi5wdXNoKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm9vdHMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByb290cztcbiAgfVxuXG4gIHByaXZhdGUgZmxhdHRlblRyZWUobm9kZXM6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdLCBsZXZlbDogbnVtYmVyID0gMCk6IFNUYWJsZURvdWJsZUl0ZW1bXSB7XG4gICAgbGV0IHJlc3VsdDogU1RhYmxlRG91YmxlSXRlbVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XG4gICAgICBjb25zdCBoYXNDaGlsZHJlbiA9ICEhbm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xuICAgICAgY29uc3QgaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWROb2Rlcy5nZXQobm9kZS5pZCkgPz8gdHJ1ZTtcblxuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgbmFtZTogbm9kZS5uYW1lID8/ICcnLFxuICAgICAgICBzZWxlY3RlZENoZWNrYm94OiAhIW5vZGUuc2VsZWN0ZWRDaGVja2JveCxcbiAgICAgICAgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQgPz8gbnVsbCxcbiAgICAgICAgbGV2ZWw6IGxldmVsLFxuICAgICAgICBleHBhbmRlZDogaXNFeHBhbmRlZCxcbiAgICAgICAgaGFzQ2hpbGRyZW46IGhhc0NoaWxkcmVuLFxuICAgICAgfSBhcyBTVGFibGVEb3VibGVJdGVtKTtcblxuICAgICAgaWYgKGhhc0NoaWxkcmVuICYmIGlzRXhwYW5kZWQgJiYgbm9kZS5jaGlsZHJlbikge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KHRoaXMuZmxhdHRlblRyZWUobm9kZS5jaGlsZHJlbiwgbGV2ZWwgKyAxKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0U2VsZWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBsZWZ0SXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtc0J5VGFiW3RoaXMuYWN0aXZlVGFiS2V5XSA/PyBbXTtcbiAgICBsZWZ0SXRlbXMuZm9yRWFjaChpID0+IHtcbiAgICAgIGkuc2VsZWN0ZWRDaGVja2JveCA9IGZhbHNlO1xuICAgICAgaS5pdGVtU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5mb3JFYWNoKGkgPT4ge1xuICAgICAgaS5zZWxlY3RlZENoZWNrYm94ID0gZmFsc2U7XG4gICAgICBpLml0ZW1TZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlTm9kZUV4cGFuc2lvbihub2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuZXhwYW5kZWROb2Rlcy5nZXQobm9kZUlkKSA/PyB0cnVlO1xuICAgIHRoaXMuZXhwYW5kZWROb2Rlcy5zZXQobm9kZUlkLCAhY3VycmVudFN0YXRlKTtcbiAgICB0aGlzLnJlZnJlc2hUYWJsZXMoKTtcbiAgfVxuXG4gIG9uUmVvcmRlckl0ZW0oZXZlbnQ6IFNUYWJsZURvdWJsZVJlb3JkZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHsgaXRlbUlkLCBkaXJlY3Rpb24gfSA9IGV2ZW50O1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5maW5kKGkgPT4gaS5pZCA9PT0gaXRlbUlkKTtcbiAgICBpZiAoIWl0ZW0pIHJldHVybjtcblxuICAgIGNvbnN0IHBhcmVudElkID0gaXRlbS5wYXJlbnRJZCA/PyBudWxsO1xuICAgIGNvbnN0IHNpYmxpbmdzID0gdGhpcy5yaWdodFRhYmxlU3RhdGUuZmlsdGVyKGkgPT4gKGkucGFyZW50SWQgPz8gbnVsbCkgPT09IHBhcmVudElkKTtcbiAgICBjb25zdCBzaWJsaW5nSW5kZXggPSBzaWJsaW5ncy5maW5kSW5kZXgoaSA9PiBpLmlkID09PSBpdGVtSWQpO1xuICAgIGlmIChzaWJsaW5nSW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICBsZXQgdGFyZ2V0SW5kZXg6IG51bWJlcjtcbiAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgdGFyZ2V0SW5kZXggPSAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgdGFyZ2V0SW5kZXggPSBzaWJsaW5nSW5kZXggLSAxO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICB0YXJnZXRJbmRleCA9IHNpYmxpbmdJbmRleCArIDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgdGFyZ2V0SW5kZXggPSBzaWJsaW5ncy5sZW5ndGggLSAxO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0SW5kZXggPCAwIHx8IHRhcmdldEluZGV4ID49IHNpYmxpbmdzLmxlbmd0aCB8fCB0YXJnZXRJbmRleCA9PT0gc2libGluZ0luZGV4KSByZXR1cm47XG5cbiAgICBzaWJsaW5ncy5zcGxpY2Uoc2libGluZ0luZGV4LCAxKTtcbiAgICBzaWJsaW5ncy5zcGxpY2UodGFyZ2V0SW5kZXgsIDAsIGl0ZW0pO1xuXG4gICAgdGhpcy5yaWdodFRhYmxlU3RhdGUgPSB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5maWx0ZXIoaSA9PiAoaS5wYXJlbnRJZCA/PyBudWxsKSAhPT0gcGFyZW50SWQpO1xuICAgIGNvbnN0IGluc2VydFJlZiA9IHBhcmVudElkXG4gICAgICA/IHRoaXMucmlnaHRUYWJsZVN0YXRlLmZpbmRJbmRleChpID0+IGkuaWQgPT09IHBhcmVudElkKSArIDFcbiAgICAgIDogMDtcbiAgICB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5zcGxpY2UoaW5zZXJ0UmVmLCAwLCAuLi5zaWJsaW5ncyk7XG5cbiAgICB0aGlzLnJlZnJlc2hUYWJsZXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInMtdGFibGUtZG91YmxlLWNvbXBsZXRlXCI+XG4gIDxzLXRhYnNcbiAgICBbdGFic109XCJjb25maWcudGFic1wiXG4gICAgW2NvbmZpZ1RhYnNdPVwiY29uZmlnLmNvbmZpZ1RhYnNcIlxuICAgIChldmVudFNlbGVjdCk9XCJvblRhYlNlbGVjdCgkZXZlbnQpXCI+XG4gIDwvcy10YWJzPlxuXG4gIDxzLXRhYmxlLWRvdWJsZVxuICBbY29uZmlnXT1cInRhYmxlRG91YmxlQWRhcHRlclwiXG4gIChldmVudFVwZGF0ZVRhYmxlcyk9XCJvblVwZGF0ZVRhYmxlcygkZXZlbnQpXCJcbiAgKGFjdGlvblBvc2l0aW9uRXZlbnQpPVwiYWN0aW9uUG9zaXRpb25FdmVudC5lbWl0KCRldmVudClcIlxuICAoYm90dG9tU3RhdHVzQmFyUG9zaXRpb25FdmVudCk9XCJib3R0b21TdGF0dXNCYXJQb3NpdGlvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gIChjaGVja0FsbFBvc2l0aW9uRXZlbnQpPVwiY2hlY2tBbGxQb3NpdGlvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gIChkZWxldGVQb3NpdGlvbkV2ZW50KT1cImRlbGV0ZVBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKGVtcHR5UG9zaXRpb25FdmVudCk9XCJlbXB0eVBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKGZpbHRlclBvc2l0aW9uRXZlbnQpPVwiZmlsdGVyUG9zaXRpb25FdmVudC5lbWl0KCRldmVudClcIlxuICAobXVsdGlTZWxlY3RQb3NpdGlvbkV2ZW50KT1cIm11bHRpU2VsZWN0UG9zaXRpb25FdmVudC5lbWl0KCRldmVudClcIlxuICAob3JkZXJCeVBvc2l0aW9uRXZlbnQpPVwib3JkZXJCeVBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKHBpbGxCdXR0b25Qb3NpdGlvbkV2ZW50KT1cInBpbGxCdXR0b25Qb3NpdGlvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gIChzY3JvbGxQb3NpdGlvbkV2ZW50KT1cInNjcm9sbFBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKHRvZ2dsZUV4cGFuZEV2ZW50KT1cInRvZ2dsZU5vZGVFeHBhbnNpb24oJGV2ZW50KVwiXG4gIChyZW9yZGVySXRlbUV2ZW50KT1cIm9uUmVvcmRlckl0ZW0oJGV2ZW50KVwiPlxuPC9zLXRhYmxlLWRvdWJsZT5cbjwvZGl2PlxuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZG91YmxlLWNvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS90YWJsZS1kb3VibGUtY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvdGFibGUtZG91YmxlLWNvbXBsZXRlL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUVqQixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBb0IvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBVTVFLE1BQU0sT0FBTyw2QkFBNkI7SUFSMUM7UUFXWSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFtQyxDQUFDO1FBQ2xFLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDbEQsaUNBQTRCLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDNUUsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDckUsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNsRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2pELHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFn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OzhCQUc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csNEJBQTRCO3NCQUFyQyxNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTVGFic01vZHVsZSB9IGZyb20gJy4uL3RhYnMnO1xuaW1wb3J0IHsgU1RhYmxlRG91YmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtZG91YmxlL3RhYmxlLWRvdWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTVGFibGVEb3VibGVDb21wbGV0ZUNvbmZpZyxcbiAgU1RhYmxlRG91YmxlQ29tcGxldGVVcGRhdGVFdmVudCxcbiAgU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtLFxufSBmcm9tICcuL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS5tb2RlbCc7XG5cbmltcG9ydCB7IElUYWIgfSBmcm9tICcuLi90YWJzL21vZGVscyc7XG5pbXBvcnQge1xuICBTVGFibGVEb3VibGUsXG4gIFNUYWJsZXNEYXRhLFxuICBTVGFibGVEb3VibGVJdGVtLFxuICBTVGFibGVEb3VibGVCb29sZWFuRXZlbnQsXG4gIFNUYWJsZURvdWJsZVJlb3JkZXJFdmVudCxcbiAgU1RhYmxlRG91YmxlU3RyaW5nQXJyYXlFdmVudCxcbiAgU1RhYmxlRG91YmxlU29ydEV2ZW50LFxuICBTVGFibGVEb3VibGVTdHJpbmdFdmVudCxcbiAgU1RhYmxlRG91YmxlU3dpdGNoRXZlbnQsXG59IGZyb20gJy4uL3RhYmxlLWRvdWJsZS90YWJsZS1kb3VibGUubW9kZWwnO1xuaW1wb3J0IHsgU1RyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmFuc2xhdGUvdHJhbnNsYXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXRhYmxlLWRvdWJsZS1jb21wbGV0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNUYWJzTW9kdWxlLCBTVGFibGVEb3VibGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZG91YmxlLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNUYWJsZURvdWJsZUNvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29uZmlnITogU1RhYmxlRG91YmxlQ29tcGxldGVDb25maWc7XG5cbiAgQE91dHB1dCgpIHVwZGF0ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTVGFibGVEb3VibGVDb21wbGV0ZVVwZGF0ZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgYWN0aW9uUG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGJvdHRvbVN0YXR1c0JhclBvc2l0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFNUYWJsZURvdWJsZUJvb2xlYW5FdmVudD4oKTtcbiAgQE91dHB1dCgpIGNoZWNrQWxsUG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U1RhYmxlRG91YmxlQm9vbGVhbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgZGVsZXRlUG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGVtcHR5UG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGZpbHRlclBvc2l0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFNUYWJsZURvdWJsZVN0cmluZ0FycmF5RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBtdWx0aVNlbGVjdFBvc2l0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFNUYWJsZURvdWJsZVN0cmluZ0FycmF5RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvcmRlckJ5UG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U1RhYmxlRG91YmxlU29ydEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcGlsbEJ1dHRvblBvc2l0aW9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBzY3JvbGxQb3NpdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0UG9zaXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U1RhYmxlRG91YmxlU3RyaW5nRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBzd2l0Y2hDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U1RhYmxlRG91YmxlU3dpdGNoRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBhY3RpdmVUYWJLZXkhOiBzdHJpbmc7XG4gIHByaXZhdGUgcmlnaHRUYWJsZVN0YXRlOiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIGV4cGFuZGVkTm9kZXMgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc1RyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoU1RyYW5zbGF0ZVNlcnZpY2UpO1xuICBcbiAgdGFibGVEb3VibGVBZGFwdGVyITogU1RhYmxlRG91YmxlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmlnaHRUYWJsZVN0YXRlID0gWy4uLih0aGlzLmNvbmZpZy50YWJsZUNvbmZpZy50YWJsZVJpZ2h0SXRlbXMgPz8gW10pXTtcblxuICAgIGNvbnN0IHNlbGVjdGVkVGFiID0gdGhpcy5jb25maWcudGFicy5maW5kKHQgPT4gdC5zZWxlY3RlZCk7XG4gICAgaWYgKHNlbGVjdGVkVGFiKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYihzZWxlY3RlZFRhYik7XG4gICAgfVxuICB9XG5cbiAgb25UYWJTZWxlY3QodGFiOiBJVGFiKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBY3RpdmVUYWIodGFiKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlVGFiKHRhYjogSVRhYik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVGFiS2V5ID0gU3RyaW5nKHRhYi52YWx1ZSA/PyB0YWIudGV4dCk7XG5cbiAgICBjb25zdCBsZWZ0SXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtc0J5VGFiW3RoaXMuYWN0aXZlVGFiS2V5XSA/PyBbXTtcbiAgICBjb25zdCB0YWJsZUxlZnRJdGVtcyA9IHRoaXMubWFwVG9UYWJsZURvdWJsZUl0ZW1zKGxlZnRJdGVtcyk7XG5cbiAgICBsZXQgdGFibGVSaWdodEl0ZW1zID0gdGhpcy5tYXBUb1RhYmxlRG91YmxlSXRlbXModGhpcy5yaWdodFRhYmxlU3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnRyZWVNb2RlKSB7XG4gICAgICB0YWJsZVJpZ2h0SXRlbXMgPSB0aGlzLmZsYXR0ZW5UcmVlKHRoaXMuYnVpbGRUcmVlKHRoaXMucmlnaHRUYWJsZVN0YXRlKSk7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZURvdWJsZUFkYXB0ZXIgPSB0aGlzLmJ1aWxkVGFibGVEb3VibGVBZGFwdGVyKHRhYmxlTGVmdEl0ZW1zLCB0YWJsZVJpZ2h0SXRlbXMpO1xuICB9XG5cbiAgb25VcGRhdGVUYWJsZXMoZXZlbnQ6IFNUYWJsZXNEYXRhKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlJpZ2h0SWRzID0gbmV3IFNldCh0aGlzLnJpZ2h0VGFibGVTdGF0ZS5tYXAoaSA9PiBpLmlkKSk7XG4gICAgY29uc3Qgc291cmNlTGVmdCA9IHRoaXMuY29uZmlnLml0ZW1zQnlUYWJbdGhpcy5hY3RpdmVUYWJLZXldID8/IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkUmlnaHRJdGVtcyA9IGV2ZW50LnRhYmxlUmlnaHRJdGVtcy5maWx0ZXIoaSA9PiBpLnNlbGVjdGVkKTtcbiAgICBjb25zdCBwYXJlbnRJZCA9IHRoaXMuY29uZmlnLnRyZWVNb2RlICYmIHNlbGVjdGVkUmlnaHRJdGVtcy5sZW5ndGggPT09IDEgPyBzZWxlY3RlZFJpZ2h0SXRlbXNbMF0uaWQgOiBudWxsO1xuXG4gICAgY29uc3QgbmV4dFJpZ2h0OiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXSA9IGV2ZW50LnRhYmxlUmlnaHRJdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICBjb25zdCBwcmV2ID0gdGhpcy5yaWdodFRhYmxlU3RhdGUuZmluZChyID0+IHIuaWQgPT09IGl0ZW0uaWQpO1xuICAgICAgY29uc3QgZnJvbUxlZnQgPSBzb3VyY2VMZWZ0LmZpbmQobCA9PiBsLmlkID09PSBpdGVtLmlkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLihwcmV2ID8/IGZyb21MZWZ0ID8/IHt9KSxcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgICAgY2hlY2tlZDogISFpdGVtLmNoZWNrZWQsXG4gICAgICAgIHBhcmVudElkOiBwcmV2Py5wYXJlbnRJZCA/PyBudWxsLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGFkZGVkSXRlbXMgPSBuZXh0UmlnaHQuZmlsdGVyKGkgPT4gIXByZXZSaWdodElkcy5oYXMoaS5pZCkpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnRyZWVNb2RlICYmIHBhcmVudElkKSB7XG4gICAgICBhZGRlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0ucGFyZW50SWQgPSBwYXJlbnRJZDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucmlnaHRUYWJsZVN0YXRlID0gbmV4dFJpZ2h0O1xuICAgIHRoaXMucmVzZXRTZWxlY3Rpb25zKCk7XG4gICAgdGhpcy5yZWZyZXNoVGFibGVzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hUYWJsZXMoKTogdm9pZCB7XG4gICAgY29uc3QgbGVmdEl0ZW1zID0gdGhpcy5jb25maWcuaXRlbXNCeVRhYlt0aGlzLmFjdGl2ZVRhYktleV0gPz8gW107XG4gICAgY29uc3QgdGFibGVMZWZ0SXRlbXMgPSB0aGlzLm1hcFRvVGFibGVEb3VibGVJdGVtcyhsZWZ0SXRlbXMpO1xuXG4gICAgbGV0IHRhYmxlUmlnaHRJdGVtcyA9IHRoaXMubWFwVG9UYWJsZURvdWJsZUl0ZW1zKHRoaXMucmlnaHRUYWJsZVN0YXRlKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy50cmVlTW9kZSkge1xuICAgICAgdGFibGVSaWdodEl0ZW1zID0gdGhpcy5mbGF0dGVuVHJlZSh0aGlzLmJ1aWxkVHJlZSh0aGlzLnJpZ2h0VGFibGVTdGF0ZSkpO1xuICAgICAgdGFibGVMZWZ0SXRlbXM7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZURvdWJsZUFkYXB0ZXIgPSB0aGlzLmJ1aWxkVGFibGVEb3VibGVBZGFwdGVyKHRhYmxlTGVmdEl0ZW1zLCB0YWJsZVJpZ2h0SXRlbXMpO1xuXG4gICAgdGhpcy51cGRhdGVFdmVudC5lbWl0KHtcbiAgICAgIHRhYktleTogdGhpcy5hY3RpdmVUYWJLZXksXG4gICAgICB0YWJsZUxlZnRJdGVtcyxcbiAgICAgIHRhYmxlUmlnaHRJdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUYWJsZURvdWJsZUFkYXB0ZXIobGVmdEl0ZW1zOiBTVGFibGVEb3VibGVJdGVtW10sIHJpZ2h0SXRlbXM6IFNUYWJsZURvdWJsZUl0ZW1bXSk6IFNUYWJsZURvdWJsZSB7XG4gICAgY29uc3QgcmlnaHRDb2x1bW5zID0gWy4uLnRoaXMuY29uZmlnLnRhYmxlQ29uZmlnLnRhYmxlUmlnaHRDb25maWcuY29sdW1uc107XG4gICAgaWYgKHRoaXMuY29uZmlnLnNob3dPcmRlckJ1dHRvbnMgJiYgIXJpZ2h0Q29sdW1ucy5zb21lKGMgPT4gYy5pZCA9PT0gJ2FjdGlvbnMnKSkge1xuICAgICAgcmlnaHRDb2x1bW5zLnB1c2goeyBpZDogJ2FjdGlvbnMnLCB0aXRsZTogdGhpcy5fc1RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndWkuZ2VuZXJpYy5hY3Rpb25zJykgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZGl0aW9uQnV0dG9uOiB0cnVlLFxuICAgICAgaXNUcmVlTW9kZTogISF0aGlzLmNvbmZpZy50cmVlTW9kZSxcbiAgICAgIHNob3dPcmRlckJ1dHRvbnM6ICEhdGhpcy5jb25maWcuc2hvd09yZGVyQnV0dG9ucyxcbiAgICAgIGRpc2FibGVMZWZ0Um93U2VsZWN0aW9uOiB0cnVlLFxuICAgICAgdGFibGVMZWZ0Q29uZmlnOiB7XG4gICAgICAgIC4uLnRoaXMuY29uZmlnLnRhYmxlQ29uZmlnLnRhYmxlTGVmdENvbmZpZyxcbiAgICAgICAgdG90YWxJdGVtczogbGVmdEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgaXNUcmVlTW9kZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ0JvdHRvbVN0YXR1c0Jhcjogc2lnbmFsKHtcbiAgICAgICAgICBjb3VudGVyOiBsZWZ0SXRlbXMuZmlsdGVyKGkgPT4gaS5jaGVja2VkKS5sZW5ndGgsXG4gICAgICAgICAgdG90YWw6IGxlZnRJdGVtcy5sZW5ndGgsXG4gICAgICAgICAgZGlzYWJsZWQ6IGxlZnRJdGVtcy5sZW5ndGggPT09IDAsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIHRhYmxlUmlnaHRDb25maWc6IHtcbiAgICAgICAgLi4udGhpcy5jb25maWcudGFibGVDb25maWcudGFibGVSaWdodENvbmZpZyxcbiAgICAgICAgY29sdW1uczogcmlnaHRDb2x1bW5zLFxuICAgICAgICB0b3RhbEl0ZW1zOiByaWdodEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgaXNUcmVlTW9kZTogISF0aGlzLmNvbmZpZy50cmVlTW9kZSxcbiAgICAgICAgY29uZmlnQm90dG9tU3RhdHVzQmFyOiBzaWduYWwoe1xuICAgICAgICAgIGNvdW50ZXI6IHJpZ2h0SXRlbXMuZmlsdGVyKGkgPT4gaS5jaGVja2VkKS5sZW5ndGgsXG4gICAgICAgICAgdG90YWw6IHJpZ2h0SXRlbXMubGVuZ3RoLFxuICAgICAgICAgIGRpc2FibGVkOiByaWdodEl0ZW1zLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgdGFibGVMZWZ0SXRlbXM6IGxlZnRJdGVtcyxcbiAgICAgIHRhYmxlUmlnaHRJdGVtczogcmlnaHRJdGVtcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUb1RhYmxlRG91YmxlSXRlbXMoaXRlbXM6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdKTogU1RhYmxlRG91YmxlSXRlbVtdIHtcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBuYW1lOiBpdGVtLm5hbWUgPz8gJycsXG4gICAgICBjaGVja2VkOiBpdGVtLmNoZWNrZWQgPz8gZmFsc2UsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRyZWUoaXRlbXM6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdKTogU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtW10ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW0gJiB7IGNoaWxkcmVuOiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXSB9PigpO1xuICAgIGNvbnN0IHJvb3RzOiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXSA9IFtdO1xuXG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIG1hcC5zZXQoaXRlbS5pZCwgeyAuLi5pdGVtLCBjaGlsZHJlbjogW10gfSk7XG4gICAgfSk7XG5cbiAgICBtYXAuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLnBhcmVudElkKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IG1hcC5nZXQoaXRlbS5wYXJlbnRJZCk7XG4gICAgICAgIGlmIChwYXJlbnQpIHBhcmVudC5jaGlsZHJlbi5wdXNoKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm9vdHMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByb290cztcbiAgfVxuXG4gIHByaXZhdGUgZmxhdHRlblRyZWUobm9kZXM6IFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdLCBsZXZlbDogbnVtYmVyID0gMCk6IFNUYWJsZURvdWJsZUl0ZW1bXSB7XG4gICAgbGV0IHJlc3VsdDogU1RhYmxlRG91YmxlSXRlbVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XG4gICAgICBjb25zdCBoYXNDaGlsZHJlbiA9ICEhbm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xuICAgICAgY29uc3QgaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWROb2Rlcy5nZXQobm9kZS5pZCkgPz8gdHJ1ZTtcblxuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAuLi5ub2RlLFxuICAgICAgICBuYW1lOiBub2RlLm5hbWUgPz8gJycsXG4gICAgICAgIGNoZWNrZWQ6ICEhbm9kZS5jaGVja2VkLFxuICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCA/PyBudWxsLFxuICAgICAgICBsZXZlbDogbGV2ZWwsXG4gICAgICAgIGV4cGFuZGVkOiBpc0V4cGFuZGVkLFxuICAgICAgICBoYXNDaGlsZHJlbjogaGFzQ2hpbGRyZW4sXG4gICAgICB9IGFzIFNUYWJsZURvdWJsZUl0ZW0pO1xuXG4gICAgICBpZiAoaGFzQ2hpbGRyZW4gJiYgaXNFeHBhbmRlZCAmJiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodGhpcy5mbGF0dGVuVHJlZShub2RlLmNoaWxkcmVuLCBsZXZlbCArIDEpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTZWxlY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGxlZnRJdGVtcyA9IHRoaXMuY29uZmlnLml0ZW1zQnlUYWJbdGhpcy5hY3RpdmVUYWJLZXldID8/IFtdO1xuICAgIGxlZnRJdGVtcy5mb3JFYWNoKGkgPT4ge1xuICAgICAgaS5jaGVja2VkID0gZmFsc2U7XG4gICAgICBpLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5yaWdodFRhYmxlU3RhdGUuZm9yRWFjaChpID0+IHtcbiAgICAgIGkuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgaS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgb25Td2l0Y2hDaGFuZ2UoZXZlbnQ6IFNUYWJsZURvdWJsZVN3aXRjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmlzTGVmdFRhYmxlKSB7XG4gICAgICBjb25zdCBsZWZ0SXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtc0J5VGFiW3RoaXMuYWN0aXZlVGFiS2V5XSA/PyBbXTtcbiAgICAgIGNvbnN0IGl0ZW0gPSBsZWZ0SXRlbXMuZmluZChpID0+IGkuaWQgPT09IGV2ZW50Lml0ZW1JZCk7XG4gICAgICBpZiAoaXRlbSkgaXRlbVtldmVudC5jb2x1bW5JZF0gPSBldmVudC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMucmlnaHRUYWJsZVN0YXRlLmZpbmQoaSA9PiBpLmlkID09PSBldmVudC5pdGVtSWQpO1xuICAgICAgaWYgKGl0ZW0pIGl0ZW1bZXZlbnQuY29sdW1uSWRdID0gZXZlbnQudmFsdWU7XG4gICAgfVxuICAgIHRoaXMuc3dpdGNoQ2hhbmdlRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICB0b2dnbGVOb2RlRXhwYW5zaW9uKG5vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5leHBhbmRlZE5vZGVzLmdldChub2RlSWQpID8/IHRydWU7XG4gICAgdGhpcy5leHBhbmRlZE5vZGVzLnNldChub2RlSWQsICFjdXJyZW50U3RhdGUpO1xuICAgIHRoaXMucmVmcmVzaFRhYmxlcygpO1xuICB9XG5cbiAgb25SZW9yZGVySXRlbShldmVudDogU1RhYmxlRG91YmxlUmVvcmRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgeyBpdGVtSWQsIGRpcmVjdGlvbiB9ID0gZXZlbnQ7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMucmlnaHRUYWJsZVN0YXRlLmZpbmQoaSA9PiBpLmlkID09PSBpdGVtSWQpO1xuICAgIGlmICghaXRlbSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcGFyZW50SWQgPSBpdGVtLnBhcmVudElkID8/IG51bGw7XG4gICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5maWx0ZXIoaSA9PiAoaS5wYXJlbnRJZCA/PyBudWxsKSA9PT0gcGFyZW50SWQpO1xuICAgIGNvbnN0IHNpYmxpbmdJbmRleCA9IHNpYmxpbmdzLmZpbmRJbmRleChpID0+IGkuaWQgPT09IGl0ZW1JZCk7XG4gICAgaWYgKHNpYmxpbmdJbmRleCA9PT0gLTEpIHJldHVybjtcblxuICAgIGxldCB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0YXJnZXRJbmRleCA9IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXAnOlxuICAgICAgICB0YXJnZXRJbmRleCA9IHNpYmxpbmdJbmRleCAtIDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgIHRhcmdldEluZGV4ID0gc2libGluZ0luZGV4ICsgMTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICB0YXJnZXRJbmRleCA9IHNpYmxpbmdzLmxlbmd0aCAtIDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXRJbmRleCA8IDAgfHwgdGFyZ2V0SW5kZXggPj0gc2libGluZ3MubGVuZ3RoIHx8IHRhcmdldEluZGV4ID09PSBzaWJsaW5nSW5kZXgpIHJldHVybjtcblxuICAgIHNpYmxpbmdzLnNwbGljZShzaWJsaW5nSW5kZXgsIDEpO1xuICAgIHNpYmxpbmdzLnNwbGljZSh0YXJnZXRJbmRleCwgMCwgaXRlbSk7XG5cbiAgICB0aGlzLnJpZ2h0VGFibGVTdGF0ZSA9IHRoaXMucmlnaHRUYWJsZVN0YXRlLmZpbHRlcihpID0+IChpLnBhcmVudElkID8/IG51bGwpICE9PSBwYXJlbnRJZCk7XG4gICAgY29uc3QgaW5zZXJ0UmVmID0gcGFyZW50SWQgPyB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5maW5kSW5kZXgoaSA9PiBpLmlkID09PSBwYXJlbnRJZCkgKyAxIDogMDtcbiAgICB0aGlzLnJpZ2h0VGFibGVTdGF0ZS5zcGxpY2UoaW5zZXJ0UmVmLCAwLCAuLi5zaWJsaW5ncyk7XG5cbiAgICB0aGlzLnJlZnJlc2hUYWJsZXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInMtdGFibGUtZG91YmxlLWNvbXBsZXRlXCI+XG4gIDxzLXRhYnNcbiAgICBbdGFic109XCJjb25maWcudGFic1wiXG4gICAgW2NvbmZpZ1RhYnNdPVwiY29uZmlnLmNvbmZpZ1RhYnNcIlxuICAgIChldmVudFNlbGVjdCk9XCJvblRhYlNlbGVjdCgkZXZlbnQpXCI+XG4gIDwvcy10YWJzPlxuXG4gIDxzLXRhYmxlLWRvdWJsZVxuICBbY29uZmlnXT1cInRhYmxlRG91YmxlQWRhcHRlclwiXG4gIChldmVudFVwZGF0ZVRhYmxlcyk9XCJvblVwZGF0ZVRhYmxlcygkZXZlbnQpXCJcbiAgKGFjdGlvblBvc2l0aW9uRXZlbnQpPVwiYWN0aW9uUG9zaXRpb25FdmVudC5lbWl0KCRldmVudClcIlxuICAoYm90dG9tU3RhdHVzQmFyUG9zaXRpb25FdmVudCk9XCJib3R0b21TdGF0dXNCYXJQb3NpdGlvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gIChjaGVja0FsbFBvc2l0aW9uRXZlbnQpPVwiY2hlY2tBbGxQb3NpdGlvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gIChkZWxldGVQb3NpdGlvbkV2ZW50KT1cImRlbGV0ZVBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKGVtcHR5UG9zaXRpb25FdmVudCk9XCJlbXB0eVBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKGZpbHRlclBvc2l0aW9uRXZlbnQpPVwiZmlsdGVyUG9zaXRpb25FdmVudC5lbWl0KCRldmVudClcIlxuICAobXVsdGlTZWxlY3RQb3NpdGlvbkV2ZW50KT1cIm11bHRpU2VsZWN0UG9zaXRpb25FdmVudC5lbWl0KCRldmVudClcIlxuICAob3JkZXJCeVBvc2l0aW9uRXZlbnQpPVwib3JkZXJCeVBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKHBpbGxCdXR0b25Qb3NpdGlvbkV2ZW50KT1cInBpbGxCdXR0b25Qb3NpdGlvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gIChzY3JvbGxQb3NpdGlvbkV2ZW50KT1cInNjcm9sbFBvc2l0aW9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgKHRvZ2dsZUV4cGFuZEV2ZW50KT1cInRvZ2dsZU5vZGVFeHBhbnNpb24oJGV2ZW50KVwiXG4gIChyZW9yZGVySXRlbUV2ZW50KT1cIm9uUmVvcmRlckl0ZW0oJGV2ZW50KVwiXG4gIChzd2l0Y2hDaGFuZ2VFdmVudCk9XCJvblN3aXRjaENoYW5nZSgkZXZlbnQpXCI+XG48L3MtdGFibGUtZG91YmxlPlxuPC9kaXY+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZG91YmxlLWNvbXBsZXRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvdGFibGUtZG91YmxlLWNvbXBsZXRlL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRhYiwgSUNvbmZpZ1RhYnMgfSBmcm9tICcuLi90YWJzL21vZGVscyc7XG5pbXBvcnQgeyBTb3J0VGFibGUsIFNUYWJsZUNvbXBsZXRlLCBTVGFibGVzRGF0YSB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNlbGVjdGVkQ2hlY2tib3g/OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIHBhcmVudElkPzogc3RyaW5nIHwgbnVsbDtcbiAgY2hpbGRyZW4/OiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTVGFibGVEb3VibGVDb21wbGV0ZVRhYmxlIHtcbiAgdGFibGVMZWZ0Q29uZmlnOiBTVGFibGVDb21wbGV0ZTtcbiAgdGFibGVSaWdodENvbmZpZzogU1RhYmxlQ29tcGxldGU7XG4gIHRhYmxlTGVmdEl0ZW1zOiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXTtcbiAgdGFibGVSaWdodEl0ZW1zOiBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTVGFibGVEb3VibGVDb21wbGV0ZUNvbmZpZyB7XG4gIHRhYnM6IElUYWJbXTtcbiAgY29uZmlnVGFicz86IElDb25maWdUYWJzO1xuICB0YWJsZUNvbmZpZzogU1RhYmxlRG91YmxlQ29tcGxldGVUYWJsZTtcbiAgaXRlbXNCeVRhYjogUmVjb3JkPHN0cmluZywgU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtW10+O1xuICB0cmVlTW9kZT86IGJvb2xlYW47XG4gIHNob3dPcmRlckJ1dHRvbnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTVGFibGVzRG91YmxlQ29tcGxldGVEYXRhID0gU1RhYmxlc0RhdGE7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1RhYmxlRG91YmxlQ29tcGxldGVVcGRhdGVFdmVudFxuICBleHRlbmRzIFNUYWJsZXNEYXRhIHtcbiAgdGFiS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1RhYmxlRG91YmxlQ29tcGxldGVFdmVudDxUPiB7XG4gIGlzTGVmdFRhYmxlOiBib29sZWFuO1xuICB2YWx1ZTogVDtcbn1cblxuZXhwb3J0IHR5cGUgU1RhYmxlRG91YmxlQ29tcGxldGVCb29sZWFuRXZlbnQgPVxuICBTVGFibGVEb3VibGVDb21wbGV0ZUV2ZW50PGJvb2xlYW4+O1xuXG5leHBvcnQgdHlwZSBTVGFibGVEb3VibGVDb21wbGV0ZVN0cmluZ0V2ZW50ID1cbiAgU1RhYmxlRG91YmxlQ29tcGxldGVFdmVudDxzdHJpbmc+O1xuXG5leHBvcnQgdHlwZSBTVGFibGVEb3VibGVDb21wbGV0ZVN0cmluZ0FycmF5RXZlbnQgPVxuICBTVGFibGVEb3VibGVDb21wbGV0ZUV2ZW50PHN0cmluZ1tdPjtcblxuZXhwb3J0IHR5cGUgU1RhYmxlRG91YmxlQ29tcGxldGVOdW1iZXJFdmVudCA9XG4gIFNUYWJsZURvdWJsZUNvbXBsZXRlRXZlbnQ8bnVtYmVyPjtcblxuZXhwb3J0IHR5cGUgU1RhYmxlRG91YmxlQ29tcGxldGVTb3J0RXZlbnQgPVxuICBTVGFibGVEb3VibGVDb21wbGV0ZUV2ZW50PFNvcnRUYWJsZT47XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZG91YmxlLWNvbXBsZXRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvdGFibGUtZG91YmxlLWNvbXBsZXRlL3RhYmxlLWRvdWJsZS1jb21wbGV0ZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRhYiwgSUNvbmZpZ1RhYnMgfSBmcm9tICcuLi90YWJzL21vZGVscyc7XG5pbXBvcnQgeyBTb3J0VGFibGUsIFNUYWJsZUNvbXBsZXRlLCBTVGFibGVzRGF0YSB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgU1RhYmxlRG91YmxlU3dpdGNoRXZlbnQgfSBmcm9tICcuLi90YWJsZS1kb3VibGUvdGFibGUtZG91YmxlLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBTVGFibGVEb3VibGVDb21wbGV0ZUl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBzZWxlY3RlZENoZWNrYm94PzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogYW55O1xuICBwYXJlbnRJZD86IHN0cmluZyB8IG51bGw7XG4gIGNoaWxkcmVuPzogU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1RhYmxlRG91YmxlQ29tcGxldGVUYWJsZSB7XG4gIHRhYmxlTGVmdENvbmZpZzogU1RhYmxlQ29tcGxldGU7XG4gIHRhYmxlUmlnaHRDb25maWc6IFNUYWJsZUNvbXBsZXRlO1xuICB0YWJsZUxlZnRJdGVtczogU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtW107XG4gIHRhYmxlUmlnaHRJdGVtczogU1RhYmxlRG91YmxlQ29tcGxldGVJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1RhYmxlRG91YmxlQ29tcGxldGVDb25maWcge1xuICB0YWJzOiBJVGFiW107XG4gIGNvbmZpZ1RhYnM/OiBJQ29uZmlnVGFicztcbiAgdGFibGVDb25maWc6IFNUYWJsZURvdWJsZUNvbXBsZXRlVGFibGU7XG4gIGl0ZW1zQnlUYWI6IFJlY29yZDxzdHJpbmcsIFNUYWJsZURvdWJsZUNvbXBsZXRlSXRlbVtdPjtcbiAgdHJlZU1vZGU/OiBib29sZWFuO1xuICBzaG93T3JkZXJCdXR0b25zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgU1RhYmxlc0RvdWJsZUNvbXBsZXRlRGF0YSA9IFNUYWJsZXNEYXRhO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNUYWJsZURvdWJsZUNvbXBsZXRlVXBkYXRlRXZlbnRcbiAgZXh0ZW5kcyBTVGFibGVzRGF0YSB7XG4gIHRhYktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNUYWJsZURvdWJsZUNvbXBsZXRlRXZlbnQ8VD4ge1xuICBpc0xlZnRUYWJsZTogYm9vbGVhbjtcbiAgdmFsdWU6IFQ7XG59XG5cbmV4cG9ydCB0eXBlIFNUYWJsZURvdWJsZUNvbXBsZXRlQm9vbGVhbkV2ZW50ID1cbiAgU1RhYmxlRG91YmxlQ29tcGxldGVFdmVudDxib29sZWFuPjtcblxuZXhwb3J0IHR5cGUgU1RhYmxlRG91YmxlQ29tcGxldGVTdHJpbmdFdmVudCA9XG4gIFNUYWJsZURvdWJsZUNvbXBsZXRlRXZlbnQ8c3RyaW5nPjtcblxuZXhwb3J0IHR5cGUgU1RhYmxlRG91YmxlQ29tcGxldGVTdHJpbmdBcnJheUV2ZW50ID1cbiAgU1RhYmxlRG91YmxlQ29tcGxldGVFdmVudDxzdHJpbmdbXT47XG5cbmV4cG9ydCB0eXBlIFNUYWJsZURvdWJsZUNvbXBsZXRlTnVtYmVyRXZlbnQgPVxuICBTVGFibGVEb3VibGVDb21wbGV0ZUV2ZW50PG51bWJlcj47XG5cbmV4cG9ydCB0eXBlIFNUYWJsZURvdWJsZUNvbXBsZXRlU29ydEV2ZW50ID1cbiAgU1RhYmxlRG91YmxlQ29tcGxldGVFdmVudDxTb3J0VGFibGU+O1xuXG5leHBvcnQgdHlwZSBTVGFibGVEb3VibGVDb21wbGV0ZVN3aXRjaEV2ZW50ID0gU1RhYmxlRG91YmxlU3dpdGNoRXZlbnQ7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy10YWJsZXQtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi90YWJsZS10L3MtdGFibGV0LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbmZpZ0NvbHVtbiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGNoZWNrYm94PzogYm9vbGVhbjtcbiAgICBjaGVja2JveFZhbHVlPzogYm9vbGVhbjtcbiAgICBpZD86IHN0cmluZztcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBhbGlnbj86IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIjtcbiAgICBzb3J0YWJsZT86IGJvb2xlYW47XG59XG4gIFxuZXhwb3J0IGludGVyZmFjZSBTb3J0VGFibGUge1xuICAgIFNvcnRBc2M6IGJvb2xlYW47XG4gICAgU29ydEZpZWxkOiBzdHJpbmc7XG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy10YWJsZXQtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi90YWJsZS10L3MtdGFibGV0LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTU3dpdGNoIH0gZnJvbSAnLi4vdG9nZ2xlLXN3aXRjaC90b2dnbGUtc3dpdGNoLWZvcm0vdG9nZ2xlLXN3aXRjaC1mb3JtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQ29sdW1uIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgY2hlY2tib3g/OiBib29sZWFuO1xuICAgIGNoZWNrYm94VmFsdWU/OiBib29sZWFuO1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICAgIGFsaWduPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiO1xuICAgIHNvcnRhYmxlPzogYm9vbGVhbjtcbiAgICBzd2l0Y2hDb25maWc/OiBTU3dpdGNoO1xufVxuICBcbmV4cG9ydCBpbnRlcmZhY2UgU29ydFRhYmxlIHtcbiAgICBTb3J0QXNjOiBib29sZWFuO1xuICAgIFNvcnRGaWVsZDogc3RyaW5nO1xufSJdfQ==
@@ -53,11 +53,11 @@ export class STabletComponent {
53
53
  }
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STabletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: STabletComponent, selector: "s-tablet", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, bodyloading: { classPropertyName: "bodyloading", publicName: "bodyloading", isSignal: false, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: false, isRequired: false, transformFunction: null }, configColumn: { classPropertyName: "configColumn", publicName: "configColumn", isSignal: false, isRequired: false, transformFunction: null }, isTreeMode: { classPropertyName: "isTreeMode", publicName: "isTreeMode", isSignal: false, isRequired: false, transformFunction: null }, loadingScroll: { classPropertyName: "loadingScroll", publicName: "loadingScroll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updateDataEvent: "updateDataEvent", ordenByEvent: "ordenByEvent", checkAllEvent: "checkAllEvent", scrollEvent: "scrollEvent" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: i3.SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.SSpinnerComponent, selector: "s-spinner", inputs: ["size", "animation"] }], encapsulation: i0.ViewEncapsulation.None }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: STabletComponent, selector: "s-tablet", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, bodyloading: { classPropertyName: "bodyloading", publicName: "bodyloading", isSignal: false, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: false, isRequired: false, transformFunction: null }, configColumn: { classPropertyName: "configColumn", publicName: "configColumn", isSignal: false, isRequired: false, transformFunction: null }, isTreeMode: { classPropertyName: "isTreeMode", publicName: "isTreeMode", isSignal: false, isRequired: false, transformFunction: null }, loadingScroll: { classPropertyName: "loadingScroll", publicName: "loadingScroll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updateDataEvent: "updateDataEvent", ordenByEvent: "ordenByEvent", checkAllEvent: "checkAllEvent", scrollEvent: "scrollEvent" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "style", "type"] }, { kind: "component", type: i3.SCheckboxComponent, selector: "s-checkbox", inputs: ["config"], outputs: ["blur", "focus"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.SSpinnerComponent, selector: "s-spinner", inputs: ["size", "animation"] }], encapsulation: i0.ViewEncapsulation.None }); }
57
57
  }
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: STabletComponent, decorators: [{
59
59
  type: Component,
60
- args: [{ selector: 's-tablet', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"] }]
60
+ args: [{ selector: 's-tablet', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n", styles: [".pre-s-tablet{max-width:100%;overflow-x:auto}.pre-s-tablet .s-tablet{background-color:var(--primary-100);border-collapse:collapse;width:100%}.pre-s-tablet .s-tablet thead{background-color:var(--neutrals-1200);font-weight:700}.pre-s-tablet .s-tablet thead th{vertical-align:middle;color:var(--secondary-600);font-size:.875rem;line-height:1.375rem;letter-spacing:.016rem;font-weight:700!important;text-align:left}.pre-s-tablet .s-tablet thead th:last-of-type{text-align:center}.pre-s-tablet .s-tablet__body{background-color:var(--neutrals-1200);color:var(--secondary-600)}.pre-s-tablet .s-tablet__disabled{color:var(--neutrals-700);pointer-events:none}.pre-s-tablet .s-tablet__empty{display:table-caption;caption-side:bottom;width:100%}.pre-s-tablet .s-tablet tbody tr td,.pre-s-tablet .s-tablet thead tr th{padding:.875rem;height:3.5rem;vertical-align:middle;font-size:.875rem}.pre-s-tablet .s-tablet th,.pre-s-tablet .s-tablet td{box-sizing:border-box;border:none;box-shadow:inset 0 -.063rem 0 var(--neutrals-900)}.pre-s-tablet .s-tablet td,.pre-s-tablet .s-tablet thead tr{height:3.5rem}.pre-s-tablet .s-tablet thead tr th{position:sticky;top:0;background-color:var(--neutrals-1200)}.pre-s-tablet .s-tablet__header{display:flex;gap:.5rem;align-items:center}.pre-s-tablet .s-tablet__header__icon{color:var(--primary-600)}.pre-s-tablet .s-tablet__header__icon--standard .s-icon-mat span{color:var(--neutrals-800)}.pre-s-tablet .s-tablet__header--align-left{justify-content:flex-start}.pre-s-tablet .s-tablet__header--align-center{justify-content:center}.pre-s-tablet .s-tablet__header--align-right{justify-content:flex-end}.pre-s-tablet .s-tablet__header__label{color:var(--secondary-500);font-weight:600}.pre-s-tablet .s-tablet__header__select{color:var(--secondary-600);font-weight:700}\n"] }]
61
61
  }], propDecorators: { data: [{
62
62
  type: Input
63
63
  }], loading: [{
@@ -232,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
232
232
  type: Input,
233
233
  args: ['STemplate']
234
234
  }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy10YWJsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvdGFibGUtdC9zLXRhYmxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi90YWJsZS10L3MtdGFibGV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3ZCLE1BQU0sT0FBTyxnQkFBZ0I7SUFON0I7UUFRVyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBTXpCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFNUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM3QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSWpELG1CQUFjLEdBQUc7WUFDZixjQUFjLEVBQUUsS0FBSztTQUN0QixDQUFDO0tBMkNIO0lBekNDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFvQjtRQUMxQixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0RSxJQUFJ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O0lBQzdCLENBQUM7SUFFSixrQkFBa0I7UUFDaEIsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDakMsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsS0FBSyxhQUFhO2dCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN0QyxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDOytHQXpCVSxTQUFTO21HQUFULFNBQVM7OzRGQUFULFNBQVM7a0JBSHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCOzRHQUVxQixLQUFLO3NCQUF4QixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWdDb2x1bW4sIFNvcnRUYWJsZSB9IGZyb20gJy4vcy10YWJsZXQtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXRhYmxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zLXRhYmxldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3MtdGFibGV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNUYWJsZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2FwdGlvbiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGhlYWRlciE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGJvZHlsb2FkaW5nITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgYm9keSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGNvbmZpZ0NvbHVtbiE6IENvbmZpZ0NvbHVtbltdO1xuICBASW5wdXQoKSBpc1RyZWVNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmdTY3JvbGwgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgQE91dHB1dCgpIHVwZGF0ZURhdGFFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb3JkZW5CeUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0VGFibGU+KCk7XG4gIEBPdXRwdXQoKSBjaGVja0FsbEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgc2Nyb2xsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaW5pdERhdGE6IGFueTtcbiAgZmllbGRTZWxlY3QhOiBTb3J0VGFibGU7XG4gIGNoZWNrYm94Q29uZmlnID0ge1xuICAgIHVzZUZvcm1Db250cm9sOiBmYWxzZSxcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXREYXRhID0gdGhpcy5kYXRhO1xuICB9XG5cbiAgb3JkZXJCeShjb2x1bW46IENvbmZpZ0NvbHVtbikge1xuICAgIGlmIChjb2x1bW4uc29ydGFibGUgIT09IGZhbHNlICYmICFjb2x1bW4uZGlzYWJsZWQgJiYgIWNvbHVtbi5jaGVja2JveCkge1xuICAgICAgaWYgKGNvbHVtbi5pZCkge1xuICAgICAgICAvL2NvbHVtbi5pZCBlcyBlbCBjYW1wbyBhIG9yZGVuYXIuXG4gICAgICAgIGNvbnN0IHNvcnRBc2MgPVxuICAgICAgICAgIHRoaXMuZmllbGRTZWxlY3QgJiYgdGhpcy5maWVsZFNlbGVjdC5Tb3J0RmllbGQgPT09IGNvbHVtbi5pZCAmJiB0aGlzLmZpZWxkU2VsZWN0LlNvcnRBc2MgPT09IHRydWVcbiAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5maWVsZFNlbGVjdCA9IHtcbiAgICAgICAgICBTb3J0QXNjOiBzb3J0QXNjLFxuICAgICAgICAgIFNvcnRGaWVsZDogY29sdW1uLmlkLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9yZGVuQnlFdmVudC5lbWl0KHRoaXMuZmllbGRTZWxlY3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZURhdGEoX2RhdGFTb3J0PzogYW55KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRhRXZlbnQubmV4dChfZGF0YVNvcnQpO1xuICB9XG5cbiAgcmVzdGFydERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRhRXZlbnQubmV4dCh0aGlzLmluaXREYXRhKTtcbiAgfVxuXG4gIGNoZWNrQWxsKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrQWxsRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBvblNjcm9sbChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGF0Qm90dG9tID0gZWxlbWVudC5zY3JvbGxIZWlnaHQgLSBlbGVtZW50LnNjcm9sbFRvcCA8PSBlbGVtZW50LmNsaWVudEhlaWdodCArIGVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICogMC4xOyAvLyBhbnRlcyBkZWwgZmluYWwgcGFyYSBkaXNwYXJhciBlbCBldmVudG9cblxuICAgIGlmIChhdEJvdHRvbSkge1xuICAgICAgdGhpcy5zY3JvbGxFdmVudC5lbWl0KCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tTU29ydGVhYmxlQ29sdW1uXScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3AtZWxlbWVudCcsXG4gICAgJ1tjbGFzcy5wLXNvcnRhYmxlLWNvbHVtbl0nOiAnaXNFbmFibGVkKCknLFxuICAgICdbYXR0ci5hcmlhLXNvcnRdJzogJ3NvcnRPcmRlcicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNvcnRhYmxlQ29sdW1uIHtcbiAgQElucHV0KCdTU29ydGVhYmxlQ29sdW1uJykgZmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBTb3J0YWJsZUNvbHVtbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgX2RhdGFTb3J0OiBhbnk7XG4gIHNvcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzb3J0T3JkZXIhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGE6IFNUYWJsZXRDb21wb25lbnQpIHtcbiAgICB0aGlzLl9kYXRhU29ydCA9IHRoaXMuZGF0YS5kYXRhO1xuICB9XG5cbiAgY29tcGFyZVZhbHVlcyhrZXk6IGFueSwgb3JkZXIgPSAnYXNjJykge1xuICAgIHJldHVybiBmdW5jdGlvbiBpbm5lclNvcnQoXG4gICAgICBhOiB7IFt4OiBzdHJpbmddOiBhbnk7IGhhc093blByb3BlcnR5OiAoYXJnMDogYW55KSA9PiBhbnkgfSxcbiAgICAgIGI6IHsgW3g6IHN0cmluZ106IGFueTsgaGFzT3duUHJvcGVydHk6IChhcmcwOiBhbnkpID0+IGFueSB9XG4gICAgKSB7XG4gICAgICBpZiAoIWEuaGFzT3duUHJvcGVydHkoa2V5KSB8fCAhYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIC8vIHByb3BlcnR5IGRvZXNuJ3QgZXhpc3Qgb24gZWl0aGVyIG9iamVjdFxuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFyQSA9IHR5cGVvZiBhW2tleV0gPT09ICdzdHJpbmcnID8gYVtrZXldLnRvVXBwZXJDYXNlKCkgOiBhW2tleV07XG4gICAgICBjb25zdCB2YXJCID0gdHlwZW9mIGJba2V5XSA9PT0gJ3N0cmluZycgPyBiW2tleV0udG9VcHBlckNhc2UoKSA6IGJba2V5XTtcblxuICAgICAgbGV0IGNvbXBhcmlzb24gPSAwO1xuICAgICAgaWYgKHZhckEgPiB2YXJCKSB7XG4gICAgICAgIGNvbXBhcmlzb24gPSAxO1xuICAgICAgfSBlbHNlIGlmICh2YXJBIDwgdmFyQikge1xuICAgICAgICBjb21wYXJpc29uID0gLTE7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JkZXIgPT09ICdkZXNjJyA/IGNvbXBhcmlzb24gKiAtMSA6IGNvbXBhcmlzb247XG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZVNvcnRTdGF0ZSgpIHtcbiAgICB0aGlzLnNvcnRlZCA9ICF0aGlzLnNvcnRlZDtcbiAgICB0aGlzLnNvcnRlZFxuICAgICAgPyB0aGlzLl9kYXRhU29ydC5zb3J0KHRoaXMuY29tcGFyZVZhbHVlcyh0aGlzLmZpZWxkLCAnYXNjJykpXG4gICAgICA6IHRoaXMuX2RhdGFTb3J0LnNvcnQodGhpcy5jb21wYXJlVmFsdWVzKHRoaXMuZmllbGQsICdkZXNjJykpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLmlzRW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNvcnRTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGlzRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wU29ydGFibGVDb2x1bW5EaXNhYmxlZCAhPT0gdHJ1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbU0lucHV0U2VhcmNoXScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3MtZWxlbWVudC1zZWFyY2gnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFNlYXJjaCB7XG4gIEBJbnB1dCgnU0lucHV0U2VhcmNoJykgZmllbGRzITogc3RyaW5nO1xuXG4gIF9kYXRhRmlsdGVyOiBhbnk7XG4gIGlucHV0VGltZW91dD86IGFueTtcbiAgZGF0YUJlZm9yZVNlYXJjaDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogU1RhYmxldENvbXBvbmVudCkge1xuICAgIHRoaXMuX2RhdGFGaWx0ZXIgPSBkYXRhLmRhdGE7XG4gIH1cblxuICBmaWx0ZXJJdGVtcyhxdWVyeTogYW55KSB7XG4gICAgbGV0IHJlc3VsdHMgPSBbXG4gICAgICAuLi50aGlzLmRhdGEuZGF0YS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKHF1ZXJ5LCAnaScpO1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoaXRlbSk7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLnNvbWUocHJvcGVydHkgPT4gcmVnZXhwLnRlc3QoaXRlbVtwcm9wZXJ0eV0pKTtcbiAgICAgIH0pLFxuICAgIF07XG4gICAgdGhpcy5fZGF0YUZpbHRlciA9IHJlc3VsdHM7XG4gICAgdGhpcy5kYXRhLnVwZGF0ZURhdGEodGhpcy5fZGF0YUZpbHRlcik7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50LnRhcmdldCddKVxuICBvbkVudGVyS2V5KGU6IGFueSkge1xuICAgIGlmICh0aGlzLmlucHV0VGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlckl0ZW1zKGUudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIDEwMDAsXG4gICAgICBudWxsXG4gICAgKTtcblxuICAgIGlmIChlLnZhbHVlID09PSAnJykge1xuICAgICAgdGhpcy5kYXRhLnJlc3RhcnREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignc2VhcmNoJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIHNlYXJjaChlOiBhbnkpIHtcbiAgICBpZiAoZS52YWx1ZSA9PT0gJycpIHtcbiAgICAgIHRoaXMuZGF0YS5yZXN0YXJ0RGF0YSgpO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbU1RlbXBsYXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIFNUZW1wbGF0ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoJ1NUZW1wbGF0ZScpIGZpZWxkITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdGFibGU6IFNUYWJsZXRDb21wb25lbnRcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMuZmllbGQpIHtcbiAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgICB0aGlzLnRhYmxlLmNhcHRpb24gPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgdGhpcy50YWJsZS5oZWFkZXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm9keSc6XG4gICAgICAgIHRoaXMudGFibGUuYm9keSA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib2R5bG9hZGluZyc6XG4gICAgICAgIHRoaXMudGFibGUuYm9keWxvYWRpbmcgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FwdGlvblwiPjwvbmctY29udGFpbmVyPlxuPGRpdiBjbGFzcz1cInByZS1zLXRhYmxldCBzLXNjcm9sbFwiIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50KVwiPlxuICA8dGFibGUgY2xhc3M9XCJzLXRhYmxldFwiPlxuICAgIDx0aGVhZD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx0ciAqbmdJZj1cImNvbmZpZ0NvbHVtbiAmJiBjb25maWdDb2x1bW4ubGVuZ3RoID4gMCAmJiAhbG9hZGluZ1wiPlxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZ0NvbHVtblwiXG4gICAgICAgICAgW3dpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcmRlckJ5KGNvbHVtbilcIlxuICAgICAgICAgIChjbGljayk9XCJvcmRlckJ5KGNvbHVtbilcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInMtdGFibGV0X19oZWFkZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAncy10YWJsZXRfX2hlYWRlci0tYWxpZ24tY2VudGVyJzogY29sdW1uLmFsaWduID09PSAnY2VudGVyJyxcbiAgICAgICAgICAgICAgJ3MtdGFibGV0X19oZWFkZXItLWFsaWduLXJpZ2h0JzogY29sdW1uLmFsaWduID09PSAncmlnaHQnLFxuICAgICAgICAgICAgICAncy10YWJsZXRfX2hlYWRlci0tYWxpZ24tbGVmdCc6IGNvbHVtbi5hbGlnbiA9PT0gJ2xlZnQnIHx8ICFjb2x1bW4uYWxpZ24sXG4gICAgICAgICAgICAgIGN1cnNvcjogY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSxcbiAgICAgICAgICAgICAgJ3MtdGFibGV0X19kaXNhYmxlZCc6IGxvYWRpbmcsXG4gICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmNoZWNrYm94XCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNUcmVlTW9kZVwiIGNsYXNzPVwicy10YWJsZS1kb3VibGVfX3RyZWUtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8cy1jaGVja2JveFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ21yLTInOiBjb2x1bW4udGl0bGUgfVwiXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjaGVja2JveENvbmZpZ1wiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb2x1bW4uY2hlY2tib3hWYWx1ZVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tBbGwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L3MtY2hlY2tib3g+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzLXRhYmxldF9faGVhZGVyX19sYWJlbFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAncy10YWJsZXRfX2hlYWRlcl9fc2VsZWN0JzogZmllbGRTZWxlY3QgJiYgZmllbGRTZWxlY3QuU29ydEZpZWxkID09PSBjb2x1bW4uaWQsXG4gICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAge3sgY29sdW1uLnRpdGxlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmllbGRTZWxlY3QgJiYgZmllbGRTZWxlY3QuU29ydEZpZWxkID09PSBjb2x1bW4uaWRcIiBjbGFzcz1cInMtdGFibGV0X19oZWFkZXJfX2ljb25cIj5cbiAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiJ3N5bWJvbCdcIiBzaXplPVwiMThcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+e3tcbiAgICAgICAgICAgICAgICBmaWVsZFNlbGVjdC5Tb3J0QXNjID8gJ2tleWJvYXJkX2Fycm93X3VwJyA6ICdrZXlib2FyZF9hcnJvd19kb3duJ1xuICAgICAgICAgICAgICB9fTwvcy1pY29uLW1hdD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSAmJiBjb2x1bW4udGl0bGUgJiYgZmllbGRTZWxlY3QgJiYgZmllbGRTZWxlY3QuU29ydEZpZWxkICE9PSBjb2x1bW4uaWRcIj5cbiAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiJ3N5bWJvbCdcIiBzaXplPVwiMThcIiBjbGFzcz1cImljb24gY3Vyc29yXCIgY2xhc3M9XCJzLXRhYmxldF9faGVhZGVyX19pY29uLS1zdGFuZGFyZFwiXG4gICAgICAgICAgICAgICAgPmtleWJvYXJkX2Fycm93X2Rvd248L3MtaWNvbi1tYXRcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKm5nSWY9XCIhZmllbGRTZWxlY3QgJiYgY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSAmJiBjb2x1bW4udGl0bGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInMtdGFibGV0X19oZWFkZXJfX2ljb24tLXN0YW5kYXJkXCI+XG4gICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cIidzeW1ib2wnXCIgc2l6ZT1cIjE4XCIgY2xhc3M9XCJpY29uIGN1cnNvclwiIGNsYXNzPVwicy10YWJsZXRfX2hlYWRlcl9faWNvbi0tc3RhbmRhcmRcIlxuICAgICAgICAgICAgICAgID5rZXlib2FyZF9hcnJvd19kb3duPC9zLWljb24tbWF0XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHkgW25nQ2xhc3NdPVwibG9hZGluZyA/ICdzLXRhYmxldF9fZW1wdHknIDogJ3MtdGFibGV0X19ib2R5J1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmc7IGVsc2UgYm9keVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHk+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmcgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5bG9hZGluZ1wiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuICAgIEBpZiAobG9hZGluZ1Njcm9sbCgpKSB7XG4gICAgICA8dGJvZHkgY2xhc3M9XCJzLXRhYmxldF9fYm9keVwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29uZmlnQ29sdW1uLmxlbmd0aCB8fCAxXCIgY2xhc3M9XCJzLXRhYmxlLWNvbXBsZXRlX19sb2FkaW5nXCI+XG4gICAgICAgICAgICA8cy1zcGlubmVyIHNpemU9XCJzbVwiPjwvcy1zcGlubmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIH1cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy10YWJsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvdGFibGUtdC9zLXRhYmxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi90YWJsZS10L3MtdGFibGV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3ZCLE1BQU0sT0FBTyxnQkFBZ0I7SUFON0I7UUFRVyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBTXpCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFNUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM3QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSWpELG1CQUFjLEdBQUc7WUFDZixjQUFjLEVBQUUsS0FBSztTQUN0QixDQUFDO0tBMkNIO0lBekNDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFvQjtRQUMxQixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0RSxJQUFJ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O0lBQzdCLENBQUM7SUFFSixrQkFBa0I7UUFDaEIsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDakMsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsS0FBSyxhQUFhO2dCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN0QyxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDOytHQXpCVSxTQUFTO21HQUFULFNBQVM7OzRGQUFULFNBQVM7a0JBSHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCOzRHQUVxQixLQUFLO3NCQUF4QixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWdDb2x1bW4sIFNvcnRUYWJsZSB9IGZyb20gJy4vcy10YWJsZXQtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXRhYmxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zLXRhYmxldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3MtdGFibGV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNUYWJsZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2FwdGlvbiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGhlYWRlciE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGJvZHlsb2FkaW5nITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgYm9keSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGNvbmZpZ0NvbHVtbiE6IENvbmZpZ0NvbHVtbltdO1xuICBASW5wdXQoKSBpc1RyZWVNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmdTY3JvbGwgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgQE91dHB1dCgpIHVwZGF0ZURhdGFFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb3JkZW5CeUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0VGFibGU+KCk7XG4gIEBPdXRwdXQoKSBjaGVja0FsbEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgc2Nyb2xsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaW5pdERhdGE6IGFueTtcbiAgZmllbGRTZWxlY3QhOiBTb3J0VGFibGU7XG4gIGNoZWNrYm94Q29uZmlnID0ge1xuICAgIHVzZUZvcm1Db250cm9sOiBmYWxzZSxcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXREYXRhID0gdGhpcy5kYXRhO1xuICB9XG5cbiAgb3JkZXJCeShjb2x1bW46IENvbmZpZ0NvbHVtbikge1xuICAgIGlmIChjb2x1bW4uc29ydGFibGUgIT09IGZhbHNlICYmICFjb2x1bW4uZGlzYWJsZWQgJiYgIWNvbHVtbi5jaGVja2JveCkge1xuICAgICAgaWYgKGNvbHVtbi5pZCkge1xuICAgICAgICAvL2NvbHVtbi5pZCBlcyBlbCBjYW1wbyBhIG9yZGVuYXIuXG4gICAgICAgIGNvbnN0IHNvcnRBc2MgPVxuICAgICAgICAgIHRoaXMuZmllbGRTZWxlY3QgJiYgdGhpcy5maWVsZFNlbGVjdC5Tb3J0RmllbGQgPT09IGNvbHVtbi5pZCAmJiB0aGlzLmZpZWxkU2VsZWN0LlNvcnRBc2MgPT09IHRydWVcbiAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5maWVsZFNlbGVjdCA9IHtcbiAgICAgICAgICBTb3J0QXNjOiBzb3J0QXNjLFxuICAgICAgICAgIFNvcnRGaWVsZDogY29sdW1uLmlkLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9yZGVuQnlFdmVudC5lbWl0KHRoaXMuZmllbGRTZWxlY3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZURhdGEoX2RhdGFTb3J0PzogYW55KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRhRXZlbnQubmV4dChfZGF0YVNvcnQpO1xuICB9XG5cbiAgcmVzdGFydERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRhRXZlbnQubmV4dCh0aGlzLmluaXREYXRhKTtcbiAgfVxuXG4gIGNoZWNrQWxsKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrQWxsRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBvblNjcm9sbChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGF0Qm90dG9tID0gZWxlbWVudC5zY3JvbGxIZWlnaHQgLSBlbGVtZW50LnNjcm9sbFRvcCA8PSBlbGVtZW50LmNsaWVudEhlaWdodCArIGVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICogMC4xOyAvLyBhbnRlcyBkZWwgZmluYWwgcGFyYSBkaXNwYXJhciBlbCBldmVudG9cblxuICAgIGlmIChhdEJvdHRvbSkge1xuICAgICAgdGhpcy5zY3JvbGxFdmVudC5lbWl0KCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tTU29ydGVhYmxlQ29sdW1uXScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3AtZWxlbWVudCcsXG4gICAgJ1tjbGFzcy5wLXNvcnRhYmxlLWNvbHVtbl0nOiAnaXNFbmFibGVkKCknLFxuICAgICdbYXR0ci5hcmlhLXNvcnRdJzogJ3NvcnRPcmRlcicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNvcnRhYmxlQ29sdW1uIHtcbiAgQElucHV0KCdTU29ydGVhYmxlQ29sdW1uJykgZmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBTb3J0YWJsZUNvbHVtbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgX2RhdGFTb3J0OiBhbnk7XG4gIHNvcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzb3J0T3JkZXIhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGE6IFNUYWJsZXRDb21wb25lbnQpIHtcbiAgICB0aGlzLl9kYXRhU29ydCA9IHRoaXMuZGF0YS5kYXRhO1xuICB9XG5cbiAgY29tcGFyZVZhbHVlcyhrZXk6IGFueSwgb3JkZXIgPSAnYXNjJykge1xuICAgIHJldHVybiBmdW5jdGlvbiBpbm5lclNvcnQoXG4gICAgICBhOiB7IFt4OiBzdHJpbmddOiBhbnk7IGhhc093blByb3BlcnR5OiAoYXJnMDogYW55KSA9PiBhbnkgfSxcbiAgICAgIGI6IHsgW3g6IHN0cmluZ106IGFueTsgaGFzT3duUHJvcGVydHk6IChhcmcwOiBhbnkpID0+IGFueSB9XG4gICAgKSB7XG4gICAgICBpZiAoIWEuaGFzT3duUHJvcGVydHkoa2V5KSB8fCAhYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIC8vIHByb3BlcnR5IGRvZXNuJ3QgZXhpc3Qgb24gZWl0aGVyIG9iamVjdFxuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFyQSA9IHR5cGVvZiBhW2tleV0gPT09ICdzdHJpbmcnID8gYVtrZXldLnRvVXBwZXJDYXNlKCkgOiBhW2tleV07XG4gICAgICBjb25zdCB2YXJCID0gdHlwZW9mIGJba2V5XSA9PT0gJ3N0cmluZycgPyBiW2tleV0udG9VcHBlckNhc2UoKSA6IGJba2V5XTtcblxuICAgICAgbGV0IGNvbXBhcmlzb24gPSAwO1xuICAgICAgaWYgKHZhckEgPiB2YXJCKSB7XG4gICAgICAgIGNvbXBhcmlzb24gPSAxO1xuICAgICAgfSBlbHNlIGlmICh2YXJBIDwgdmFyQikge1xuICAgICAgICBjb21wYXJpc29uID0gLTE7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JkZXIgPT09ICdkZXNjJyA/IGNvbXBhcmlzb24gKiAtMSA6IGNvbXBhcmlzb247XG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZVNvcnRTdGF0ZSgpIHtcbiAgICB0aGlzLnNvcnRlZCA9ICF0aGlzLnNvcnRlZDtcbiAgICB0aGlzLnNvcnRlZFxuICAgICAgPyB0aGlzLl9kYXRhU29ydC5zb3J0KHRoaXMuY29tcGFyZVZhbHVlcyh0aGlzLmZpZWxkLCAnYXNjJykpXG4gICAgICA6IHRoaXMuX2RhdGFTb3J0LnNvcnQodGhpcy5jb21wYXJlVmFsdWVzKHRoaXMuZmllbGQsICdkZXNjJykpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLmlzRW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNvcnRTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGlzRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wU29ydGFibGVDb2x1bW5EaXNhYmxlZCAhPT0gdHJ1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbU0lucHV0U2VhcmNoXScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3MtZWxlbWVudC1zZWFyY2gnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFNlYXJjaCB7XG4gIEBJbnB1dCgnU0lucHV0U2VhcmNoJykgZmllbGRzITogc3RyaW5nO1xuXG4gIF9kYXRhRmlsdGVyOiBhbnk7XG4gIGlucHV0VGltZW91dD86IGFueTtcbiAgZGF0YUJlZm9yZVNlYXJjaDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogU1RhYmxldENvbXBvbmVudCkge1xuICAgIHRoaXMuX2RhdGFGaWx0ZXIgPSBkYXRhLmRhdGE7XG4gIH1cblxuICBmaWx0ZXJJdGVtcyhxdWVyeTogYW55KSB7XG4gICAgbGV0IHJlc3VsdHMgPSBbXG4gICAgICAuLi50aGlzLmRhdGEuZGF0YS5maWx0ZXIoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKHF1ZXJ5LCAnaScpO1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoaXRlbSk7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLnNvbWUocHJvcGVydHkgPT4gcmVnZXhwLnRlc3QoaXRlbVtwcm9wZXJ0eV0pKTtcbiAgICAgIH0pLFxuICAgIF07XG4gICAgdGhpcy5fZGF0YUZpbHRlciA9IHJlc3VsdHM7XG4gICAgdGhpcy5kYXRhLnVwZGF0ZURhdGEodGhpcy5fZGF0YUZpbHRlcik7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50LnRhcmdldCddKVxuICBvbkVudGVyS2V5KGU6IGFueSkge1xuICAgIGlmICh0aGlzLmlucHV0VGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlckl0ZW1zKGUudmFsdWUpO1xuICAgICAgfSxcbiAgICAgIDEwMDAsXG4gICAgICBudWxsXG4gICAgKTtcblxuICAgIGlmIChlLnZhbHVlID09PSAnJykge1xuICAgICAgdGhpcy5kYXRhLnJlc3RhcnREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignc2VhcmNoJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIHNlYXJjaChlOiBhbnkpIHtcbiAgICBpZiAoZS52YWx1ZSA9PT0gJycpIHtcbiAgICAgIHRoaXMuZGF0YS5yZXN0YXJ0RGF0YSgpO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbU1RlbXBsYXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIFNUZW1wbGF0ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoJ1NUZW1wbGF0ZScpIGZpZWxkITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdGFibGU6IFNUYWJsZXRDb21wb25lbnRcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMuZmllbGQpIHtcbiAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgICB0aGlzLnRhYmxlLmNhcHRpb24gPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgdGhpcy50YWJsZS5oZWFkZXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm9keSc6XG4gICAgICAgIHRoaXMudGFibGUuYm9keSA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib2R5bG9hZGluZyc6XG4gICAgICAgIHRoaXMudGFibGUuYm9keWxvYWRpbmcgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FwdGlvblwiPjwvbmctY29udGFpbmVyPlxuPGRpdiBjbGFzcz1cInByZS1zLXRhYmxldCBzLXNjcm9sbFwiIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50KVwiPlxuICA8dGFibGUgY2xhc3M9XCJzLXRhYmxldFwiPlxuICAgIDx0aGVhZD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx0ciAqbmdJZj1cImNvbmZpZ0NvbHVtbiAmJiBjb25maWdDb2x1bW4ubGVuZ3RoID4gMCAmJiAhbG9hZGluZ1wiPlxuICAgICAgICA8dGhcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZ0NvbHVtblwiXG4gICAgICAgICAgW3dpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvcmRlckJ5KGNvbHVtbilcIlxuICAgICAgICAgIChjbGljayk9XCJvcmRlckJ5KGNvbHVtbilcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInMtdGFibGV0X19oZWFkZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAncy10YWJsZXRfX2hlYWRlci0tYWxpZ24tY2VudGVyJzogY29sdW1uLmFsaWduID09PSAnY2VudGVyJyxcbiAgICAgICAgICAgICAgJ3MtdGFibGV0X19oZWFkZXItLWFsaWduLXJpZ2h0JzogY29sdW1uLmFsaWduID09PSAncmlnaHQnLFxuICAgICAgICAgICAgICAncy10YWJsZXRfX2hlYWRlci0tYWxpZ24tbGVmdCc6IGNvbHVtbi5hbGlnbiA9PT0gJ2xlZnQnIHx8ICFjb2x1bW4uYWxpZ24sXG4gICAgICAgICAgICAgIGN1cnNvcjogY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSxcbiAgICAgICAgICAgICAgJ3MtdGFibGV0X19kaXNhYmxlZCc6IGxvYWRpbmcsXG4gICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmNoZWNrYm94XCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNUcmVlTW9kZVwiIGNsYXNzPVwicy10YWJsZS1kb3VibGVfX3RyZWUtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8cy1jaGVja2JveFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ21yLTInOiBjb2x1bW4udGl0bGUgfVwiXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjaGVja2JveENvbmZpZ1wiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb2x1bW4uY2hlY2tib3hWYWx1ZVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tBbGwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L3MtY2hlY2tib3g+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzLXRhYmxldF9faGVhZGVyX19sYWJlbFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAncy10YWJsZXRfX2hlYWRlcl9fc2VsZWN0JzogZmllbGRTZWxlY3QgJiYgZmllbGRTZWxlY3QuU29ydEZpZWxkID09PSBjb2x1bW4uaWQsXG4gICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAge3sgY29sdW1uLnRpdGxlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmllbGRTZWxlY3QgJiYgZmllbGRTZWxlY3QuU29ydEZpZWxkID09PSBjb2x1bW4uaWRcIiBjbGFzcz1cInMtdGFibGV0X19oZWFkZXJfX2ljb25cIj5cbiAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiJ3N5bWJvbCdcIiBzaXplPVwic21cIiBjbGFzcz1cImljb24gY3Vyc29yXCI+e3tcbiAgICAgICAgICAgICAgICBmaWVsZFNlbGVjdC5Tb3J0QXNjID8gJ2tleWJvYXJkX2Fycm93X3VwJyA6ICdrZXlib2FyZF9hcnJvd19kb3duJ1xuICAgICAgICAgICAgICB9fTwvcy1pY29uLW1hdD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSAmJiBjb2x1bW4udGl0bGUgJiYgZmllbGRTZWxlY3QgJiYgZmllbGRTZWxlY3QuU29ydEZpZWxkICE9PSBjb2x1bW4uaWRcIj5cbiAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiJ3N5bWJvbCdcIiBzaXplPVwic21cIiBjbGFzcz1cImljb24gY3Vyc29yXCIgY2xhc3M9XCJzLXRhYmxldF9faGVhZGVyX19pY29uLS1zdGFuZGFyZFwiXG4gICAgICAgICAgICAgICAgPmtleWJvYXJkX2Fycm93X2Rvd248L3MtaWNvbi1tYXRcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKm5nSWY9XCIhZmllbGRTZWxlY3QgJiYgY29sdW1uLnNvcnRhYmxlICE9PSBmYWxzZSAmJiBjb2x1bW4udGl0bGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInMtdGFibGV0X19oZWFkZXJfX2ljb24tLXN0YW5kYXJkXCI+XG4gICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cIidzeW1ib2wnXCIgc2l6ZT1cInNtXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiIGNsYXNzPVwicy10YWJsZXRfX2hlYWRlcl9faWNvbi0tc3RhbmRhcmRcIlxuICAgICAgICAgICAgICAgID5rZXlib2FyZF9hcnJvd19kb3duPC9zLWljb24tbWF0XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHkgW25nQ2xhc3NdPVwibG9hZGluZyA/ICdzLXRhYmxldF9fZW1wdHknIDogJ3MtdGFibGV0X19ib2R5J1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmc7IGVsc2UgYm9keVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHk+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmcgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5bG9hZGluZ1wiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuICAgIEBpZiAobG9hZGluZ1Njcm9sbCgpKSB7XG4gICAgICA8dGJvZHkgY2xhc3M9XCJzLXRhYmxldF9fYm9keVwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29uZmlnQ29sdW1uLmxlbmd0aCB8fCAxXCIgY2xhc3M9XCJzLXRhYmxlLWNvbXBsZXRlX19sb2FkaW5nXCI+XG4gICAgICAgICAgICA8cy1zcGlubmVyIHNpemU9XCJzbVwiPjwvcy1zcGlubmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIH1cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
@@ -32,14 +32,14 @@ export class TableActionsButtonsComponent {
32
32
  }
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableActionsButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableActionsButtonsComponent, selector: "s-table-actions-buttons", inputs: { tableActionsButtons: "tableActionsButtons" }, outputs: { clickButtonEvent: "clickButtonEvent" }, ngImport: i0, template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--primary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: i3.STooltipComponent, selector: "s-tooltip", inputs: ["title", "description", "theme", "position"] }, { kind: "directive", type: i4.CustomTooltipDirective, selector: "[tooltip]", inputs: ["tooltip"] }] }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableActionsButtonsComponent, selector: "s-table-actions-buttons", inputs: { tableActionsButtons: "tableActionsButtons" }, outputs: { clickButtonEvent: "clickButtonEvent" }, ngImport: i0, template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon px-1 no-select\"\n size=\"md\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip #tooltip [title]=\"button.tooltip\" [position]=\"button.tooltipPosition ?? 'top'\" theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--primary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "fill", "weight", "grade", "style", "type"] }, { kind: "component", type: i3.STooltipComponent, selector: "s-tooltip", inputs: ["title", "description", "theme", "position"] }, { kind: "directive", type: i4.CustomTooltipDirective, selector: "[tooltip]", inputs: ["tooltip"] }] }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableActionsButtonsComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 's-table-actions-buttons', template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--primary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"] }]
39
+ args: [{ selector: 's-table-actions-buttons', template: "<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon px-1 no-select\"\n size=\"md\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip #tooltip [title]=\"button.tooltip\" [position]=\"button.tooltipPosition ?? 'top'\" theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n", styles: [".table-actions-buttons__icon{color:var(--primary-600);cursor:pointer}.table-actions-buttons__icon__primary{color:var(--primary-600)}.table-actions-buttons__icon__primary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__primary:not(.table-actions-buttons__icon__primary--disabled):hover{color:var(--primary-900)}.table-actions-buttons__icon__secondary{color:var(--primary-600)}.table-actions-buttons__icon__secondary--disabled{color:var(--primary-300)}.table-actions-buttons__icon__secondary:not(.table-actions-buttons__icon__secondary--disabled):hover{color:var(--secondary-900)}.table-actions-buttons__icon__green{color:var(--green-600)}.table-actions-buttons__icon__green--disabled{color:var(--green-300)}.table-actions-buttons__icon__green:not(.table-actions-buttons__icon__green--disabled):hover{color:var(--green-900)}.table-actions-buttons__icon__red{color:var(--red-600)}.table-actions-buttons__icon__red--disabled{color:var(--red-300)}.table-actions-buttons__icon__red:not(.table-actions-buttons__icon__red--disabled):hover{color:var(--red-900)}.table-actions-buttons__icon__yellow{color:var(--yellow-600)}.table-actions-buttons__icon__yellow--disabled{color:var(--yellow-300)}.table-actions-buttons__icon__yellow:not(.table-actions-buttons__icon__yellow--disabled):hover{color:var(--yellow-900)}\n"] }]
40
40
  }], propDecorators: { tableActionsButtons: [{
41
41
  type: Input
42
42
  }], clickButtonEvent: [{
43
43
  type: Output
44
44
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL3RhYmxlLXQvdGFibGUtYWN0aW9ucy1idXR0b25zL3RhYmxlLWFjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi90YWJsZS10L3RhYmxlLWFjdGlvbnMtYnV0dG9ucy90YWJsZS1hY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7OztBQU83RCxNQUFNLE9BQU8sNEJBQTRCO0lBTHpDO1FBT1kscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV4RCxTQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxjQUFjLENBQUM7S0F1QmpDO0lBckJDLGNBQWMsQ0FBQyxJQUF5QjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7UUFDekUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFvQjtRQUNsQyxNQUFNLElBQUksR0FBbUMsTUFBTSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7UUFDdEUsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUM3RCxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxnQ0FBZ0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDdkYsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQW9CO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7K0dBM0JVLDRCQUE0QjttR0FBNUIsNEJBQTRCLDBLQ1Z6Qyw0cUJBbUJBOzs0RkRUYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UseUJBQXlCOzhCQUsxQixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbkJ1dHRvbiB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBY3Rpb25zQnV0dG9uc1R5cGUgfSBmcm9tICcuL2VudW1zL0FjdGlvbnNCdXR0b25zVHlwZS5lbnVtJztcbmltcG9ydCB7IEFjdGlvbnNCdXR0b25zIH0gZnJvbSAnLi9jb25zdGFudHMvYWN0aW9ucy1idXR0b25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncy10YWJsZS1hY3Rpb25zLWJ1dHRvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtYWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtYWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQWN0aW9uc0J1dHRvbnNDb21wb25lbnQge1xuICBASW5wdXQoKSB0YWJsZUFjdGlvbnNCdXR0b25zITogQWN0aW9uQnV0dG9uW107XG4gIEBPdXRwdXQoKSBjbGlja0J1dHRvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgVHlwZSA9IEFjdGlvbnNCdXR0b25zVHlwZTtcbiAgQWN0aW9uc0J1dHRvbnMgPSBBY3Rpb25zQnV0dG9ucztcblxuICBnZXRCdXR0b25zVHlwZSh0eXBlPzogQWN0aW9uc0J1dHRvbnNUeXBlKSB7XG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5BY3Rpb25zQnV0dG9ucy5maWx0ZXIoYWN0aW9uID0+IGFjdGlvbi50eXBlID09IHR5cGUpO1xuICAgIHJldHVybiBidXR0b25bMF07XG4gIH1cblxuICBnZXRCdXR0b25zQ2xhc3MoYnV0dG9uOiBBY3Rpb25CdXR0b24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGU6IEFjdGlvbnNCdXR0b25zVHlwZSB8IHVuZGVmaW5lZCA9IGJ1dHRvbi50eXBlID8/IHVuZGVmaW5lZDtcbiAgICBsZXQgY29sb3IgPSBidXR0b24uY29sb3IgPz8gdGhpcy5nZXRCdXR0b25zVHlwZSh0eXBlKT8uY29sb3I7XG4gICAgLy9DdWFuZG8gbm8gZXhpc3RlIGVsIGNvbG9yICwgbyBlcyBkZWZhdWx0IHNlIHBvbmUgcG9yIGRlZmVjdG8gcHJpbWFyeVxuICAgIGlmICghY29sb3IgfHwgY29sb3IgPT09ICdkZWZhdWx0Jykge1xuICAgICAgY29sb3IgPSAncHJpbWFyeSc7XG4gICAgfVxuICAgIHJldHVybiBgdGFibGUtYWN0aW9ucy1idXR0b25zX19pY29uX18ke2NvbG9yfSR7YnV0dG9uLmRpc2FibGVkID8gJy0tZGlzYWJsZWQnIDogJyd9YDtcbiAgfVxuXG4gIGhhbmRsZUJ1dHRvbkNsaWNrKGJ1dHRvbjogQWN0aW9uQnV0dG9uKTogdm9pZCB7XG4gICAgaWYgKCFidXR0b24uZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBidXR0b24uY3VzdG9tVHlwZSA/PyBidXR0b24udHlwZTtcbiAgICAgIHRoaXMuY2xpY2tCdXR0b25FdmVudC5lbWl0KHR5cGUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRhYmxlLWFjdGlvbnMtYnV0dG9uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgdGFibGVBY3Rpb25zQnV0dG9uc1wiPlxuICAgIDxzLWljb24tbWF0XG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgY2xhc3M9XCJ0YWJsZS1hY3Rpb25zLWJ1dHRvbnNfX2ljb24gcC0xIG5vLXNlbGVjdFwiXG4gICAgICBzaXplPVwiMjBcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uc0NsYXNzKGJ1dHRvbilcIlxuICAgICAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwiaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uKVwiPlxuICAgICAge3sgYnV0dG9uLmljb24gPz8gZ2V0QnV0dG9uc1R5cGUoYnV0dG9uLnR5cGUpLmljb24gfX1cbiAgICA8L3MtaWNvbi1tYXQ+XG4gICAgPHMtdG9vbHRpcFxuICAgICAgI3Rvb2x0aXBcbiAgICAgIFt0aXRsZV09XCJidXR0b24udG9vbHRpcFwiXG4gICAgICBbcG9zaXRpb25dPVwiYnV0dG9uLnRvb2x0aXBQb3NpdGlvbiA/PyAndG9wJ1wiXG4gICAgICB0aGVtZT1cImRhcmtcIj48L3MtdG9vbHRpcD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL3RhYmxlLXQvdGFibGUtYWN0aW9ucy1idXR0b25zL3RhYmxlLWFjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi90YWJsZS10L3RhYmxlLWFjdGlvbnMtYnV0dG9ucy90YWJsZS1hY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7OztBQU83RCxNQUFNLE9BQU8sNEJBQTRCO0lBTHpDO1FBT1kscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV4RCxTQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxjQUFjLENBQUM7S0F1QmpDO0lBckJDLGNBQWMsQ0FBQyxJQUF5QjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7UUFDekUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFvQjtRQUNsQyxNQUFNLElBQUksR0FBbUMsTUFBTSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7UUFDdEUsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUM3RCxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxnQ0FBZ0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDdkYsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQW9CO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7K0dBM0JVLDRCQUE0QjttR0FBNUIsNEJBQTRCLDBLQ1Z6QyxpcEJBZUE7OzRGRExhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx5QkFBeUI7OEJBSzFCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uQnV0dG9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjdGlvbnNCdXR0b25zVHlwZSB9IGZyb20gJy4vZW51bXMvQWN0aW9uc0J1dHRvbnNUeXBlLmVudW0nO1xuaW1wb3J0IHsgQWN0aW9uc0J1dHRvbnMgfSBmcm9tICcuL2NvbnN0YW50cy9hY3Rpb25zLWJ1dHRvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXRhYmxlLWFjdGlvbnMtYnV0dG9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1hY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1hY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVBY3Rpb25zQnV0dG9uc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRhYmxlQWN0aW9uc0J1dHRvbnMhOiBBY3Rpb25CdXR0b25bXTtcbiAgQE91dHB1dCgpIGNsaWNrQnV0dG9uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBUeXBlID0gQWN0aW9uc0J1dHRvbnNUeXBlO1xuICBBY3Rpb25zQnV0dG9ucyA9IEFjdGlvbnNCdXR0b25zO1xuXG4gIGdldEJ1dHRvbnNUeXBlKHR5cGU/OiBBY3Rpb25zQnV0dG9uc1R5cGUpIHtcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLkFjdGlvbnNCdXR0b25zLmZpbHRlcihhY3Rpb24gPT4gYWN0aW9uLnR5cGUgPT0gdHlwZSk7XG4gICAgcmV0dXJuIGJ1dHRvblswXTtcbiAgfVxuXG4gIGdldEJ1dHRvbnNDbGFzcyhidXR0b246IEFjdGlvbkJ1dHRvbik6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZTogQWN0aW9uc0J1dHRvbnNUeXBlIHwgdW5kZWZpbmVkID0gYnV0dG9uLnR5cGUgPz8gdW5kZWZpbmVkO1xuICAgIGxldCBjb2xvciA9IGJ1dHRvbi5jb2xvciA/PyB0aGlzLmdldEJ1dHRvbnNUeXBlKHR5cGUpPy5jb2xvcjtcbiAgICAvL0N1YW5kbyBubyBleGlzdGUgZWwgY29sb3IgLCBvIGVzIGRlZmF1bHQgc2UgcG9uZSBwb3IgZGVmZWN0byBwcmltYXJ5XG4gICAgaWYgKCFjb2xvciB8fCBjb2xvciA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICBjb2xvciA9ICdwcmltYXJ5JztcbiAgICB9XG4gICAgcmV0dXJuIGB0YWJsZS1hY3Rpb25zLWJ1dHRvbnNfX2ljb25fXyR7Y29sb3J9JHtidXR0b24uZGlzYWJsZWQgPyAnLS1kaXNhYmxlZCcgOiAnJ31gO1xuICB9XG5cbiAgaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uOiBBY3Rpb25CdXR0b24pOiB2b2lkIHtcbiAgICBpZiAoIWJ1dHRvbi5kaXNhYmxlZCkge1xuICAgICAgY29uc3QgdHlwZSA9IGJ1dHRvbi5jdXN0b21UeXBlID8/IGJ1dHRvbi50eXBlO1xuICAgICAgdGhpcy5jbGlja0J1dHRvbkV2ZW50LmVtaXQodHlwZSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgdGFibGUtYWN0aW9ucy1idXR0b25zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiB0YWJsZUFjdGlvbnNCdXR0b25zXCI+XG4gICAgPHMtaWNvbi1tYXRcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBjbGFzcz1cInRhYmxlLWFjdGlvbnMtYnV0dG9uc19faWNvbiBweC0xIG5vLXNlbGVjdFwiXG4gICAgICBzaXplPVwibWRcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0QnV0dG9uc0NsYXNzKGJ1dHRvbilcIlxuICAgICAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwiaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uKVwiPlxuICAgICAge3sgYnV0dG9uLmljb24gPz8gZ2V0QnV0dG9uc1R5cGUoYnV0dG9uLnR5cGUpLmljb24gfX1cbiAgICA8L3MtaWNvbi1tYXQ+XG4gICAgPHMtdG9vbHRpcCAjdG9vbHRpcCBbdGl0bGVdPVwiYnV0dG9uLnRvb2x0aXBcIiBbcG9zaXRpb25dPVwiYnV0dG9uLnRvb2x0aXBQb3NpdGlvbiA/PyAndG9wJ1wiIHRoZW1lPVwiZGFya1wiPjwvcy10b29sdGlwPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19