@koobiq/components 18.31.0 → 18.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/actions-panel/actions-panel-config.d.ts +2 -0
  2. package/actions-panel/actions-panel.d.ts +3 -57
  3. package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
  4. package/autocomplete/autocomplete.component.d.ts +1 -0
  5. package/autocomplete/autocomplete.module.d.ts +1 -1
  6. package/button-toggle/button-toggle.module.d.ts +3 -4
  7. package/code-block/code-block-highlight.d.ts +1 -2
  8. package/code-block/code-block.d.ts +57 -10
  9. package/core/common-behaviors/color.d.ts +3 -0
  10. package/core/common-behaviors/common-module.d.ts +16 -3
  11. package/core/form-field/form-field-ref.d.ts +5 -3
  12. package/core/option/option.d.ts +2 -2
  13. package/core/public-api.d.ts +1 -0
  14. package/core/styles/common/_select.scss +10 -24
  15. package/core/styles/theming/_theming.scss +0 -4
  16. package/core/tokens/index.d.ts +1 -0
  17. package/core/tokens/window.d.ts +5 -0
  18. package/core/validation/validation.d.ts +23 -2
  19. package/datepicker/datepicker-input.scss +1 -5
  20. package/dropdown/dropdown-trigger.directive.d.ts +1 -0
  21. package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
  22. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  23. package/esm2022/actions-panel/actions-panel.mjs +16 -113
  24. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
  25. package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
  26. package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
  27. package/esm2022/breadcrumbs/breadcrumbs.mjs +1 -1
  28. package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
  29. package/esm2022/code-block/code-block-highlight.mjs +8 -12
  30. package/esm2022/code-block/code-block.mjs +60 -18
  31. package/esm2022/core/common-behaviors/color.mjs +4 -1
  32. package/esm2022/core/common-behaviors/common-module.mjs +19 -26
  33. package/esm2022/core/form-field/form-field-ref.mjs +3 -4
  34. package/esm2022/core/option/option.mjs +7 -5
  35. package/esm2022/core/public-api.mjs +2 -1
  36. package/esm2022/core/tokens/index.mjs +2 -0
  37. package/esm2022/core/tokens/window.mjs +19 -0
  38. package/esm2022/core/utils/utils.mjs +2 -1
  39. package/esm2022/core/validation/validation.mjs +21 -2
  40. package/esm2022/core/version.mjs +2 -2
  41. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  42. package/esm2022/datepicker/calendar-header.component.mjs +3 -3
  43. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
  44. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
  45. package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
  46. package/esm2022/filter-bar/filter-bar.mjs +17 -3
  47. package/esm2022/filter-bar/filter-search.mjs +2 -2
  48. package/esm2022/filter-bar/filters.mjs +3 -3
  49. package/esm2022/filter-bar/pipes/pipe-date.mjs +5 -11
  50. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +5 -11
  51. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
  52. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  53. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  54. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  55. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  56. package/esm2022/form-field/cleaner.mjs +11 -6
  57. package/esm2022/form-field/error.mjs +20 -0
  58. package/esm2022/form-field/fieldset.mjs +84 -0
  59. package/esm2022/form-field/form-field-control.mjs +2 -2
  60. package/esm2022/form-field/form-field.mjs +247 -74
  61. package/esm2022/form-field/form-field.module.mjs +59 -47
  62. package/esm2022/form-field/hint.mjs +10 -18
  63. package/esm2022/form-field/label.mjs +19 -0
  64. package/esm2022/form-field/password-hint.mjs +6 -5
  65. package/esm2022/form-field/password-toggle.mjs +52 -27
  66. package/esm2022/form-field/prefix.mjs +9 -3
  67. package/esm2022/form-field/public-api.mjs +5 -2
  68. package/esm2022/form-field/reactive-password-hint.mjs +65 -0
  69. package/esm2022/form-field/stepper.mjs +34 -16
  70. package/esm2022/form-field/suffix.mjs +8 -3
  71. package/esm2022/form-field/validate.directive.mjs +16 -19
  72. package/esm2022/input/input-number.mjs +7 -2
  73. package/esm2022/input/input.module.mjs +1 -5
  74. package/esm2022/modal/modal-util.mjs +2 -1
  75. package/esm2022/navbar/navbar-item.component.mjs +10 -11
  76. package/esm2022/overflow-items/overflow-items.mjs +27 -10
  77. package/esm2022/radio/radio.module.mjs +4 -5
  78. package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
  79. package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
  80. package/esm2022/select/select.component.mjs +11 -8
  81. package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
  82. package/esm2022/splitter/splitter.component.mjs +5 -3
  83. package/esm2022/tabs/paginated-tab-header.mjs +6 -2
  84. package/esm2022/tabs/tabs.module.mjs +1 -5
  85. package/esm2022/tags/tag-list.component.mjs +2 -2
  86. package/esm2022/textarea/textarea.component.mjs +7 -6
  87. package/esm2022/textarea/textarea.module.mjs +4 -5
  88. package/esm2022/timezone/timezone-select.component.mjs +6 -4
  89. package/esm2022/toast/toast-animations.mjs +2 -2
  90. package/esm2022/toast/toast.component.mjs +3 -3
  91. package/esm2022/toggle/toggle.component.mjs +3 -3
  92. package/esm2022/toggle/toggle.module.mjs +4 -5
  93. package/esm2022/top-bar/top-bar.mjs +2 -2
  94. package/esm2022/tree/padding.directive.mjs +8 -6
  95. package/esm2022/tree-select/tree-select.component.mjs +18 -13
  96. package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
  97. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
  99. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  101. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-button-toggle.mjs +5 -5
  103. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-code-block.mjs +65 -28
  105. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-core.mjs +68 -35
  107. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-datepicker.mjs +4 -4
  109. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-dropdown.mjs +3 -2
  111. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
  113. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-file-upload.mjs +1 -1
  115. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-filter-bar.mjs +30 -29
  117. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-form-field.mjs +610 -219
  119. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-input.mjs +7 -5
  121. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-modal.mjs +1 -0
  123. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-navbar.mjs +9 -10
  125. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
  127. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-radio.mjs +4 -4
  129. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
  131. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-select.mjs +11 -8
  133. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-sidepanel.mjs +1 -4
  135. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-splitter.mjs +4 -2
  137. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-tabs.mjs +5 -5
  139. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-tags.mjs +2 -2
  141. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-textarea.mjs +9 -8
  143. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-timezone.mjs +5 -3
  145. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-toast.mjs +3 -3
  147. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-toggle.mjs +6 -6
  149. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  151. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-tree-select.mjs +18 -13
  153. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  154. package/fesm2022/koobiq-components-tree.mjs +7 -5
  155. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  156. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  157. package/form-field/_fiedset-theme.scss +13 -0
  158. package/form-field/_form-field-theme.scss +29 -13
  159. package/form-field/_hint-theme.scss +21 -22
  160. package/form-field/cleaner.d.ts +5 -1
  161. package/form-field/cleaner.scss +1 -4
  162. package/form-field/error.d.ts +8 -0
  163. package/form-field/fieldset-tokens.scss +5 -0
  164. package/form-field/fieldset.d.ts +27 -0
  165. package/form-field/fieldset.scss +93 -0
  166. package/form-field/form-field-control.d.ts +1 -1
  167. package/form-field/form-field-tokens.scss +13 -3
  168. package/form-field/form-field.d.ts +210 -22
  169. package/form-field/form-field.module.d.ts +14 -12
  170. package/form-field/form-field.scss +58 -78
  171. package/form-field/hint.d.ts +5 -1
  172. package/form-field/hint.scss +3 -5
  173. package/form-field/label.d.ts +6 -0
  174. package/form-field/password-hint.d.ts +1 -1
  175. package/form-field/password-toggle.d.ts +25 -11
  176. package/form-field/password-toggle.scss +1 -2
  177. package/form-field/prefix.d.ts +2 -1
  178. package/form-field/public-api.d.ts +4 -1
  179. package/form-field/reactive-password-hint.d.ts +19 -0
  180. package/form-field/stepper.d.ts +20 -8
  181. package/form-field/stepper.scss +12 -11
  182. package/form-field/suffix.d.ts +2 -1
  183. package/form-field/validate.directive.d.ts +10 -12
  184. package/input/input-tokens.scss +2 -2
  185. package/input/input.module.d.ts +3 -4
  186. package/input/input.scss +1 -2
  187. package/navbar/navbar-item.component.d.ts +3 -1
  188. package/overflow-items/overflow-items.d.ts +12 -5
  189. package/package.json +4 -4
  190. package/prebuilt-themes/dark-theme.css +1 -1
  191. package/prebuilt-themes/light-theme.css +1 -1
  192. package/prebuilt-themes/theme.css +1 -1
  193. package/radio/radio.module.d.ts +1 -2
  194. package/schematics/ng-add/index.js +2 -2
  195. package/scrollbar/scrollbar.component.d.ts +1 -0
  196. package/select/select-tokens.scss +5 -4
  197. package/select/select.component.d.ts +4 -2
  198. package/sidepanel/sidepanel.module.d.ts +5 -6
  199. package/splitter/splitter.component.d.ts +1 -0
  200. package/tabs/paginated-tab-header.d.ts +1 -0
  201. package/tabs/tabs.module.d.ts +5 -6
  202. package/tags/tag-list.scss +8 -4
  203. package/textarea/textarea.component.d.ts +1 -0
  204. package/textarea/textarea.module.d.ts +2 -3
  205. package/timepicker/timepicker.scss +1 -1
  206. package/toast/toast.component.scss +2 -0
  207. package/toggle/_toggle-theme.scss +10 -2
  208. package/toggle/toggle-tokens.scss +7 -1
  209. package/toggle/toggle.module.d.ts +1 -2
  210. package/toggle/toggle.scss +6 -6
  211. package/top-bar/top-bar.scss +48 -32
  212. package/tree/padding.directive.d.ts +1 -1
  213. package/tree-select/tree-select.component.d.ts +2 -0
  214. package/esm2022/form-field/form-field-errors.mjs +0 -7
  215. package/form-field/form-field-errors.d.ts +0 -2
@@ -2,7 +2,7 @@ import { SharedResizeObserver } from '@angular/cdk/observers/private';
2
2
  import { DOCUMENT } from '@angular/common';
3
3
  import { booleanAttribute, computed, contentChild, contentChildren, Directive, ElementRef, inject, input, numberAttribute, output, Renderer2, signal } from '@angular/core';
4
4
  import { outputToObservable, takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
5
- import { debounceTime, merge, skip } from 'rxjs';
5
+ import { debounceTime, merge, skip, switchMap } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * Manages the visibility of the element.
@@ -100,7 +100,7 @@ export class KbqOverflowItem extends ElementVisibilityManager {
100
100
  super.hide();
101
101
  }
102
102
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqOverflowItem, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
103
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: KbqOverflowItem, isStandalone: true, selector: "[kbqOverflowItem]", inputs: { id: { classPropertyName: "id", publicName: "kbqOverflowItem", isSignal: true, isRequired: true, transformFunction: null }, order: { classPropertyName: "order", publicName: "order", isSignal: true, isRequired: false, transformFunction: null }, alwaysVisible: { classPropertyName: "alwaysVisible", publicName: "alwaysVisible", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-overflow-item" }, exportAs: ["kbqOverflowItem"], usesInheritance: true, ngImport: i0 }); }
103
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: KbqOverflowItem, isStandalone: true, selector: "[kbqOverflowItem]", inputs: { id: { classPropertyName: "id", publicName: "kbqOverflowItem", isSignal: true, isRequired: true, transformFunction: null }, order: { classPropertyName: "order", publicName: "order", isSignal: true, isRequired: false, transformFunction: null }, alwaysVisible: { classPropertyName: "alwaysVisible", publicName: "alwaysVisible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-overflow-item_always-visible": "alwaysVisible()" }, classAttribute: "kbq-overflow-item" }, exportAs: ["kbqOverflowItem"], usesInheritance: true, ngImport: i0 }); }
104
104
  }
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqOverflowItem, decorators: [{
106
106
  type: Directive,
@@ -108,7 +108,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
108
108
  standalone: true,
109
109
  selector: '[kbqOverflowItem]',
110
110
  exportAs: 'kbqOverflowItem',
111
- host: { class: 'kbq-overflow-item' }
111
+ host: {
112
+ class: 'kbq-overflow-item',
113
+ '[class.kbq-overflow-item_always-visible]': 'alwaysVisible()'
114
+ }
112
115
  }]
113
116
  }] });
114
117
  /**
@@ -116,6 +119,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
116
119
  */
117
120
  export class KbqOverflowItems {
118
121
  constructor() {
122
+ this.elementRef = inject(ElementRef);
123
+ this.resizeObserver = inject(SharedResizeObserver);
124
+ this.renderer = inject(Renderer2);
125
+ this.document = inject(DOCUMENT);
119
126
  /**
120
127
  * `KbqOverflowItem` directive references.
121
128
  */
@@ -136,6 +143,12 @@ export class KbqOverflowItems {
136
143
  * @default 0
137
144
  */
138
145
  this.debounceTime = input(0, { transform: numberAttribute });
146
+ /**
147
+ * List of additional elements to observe for resize changes.
148
+ *
149
+ * @default document.body
150
+ */
151
+ this.additionalResizeObserverTargets = input(this.document.body);
139
152
  /**
140
153
  * Emits when the set of hidden items changes.
141
154
  */
@@ -146,16 +159,20 @@ export class KbqOverflowItems {
146
159
  this.hiddenItemIDs = toSignal(outputToObservable(this.changes), {
147
160
  initialValue: new Set([])
148
161
  });
149
- this.elementRef = inject(ElementRef);
150
- this.resizeObserver = inject(SharedResizeObserver);
151
- this.renderer = inject(Renderer2);
152
- this.document = inject(DOCUMENT);
153
162
  /**
154
163
  * Determines if the given element has a scrollbar.
155
164
  */
156
165
  this.hasScrollbar = ({ scrollWidth, clientWidth }) => scrollWidth > clientWidth;
157
166
  this.setStyles();
158
- merge(toObservable(this.items), toObservable(this.reverseOverflowOrder).pipe(skip(1)), this.resizeObserver.observe(this.elementRef.nativeElement), this.resizeObserver.observe(this.document.body))
167
+ this.setupObservers();
168
+ }
169
+ setupObservers() {
170
+ const resizeObservers = merge(this.resizeObserver.observe(this.elementRef.nativeElement), toObservable(this.additionalResizeObserverTargets).pipe(switchMap((targets) => {
171
+ return Array.isArray(targets)
172
+ ? merge(...targets.map((target) => this.resizeObserver.observe(target)))
173
+ : this.resizeObserver.observe(targets);
174
+ })));
175
+ merge(toObservable(this.items), toObservable(this.reverseOverflowOrder).pipe(skip(1)), resizeObservers)
159
176
  .pipe(debounceTime(this.debounceTime()), takeUntilDestroyed())
160
177
  .subscribe(() => {
161
178
  const hiddenItems = this.getHiddenItems(this.sortItemsByOrder(this.excludeAlwaysVisibleItems(this.items())), this.reverseOverflowOrder(), this.result(), this.elementRef.nativeElement);
@@ -205,7 +222,7 @@ export class KbqOverflowItems {
205
222
  this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', 'hidden');
206
223
  }
207
224
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqOverflowItems, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
208
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: KbqOverflowItems, isStandalone: true, selector: "[kbqOverflowItems]", inputs: { reverseOverflowOrder: { classPropertyName: "reverseOverflowOrder", publicName: "reverseOverflowOrder", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changes: "changes" }, host: { classAttribute: "kbq-overflow-items" }, queries: [{ propertyName: "items", predicate: KbqOverflowItem, isSignal: true }, { propertyName: "result", first: true, predicate: KbqOverflowItemsResult, descendants: true, isSignal: true }], exportAs: ["kbqOverflowItems"], ngImport: i0 }); }
225
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: KbqOverflowItems, isStandalone: true, selector: "[kbqOverflowItems]", inputs: { reverseOverflowOrder: { classPropertyName: "reverseOverflowOrder", publicName: "reverseOverflowOrder", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null }, additionalResizeObserverTargets: { classPropertyName: "additionalResizeObserverTargets", publicName: "additionalResizeObserverTargets", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changes: "changes" }, host: { classAttribute: "kbq-overflow-items" }, queries: [{ propertyName: "items", predicate: KbqOverflowItem, isSignal: true }, { propertyName: "result", first: true, predicate: KbqOverflowItemsResult, descendants: true, isSignal: true }], exportAs: ["kbqOverflowItems"], ngImport: i0 }); }
209
226
  }
210
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqOverflowItems, decorators: [{
211
228
  type: Directive,
@@ -216,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
216
233
  host: { class: 'kbq-overflow-items' }
217
234
  }]
218
235
  }], ctorParameters: () => [] });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctaXRlbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL292ZXJmbG93LWl0ZW1zL292ZXJmbG93LWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRWpEOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sd0JBQXdCO0lBUHJDO1FBUXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3Qzs7OztXQUlHO1FBQ00sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztLQXVCeEQ7SUFyQkc7Ozs7T0FJRztJQUNILElBQUk7UUFDQSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSTtRQUNBLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7a0lBaENRLHdCQUF3QjtzSEFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNQLElBQUksRUFBRTt3QkFDRixvQkFBb0IsRUFBRSxVQUFVO3dCQUNoQyx3Q0FBd0M7d0JBQ3hDLGtDQUFrQyxFQUFFLFVBQVU7cUJBQ2pEO2lCQUNKOztBQW9DRDs7R0FFRztBQU9ILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7a0lBQXZELHNCQUFzQjtzSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQU5sQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7aUJBQy9DOztBQUdEOztHQUVHO0FBT0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsd0JBQXdCO0lBTjdEOztRQU9JOztXQUVHO1FBQ00sT0FBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQzNEOzs7V0FHRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDN0Q7OztXQUdHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztLQVUxRTtJQVJHOztPQUVHO0lBQ00sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUFFLE9BQU87UUFFakMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7a0lBdkJRLGVBQWU7c0hBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO2lCQUN2Qzs7QUEyQkQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEN6QjtRQXpDQTs7V0FFRztRQUNjLFVBQUssR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFMUQ7O1dBRUc7UUFDYyxXQUFNLEdBQUcsWUFBWSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFL0Q7Ozs7V0FJRztRQUNNLHlCQUFvQixHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRTlFOzs7O1dBSUc7UUFDTSxpQkFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUVqRTs7V0FFRztRQUNNLFlBQU8sR0FBRyxNQUFNLEVBQXdCLENBQUM7UUFFbEQ7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEUsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFVLEVBQUUsQ0FBeUI7U0FDN0QsQ0FBQyxDQUFDO1FBRWMsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDekQsbUJBQWMsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFnRjdDOztXQUVHO1FBQ2MsaUJBQVksR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBZSxFQUFXLEVBQUUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBaEY5RyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsS0FBSyxDQUNELFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQzFELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2xEO2FBQ0ksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO2FBQzdELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQ25FLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUMzQixJQUFJLENBQUMsTUFBTSxFQUFFLEVBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQ2hDLENBQUM7WUFDRixNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRWpFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDLEtBQXFDO1FBQzFELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7O09BRUc7SUFDSyx5QkFBeUIsQ0FBQyxLQUFxQztRQUNuRSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FDbEIsS0FBcUMsRUFDckMsb0JBQTZCLEVBQzdCLE1BQTBDLEVBQzFDLFNBQXNCO1FBRXRCLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNmLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFN0QsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsTUFBTTtZQUVyQyxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVsRyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7a0lBdEhRLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLG1mQUlnQixlQUFlLHNFQUtqQixzQkFBc0I7OzRGQVRwRCxnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFyZWRSZXNpemVPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMvcHJpdmF0ZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgY29tcHV0ZWQsXG4gICAgY29udGVudENoaWxkLFxuICAgIGNvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIG91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb3V0cHV0VG9PYnNlcnZhYmxlLCB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1lcmdlLCBza2lwIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogTWFuYWdlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZWxlbWVudC5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtaGlkZGVuXSc6ICdoaWRkZW4oKScsXG4gICAgICAgIC8vIEBUT0RPIHNob3VsZCBiZSByZWZhY3RvcmVkICgjRFMtMzgzNClcbiAgICAgICAgJ1tjbGFzcy5rYnEtb3ZlcmZsb3ctaXRlbS1oaWRkZW5dJzogJ2hpZGRlbigpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudFZpc2liaWxpdHlNYW5hZ2VyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGlkZGVuU3RhdGUgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyBoaWRkZW4uXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgaGlkZGVuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5oaWRkZW5TdGF0ZSgpKTtcblxuICAgIC8qKlxuICAgICAqIEhpZGVzIHRoZSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICAgICAgdGhpcy5oaWRkZW5TdGF0ZS5zZXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgc2hvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Zpc2liaWxpdHknKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJyk7XG4gICAgICAgIHRoaXMuaGlkZGVuU3RhdGUuc2V0KGZhbHNlKTtcbiAgICB9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBkaXNwbGF5aW5nIHRoZSByZXN1bHQgb2YgaGlkZGVuIGl0ZW1zIGJ5IHRoZSBgS2JxT3ZlcmZsb3dJdGVtc2AgZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticU92ZXJmbG93SXRlbXNSZXN1bHRdJyxcbiAgICBleHBvcnRBczogJ2ticU92ZXJmbG93SXRlbXNSZXN1bHQnLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdrYnEtb3ZlcmZsb3ctaXRlbXMtcmVzdWx0JyB9XG59KVxuZXhwb3J0IGNsYXNzIEticU92ZXJmbG93SXRlbXNSZXN1bHQgZXh0ZW5kcyBFbGVtZW50VmlzaWJpbGl0eU1hbmFnZXIge31cblxuLyoqXG4gKiBEaXJlY3RpdmUgZm9yIHRoZSBpdGVtIHRoYXQgY2FuIGJlIGhpZGRlbiBieSB0aGUgYEticU92ZXJmbG93SXRlbXNgIGRpcmVjdGl2ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFPdmVyZmxvd0l0ZW1dJyxcbiAgICBleHBvcnRBczogJ2ticU92ZXJmbG93SXRlbScsXG4gICAgaG9zdDogeyBjbGFzczogJ2ticS1vdmVyZmxvdy1pdGVtJyB9XG59KVxuZXhwb3J0IGNsYXNzIEticU92ZXJmbG93SXRlbSBleHRlbmRzIEVsZW1lbnRWaXNpYmlsaXR5TWFuYWdlciB7XG4gICAgLyoqXG4gICAgICogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBpdGVtLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlkID0gaW5wdXQucmVxdWlyZWQoeyBhbGlhczogJ2ticU92ZXJmbG93SXRlbScgfSk7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGl0ZW0gaXMgcHJvY2Vzc2VkIGluIHRoZSBvdmVyZmxvdyBjb250YWluZXIsXG4gICAgICogd2l0aG91dCBjaGFuZ2luZyBpdHMgb3JpZ2luYWwgcG9zaXRpb24gaW4gdGhlIGBRdWVyeUxpc3RgLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9yZGVyID0gaW5wdXQobnVsbCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgICAvKipcbiAgICAgKiBFbGVtZW50IHdpdGggdGhpcyBhdHRyaWJ1dGUgd2lsbCBiZSBpZ25vcmVkIHdoZW4gaGlkaW5nIGFuZCB3aWxsIGFsd2F5cyByZW1haW4gdmlzaWJsZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsd2F5c1Zpc2libGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgb3ZlcnJpZGUgaGlkZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWx3YXlzVmlzaWJsZSgpKSByZXR1cm47XG5cbiAgICAgICAgc3VwZXIuaGlkZSgpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEaXJlY3RpdmUgZm9yIG1hbmFnaW5nIHRoZSB2aXNpYmlsaXR5IG9mIGl0ZW1zIHRoYXQgb3ZlcmZsb3cgdGhlIGNvbnRhaW5lci5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFPdmVyZmxvd0l0ZW1zXScsXG4gICAgZXhwb3J0QXM6ICdrYnFPdmVyZmxvd0l0ZW1zJyxcbiAgICBob3N0OiB7IGNsYXNzOiAna2JxLW92ZXJmbG93LWl0ZW1zJyB9XG59KVxuZXhwb3J0IGNsYXNzIEticU92ZXJmbG93SXRlbXMge1xuICAgIC8qKlxuICAgICAqIGBLYnFPdmVyZmxvd0l0ZW1gIGRpcmVjdGl2ZSByZWZlcmVuY2VzLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oS2JxT3ZlcmZsb3dJdGVtKTtcblxuICAgIC8qKlxuICAgICAqIGBLYnFPdmVyZmxvd0l0ZW1zUmVzdWx0YCBkaXJlY3RpdmUgcmVmZXJlbmNlLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdWx0ID0gY29udGVudENoaWxkKEticU92ZXJmbG93SXRlbXNSZXN1bHQpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgb3ZlcmZsb3cgb3JkZXIgc2hvdWxkIGJlIHJldmVyc2VkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSByZXZlcnNlT3ZlcmZsb3dPcmRlciA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIERlYm91bmNlIHRpbWUgZm9yIHJlY2FsY3VsYXRpbmcgaXRlbXMgdmlzaWJpbGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICByZWFkb25seSBkZWJvdW5jZVRpbWUgPSBpbnB1dCgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgc2V0IG9mIGhpZGRlbiBpdGVtcyBjaGFuZ2VzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNoYW5nZXMgPSBvdXRwdXQ8UmVhZG9ubHlTZXQ8dW5rbm93bj4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb2YgaGlkZGVuIGl0ZW0gSURzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhpZGRlbkl0ZW1JRHMgPSB0b1NpZ25hbChvdXRwdXRUb09ic2VydmFibGUodGhpcy5jaGFuZ2VzKSwge1xuICAgICAgICBpbml0aWFsVmFsdWU6IG5ldyBTZXQ8dW5rbm93bj4oW10pIGFzIFJlYWRvbmx5U2V0PHVua25vd24+XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXIgPSBpbmplY3QoU2hhcmVkUmVzaXplT2JzZXJ2ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNldFN0eWxlcygpO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuaXRlbXMpLFxuICAgICAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMucmV2ZXJzZU92ZXJmbG93T3JkZXIpLnBpcGUoc2tpcCgxKSksXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuZG9jdW1lbnQuYm9keSlcbiAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKCkpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhpZGRlbkl0ZW1zID0gdGhpcy5nZXRIaWRkZW5JdGVtcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zb3J0SXRlbXNCeU9yZGVyKHRoaXMuZXhjbHVkZUFsd2F5c1Zpc2libGVJdGVtcyh0aGlzLml0ZW1zKCkpKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXZlcnNlT3ZlcmZsb3dPcmRlcigpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdCgpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuSXRlbUlEcyA9IG5ldyBTZXQoaGlkZGVuSXRlbXMubWFwKCh7IGlkIH0pID0+IGlkKCkpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlcy5lbWl0KGhpZGRlbkl0ZW1JRHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU29ydCBpdGVtcyBieSB0aGVpciBgb3JkZXJgIGF0dHJpYnV0ZS5cbiAgICAgKiBJZiBhbiBpdGVtIGRvZXMgbm90IGhhdmUgYW4gYG9yZGVyYCBkZWZpbmVkLCBpdHMgaW5kZXggaXMgdXNlZCBhcyBhIGZhbGxiYWNrLlxuICAgICAqL1xuICAgIHByaXZhdGUgc29ydEl0ZW1zQnlPcmRlcihpdGVtczogUmVhZG9ubHlBcnJheTxLYnFPdmVyZmxvd0l0ZW0+KTogUmVhZG9ubHlBcnJheTxLYnFPdmVyZmxvd0l0ZW0+IHtcbiAgICAgICAgY29uc3QgaXRlbXNXaXRoT3JkZXIgPSBBcnJheS5mcm9tKGl0ZW1zLCAoaXRlbSwgaW5kZXgpID0+ICh7IGl0ZW0sIG9yZGVyOiBpdGVtLm9yZGVyKCkgPz8gaW5kZXggfSkpO1xuXG4gICAgICAgIHJldHVybiBpdGVtc1dpdGhPcmRlci5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikubWFwKCh7IGl0ZW0gfSkgPT4gaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhjbHVkZXMgaXRlbXMgdGhhdCBoYXZlIHRoZSBgYWx3YXlzVmlzaWJsZWAgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIHByaXZhdGUgZXhjbHVkZUFsd2F5c1Zpc2libGVJdGVtcyhpdGVtczogUmVhZG9ubHlBcnJheTxLYnFPdmVyZmxvd0l0ZW0+KTogUmVhZG9ubHlBcnJheTxLYnFPdmVyZmxvd0l0ZW0+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoeyBhbHdheXNWaXNpYmxlIH0pID0+ICFhbHdheXNWaXNpYmxlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hbmFnZXMgdGhlIHZpc2liaWxpdHkgb2YgaXRlbXMgYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgY29udGFpbmVyIGFuZCByZXR1cm5zIHRoZSBoaWRkZW4gaXRlbXMuXG4gICAgICogRGlyZWN0aW9uIG9mIGhpZGluZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBgcmV2ZXJzZU92ZXJmbG93T3JkZXJgIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEhpZGRlbkl0ZW1zKFxuICAgICAgICBpdGVtczogUmVhZG9ubHlBcnJheTxLYnFPdmVyZmxvd0l0ZW0+LFxuICAgICAgICByZXZlcnNlT3ZlcmZsb3dPcmRlcjogYm9vbGVhbixcbiAgICAgICAgcmVzdWx0OiBLYnFPdmVyZmxvd0l0ZW1zUmVzdWx0IHwgdW5kZWZpbmVkLFxuICAgICAgICBjb250YWluZXI6IEhUTUxFbGVtZW50XG4gICAgKTogUmVhZG9ubHlBcnJheTxLYnFPdmVyZmxvd0l0ZW0+IHtcbiAgICAgICAgcmVzdWx0Py5oaWRlKCk7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uc2hvdygpKTtcblxuICAgICAgICB3aGlsZSAodGhpcy5oYXNTY3JvbGxiYXIoY29udGFpbmVyKSkge1xuICAgICAgICAgICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gaXRlbXMuZmlsdGVyKCh7IGhpZGRlbiB9KSA9PiAhaGlkZGVuKCkpO1xuXG4gICAgICAgICAgICBpZiAodmlzaWJsZUl0ZW1zLmxlbmd0aCA9PT0gMCkgYnJlYWs7XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1Ub0hpZGUgPSByZXZlcnNlT3ZlcmZsb3dPcmRlciA/IHZpc2libGVJdGVtc1swXSA6IHZpc2libGVJdGVtc1t2aXNpYmxlSXRlbXMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIGl0ZW1Ub0hpZGUuaGlkZSgpO1xuICAgICAgICAgICAgcmVzdWx0Py5zaG93KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKCh7IGhpZGRlbiB9KSA9PiBoaWRkZW4oKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgbmVjZXNzYXJ5IHN0eWxlcyBmb3IgdGhlIGRpcmVjdGl2ZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFN0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ2ZsZXgnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZsZXgtd3JhcCcsICdub3dyYXAnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZsZXgtZ3JvdycsICcxJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBlbGVtZW50IGhhcyBhIHNjcm9sbGJhci5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc1Njcm9sbGJhciA9ICh7IHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4gPT4gc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcbn1cbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctaXRlbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL292ZXJmbG93LWl0ZW1zL292ZXJmbG93LWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUU1RDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFxQixhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0M7Ozs7V0FJRztRQUNNLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7S0F1QnhEO0lBckJHOzs7O09BSUc7SUFDSCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxF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QixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRixDQUFDO2tJQXRJUSxnQkFBZ0I7c0hBQWhCLGdCQUFnQix5ckJBU2dCLGVBQWUsc0VBS2pCLHNCQUFzQjs7NEZBZHBELGdCQUFnQjtrQkFONUIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlZFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycy9wcml2YXRlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgY29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgb3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvdXRwdXRUb09ic2VydmFibGUsIHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2UsIHNraXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIE1hbmFnZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGVsZW1lbnQuXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5hcmlhLWhpZGRlbl0nOiAnaGlkZGVuKCknLFxuICAgICAgICAvLyBAVE9ETyBzaG91bGQgYmUgcmVmYWN0b3JlZCAoI0RTLTM4MzQpXG4gICAgICAgICdbY2xhc3Mua2JxLW92ZXJmbG93LWl0ZW0taGlkZGVuXSc6ICdoaWRkZW4oKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRWaXNpYmlsaXR5TWFuYWdlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpZGRlblN0YXRlID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgaGlkZGVuLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhpZGRlbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaGlkZGVuU3RhdGUoKSk7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlcyB0aGUgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBoaWRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgICAgIHRoaXMuaGlkZGVuU3RhdGUuc2V0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3dzIHRoZSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHNob3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2aXNpYmlsaXR5Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicpO1xuICAgICAgICB0aGlzLmhpZGRlblN0YXRlLnNldChmYWxzZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSBmb3IgZGlzcGxheWluZyB0aGUgcmVzdWx0IG9mIGhpZGRlbiBpdGVtcyBieSB0aGUgYEticU92ZXJmbG93SXRlbXNgIGRpcmVjdGl2ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFPdmVyZmxvd0l0ZW1zUmVzdWx0XScsXG4gICAgZXhwb3J0QXM6ICdrYnFPdmVyZmxvd0l0ZW1zUmVzdWx0JyxcbiAgICBob3N0OiB7IGNsYXNzOiAna2JxLW92ZXJmbG93LWl0ZW1zLXJlc3VsdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFPdmVyZmxvd0l0ZW1zUmVzdWx0IGV4dGVuZHMgRWxlbWVudFZpc2liaWxpdHlNYW5hZ2VyIHt9XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciB0aGUgaXRlbSB0aGF0IGNhbiBiZSBoaWRkZW4gYnkgdGhlIGBLYnFPdmVyZmxvd0l0ZW1zYCBkaXJlY3RpdmUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxT3ZlcmZsb3dJdGVtXScsXG4gICAgZXhwb3J0QXM6ICdrYnFPdmVyZmxvd0l0ZW0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtb3ZlcmZsb3ctaXRlbScsXG4gICAgICAgICdbY2xhc3Mua2JxLW92ZXJmbG93LWl0ZW1fYWx3YXlzLXZpc2libGVdJzogJ2Fsd2F5c1Zpc2libGUoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU92ZXJmbG93SXRlbSBleHRlbmRzIEVsZW1lbnRWaXNpYmlsaXR5TWFuYWdlciB7XG4gICAgLyoqXG4gICAgICogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBpdGVtLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlkID0gaW5wdXQucmVxdWlyZWQoeyBhbGlhczogJ2ticU92ZXJmbG93SXRlbScgfSk7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGl0ZW0gaXMgcHJvY2Vzc2VkIGluIHRoZSBvdmVyZmxvdyBjb250YWluZXIsXG4gICAgICogd2l0aG91dCBjaGFuZ2luZyBpdHMgb3JpZ2luYWwgcG9zaXRpb24gaW4gdGhlIGBRdWVyeUxpc3RgLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9yZGVyID0gaW5wdXQobnVsbCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgICAvKipcbiAgICAgKiBFbGVtZW50IHdpdGggdGhpcyBhdHRyaWJ1dGUgd2lsbCBiZSBpZ25vcmVkIHdoZW4gaGlkaW5nIGFuZCB3aWxsIGFsd2F5cyByZW1haW4gdmlzaWJsZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsd2F5c1Zpc2libGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgb3ZlcnJpZGUgaGlkZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWx3YXlzVmlzaWJsZSgpKSByZXR1cm47XG5cbiAgICAgICAgc3VwZXIuaGlkZSgpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEaXJlY3RpdmUgZm9yIG1hbmFnaW5nIHRoZSB2aXNpYmlsaXR5IG9mIGl0ZW1zIHRoYXQgb3ZlcmZsb3cgdGhlIGNvbnRhaW5lci5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFPdmVyZmxvd0l0ZW1zXScsXG4gICAgZXhwb3J0QXM6ICdrYnFPdmVyZmxvd0l0ZW1zJyxcbiAgICBob3N0OiB7IGNsYXNzOiAna2JxLW92ZXJmbG93LWl0ZW1zJyB9XG59KVxuZXhwb3J0IGNsYXNzIEticU92ZXJmbG93SXRlbXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVPYnNlcnZlciA9IGluamVjdChTaGFyZWRSZXNpemVPYnNlcnZlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICogYEticU92ZXJmbG93SXRlbWAgZGlyZWN0aXZlIHJlZmVyZW5jZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpdGVtcyA9IGNvbnRlbnRDaGlsZHJlbihLYnFPdmVyZmxvd0l0ZW0pO1xuXG4gICAgLyoqXG4gICAgICogYEticU92ZXJmbG93SXRlbXNSZXN1bHRgIGRpcmVjdGl2ZSByZWZlcmVuY2UuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN1bHQgPSBjb250ZW50Q2hpbGQoS2JxT3ZlcmZsb3dJdGVtc1Jlc3VsdCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBvdmVyZmxvdyBvcmRlciBzaG91bGQgYmUgcmV2ZXJzZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJldmVyc2VPdmVyZmxvd09yZGVyID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogRGVib3VuY2UgdGltZSBmb3IgcmVjYWxjdWxhdGluZyBpdGVtcyB2aXNpYmlsaXR5LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlYm91bmNlVGltZSA9IGlucHV0KDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGFkZGl0aW9uYWwgZWxlbWVudHMgdG8gb2JzZXJ2ZSBmb3IgcmVzaXplIGNoYW5nZXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBkb2N1bWVudC5ib2R5XG4gICAgICovXG4gICAgcmVhZG9ubHkgYWRkaXRpb25hbFJlc2l6ZU9ic2VydmVyVGFyZ2V0cyA9IGlucHV0PEVsZW1lbnQgfCBFbGVtZW50W10+KHRoaXMuZG9jdW1lbnQuYm9keSk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIHRoZSBzZXQgb2YgaGlkZGVuIGl0ZW1zIGNoYW5nZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2hhbmdlcyA9IG91dHB1dDxSZWFkb25seVNldDx1bmtub3duPj4oKTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvZiBoaWRkZW4gaXRlbSBJRHMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaGlkZGVuSXRlbUlEcyA9IHRvU2lnbmFsKG91dHB1dFRvT2JzZXJ2YWJsZSh0aGlzLmNoYW5nZXMpLCB7XG4gICAgICAgIGluaXRpYWxWYWx1ZTogbmV3IFNldDx1bmtub3duPihbXSkgYXMgUmVhZG9ubHlTZXQ8dW5rbm93bj5cbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNldFN0eWxlcygpO1xuICAgICAgICB0aGlzLnNldHVwT2JzZXJ2ZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cE9ic2VydmVycygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXJzID0gbWVyZ2UoXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuYWRkaXRpb25hbFJlc2l6ZU9ic2VydmVyVGFyZ2V0cykucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHRhcmdldHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGFyZ2V0cylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbWVyZ2UoLi4udGFyZ2V0cy5tYXAoKHRhcmdldCkgPT4gdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGFyZ2V0cyk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBtZXJnZSh0b09ic2VydmFibGUodGhpcy5pdGVtcyksIHRvT2JzZXJ2YWJsZSh0aGlzLnJldmVyc2VPdmVyZmxvd09yZGVyKS5waXBlKHNraXAoMSkpLCByZXNpemVPYnNlcnZlcnMpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUoKSksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuSXRlbXMgPSB0aGlzLmdldEhpZGRlbkl0ZW1zKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNvcnRJdGVtc0J5T3JkZXIodGhpcy5leGNsdWRlQWx3YXlzVmlzaWJsZUl0ZW1zKHRoaXMuaXRlbXMoKSkpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJldmVyc2VPdmVyZmxvd09yZGVyKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0KCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBoaWRkZW5JdGVtSURzID0gbmV3IFNldChoaWRkZW5JdGVtcy5tYXAoKHsgaWQgfSkgPT4gaWQoKSkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmVtaXQoaGlkZGVuSXRlbUlEcyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTb3J0IGl0ZW1zIGJ5IHRoZWlyIGBvcmRlcmAgYXR0cmlidXRlLlxuICAgICAqIElmIGFuIGl0ZW0gZG9lcyBub3QgaGF2ZSBhbiBgb3JkZXJgIGRlZmluZWQsIGl0cyBpbmRleCBpcyB1c2VkIGFzIGEgZmFsbGJhY2suXG4gICAgICovXG4gICAgcHJpdmF0ZSBzb3J0SXRlbXNCeU9yZGVyKGl0ZW1zOiBSZWFkb25seUFycmF5PEticU92ZXJmbG93SXRlbT4pOiBSZWFkb25seUFycmF5PEticU92ZXJmbG93SXRlbT4ge1xuICAgICAgICBjb25zdCBpdGVtc1dpdGhPcmRlciA9IEFycmF5LmZyb20oaXRlbXMsIChpdGVtLCBpbmRleCkgPT4gKHsgaXRlbSwgb3JkZXI6IGl0ZW0ub3JkZXIoKSA/PyBpbmRleCB9KSk7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zV2l0aE9yZGVyLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKS5tYXAoKHsgaXRlbSB9KSA9PiBpdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGNsdWRlcyBpdGVtcyB0aGF0IGhhdmUgdGhlIGBhbHdheXNWaXNpYmxlYCBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBleGNsdWRlQWx3YXlzVmlzaWJsZUl0ZW1zKGl0ZW1zOiBSZWFkb25seUFycmF5PEticU92ZXJmbG93SXRlbT4pOiBSZWFkb25seUFycmF5PEticU92ZXJmbG93SXRlbT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKCh7IGFsd2F5c1Zpc2libGUgfSkgPT4gIWFsd2F5c1Zpc2libGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFuYWdlcyB0aGUgdmlzaWJpbGl0eSBvZiBpdGVtcyBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSBjb250YWluZXIgYW5kIHJldHVybnMgdGhlIGhpZGRlbiBpdGVtcy5cbiAgICAgKiBEaXJlY3Rpb24gb2YgaGlkaW5nIGlzIGRldGVybWluZWQgYnkgdGhlIGByZXZlcnNlT3ZlcmZsb3dPcmRlcmAgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0SGlkZGVuSXRlbXMoXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PEticU92ZXJmbG93SXRlbT4sXG4gICAgICAgIHJldmVyc2VPdmVyZmxvd09yZGVyOiBib29sZWFuLFxuICAgICAgICByZXN1bHQ6IEticU92ZXJmbG93SXRlbXNSZXN1bHQgfCB1bmRlZmluZWQsXG4gICAgICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnRcbiAgICApOiBSZWFkb25seUFycmF5PEticU92ZXJmbG93SXRlbT4ge1xuICAgICAgICByZXN1bHQ/LmhpZGUoKTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zaG93KCkpO1xuXG4gICAgICAgIHdoaWxlICh0aGlzLmhhc1Njcm9sbGJhcihjb250YWluZXIpKSB7XG4gICAgICAgICAgICBjb25zdCB2aXNpYmxlSXRlbXMgPSBpdGVtcy5maWx0ZXIoKHsgaGlkZGVuIH0pID0+ICFoaWRkZW4oKSk7XG5cbiAgICAgICAgICAgIGlmICh2aXNpYmxlSXRlbXMubGVuZ3RoID09PSAwKSBicmVhaztcblxuICAgICAgICAgICAgY29uc3QgaXRlbVRvSGlkZSA9IHJldmVyc2VPdmVyZmxvd09yZGVyID8gdmlzaWJsZUl0ZW1zWzBdIDogdmlzaWJsZUl0ZW1zW3Zpc2libGVJdGVtcy5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgaXRlbVRvSGlkZS5oaWRlKCk7XG4gICAgICAgICAgICByZXN1bHQ/LnNob3coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKHsgaGlkZGVuIH0pID0+IGhpZGRlbigpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBuZWNlc3Nhcnkgc3R5bGVzIGZvciB0aGUgZGlyZWN0aXZlLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0U3R5bGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnZmxleCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZmxleC13cmFwJywgJ25vd3JhcCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZmxleC1ncm93JywgJzEnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGVsZW1lbnQgaGFzIGEgc2Nyb2xsYmFyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFzU2Nyb2xsYmFyID0gKHsgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH06IEhUTUxFbGVtZW50KTogYm9vbGVhbiA9PiBzY3JvbGxXaWR0aCA+IGNsaWVudFdpZHRoO1xufVxuIl19
@@ -1,19 +1,18 @@
1
1
  import { A11yModule } from '@angular/cdk/a11y';
2
2
  import { NgModule } from '@angular/core';
3
- import { KbqCommonModule } from '@koobiq/components/core';
4
3
  import { KbqRadioButton, KbqRadioGroup } from './radio.component';
5
4
  import * as i0 from "@angular/core";
6
5
  export class KbqRadioModule {
7
6
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: KbqRadioModule, declarations: [KbqRadioGroup, KbqRadioButton], imports: [A11yModule, KbqCommonModule], exports: [KbqRadioGroup, KbqRadioButton] }); }
9
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqRadioModule, imports: [A11yModule, KbqCommonModule] }); }
7
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: KbqRadioModule, declarations: [KbqRadioGroup, KbqRadioButton], imports: [A11yModule], exports: [KbqRadioGroup, KbqRadioButton] }); }
8
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqRadioModule, imports: [A11yModule] }); }
10
9
  }
11
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqRadioModule, decorators: [{
12
11
  type: NgModule,
13
12
  args: [{
14
- imports: [A11yModule, KbqCommonModule],
13
+ imports: [A11yModule],
15
14
  exports: [KbqRadioGroup, KbqRadioButton],
16
15
  declarations: [KbqRadioGroup, KbqRadioButton]
17
16
  }]
18
17
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9yYWRpby9yYWRpby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxjQUFjO2tJQUFkLGNBQWM7bUlBQWQsY0FBYyxpQkFGUixhQUFhLEVBQUUsY0FBYyxhQUZsQyxVQUFVLEVBQUUsZUFBZSxhQUMzQixhQUFhLEVBQUUsY0FBYzttSUFHOUIsY0FBYyxZQUpiLFVBQVUsRUFBRSxlQUFlOzs0RkFJNUIsY0FBYztrQkFMMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDO29CQUN4QyxZQUFZLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxUmFkaW9CdXR0b24sIEticVJhZGlvR3JvdXAgfSBmcm9tICcuL3JhZGlvLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0ExMXlNb2R1bGUsIEticUNvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW0ticVJhZGlvR3JvdXAsIEticVJhZGlvQnV0dG9uXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtLYnFSYWRpb0dyb3VwLCBLYnFSYWRpb0J1dHRvbl1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUmFkaW9Nb2R1bGUge31cbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9yYWRpby9yYWRpby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPbEUsTUFBTSxPQUFPLGNBQWM7a0lBQWQsY0FBYzttSUFBZCxjQUFjLGlCQUZSLGFBQWEsRUFBRSxjQUFjLGFBRmxDLFVBQVUsYUFDVixhQUFhLEVBQUUsY0FBYzttSUFHOUIsY0FBYyxZQUpiLFVBQVU7OzRGQUlYLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDO29CQUN4QyxZQUFZLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxUmFkaW9CdXR0b24sIEticVJhZGlvR3JvdXAgfSBmcm9tICcuL3JhZGlvLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0ExMXlNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtLYnFSYWRpb0dyb3VwLCBLYnFSYWRpb0J1dHRvbl0sXG4gICAgZGVjbGFyYXRpb25zOiBbS2JxUmFkaW9Hcm91cCwgS2JxUmFkaW9CdXR0b25dXG59KVxuZXhwb3J0IGNsYXNzIEticVJhZGlvTW9kdWxlIHt9XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, NgZone, Output, ViewChild, ViewEncapsulation } from '@angular/core';
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Injector, Input, NgZone, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
2
  import { KbqScrollbarDirective } from './scrollbar.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  const filterEvents = (emits, events) => Object.keys(emits).reduce((obj, name) => {
@@ -27,17 +27,20 @@ export class KbqScrollbar {
27
27
  /** Event triggered when scrollbar instance destroyed */
28
28
  this.onDestroy = new EventEmitter();
29
29
  this.onScroll = new EventEmitter();
30
+ this.injector = inject(Injector);
30
31
  }
31
32
  ngAfterViewInit() {
32
- if (this.element && this.contentElement.nativeElement) {
33
- this.kbqScrollbarDirective?.initialize(this.initializationTarget || {
34
- target: this.targetElement.nativeElement,
35
- elements: {
36
- viewport: this.contentElement.nativeElement,
37
- content: this.contentElement.nativeElement
38
- }
39
- });
40
- }
33
+ afterNextRender(() => {
34
+ if (this.element && this.contentElement.nativeElement) {
35
+ this.kbqScrollbarDirective?.initialize(this.initializationTarget || {
36
+ target: this.targetElement.nativeElement,
37
+ elements: {
38
+ viewport: this.contentElement.nativeElement,
39
+ content: this.contentElement.nativeElement
40
+ }
41
+ });
42
+ }
43
+ }, { injector: this.injector });
41
44
  }
42
45
  ngOnDestroy() {
43
46
  this.kbqScrollbarDirective?.scrollbarInstance?.destroy();
@@ -127,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
127
130
  }], onScroll: [{
128
131
  type: Output
129
132
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2Nyb2xsYmFyL3Njcm9sbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVE5RCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQXlCLEVBQUUsTUFBMEIsRUFBRSxFQUFFLENBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFrQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBcUMsR0FBdUIsRUFBRSxJQUFPLEVBQUUsRUFBRTtJQUNyRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLDBCQUEwQjtJQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUc7UUFDUixZQUFZO1FBQ1osR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FBQyxDQUFDO0lBRXpGLE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDTCxDQUFDO0FBRU47O0dBRUc7QUEwQkgsTUFBTSxPQUFPLFlBQVk7SUFvQnJCLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDNUMs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TSxJQUFJLFdBQ1AsQ0FBQyxxQkFBcUIsQ0FBQyxZQUN0QixnQ0FBZ0MsWUFDaEMsY0FBYyxRQUNsQjt3QkFDRixtQ0FBbUMsRUFBRSxFQUFFO3dCQUN2QyxLQUFLLEVBQUUseUJBQXlCO3FCQUNuQyxZQUNTOzs7Ozs7Ozs7OztLQVdULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO29HQUlmLGNBQWM7c0JBQW5DLFNBQVM7dUJBQUMsU0FBUztnQkFDMkMscUJBQXFCO3NCQUFuRixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTtnQkFHNUMsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEticVNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJy4vc2Nyb2xsYmFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIEticVNjcm9sbGJhckV2ZW50TGlzdGVuZXJBcmdzLFxuICAgIEticVNjcm9sbGJhckV2ZW50cyxcbiAgICBLYnFTY3JvbGxiYXJPcHRpb25zLFxuICAgIEticVNjcm9sbGJhclRhcmdldFxufSBmcm9tICcuL3Njcm9sbGJhci50eXBlcyc7XG5cbmNvbnN0IGZpbHRlckV2ZW50cyA9IChlbWl0czogS2JxU2Nyb2xsYmFyRXZlbnRzLCBldmVudHM6IEticVNjcm9sbGJhckV2ZW50cykgPT5cbiAgICAoT2JqZWN0LmtleXMoZW1pdHMpIGFzIChrZXlvZiBLYnFTY3JvbGxiYXJFdmVudHMpW10pLnJlZHVjZTxLYnFTY3JvbGxiYXJFdmVudHM+KFxuICAgICAgICA8TiBleHRlbmRzIGtleW9mIEticVNjcm9sbGJhckV2ZW50cz4ob2JqOiBLYnFTY3JvbGxiYXJFdmVudHMsIG5hbWU6IE4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVtaXRMaXN0ZW5lciA9IGVtaXRzW25hbWVdO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRMaXN0ZW5lciA9IGV2ZW50c1tuYW1lXTtcblxuICAgICAgICAgICAgLy8gbWVyZ2UgJiBjaGVjayBsaXN0ZW5lcnNcbiAgICAgICAgICAgIG9ialtuYW1lXSA9IFtcbiAgICAgICAgICAgICAgICBlbWl0TGlzdGVuZXIsXG4gICAgICAgICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZXZlbnRMaXN0ZW5lcikgPyBldmVudExpc3RlbmVyIDogW2V2ZW50TGlzdGVuZXJdKS5maWx0ZXIoQm9vbGVhbildO1xuXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICk7XG5cbi8qKlxuICogVGhlIGNvbXBvbmVudC13cmFwcGVyIGZvciBgb3ZlcmxheXNjcm9sbGJhcnNgIGxpYnJhcnkuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ticVNjcm9sbGJhckRpcmVjdGl2ZV0sXG4gICAgc2VsZWN0b3I6ICdrYnEtc2Nyb2xsYmFyLCBba2JxLXNjcm9sbGJhcl0nLFxuICAgIGV4cG9ydEFzOiAna2JxU2Nyb2xsYmFyJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdkYXRhLW92ZXJsYXlzY3JvbGxiYXJzLWluaXRpYWxpemUnOiAnJyxcbiAgICAgICAgY2xhc3M6ICdrYnEtc2Nyb2xsYmFyLWNvbXBvbmVudCdcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNjb250ZW50XG4gICAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgICAgIFtldmVudHNdPVwibWVyZ2VFdmVudHMoKVwiXG4gICAgICAgICAgICBbZGVmZXJdPVwiZGVmZXJcIlxuICAgICAgICAgICAgZGF0YS1vdmVybGF5c2Nyb2xsYmFycy1jb250ZW50cz1cIlwiXG4gICAgICAgICAgICBrYnFTY3JvbGxiYXJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnLi9zY3JvbGxiYXIuY29tcG9uZW50LnNjc3MnLCAnc2Nyb2xsYmFyLXRva2Vucy5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTY3JvbGxiYXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBFbGVtZW50IHRoYXQgaXMgYmVpbmcgb3ZlcmZsb3dlZCAqL1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogS2JxU2Nyb2xsYmFyRGlyZWN0aXZlIH0pIHByaXZhdGUga2JxU2Nyb2xsYmFyRGlyZWN0aXZlPzogS2JxU2Nyb2xsYmFyRGlyZWN0aXZlO1xuXG4gICAgLyoqIEVsZW1lbnRzIHNjcm9sbGJhciBhcHBsaWVkIG9uICovXG4gICAgQElucHV0KCkgaW5pdGlhbGl6YXRpb25UYXJnZXQ/OiBLYnFTY3JvbGxiYXJUYXJnZXQ7XG4gICAgLyoqIFNjcm9sbGJhciBiZWhhdmlvciBjdXN0b21pemF0aW9uIG9iamVjdCAqL1xuICAgIEBJbnB1dCgpIG9wdGlvbnM6IEticVNjcm9sbGJhck9wdGlvbnM7XG4gICAgQElucHV0KCkgZXZlbnRzOiBLYnFTY3JvbGxiYXJFdmVudHM7XG4gICAgLyoqIFdoZXRoZXIgdG8gZGVmZXIgdGhlIGluaXRpYWxpemF0aW9uIHRvIGEgcG9pbnQgaW4gdGltZSB3aGVuIHRoZSBicm93c2VyIGlzIGlkbGUuIChvciB0byB0aGUgbmV4dCBmcmFtZSBpZiBgd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2tgIGlzIG5vdCBzdXBwb3J0ZWQpICovXG4gICAgQElucHV0KCkgZGVmZXI/OiBib29sZWFuIHwgSWRsZVJlcXVlc3RPcHRpb25zO1xuXG4gICAgQE91dHB1dCgpIG9uSW5pdGlhbGl6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8S2JxU2Nyb2xsYmFyRXZlbnRMaXN0ZW5lckFyZ3NbJ2luaXRpYWxpemVkJ10+KCk7XG4gICAgLyoqIEV2ZW50IHRyaWdnZXJlZCB3aGVuIG9wdGlvbnMgb3IgZXZlbnQgbGlzdGVuZXJzIHVwZGF0ZWQgKi9cbiAgICBAT3V0cHV0KCkgb25VcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPEticVNjcm9sbGJhckV2ZW50TGlzdGVuZXJBcmdzWyd1cGRhdGVkJ10+KCk7XG4gICAgLyoqIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHNjcm9sbGJhciBpbnN0YW5jZSBkZXN0cm95ZWQgKi9cbiAgICBAT3V0cHV0KCkgb25EZXN0cm95ID0gbmV3IEV2ZW50RW1pdHRlcjxLYnFTY3JvbGxiYXJFdmVudExpc3RlbmVyQXJnc1snZGVzdHJveWVkJ10+KCk7XG4gICAgQE91dHB1dCgpIG9uU2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjxLYnFTY3JvbGxiYXJFdmVudExpc3RlbmVyQXJnc1snc2Nyb2xsJ10+KCk7XG5cbiAgICBnZXQgZWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhcmdldEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSB0YXJnZXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudCAmJiB0aGlzLmNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMua2JxU2Nyb2xsYmFyRGlyZWN0aXZlPy5pbml0aWFsaXplKFxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6YXRpb25UYXJnZXQgfHwge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlld3BvcnQ6IHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmticVNjcm9sbGJhckRpcmVjdGl2ZT8uc2Nyb2xsYmFySW5zdGFuY2U/LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogV3JhcHBlciBmdW5jdGlvbiBmb3IgbmF0aXZlIHNjcm9sbCAqL1xuICAgIHNjcm9sbFRvKG9wdGlvbnM/OiBTY3JvbGxUb09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbChvcHRpb25zKTtcbiAgICB9XG5cbiAgICBtZXJnZUV2ZW50cygpOiBLYnFTY3JvbGxiYXJFdmVudHMge1xuICAgICAgICBjb25zdCBkZWZhdWx0TGlzdGVuZXJzOiBLYnFTY3JvbGxiYXJFdmVudHMgPSB7XG4gICAgICAgICAgICBpbml0aWFsaXplZDogKC4uLmFyZ3MpID0+IHRoaXMuZGlzcGF0Y2hFdmVudElmSGFzT2JzZXJ2ZXJzKHRoaXMub25Jbml0aWFsaXplLCBhcmdzKSxcbiAgICAgICAgICAgIHVwZGF0ZWQ6ICguLi5hcmdzKSA9PiB0aGlzLmRpc3BhdGNoRXZlbnRJZkhhc09ic2VydmVycyh0aGlzLm9uVXBkYXRlLCBhcmdzKSxcbiAgICAgICAgICAgIGRlc3Ryb3llZDogKC4uLmFyZ3MpID0+IHRoaXMuZGlzcGF0Y2hFdmVudElmSGFzT2JzZXJ2ZXJzKHRoaXMub25EZXN0cm95LCBhcmdzKSxcbiAgICAgICAgICAgIHNjcm9sbDogKC4uLmFyZ3MpID0+IHRoaXMuZGlzcGF0Y2hFdmVudElmSGFzT2JzZXJ2ZXJzKHRoaXMub25TY3JvbGwsIGFyZ3MpXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50cykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRMaXN0ZW5lcnM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBtZXJnZSBkZWZhdWx0IGxpc3RlbmVycyB3aXRoIGN1c3RvbSBsaXN0ZW5lcnMgaW4gY2FzZSBvZiBJbnB1dCBiaW5kaW5nXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0TGlzdGVuZXJzLFxuICAgICAgICAgICAgLi4uZmlsdGVyRXZlbnRzKHRoaXMuZXZlbnRzLCBkZWZhdWx0TGlzdGVuZXJzKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlzcGF0Y2hFdmVudElmSGFzT2JzZXJ2ZXJzPFQ+KGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyPFQ+LCBhcmdzOiBUKTogdm9pZCB7XG4gICAgICAgIC8vIGBvYnNlcnZlZGAgaXMgYXZhaWxhYmxlIHNpbmNlIFJ4SlNANy4yIGJlY2F1c2UgYG9ic2VydmVyc2AgaXMgYmVpbmcgZGVwcmVjYXRlZC5cbiAgICAgICAgaWYgKChldmVudEVtaXR0ZXIgYXMgYW55KS5vYnNlcnZlZCB8fCBldmVudEVtaXR0ZXIub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgcmVxdWlyZWQgdG8gcmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVyIGluIHRoZSBBbmd1bGFyXG4gICAgICAgICAgICAvLyB6b25lIHRvby4gVGhpcyB3aWxsIG5vdCByZS1lbnRlciB0aGUgQW5ndWxhciB6b25lIGlmIGVtaXR0ZXIgZG9lc24ndCBoYXZlIGFueSBvYnNlcnZlcnMsXG4gICAgICAgICAgICAvLyBmb3IgaW5zdGFuY2UsIGl0J3MgYmVpbmcgbGlzdGVuZWQ6IGA8b3ZlcmxheS1zY3JvbGxiYXJzIChvc0luaXRpYWxpemVkKT1cIi4uLlwiYC5cbiAgICAgICAgICAgIC8vIEV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUgYmVjYXVzZSBpbnN0YW5jZSBpcyBjcmVhdGVkIGluIHRoZVxuICAgICAgICAgICAgLy8gYDxyb290PmAgem9uZVxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IGV2ZW50RW1pdHRlci5lbWl0KGFyZ3MpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2Nyb2xsYmFyL3Njcm9sbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFFZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVE5RCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQXlCLEVBQUUsTUFBMEIsRUFBRSxFQUFFLENBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFrQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBcUMsR0FBdUIsRUFBRSxJQUFPLEVBQUUsRUFBRTtJQUNyRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLDBCQUEwQjtJQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUc7UUFDUixZQUFZO1FBQ1osR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FBQyxDQUFDO0lBRXpGLE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDTCxDQUFDO0FBRU47O0dBRUc7QUEwQkgsTUFBTSxPQUFPLFlBQVk7SUFvQnJCLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxD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QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0wsQ0FBQztrSUF4RlEsWUFBWTtzSEFBWixZQUFZLGdtQkFHUyxxQkFBcUIseURBbkJ6Qzs7Ozs7Ozs7Ozs7S0FXVCx3K1hBbEJTLHFCQUFxQjs7NEZBdUJ0QixZQUFZO2tCQXpCeEIsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxxQkFBcUIsQ0FBQyxZQUN0QixnQ0FBZ0MsWUFDaEMsY0FBYyxRQUNsQjt3QkFDRixtQ0FBbUMsRUFBRSxFQUFFO3dCQUN2QyxLQUFLLEVBQUUseUJBQXlCO3FCQUNuQyxZQUNTOzs7Ozs7Ozs7OztLQVdULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO29HQUlmLGNBQWM7c0JBQW5DLFNBQVM7dUJBQUMsU0FBUztnQkFDMkMscUJBQXFCO3NCQUFuRixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTtnQkFHNUMsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnLi9zY3JvbGxiYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgS2JxU2Nyb2xsYmFyRXZlbnRMaXN0ZW5lckFyZ3MsXG4gICAgS2JxU2Nyb2xsYmFyRXZlbnRzLFxuICAgIEticVNjcm9sbGJhck9wdGlvbnMsXG4gICAgS2JxU2Nyb2xsYmFyVGFyZ2V0XG59IGZyb20gJy4vc2Nyb2xsYmFyLnR5cGVzJztcblxuY29uc3QgZmlsdGVyRXZlbnRzID0gKGVtaXRzOiBLYnFTY3JvbGxiYXJFdmVudHMsIGV2ZW50czogS2JxU2Nyb2xsYmFyRXZlbnRzKSA9PlxuICAgIChPYmplY3Qua2V5cyhlbWl0cykgYXMgKGtleW9mIEticVNjcm9sbGJhckV2ZW50cylbXSkucmVkdWNlPEticVNjcm9sbGJhckV2ZW50cz4oXG4gICAgICAgIDxOIGV4dGVuZHMga2V5b2YgS2JxU2Nyb2xsYmFyRXZlbnRzPihvYmo6IEticVNjcm9sbGJhckV2ZW50cywgbmFtZTogTikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1pdExpc3RlbmVyID0gZW1pdHNbbmFtZV07XG4gICAgICAgICAgICBjb25zdCBldmVudExpc3RlbmVyID0gZXZlbnRzW25hbWVdO1xuXG4gICAgICAgICAgICAvLyBtZXJnZSAmIGNoZWNrIGxpc3RlbmVyc1xuICAgICAgICAgICAgb2JqW25hbWVdID0gW1xuICAgICAgICAgICAgICAgIGVtaXRMaXN0ZW5lcixcbiAgICAgICAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheShldmVudExpc3RlbmVyKSA/IGV2ZW50TGlzdGVuZXIgOiBbZXZlbnRMaXN0ZW5lcl0pLmZpbHRlcihCb29sZWFuKV07XG5cbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgKTtcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50LXdyYXBwZXIgZm9yIGBvdmVybGF5c2Nyb2xsYmFyc2AgbGlicmFyeS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS2JxU2Nyb2xsYmFyRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2ticS1zY3JvbGxiYXIsIFtrYnEtc2Nyb2xsYmFyXScsXG4gICAgZXhwb3J0QXM6ICdrYnFTY3JvbGxiYXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2RhdGEtb3ZlcmxheXNjcm9sbGJhcnMtaW5pdGlhbGl6ZSc6ICcnLFxuICAgICAgICBjbGFzczogJ2ticS1zY3JvbGxiYXItY29tcG9uZW50J1xuICAgIH0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2NvbnRlbnRcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgICAgW2V2ZW50c109XCJtZXJnZUV2ZW50cygpXCJcbiAgICAgICAgICAgIFtkZWZlcl09XCJkZWZlclwiXG4gICAgICAgICAgICBkYXRhLW92ZXJsYXlzY3JvbGxiYXJzLWNvbnRlbnRzPVwiXCJcbiAgICAgICAgICAgIGticVNjcm9sbGJhclxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL3Njcm9sbGJhci5jb21wb25lbnQuc2NzcycsICdzY3JvbGxiYXItdG9rZW5zLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticVNjcm9sbGJhciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIEVsZW1lbnQgdGhhdCBpcyBiZWluZyBvdmVyZmxvd2VkICovXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdjb250ZW50JywgeyByZWFkOiBLYnFTY3JvbGxiYXJEaXJlY3RpdmUgfSkgcHJpdmF0ZSBrYnFTY3JvbGxiYXJEaXJlY3RpdmU/OiBLYnFTY3JvbGxiYXJEaXJlY3RpdmU7XG5cbiAgICAvKiogRWxlbWVudHMgc2Nyb2xsYmFyIGFwcGxpZWQgb24gKi9cbiAgICBASW5wdXQoKSBpbml0aWFsaXphdGlvblRhcmdldD86IEticVNjcm9sbGJhclRhcmdldDtcbiAgICAvKiogU2Nyb2xsYmFyIGJlaGF2aW9yIGN1c3RvbWl6YXRpb24gb2JqZWN0ICovXG4gICAgQElucHV0KCkgb3B0aW9uczogS2JxU2Nyb2xsYmFyT3B0aW9ucztcbiAgICBASW5wdXQoKSBldmVudHM6IEticVNjcm9sbGJhckV2ZW50cztcbiAgICAvKiogV2hldGhlciB0byBkZWZlciB0aGUgaW5pdGlhbGl6YXRpb24gdG8gYSBwb2ludCBpbiB0aW1lIHdoZW4gdGhlIGJyb3dzZXIgaXMgaWRsZS4gKG9yIHRvIHRoZSBuZXh0IGZyYW1lIGlmIGB3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFja2AgaXMgbm90IHN1cHBvcnRlZCkgKi9cbiAgICBASW5wdXQoKSBkZWZlcj86IGJvb2xlYW4gfCBJZGxlUmVxdWVzdE9wdGlvbnM7XG5cbiAgICBAT3V0cHV0KCkgb25Jbml0aWFsaXplID0gbmV3IEV2ZW50RW1pdHRlcjxLYnFTY3JvbGxiYXJFdmVudExpc3RlbmVyQXJnc1snaW5pdGlhbGl6ZWQnXT4oKTtcbiAgICAvKiogRXZlbnQgdHJpZ2dlcmVkIHdoZW4gb3B0aW9ucyBvciBldmVudCBsaXN0ZW5lcnMgdXBkYXRlZCAqL1xuICAgIEBPdXRwdXQoKSBvblVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8S2JxU2Nyb2xsYmFyRXZlbnRMaXN0ZW5lckFyZ3NbJ3VwZGF0ZWQnXT4oKTtcbiAgICAvKiogRXZlbnQgdHJpZ2dlcmVkIHdoZW4gc2Nyb2xsYmFyIGluc3RhbmNlIGRlc3Ryb3llZCAqL1xuICAgIEBPdXRwdXQoKSBvbkRlc3Ryb3kgPSBuZXcgRXZlbnRFbWl0dGVyPEticVNjcm9sbGJhckV2ZW50TGlzdGVuZXJBcmdzWydkZXN0cm95ZWQnXT4oKTtcbiAgICBAT3V0cHV0KCkgb25TY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPEticVNjcm9sbGJhckV2ZW50TGlzdGVuZXJBcmdzWydzY3JvbGwnXT4oKTtcblxuICAgIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgdGFyZ2V0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcihcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50ICYmIHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmticVNjcm9sbGJhckRpcmVjdGl2ZT8uaW5pdGlhbGl6ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6YXRpb25UYXJnZXQgfHwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogdGhpcy50YXJnZXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld3BvcnQ6IHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5jb250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5rYnFTY3JvbGxiYXJEaXJlY3RpdmU/LnNjcm9sbGJhckluc3RhbmNlPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIFdyYXBwZXIgZnVuY3Rpb24gZm9yIG5hdGl2ZSBzY3JvbGwgKi9cbiAgICBzY3JvbGxUbyhvcHRpb25zPzogU2Nyb2xsVG9PcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGwob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgbWVyZ2VFdmVudHMoKTogS2JxU2Nyb2xsYmFyRXZlbnRzIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdExpc3RlbmVyczogS2JxU2Nyb2xsYmFyRXZlbnRzID0ge1xuICAgICAgICAgICAgaW5pdGlhbGl6ZWQ6ICguLi5hcmdzKSA9PiB0aGlzLmRpc3BhdGNoRXZlbnRJZkhhc09ic2VydmVycyh0aGlzLm9uSW5pdGlhbGl6ZSwgYXJncyksXG4gICAgICAgICAgICB1cGRhdGVkOiAoLi4uYXJncykgPT4gdGhpcy5kaXNwYXRjaEV2ZW50SWZIYXNPYnNlcnZlcnModGhpcy5vblVwZGF0ZSwgYXJncyksXG4gICAgICAgICAgICBkZXN0cm95ZWQ6ICguLi5hcmdzKSA9PiB0aGlzLmRpc3BhdGNoRXZlbnRJZkhhc09ic2VydmVycyh0aGlzLm9uRGVzdHJveSwgYXJncyksXG4gICAgICAgICAgICBzY3JvbGw6ICguLi5hcmdzKSA9PiB0aGlzLmRpc3BhdGNoRXZlbnRJZkhhc09ic2VydmVycyh0aGlzLm9uU2Nyb2xsLCBhcmdzKVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5ldmVudHMpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0TGlzdGVuZXJzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWVyZ2UgZGVmYXVsdCBsaXN0ZW5lcnMgd2l0aCBjdXN0b20gbGlzdGVuZXJzIGluIGNhc2Ugb2YgSW5wdXQgYmluZGluZ1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdExpc3RlbmVycyxcbiAgICAgICAgICAgIC4uLmZpbHRlckV2ZW50cyh0aGlzLmV2ZW50cywgZGVmYXVsdExpc3RlbmVycylcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3BhdGNoRXZlbnRJZkhhc09ic2VydmVyczxUPihldmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxUPiwgYXJnczogVCk6IHZvaWQge1xuICAgICAgICAvLyBgb2JzZXJ2ZWRgIGlzIGF2YWlsYWJsZSBzaW5jZSBSeEpTQDcuMiBiZWNhdXNlIGBvYnNlcnZlcnNgIGlzIGJlaW5nIGRlcHJlY2F0ZWQuXG4gICAgICAgIGlmICgoZXZlbnRFbWl0dGVyIGFzIGFueSkub2JzZXJ2ZWQgfHwgZXZlbnRFbWl0dGVyLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIHRvIHJlLWVudGVyIHRoZSBBbmd1bGFyIHpvbmUgdG8gY2FsbCB0aGUgZXZlbnQgaGFuZGxlciBpbiB0aGUgQW5ndWxhclxuICAgICAgICAgICAgLy8gem9uZSB0b28uIFRoaXMgd2lsbCBub3QgcmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSBpZiBlbWl0dGVyIGRvZXNuJ3QgaGF2ZSBhbnkgb2JzZXJ2ZXJzLFxuICAgICAgICAgICAgLy8gZm9yIGluc3RhbmNlLCBpdCdzIGJlaW5nIGxpc3RlbmVkOiBgPG92ZXJsYXktc2Nyb2xsYmFycyAob3NJbml0aWFsaXplZCk9XCIuLi5cImAuXG4gICAgICAgICAgICAvLyBFdmVudHMgYXJlIGRpc3BhdGNoZWQgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lIGJlY2F1c2UgaW5zdGFuY2UgaXMgY3JlYXRlZCBpbiB0aGVcbiAgICAgICAgICAgIC8vIGA8cm9vdD5gIHpvbmVcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiBldmVudEVtaXR0ZXIuZW1pdChhcmdzKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-restricted-globals */
1
2
  import { CdkScrollable } from '@angular/cdk/overlay';
2
3
  import { Directive, Inject, Input, NgZone } from '@angular/core';
3
4
  import { OverlayScrollbars } from 'overlayscrollbars';
@@ -100,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
100
101
  }], defer: [{
101
102
  type: Input
102
103
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2Nyb2xsYmFyL3Njcm9sbGJhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUErRCxNQUFNLG1CQUFtQixDQUFDOzs7QUFPdEgsTUFBTSxXQUFXLEdBQUcsR0FBVSxFQUFFO0lBQzVCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDaEMsNkJBQTZCO1FBQzdCLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV0QixPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQWMsQ0FBQztJQUNuQixJQUFJLEtBQWEsQ0FBQztJQUVsQixNQUFNLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFeEcsTUFBTSxhQUFhLEdBQUcsT0FBTyxtQkFBbUIsS0FBSyxVQUFVLENBQUM7SUFDaEUsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7SUFDMUUsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFDeEUsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFF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Ozs0RkFBckIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ2xDOzswQkE0Q1EsTUFBTTsyQkFBQyxvQkFBb0I7eUNBcEM1QixPQUFPO3NCQURWLEtBQUs7Z0JBaUJGLE1BQU07c0JBRFQsS0FBSztnQkFlTixLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNjcm9sbGJhcnMgfSBmcm9tICdvdmVybGF5c2Nyb2xsYmFycyc7XG5pbXBvcnQgeyBLQlFfU0NST0xMQkFSX0NPTkZJRywgS2JxU2Nyb2xsYmFyRXZlbnRzLCBLYnFTY3JvbGxiYXJPcHRpb25zLCBLYnFTY3JvbGxiYXJUYXJnZXQgfSBmcm9tICcuL3Njcm9sbGJhci50eXBlcyc7XG5cbnR5cGUgRGVmZXIgPSBbXG4gICAgcmVxdWVzdERlZmVyOiAoY2FsbGJhY2s6ICgpID0+IGFueSwgb3B0aW9ucz86IGJvb2xlYW4gfCBJZGxlUmVxdWVzdE9wdGlvbnMpID0+IHZvaWQsXG4gICAgY2FuY2VsRGVmZXI6ICgpID0+IHZvaWRcbl07XG5cbmNvbnN0IGNyZWF0ZURlZmVyID0gKCk6IERlZmVyID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gbW9jayBzc3IgY2FsbHMgd2l0aCBcIm5vb3BcIlxuICAgICAgICBjb25zdCBub29wID0gKCkgPT4ge307XG5cbiAgICAgICAgcmV0dXJuIFtub29wLCBub29wXTtcbiAgICB9XG5cbiAgICBsZXQgaWRsZUlkOiBudW1iZXI7XG4gICAgbGV0IHJhZklkOiBudW1iZXI7XG5cbiAgICBjb25zdCB7IHJlcXVlc3RJZGxlQ2FsbGJhY2ssIHJlcXVlc3RBbmltYXRpb25GcmFtZSwgY2FuY2VsQW5pbWF0aW9uRnJhbWUsIGNhbmNlbElkbGVDYWxsYmFjayB9ID0gd2luZG93O1xuXG4gICAgY29uc3QgaWRsZVN1cHBvcnRlZCA9IHR5cGVvZiByZXF1ZXN0SWRsZUNhbGxiYWNrID09PSAnZnVuY3Rpb24nO1xuICAgIGNvbnN0IHJJZGxlID0gaWRsZVN1cHBvcnRlZCA/IHJlcXVlc3RJZGxlQ2FsbGJhY2sgOiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG4gICAgY29uc3QgY0lkbGUgPSBpZGxlU3VwcG9ydGVkID8gY2FuY2VsSWRsZUNhbGxiYWNrIDogY2FuY2VsQW5pbWF0aW9uRnJhbWU7XG4gICAgY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gICAgICAgIGNJZGxlKGlkbGVJZCk7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgKGNhbGxiYWNrLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBjbGVhcigpO1xuICAgICAgICAgICAgaWRsZUlkID0gcklkbGUoXG4gICAgICAgICAgICAgICAgaWRsZVN1cHBvcnRlZFxuICAgICAgICAgICAgICAgICAgICA/ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5zaWRlIGlkbGUgaXRzIGJlc3QgcHJhY3RpY2UgdG8gdXNlIHJBRiB0byBjaGFuZ2UgRE9NIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDogY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgdHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnID8gb3B0aW9ucyA6IHsgdGltZW91dDogMjIzMyB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBjbGVhclxuXG4gICAgXTtcbn07XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgZm9yIGFkZGluZyBgb3ZlcmxheXNjcm9sbGJhcnNgIHRvIGFuIGVsZW1lbnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxU2Nyb2xsYmFyXScsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDZGtTY3JvbGxhYmxlXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTY3JvbGxiYXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVxdWVzdERlZmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVEZWZlcj5bMF07XG4gICAgcHJpdmF0ZSBjYW5jZWxEZWZlcjogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlRGVmZXI+WzFdO1xuXG4gICAgcHJpdmF0ZSBfb3B0aW9uczogS2JxU2Nyb2xsYmFyT3B0aW9ucztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG9wdGlvbnModmFsdWU6IEticVNjcm9sbGJhck9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChPdmVybGF5U2Nyb2xsYmFycy52YWxpZCh0aGlzLnNjcm9sbGJhckluc3RhbmNlKSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxiYXJJbnN0YW5jZS5vcHRpb25zKHZhbHVlIHx8IHt9LCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBTY3JvbGxiYXIgYmVoYXZpb3IgY3VzdG9taXphdGlvbiBvYmplY3QgKi9cbiAgICBnZXQgb3B0aW9ucygpOiBLYnFTY3JvbGxiYXJPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZXZlbnRzPzogS2JxU2Nyb2xsYmFyRXZlbnRzO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgZXZlbnRzKHZhbHVlOiBLYnFTY3JvbGxiYXJFdmVudHMpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKE92ZXJsYXlTY3JvbGxiYXJzLnZhbGlkKHRoaXMuc2Nyb2xsYmFySW5zdGFuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbGJhckluc3RhbmNlLm9uKHZhbHVlIHx8IHt9LCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBldmVudHMoKTogS2JxU2Nyb2xsYmFyRXZlbnRzIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50cztcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0byBkZWZlciB0aGUgaW5pdGlhbGl6YXRpb24gdG8gYSBwb2ludCBpbiB0aW1lIHdoZW4gdGhlIGJyb3dzZXIgaXMgaWRsZS4gKG9yIHRvIHRoZSBuZXh0IGZyYW1lIGlmIGB3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFja2AgaXMgbm90IHN1cHBvcnRlZCkgKi9cbiAgICBASW5wdXQoKVxuICAgIGRlZmVyPzogYm9vbGVhbiB8IElkbGVSZXF1ZXN0T3B0aW9ucztcblxuICAgIHNjcm9sbGJhckluc3RhbmNlPzogT3ZlcmxheVNjcm9sbGJhcnM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChLQlFfU0NST0xMQkFSX0NPTkZJRykgcHJpdmF0ZSBzY3JvbGxiYXJDb25maWc/OiBLYnFTY3JvbGxiYXJPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IFtyZXF1ZXN0RGVmZXIsIGNhbmNlbERlZmVyXSA9IGNyZWF0ZURlZmVyKCk7XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0RGVmZXIgPSByZXF1ZXN0RGVmZXI7XG4gICAgICAgIHRoaXMuY2FuY2VsRGVmZXIgPSBjYW5jZWxEZWZlcjtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKHRhcmdldDogS2JxU2Nyb2xsYmFyVGFyZ2V0KSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluaXQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxiYXJJbnN0YW5jZSA9IE92ZXJsYXlTY3JvbGxiYXJzKFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyB8fCB0aGlzLnNjcm9sbGJhckNvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHMgfHwge31cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3REZWZlcihpbml0LCB0aGlzLmRlZmVyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jYW5jZWxEZWZlcigpO1xuICAgIH1cbn1cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2Nyb2xsYmFyL3Njcm9sbGJhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBK0QsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBT3RILE1BQU0sV0FBVyxHQUFHLEdBQVUsRUFBRTtJQUM1QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLDZCQUE2QjtRQUM3QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFdEIsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxLQUFhLENBQUM7SUFFbEIsTUFBTSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXhHLE1BQU0sYUFBYSxHQUFHLE9BQU8sbUJBQW1CLEtBQUssVUFBVSxDQUFDO0lBQ2hFLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO0lBQzFFLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQ3hFLE1BQU0sS0FBSyxH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SEEzQ3ZCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUNsQzs7MEJBNENRLE1BQU07MkJBQUMsb0JBQW9CO3lDQXBDNUIsT0FBTztzQkFEVixLQUFLO2dCQWlCRixNQUFNO3NCQURULEtBQUs7Z0JBZU4sS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzICovXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNjcm9sbGJhcnMgfSBmcm9tICdvdmVybGF5c2Nyb2xsYmFycyc7XG5pbXBvcnQgeyBLQlFfU0NST0xMQkFSX0NPTkZJRywgS2JxU2Nyb2xsYmFyRXZlbnRzLCBLYnFTY3JvbGxiYXJPcHRpb25zLCBLYnFTY3JvbGxiYXJUYXJnZXQgfSBmcm9tICcuL3Njcm9sbGJhci50eXBlcyc7XG5cbnR5cGUgRGVmZXIgPSBbXG4gICAgcmVxdWVzdERlZmVyOiAoY2FsbGJhY2s6ICgpID0+IGFueSwgb3B0aW9ucz86IGJvb2xlYW4gfCBJZGxlUmVxdWVzdE9wdGlvbnMpID0+IHZvaWQsXG4gICAgY2FuY2VsRGVmZXI6ICgpID0+IHZvaWRcbl07XG5cbmNvbnN0IGNyZWF0ZURlZmVyID0gKCk6IERlZmVyID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gbW9jayBzc3IgY2FsbHMgd2l0aCBcIm5vb3BcIlxuICAgICAgICBjb25zdCBub29wID0gKCkgPT4ge307XG5cbiAgICAgICAgcmV0dXJuIFtub29wLCBub29wXTtcbiAgICB9XG5cbiAgICBsZXQgaWRsZUlkOiBudW1iZXI7XG4gICAgbGV0IHJhZklkOiBudW1iZXI7XG5cbiAgICBjb25zdCB7IHJlcXVlc3RJZGxlQ2FsbGJhY2ssIHJlcXVlc3RBbmltYXRpb25GcmFtZSwgY2FuY2VsQW5pbWF0aW9uRnJhbWUsIGNhbmNlbElkbGVDYWxsYmFjayB9ID0gd2luZG93O1xuXG4gICAgY29uc3QgaWRsZVN1cHBvcnRlZCA9IHR5cGVvZiByZXF1ZXN0SWRsZUNhbGxiYWNrID09PSAnZnVuY3Rpb24nO1xuICAgIGNvbnN0IHJJZGxlID0gaWRsZVN1cHBvcnRlZCA/IHJlcXVlc3RJZGxlQ2FsbGJhY2sgOiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG4gICAgY29uc3QgY0lkbGUgPSBpZGxlU3VwcG9ydGVkID8gY2FuY2VsSWRsZUNhbGxiYWNrIDogY2FuY2VsQW5pbWF0aW9uRnJhbWU7XG4gICAgY29uc3QgY2xlYXIgPSAoKSA9PiB7XG4gICAgICAgIGNJZGxlKGlkbGVJZCk7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgKGNhbGxiYWNrLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBjbGVhcigpO1xuICAgICAgICAgICAgaWRsZUlkID0gcklkbGUoXG4gICAgICAgICAgICAgICAgaWRsZVN1cHBvcnRlZFxuICAgICAgICAgICAgICAgICAgICA/ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5zaWRlIGlkbGUgaXRzIGJlc3QgcHJhY3RpY2UgdG8gdXNlIHJBRiB0byBjaGFuZ2UgRE9NIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDogY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgdHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnID8gb3B0aW9ucyA6IHsgdGltZW91dDogMjIzMyB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBjbGVhclxuXG4gICAgXTtcbn07XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgZm9yIGFkZGluZyBgb3ZlcmxheXNjcm9sbGJhcnNgIHRvIGFuIGVsZW1lbnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxU2Nyb2xsYmFyXScsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDZGtTY3JvbGxhYmxlXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTY3JvbGxiYXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVxdWVzdERlZmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVEZWZlcj5bMF07XG4gICAgcHJpdmF0ZSBjYW5jZWxEZWZlcjogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlRGVmZXI+WzFdO1xuXG4gICAgcHJpdmF0ZSBfb3B0aW9uczogS2JxU2Nyb2xsYmFyT3B0aW9ucztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG9wdGlvbnModmFsdWU6IEticVNjcm9sbGJhck9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChPdmVybGF5U2Nyb2xsYmFycy52YWxpZCh0aGlzLnNjcm9sbGJhckluc3RhbmNlKSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxiYXJJbnN0YW5jZS5vcHRpb25zKHZhbHVlIHx8IHt9LCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBTY3JvbGxiYXIgYmVoYXZpb3IgY3VzdG9taXphdGlvbiBvYmplY3QgKi9cbiAgICBnZXQgb3B0aW9ucygpOiBLYnFTY3JvbGxiYXJPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZXZlbnRzPzogS2JxU2Nyb2xsYmFyRXZlbnRzO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgZXZlbnRzKHZhbHVlOiBLYnFTY3JvbGxiYXJFdmVudHMpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKE92ZXJsYXlTY3JvbGxiYXJzLnZhbGlkKHRoaXMuc2Nyb2xsYmFySW5zdGFuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbGJhckluc3RhbmNlLm9uKHZhbHVlIHx8IHt9LCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBldmVudHMoKTogS2JxU2Nyb2xsYmFyRXZlbnRzIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50cztcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0byBkZWZlciB0aGUgaW5pdGlhbGl6YXRpb24gdG8gYSBwb2ludCBpbiB0aW1lIHdoZW4gdGhlIGJyb3dzZXIgaXMgaWRsZS4gKG9yIHRvIHRoZSBuZXh0IGZyYW1lIGlmIGB3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFja2AgaXMgbm90IHN1cHBvcnRlZCkgKi9cbiAgICBASW5wdXQoKVxuICAgIGRlZmVyPzogYm9vbGVhbiB8IElkbGVSZXF1ZXN0T3B0aW9ucztcblxuICAgIHNjcm9sbGJhckluc3RhbmNlPzogT3ZlcmxheVNjcm9sbGJhcnM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChLQlFfU0NST0xMQkFSX0NPTkZJRykgcHJpdmF0ZSBzY3JvbGxiYXJDb25maWc/OiBLYnFTY3JvbGxiYXJPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IFtyZXF1ZXN0RGVmZXIsIGNhbmNlbERlZmVyXSA9IGNyZWF0ZURlZmVyKCk7XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0RGVmZXIgPSByZXF1ZXN0RGVmZXI7XG4gICAgICAgIHRoaXMuY2FuY2VsRGVmZXIgPSBjYW5jZWxEZWZlcjtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKHRhcmdldDogS2JxU2Nyb2xsYmFyVGFyZ2V0KSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluaXQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxiYXJJbnN0YW5jZSA9IE92ZXJsYXlTY3JvbGxiYXJzKFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyB8fCB0aGlzLnNjcm9sbGJhckNvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHMgfHwge31cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3REZWZlcihpbml0LCB0aGlzLmRlZmVyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jYW5jZWxEZWZlcigpO1xuICAgIH1cbn1cbiJdfQ==