@koobiq/components 18.36.0 → 18.37.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 (281) hide show
  1. package/autocomplete/autocomplete.scss +2 -17
  2. package/breadcrumbs/breadcrumbs.d.ts +2 -1
  3. package/breadcrumbs/breadcrumbs.scss +4 -4
  4. package/button/button.component.d.ts +1 -0
  5. package/button-toggle/button-toggle.scss +0 -2
  6. package/content-panel/content-panel.d.ts +1 -1
  7. package/content-panel/index.d.ts +0 -1
  8. package/core/common-behaviors/hover.d.ts +15 -0
  9. package/core/common-behaviors/index.d.ts +1 -1
  10. package/core/locales/formatters.d.ts +0 -72
  11. package/core/locales/index.d.ts +0 -2
  12. package/core/locales/locale-service.d.ts +0 -392
  13. package/core/option/option.d.ts +3 -2
  14. package/core/select/common.d.ts +3 -1
  15. package/core/styles/common/_select.scss +20 -0
  16. package/core/styles/typography/_typography.scss +23 -82
  17. package/datepicker/datepicker-module.d.ts +2 -1
  18. package/dropdown/dropdown-item.scss +8 -7
  19. package/dropdown/dropdown.scss +5 -14
  20. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  21. package/esm2022/breadcrumbs/breadcrumbs.mjs +46 -37
  22. package/esm2022/button/button.component.mjs +6 -4
  23. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  24. package/esm2022/code-block/code-block-highlight.mjs +6 -1
  25. package/esm2022/content-panel/content-panel.mjs +2 -2
  26. package/esm2022/content-panel/index.mjs +1 -2
  27. package/esm2022/core/common-behaviors/color.mjs +2 -1
  28. package/esm2022/core/common-behaviors/common-module.mjs +2 -1
  29. package/esm2022/core/common-behaviors/disabled.mjs +2 -1
  30. package/esm2022/core/common-behaviors/error-state.mjs +2 -1
  31. package/esm2022/core/common-behaviors/hover.mjs +34 -0
  32. package/esm2022/core/common-behaviors/index.mjs +2 -2
  33. package/esm2022/core/common-behaviors/tabindex.mjs +2 -1
  34. package/esm2022/core/form-field/field-sizing-content.mjs +5 -2
  35. package/esm2022/core/formatters/number/formatter.mjs +2 -2
  36. package/esm2022/core/locales/es-LA.mjs +10 -10
  37. package/esm2022/core/locales/formatters.mjs +1 -73
  38. package/esm2022/core/locales/index.mjs +1 -3
  39. package/esm2022/core/locales/locale-service.mjs +2 -8
  40. package/esm2022/core/locales/pt-BR.mjs +19 -19
  41. package/esm2022/core/locales/tk-TM.mjs +24 -24
  42. package/esm2022/core/option/option.mjs +10 -6
  43. package/esm2022/core/pop-up/pop-up-trigger.mjs +2 -1
  44. package/esm2022/core/select/common.mjs +10 -4
  45. package/esm2022/core/version.mjs +2 -2
  46. package/esm2022/datepicker/calendar-header.component.mjs +5 -4
  47. package/esm2022/datepicker/datepicker-module.mjs +7 -4
  48. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  49. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  50. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +5 -2
  51. package/esm2022/file-upload/file-drop.mjs +5 -3
  52. package/esm2022/file-upload/multiple-file-upload.component.mjs +9 -13
  53. package/esm2022/file-upload/single-file-upload.component.mjs +9 -4
  54. package/esm2022/filter-bar/filter-bar.mjs +6 -2
  55. package/esm2022/filter-bar/filter-search.mjs +3 -3
  56. package/esm2022/filter-bar/filters.mjs +10 -5
  57. package/esm2022/filter-bar/pipe-add.mjs +3 -2
  58. package/esm2022/filter-bar/pipes/base-pipe.mjs +11 -3
  59. package/esm2022/filter-bar/pipes/pipe-date.mjs +3 -3
  60. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +3 -3
  61. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +5 -4
  62. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  63. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  64. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  65. package/esm2022/filter-bar/pipes/pipe-title.mjs +24 -19
  66. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  67. package/esm2022/form-field/fieldset.mjs +2 -2
  68. package/esm2022/form-field/form-field.mjs +2 -2
  69. package/esm2022/form-field/stepper.mjs +41 -10
  70. package/esm2022/inline-edit/inline-edit.mjs +9 -5
  71. package/esm2022/input/input-number.mjs +7 -6
  72. package/esm2022/input/input.module.mjs +7 -4
  73. package/esm2022/list/list-selection.component.mjs +31 -15
  74. package/esm2022/markdown/markdown.component.mjs +7 -7
  75. package/esm2022/modal/modal-util.mjs +7 -3
  76. package/esm2022/modal/modal.component.mjs +2 -2
  77. package/esm2022/modal/modal.service.mjs +2 -1
  78. package/esm2022/navbar/navbar-item.component.mjs +5 -7
  79. package/esm2022/navbar/navbar.component.mjs +8 -4
  80. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  81. package/esm2022/navbar-ic/navbar-ic-header.mjs +20 -4
  82. package/esm2022/navbar-ic/navbar-ic-item.mjs +7 -8
  83. package/esm2022/navbar-ic/navbar-ic.animation.mjs +10 -2
  84. package/esm2022/navbar-ic/navbar-ic.mjs +33 -9
  85. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  86. package/esm2022/popover/popover.component.mjs +17 -4
  87. package/esm2022/resizer/index.mjs +3 -0
  88. package/esm2022/resizer/koobiq-components-resizer.mjs +5 -0
  89. package/esm2022/resizer/module.mjs +17 -0
  90. package/esm2022/resizer/resizer.mjs +135 -0
  91. package/esm2022/scrollbar/scrollbar.directive.mjs +4 -3
  92. package/esm2022/search-expandable/search-expandable.mjs +5 -5
  93. package/esm2022/select/select.component.mjs +2 -14
  94. package/esm2022/select/select.module.mjs +8 -4
  95. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  96. package/esm2022/split-button/split-button.mjs +47 -6
  97. package/esm2022/tags/tag-input.mjs +24 -28
  98. package/esm2022/tags/tag-list.component.mjs +76 -87
  99. package/esm2022/tags/tag.component.mjs +29 -34
  100. package/esm2022/textarea/textarea.module.mjs +5 -4
  101. package/esm2022/time-range/constants.mjs +22 -1
  102. package/esm2022/time-range/time-range-editor.mjs +11 -6
  103. package/esm2022/time-range/time-range-title-as-form-field.mjs +2 -1
  104. package/esm2022/time-range/time-range.mjs +8 -3
  105. package/esm2022/time-range/time-range.service.mjs +43 -106
  106. package/esm2022/time-range/types.mjs +1 -1
  107. package/esm2022/timepicker/timepicker.module.mjs +5 -4
  108. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  109. package/esm2022/timezone/timezone.module.mjs +6 -4
  110. package/esm2022/title/title.directive.mjs +6 -2
  111. package/esm2022/toggle/toggle.component.mjs +3 -3
  112. package/esm2022/top-bar/top-bar.mjs +2 -2
  113. package/esm2022/tree/tree-option.component.mjs +7 -6
  114. package/esm2022/tree/tree-selection.component.mjs +23 -13
  115. package/esm2022/tree-select/tree-select.component.mjs +97 -79
  116. package/esm2022/tree-select/tree-select.module.mjs +7 -4
  117. package/fesm2022/koobiq-components-autocomplete.mjs +3 -3
  118. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-breadcrumbs.mjs +45 -36
  120. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  122. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-button.mjs +5 -3
  124. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-code-block.mjs +5 -0
  126. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-content-panel.mjs +3 -137
  128. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-core.mjs +90 -478
  130. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-datepicker.mjs +8 -5
  132. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-dropdown.mjs +4 -4
  134. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-ellipsis-center.mjs +4 -1
  136. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-file-upload.mjs +19 -17
  138. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-filter-bar.mjs +64 -41
  140. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-form-field.mjs +44 -17
  142. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-inline-edit.mjs +8 -4
  144. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-input.mjs +12 -9
  146. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-list.mjs +30 -14
  148. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-markdown.mjs +6 -6
  150. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-modal.mjs +9 -4
  152. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-navbar-ic.mjs +70 -26
  154. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-navbar.mjs +13 -11
  156. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-popover.mjs +18 -5
  158. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-resizer.mjs +156 -0
  160. package/fesm2022/koobiq-components-resizer.mjs.map +1 -0
  161. package/fesm2022/koobiq-components-scrollbar.mjs +3 -2
  162. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-search-expandable.mjs +4 -4
  164. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-select.mjs +8 -17
  166. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  168. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-split-button.mjs +46 -5
  170. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-tags.mjs +125 -146
  172. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-textarea.mjs +4 -4
  174. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-time-range.mjs +81 -112
  176. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-timepicker.mjs +4 -4
  178. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-timezone.mjs +7 -5
  180. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-title.mjs +5 -1
  182. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  184. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  186. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-tree-select.mjs +102 -82
  188. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-tree.mjs +28 -17
  190. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  191. package/file-upload/_file-upload-theme.scss +32 -34
  192. package/file-upload/file-upload-tokens.scss +1 -2
  193. package/file-upload/file-upload.scss +4 -7
  194. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  195. package/file-upload/multiple-file-upload.component.scss +12 -14
  196. package/file-upload/single-file-upload.component.d.ts +1 -0
  197. package/file-upload/single-file-upload.component.scss +5 -7
  198. package/filter-bar/filter-bar.d.ts +3 -1
  199. package/filter-bar/filter-search.scss +1 -3
  200. package/filter-bar/filters.d.ts +1 -0
  201. package/filter-bar/pipes/base-pipe.d.ts +5 -1
  202. package/filter-bar/pipes/pipe-date.scss +4 -2
  203. package/filter-bar/pipes/pipe-title.d.ts +2 -0
  204. package/form-field/fieldset-tokens.scss +2 -1
  205. package/form-field/form-field-tokens.scss +2 -2
  206. package/form-field/form-field.scss +9 -1
  207. package/form-field/stepper.d.ts +28 -6
  208. package/inline-edit/inline-edit.d.ts +5 -1
  209. package/input/input.module.d.ts +2 -1
  210. package/list/list-selection.component.d.ts +12 -1
  211. package/markdown/_markdown-theme.scss +0 -1
  212. package/markdown/markdown.scss +2 -4
  213. package/modal/modal-tokens.scss +2 -1
  214. package/modal/modal-util.d.ts +5 -2
  215. package/modal/modal.scss +3 -4
  216. package/navbar/_navbar-item_vertical.scss +10 -0
  217. package/navbar/navbar-brand.scss +5 -2
  218. package/navbar/vertical-navbar.scss +1 -0
  219. package/navbar-ic/navbar-ic-header.d.ts +3 -2
  220. package/navbar-ic/navbar-ic-header.scss +0 -4
  221. package/navbar-ic/navbar-ic-item.d.ts +1 -0
  222. package/navbar-ic/navbar-ic-item.scss +0 -4
  223. package/navbar-ic/navbar-ic.animation.d.ts +1 -0
  224. package/navbar-ic/navbar-ic.d.ts +7 -0
  225. package/package.json +16 -10
  226. package/popover/popover-tokens.scss +1 -0
  227. package/popover/popover.component.d.ts +5 -1
  228. package/popover/popover.scss +3 -4
  229. package/prebuilt-themes/dark-theme.css +1 -1
  230. package/prebuilt-themes/light-theme.css +1 -1
  231. package/prebuilt-themes/theme.css +1 -1
  232. package/resizer/index.d.ts +2 -0
  233. package/resizer/module.d.ts +7 -0
  234. package/{content-panel/resizable.d.ts → resizer/resizer.d.ts} +18 -13
  235. package/schematics/collection.json +5 -0
  236. package/schematics/migrations/icons-replacement/README.md +93 -0
  237. package/schematics/migrations/icons-replacement/data.js +92 -0
  238. package/schematics/migrations/icons-replacement/index.js +84 -0
  239. package/schematics/migrations/icons-replacement/schema.json +32 -0
  240. package/schematics/ng-add/index.js +6 -6
  241. package/scrollbar/scrollbar.component.scss +2 -3
  242. package/select/select.module.d.ts +2 -1
  243. package/select/select.scss +1 -17
  244. package/sidepanel/sidepanel-tokens.scss +2 -0
  245. package/sidepanel/sidepanel.scss +2 -0
  246. package/split-button/_split-button-theme.scss +89 -34
  247. package/split-button/split-button.d.ts +11 -5
  248. package/split-button/split-button.scss +40 -51
  249. package/tags/tag-input.d.ts +16 -7
  250. package/tags/tag-list.component.d.ts +44 -21
  251. package/tags/tag-list.scss +13 -14
  252. package/tags/tag.component.d.ts +20 -15
  253. package/textarea/textarea-tokens.scss +6 -1
  254. package/textarea/textarea.module.d.ts +2 -1
  255. package/textarea/textarea.scss +4 -0
  256. package/time-range/constants.d.ts +12 -1
  257. package/time-range/time-range-editor.d.ts +7 -9
  258. package/time-range/time-range-title-as-form-field.d.ts +1 -0
  259. package/time-range/time-range.d.ts +5 -2
  260. package/time-range/time-range.service.d.ts +7 -11
  261. package/time-range/types.d.ts +37 -11
  262. package/timepicker/timepicker.module.d.ts +2 -1
  263. package/timezone/timezone-option.component.scss +6 -0
  264. package/timezone/timezone.module.d.ts +1 -1
  265. package/toggle/_toggle-theme.scss +8 -5
  266. package/toggle/toggle-tokens.scss +0 -1
  267. package/toggle/toggle.scss +11 -15
  268. package/top-bar/top-bar-tokens.scss +1 -1
  269. package/top-bar/top-bar.scss +3 -0
  270. package/tree/tree-option.component.d.ts +1 -0
  271. package/tree/tree-selection.component.d.ts +11 -2
  272. package/tree-select/tree-select.component.d.ts +5 -5
  273. package/tree-select/tree-select.module.d.ts +2 -1
  274. package/tree-select/tree-select.scss +4 -0
  275. package/core/common-behaviors/hovered.d.ts +0 -13
  276. package/core/locales/fa-IR.d.ts +0 -162
  277. package/core/locales/zh-CN.d.ts +0 -162
  278. package/esm2022/content-panel/resizable.mjs +0 -138
  279. package/esm2022/core/common-behaviors/hovered.mjs +0 -31
  280. package/esm2022/core/locales/fa-IR.mjs +0 -173
  281. package/esm2022/core/locales/zh-CN.mjs +0 -161
@@ -24,6 +24,7 @@ export class KbqCodeBlockHighlight {
24
24
  return;
25
25
  let { language } = file;
26
26
  if (!language || !hljs.getLanguage(language)) {
27
+ // eslint-disable-next-line no-console
27
28
  console.warn(`[KbqCodeBlock] Unknown file language: "${language}". Fall back to "${this.fallbackFileLanguage}".`, file);
28
29
  language = this.fallbackFileLanguage;
29
30
  }
@@ -31,9 +32,11 @@ export class KbqCodeBlockHighlight {
31
32
  language: language
32
33
  });
33
34
  if (illegal) {
35
+ // eslint-disable-next-line no-console
34
36
  console.warn('[KbqCodeBlock] File content contains illegal characters.', file);
35
37
  }
36
38
  if (relevance === 0) {
39
+ // eslint-disable-next-line no-console
37
40
  console.warn('[KbqCodeBlock] File content does not match the specified programming language.', file);
38
41
  }
39
42
  const safeHTML = this.domSanitizer.sanitize(SecurityContext.HTML, highlightedHTML);
@@ -85,6 +88,7 @@ export class KbqCodeBlockHighlight {
85
88
  addStyles();
86
89
  }
87
90
  else {
91
+ // eslint-disable-next-line no-console
88
92
  console.error('highlight.js not detected!');
89
93
  }
90
94
  function isHljsLnCodeDescendant(domElt) {
@@ -215,6 +219,7 @@ export class KbqCodeBlockHighlight {
215
219
  }
216
220
  }
217
221
  catch (e) {
222
+ // eslint-disable-next-line no-console
218
223
  console.error('LineNumbers error: ', e);
219
224
  }
220
225
  }
@@ -410,4 +415,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
410
415
  type: Input,
411
416
  args: [{ transform: booleanAttribute }]
412
417
  }] } });
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay1oaWdobGlnaHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay1oaWdobGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUNMLGVBQWUsRUFFZixTQUFTLEVBQ1QsZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxJQUFJLGNBQWMsQ0FDbkUsdUNBQXVDLEVBQ3ZDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUNqQyxDQUFDO0FBRUYsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLENBQUMsUUFBZ0IsRUFBWSxFQUFFLENBQUMsQ0FBQztJQUNyRixPQUFPLEVBQUUscUNBQXFDO0lBQzlDLFFBQVEsRUFBRSxRQUFRO0NBQ3JCLENBQUMsQ0FBQztBQUVILDZFQUE2RTtBQVE3RSxNQUFNLE9BQU8scUJBQXFCO0lBUTlCLHFCQUFxQjtJQUNyQixJQUNJLElBQUksQ0FBQyxJQUFzQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXpCLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxD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LEVBQUUsTUFBTTtxQkFDaEI7aUJBQ0o7d0RBV08sSUFBSTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkEwQ2MsU0FBUztzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBR0csVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBQcm92aWRlcixcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VjdXJpdHlDb250ZXh0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBLQlFfV0lORE9XLCBrYnFJbmplY3ROYXRpdmVFbGVtZW50IH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IGhsanMgZnJvbSAnaGlnaGxpZ2h0LmpzJztcbmltcG9ydCB7IEticUNvZGVCbG9ja0ZpbGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBGYWxsYmFjayBsYW5ndWFnZSBmb3IgY29kZSBibG9jayBpZiBsYW5ndWFnZSBpcyBub3Qgc3VwcG9ydGVkL3NwZWNpZmllZC5cbiAqXG4gKiBMaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXM6XG4gKiBAbGluayBodHRwczovL2hpZ2hsaWdodGpzLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9zdXBwb3J0ZWQtbGFuZ3VhZ2VzLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IEtCUV9DT0RFX0JMT0NLX0ZBTExCQUNLX0ZJTEVfTEFOR1VBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcbiAgICAnS0JRX0NPREVfQkxPQ0tfRkFMTEJBQ0tfRklMRV9MQU5HVUFHRScsXG4gICAgeyBmYWN0b3J5OiAoKSA9PiAncGxhaW50ZXh0JyB9XG4pO1xuXG4vKiogVXRpbGl0eSBwcm92aWRlciBmb3IgYEtCUV9DT0RFX0JMT0NLX0ZBTExCQUNLX0ZJTEVfTEFOR1VBR0VgLiAqL1xuZXhwb3J0IGNvbnN0IGticUNvZGVCbG9ja0ZhbGxiYWNrRmlsZUxhbmd1YWdlUHJvdmlkZXIgPSAobGFuZ3VhZ2U6IHN0cmluZyk6IFByb3ZpZGVyID0+ICh7XG4gICAgcHJvdmlkZTogS0JRX0NPREVfQkxPQ0tfRkFMTEJBQ0tfRklMRV9MQU5HVUFHRSxcbiAgICB1c2VWYWx1ZTogbGFuZ3VhZ2Vcbn0pO1xuXG4vKiogRGlyZWN0aXZlIHdoaWNoIGFwcGxpZXMgc3ludGF4IGhpZ2hsaWdodGluZyB0byB0aGUgY29kZSBibG9jayBjb250ZW50LiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2NvZGVba2JxQ29kZUJsb2NrSGlnaGxpZ2h0XScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2hsanMnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb2RlQmxvY2tIaWdobGlnaHQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlRWxlbWVudCA9IGticUluamVjdE5hdGl2ZUVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0PERvY3VtZW50PihET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYWxsYmFja0ZpbGVMYW5ndWFnZSA9IGluamVjdChLQlFfQ09ERV9CTE9DS19GQUxMQkFDS19GSUxFX0xBTkdVQUdFKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIC8qKiBUaGUgY29kZSBmaWxlLiAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgc2V0IGZpbGUoZmlsZTogS2JxQ29kZUJsb2NrRmlsZSkge1xuICAgICAgICBpZiAoIXRoaXMud2luZG93KSByZXR1cm47XG5cbiAgICAgICAgbGV0IHsgbGFuZ3VhZ2UgfSA9IGZpbGU7XG5cbiAgICAgICAgaWYgKCFsYW5ndWFnZSB8fCAhaGxqcy5nZXRMYW5ndWFnZShsYW5ndWFnZSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgW0ticUNvZGVCbG9ja10gVW5rbm93biBmaWxlIGxhbmd1YWdlOiBcIiR7bGFuZ3VhZ2V9XCIuIEZhbGwgYmFjayB0byBcIiR7dGhpcy5mYWxsYmFja0ZpbGVMYW5ndWFnZX1cIi5gLFxuICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsYW5ndWFnZSA9IHRoaXMuZmFsbGJhY2tGaWxlTGFuZ3VhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB2YWx1ZTogaGlnaGxpZ2h0ZWRIVE1MLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGhpZ2hsaWdodGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICBpbGxlZ2FsLFxuICAgICAgICAgICAgcmVsZXZhbmNlXG4gICAgICAgIH0gPSBobGpzLmhpZ2hsaWdodChmaWxlLmNvbnRlbnQsIHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZSFcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGlsbGVnYWwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0ticUNvZGVCbG9ja10gRmlsZSBjb250ZW50IGNvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVycy4nLCBmaWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWxldmFuY2UgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0ticUNvZGVCbG9ja10gRmlsZSBjb250ZW50IGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuJywgZmlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYWZlSFRNTCA9IHRoaXMuZG9tU2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBoaWdobGlnaHRlZEhUTUwpO1xuICAgICAgICBjb25zdCBoaWdobGlnaHRlZEhUTUxXaXRoTGluZU51bWJlcnMgPSB0aGlzLndpbmRvd1snaGxqcyddLmxpbmVOdW1iZXJzVmFsdWUoc2FmZUhUTUwsIHtcbiAgICAgICAgICAgIHN0YXJ0RnJvbTogdGhpcy5zdGFydEZyb20sXG4gICAgICAgICAgICBzaW5nbGVMaW5lOiB0aGlzLnNpbmdsZUxpbmVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAnZGF0YS1sYW5ndWFnZScsIGhpZ2hsaWdodGVkTGFuZ3VhZ2UhKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLm5hdGl2ZUVsZW1lbnQsICdpbm5lckhUTUwnLCBoaWdobGlnaHRlZEhUTUxXaXRoTGluZU51bWJlcnMpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgc3RhcnRpbmcgbGluZSBudW1iZXIuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgc3RhcnRGcm9tOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBsaW5lIG51bWJlcnMgZm9yIHNpbmdsZSBsaW5lIGNvZGUgYmxvY2suICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNpbmdsZUxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXRMaW5lTnVtYmVyc1BsdWdpbigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIEhpZ2hsaWdodEpTIGxpbmUgbnVtYmVycyBwbHVnaW4uIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbmNlIHdoZW5cbiAgICAgKiB0aGUgY29tcG9uZW50IGlzIGNvbnN0cnVjdGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdExpbmVOdW1iZXJzUGx1Z2luKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMud2luZG93KSByZXR1cm47XG5cbiAgICAgICAgdGhpcy53aW5kb3dbJ2hsanMnXSA9IGhsanM7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SlNMaW5lTnVtYmVyc1BsdWdpbih0aGlzLmRvY3VtZW50LCB0aGlzLndpbmRvdyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbm90IGludGVuZGVkIGZvciBlZGl0aW5nLlxuICAgICAqIENoYW5nZXMgbWF5IGxlYWQgdG8gdW5wcmVkaWN0YWJsZSBiZWhhdmlvci5cbiAgICAgKiBTb3VyY2UgY29kZTogaHR0cHM6Ly9naXRodWIuY29tL3djb2Rlci9oaWdobGlnaHRqcy1saW5lLW51bWJlcnMuanMvYmxvYi92Mi45LjAvc3JjL2hpZ2hsaWdodGpzLWxpbmUtbnVtYmVycy5qc1xuICAgICAqL1xuICAgIHByaXZhdGUgaGlnaGxpZ2h0SlNMaW5lTnVtYmVyc1BsdWdpbihkOiBEb2N1bWVudCwgdzogV2luZG93KTogdm9pZCB7XG4gICAgICAgICd1c2Ugc3RyaWN0JztcblxuICAgICAgICBpZiAoIXcpIHJldHVybjtcblxuICAgICAgICBjb25zdCBUQUJMRV9OQU1FID0gJ2hsanMtbG4nLFxuICAgICAgICAgICAgTElORV9OQU1FID0gJ2hsanMtbG4tbGluZScsXG4gICAgICAgICAgICBDT0RFX0JMT0NLX05BTUUgPSAnaGxqcy1sbi1jb2RlJyxcbiAgICAgICAgICAgIE5VTUJFUlNfQkxPQ0tfTkFNRSA9ICdobGpzLWxuLW51bWJlcnMnLFxuICAgICAgICAgICAgTlVNQkVSX0xJTkVfTkFNRSA9ICdobGpzLWxuLW4nLFxuICAgICAgICAgICAgREFUQV9BVFRSX05BTUUgPSAnZGF0YS1saW5lLW51bWJlcicsXG4gICAgICAgICAgICBCUkVBS19MSU5FX1JFR0VYUCA9IC9cXHJcXG58XFxyfFxcbi9nO1xuXG4gICAgICAgIGlmICh3WydobGpzJ10pIHtcbiAgICAgICAgICAgIHdbJ2hsanMnXS5pbml0TGluZU51bWJlcnNPbkxvYWQgPSBpbml0TGluZU51bWJlcnNPbkxvYWQ7XG4gICAgICAgICAgICB3WydobGpzJ10ubGluZU51bWJlcnNCbG9jayA9IGxpbmVOdW1iZXJzQmxvY2s7XG4gICAgICAgICAgICB3WydobGpzJ10ubGluZU51bWJlcnNCbG9ja1N5bmMgPSBsaW5lTnVtYmVyc0Jsb2NrU3luYztcbiAgICAgICAgICAgIHdbJ2hsanMnXS5saW5lTnVtYmVyc1ZhbHVlID0gbGluZU51bWJlcnNWYWx1ZTtcblxuICAgICAgICAgICAgYWRkU3R5bGVzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdoaWdobGlnaHQuanMgbm90IGRldGVjdGVkIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaXNIbGpzTG5Db2RlRGVzY2VuZGFudChkb21FbHQpIHtcbiAgICAgICAgICAgIGxldCBjdXJFbHQgPSBkb21FbHQ7XG5cbiAgICAgICAgICAgIHdoaWxlIChjdXJFbHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VyRWx0LmNsYXNzTmFtZSAmJiBjdXJFbHQuY2xhc3NOYW1lLmluZGV4T2YoJ2hsanMtbG4tY29kZScpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjdXJFbHQgPSBjdXJFbHQucGFyZW50Tm9kZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0SGxqc0xuVGFibGUoaGxqc0xuRG9tRWx0KSB7XG4gICAgICAgICAgICBsZXQgY3VyRWx0ID0gaGxqc0xuRG9tRWx0O1xuXG4gICAgICAgICAgICB3aGlsZSAoY3VyRWx0Lm5vZGVOYW1lICE9PSAnVEFCTEUnKSB7XG4gICAgICAgICAgICAgICAgY3VyRWx0ID0gY3VyRWx0LnBhcmVudE5vZGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJFbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGdW5jdGlvbiB0byB3b3JrYXJvdW5kIGEgY29weSBpc3N1ZSB3aXRoIE1pY3Jvc29mdCBFZGdlLlxuICAgICAgICAvLyBEdWUgdG8gaGxqcy1sbiB3cmFwcGluZyB0aGUgbGluZXMgb2YgY29kZSBpbnNpZGUgYSA8dGFibGU+IGVsZW1lbnQsXG4gICAgICAgIC8vIGl0c2VsZiB3cmFwcGVkIGluc2lkZSBhIDxwcmU+IGVsZW1lbnQsIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpXG4gICAgICAgIC8vIGRvZXMgbm90IGNvbnRhaW4gYW55IGxpbmUgYnJlYWtzLiBTbyB3ZSBuZWVkIHRvIGdldCB0aGVtIGJhY2sgdXNpbmcgdGhlXG4gICAgICAgIC8vIHJlbmRlcmVkIGNvZGUgaW4gdGhlIERPTSBhcyByZWZlcmVuY2UuXG4gICAgICAgIGZ1bmN0aW9uIGVkZ2VHZXRTZWxlY3RlZENvZGVMaW5lcyhzZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIC8vIGN1cnJlbnQgc2VsZWN0ZWQgdGV4dCB3aXRob3V0IGxpbmUgYnJlYWtzXG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25UZXh0ID0gc2VsZWN0aW9uLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIC8vIGdldCB0aGUgPHRkPiBlbGVtZW50IHdyYXBwaW5nIHRoZSBmaXJzdCBsaW5lIG9mIHNlbGVjdGVkIGNvZGVcbiAgICAgICAgICAgIGxldCB0ZEFuY2hvciA9IHNlbGVjdGlvbi5hbmNob3JOb2RlO1xuXG4gICAgICAgICAgICB3aGlsZSAodGRBbmNob3Iubm9kZU5hbWUgIT09ICdURCcpIHtcbiAgICAgICAgICAgICAgICB0ZEFuY2hvciA9IHRkQW5jaG9yLnBhcmVudE5vZGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGdldCB0aGUgPHRkPiBlbGVtZW50IHdyYXBwaW5nIHRoZSBsYXN0IGxpbmUgb2Ygc2VsZWN0ZWQgY29kZVxuICAgICAgICAgICAgbGV0IHRkRm9jdXMgPSBzZWxlY3Rpb24uZm9jdXNOb2RlO1xuXG4gICAgICAgICAgICB3aGlsZSAodGRGb2N1cy5ub2RlTmFtZSAhPT0gJ1REJykge1xuICAgICAgICAgICAgICAgIHRkRm9jdXMgPSB0ZEZvY3VzLnBhcmVudE5vZGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGV4dHJhY3QgbGluZSBudW1iZXJzXG4gICAgICAgICAgICBsZXQgZmlyc3RMaW5lTnVtYmVyID0gcGFyc2VJbnQodGRBbmNob3IuZGF0YXNldC5saW5lTnVtYmVyKTtcbiAgICAgICAgICAgIGxldCBsYXN0TGluZU51bWJlciA9IHBhcnNlSW50KHRkRm9jdXMuZGF0YXNldC5saW5lTnVtYmVyKTtcblxuICAgICAgICAgICAgLy8gbXVsdGktbGluZXMgY29waWVkIGNhc2VcbiAgICAgICAgICAgIGlmIChmaXJzdExpbmVOdW1iZXIgIT0gbGFzdExpbmVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmlyc3RMaW5lVGV4dCA9IHRkQW5jaG9yLnRleHRDb250ZW50O1xuICAgICAgICAgICAgICAgIGxldCBsYXN0TGluZVRleHQgPSB0ZEZvY3VzLnRleHRDb250ZW50O1xuXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHNlbGVjdGlvbiB3YXMgbWFkZSBiYWNrd2FyZCwgc3dhcCB2YWx1ZXNcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RMaW5lTnVtYmVyID4gbGFzdExpbmVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRtcCA9IGZpcnN0TGluZU51bWJlcjtcblxuICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmVOdW1iZXIgPSBsYXN0TGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgbGFzdExpbmVOdW1iZXIgPSB0bXA7XG4gICAgICAgICAgICAgICAgICAgIHRtcCA9IGZpcnN0TGluZVRleHQ7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZVRleHQgPSBsYXN0TGluZVRleHQ7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RMaW5lVGV4dCA9IHRtcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBkaXNjYXJkIG5vdCBjb3BpZWQgY2hhcmFjdGVycyBpbiBmaXJzdCBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKHNlbGVjdGlvblRleHQuaW5kZXhPZihmaXJzdExpbmVUZXh0KSAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmVUZXh0ID0gZmlyc3RMaW5lVGV4dC5zbGljZSgxKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBkaXNjYXJkIG5vdCBjb3BpZWQgY2hhcmFjdGVycyBpbiBsYXN0IGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAoc2VsZWN0aW9uVGV4dC5sYXN0SW5kZXhPZihsYXN0TGluZVRleHQpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBsYXN0TGluZVRleHQgPSBsYXN0TGluZVRleHQuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHJlY29uc3RydWN0IGFuZCByZXR1cm4gdGhlIHJlYWwgY29waWVkIHRleHRcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRUZXh0ID0gZmlyc3RMaW5lVGV4dDtcbiAgICAgICAgICAgICAgICBjb25zdCBobGpzTG5UYWJsZSA9IGdldEhsanNMblRhYmxlKHRkQW5jaG9yKTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBmaXJzdExpbmVOdW1iZXIgKyAxOyBpIDwgbGFzdExpbmVOdW1iZXI7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlTGluZVNlbCA9IGZvcm1hdCgnLnswfVt7MX09XCJ7Mn1cIl0nLCBbQ09ERV9CTE9DS19OQU1FLCBEQVRBX0FUVFJfTkFNRSwgaV0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlTGluZUVsdCA9IGhsanNMblRhYmxlLnF1ZXJ5U2VsZWN0b3IoY29kZUxpbmVTZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVGV4dCArPSAnXFxuJyArIGNvZGVMaW5lRWx0LnRleHRDb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVGV4dCArPSAnXFxuJyArIGxhc3RMaW5lVGV4dDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZFRleHQ7XG4gICAgICAgICAgICAgICAgLy8gc2luZ2xlIGNvcGllZCBsaW5lIGNhc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvblRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlbnN1cmUgY29uc2lzdGVudCBjb2RlIGNvcHkvcGFzdGUgYmVoYXZpb3IgYWNyb3NzIGFsbCBicm93c2Vyc1xuICAgICAgICAvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93Y29kZXIvaGlnaGxpZ2h0anMtbGluZS1udW1iZXJzLmpzL2lzc3Vlcy81MSlcbiAgICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjb3B5JywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIGdldCBjdXJyZW50IHNlbGVjdGlvblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdy5nZXRTZWxlY3Rpb24oKSE7XG5cbiAgICAgICAgICAgIC8vIG92ZXJyaWRlIGJlaGF2aW9yIHdoZW4gb25lIHdhbnRzIHRvIGNvcHkgbGluZSBvZiBjb2Rlc1xuICAgICAgICAgICAgaWYgKGlzSGxqc0xuQ29kZURlc2NlbmRhbnQoc2VsZWN0aW9uLmFuY2hvck5vZGUpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGlvblRleHQ7XG5cbiAgICAgICAgICAgICAgICAvLyB3b3JrYXJvdW5kIGFuIGlzc3VlIHdpdGggTWljcm9zb2Z0IEVkZ2UgYXMgY29waWVkIGxpbmUgYnJlYWtzXG4gICAgICAgICAgICAgICAgLy8gYXJlIHJlbW92ZWQgb3RoZXJ3aXNlIGZyb20gdGhlIHNlbGVjdGlvbiBzdHJpbmdcbiAgICAgICAgICAgICAgICBpZiAody5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0VkZ2UnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVGV4dCA9IGVkZ2VHZXRTZWxlY3RlZENvZGVMaW5lcyhzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG90aGVyIGJyb3dzZXJzIGNhbiBkaXJlY3RseSB1c2UgdGhlIHNlbGVjdGlvbiBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGUuY2xpcGJvYXJkRGF0YSEuc2V0RGF0YSgndGV4dC9wbGFpbicsIHNlbGVjdGlvblRleHQpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZnVuY3Rpb24gYWRkU3R5bGVzKCkge1xuICAgICAgICAgICAgY29uc3QgY3NzID0gZC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICAgICAgICBjc3MudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgICAgICBjc3MuaW5uZXJIVE1MID0gZm9ybWF0KFxuICAgICAgICAgICAgICAgICcuezB9e2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0nICsgJy57MH0gdGR7cGFkZGluZzowfScgKyAnLnsxfTpiZWZvcmV7Y29udGVudDphdHRyKHsyfSl9JyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIFRBQkxFX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIE5VTUJFUl9MSU5FX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIERBVEFfQVRUUl9OQU1FXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChjc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdExpbmVOdW1iZXJzT25Mb2FkKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChkLnJlYWR5U3RhdGUgPT09ICdpbnRlcmFjdGl2ZScgfHwgZC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnRSZWFkeShvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFJlYWR5KG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZG9jdW1lbnRSZWFkeShvcHRpb25zKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrcyA9IGQucXVlcnlTZWxlY3RvckFsbCgnY29kZS5obGpzLGNvZGUubm9oaWdobGlnaHQnKTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaSBpbiBibG9ja3MpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nrcy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1BsdWdpbkRpc2FibGVkRm9yQmxvY2soYmxvY2tzW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJzQmxvY2soYmxvY2tzW2ldLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdMaW5lTnVtYmVycyBlcnJvcjogJywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpc1BsdWdpbkRpc2FibGVkRm9yQmxvY2soZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdub2hsanNsbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gbGluZU51bWJlcnNCbG9jayhlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnQgIT09ICdvYmplY3QnKSByZXR1cm47XG5cbiAgICAgICAgICAgIGFzeW5jKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGxpbmVOdW1iZXJzSW50ZXJuYWwoZWxlbWVudCwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGxpbmVOdW1iZXJzQmxvY2tTeW5jKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWxlbWVudCAhPT0gJ29iamVjdCcpIHJldHVybjtcblxuICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBsaW5lTnVtYmVyc0ludGVybmFsKGVsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gbGluZU51bWJlcnNWYWx1ZSh2YWx1ZSwgb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGQuY3JlYXRlRWxlbWVudCgnY29kZScpO1xuXG4gICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlO1xuXG4gICAgICAgICAgICByZXR1cm4gbGluZU51bWJlcnNJbnRlcm5hbChlbGVtZW50LCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGxpbmVOdW1iZXJzSW50ZXJuYWwoZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgaW50ZXJuYWxPcHRpb25zID0gbWFwT3B0aW9ucyhlbGVtZW50LCBvcHRpb25zKTtcblxuICAgICAgICAgICAgZHVwbGljYXRlTXVsdGlsaW5lTm9kZXMoZWxlbWVudCk7XG5cbiAgICAgICAgICAgIHJldHVybiBhZGRMaW5lTnVtYmVyc0Jsb2NrRm9yKGVsZW1lbnQuaW5uZXJIVE1MLCBpbnRlcm5hbE9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gYWRkTGluZU51bWJlcnNCbG9ja0ZvcihpbnB1dEh0bWwsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gZ2V0TGluZXMoaW5wdXRIdG1sKTtcblxuICAgICAgICAgICAgLy8gaWYgbGFzdCBsaW5lIGNvbnRhaW5zIG9ubHkgY2FycmlhZ2UgcmV0dXJuIHJlbW92ZSBpdFxuICAgICAgICAgICAgaWYgKGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICBsaW5lcy5wb3AoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEgfHwgb3B0aW9ucy5zaW5nbGVMaW5lKSB7XG4gICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnJztcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gbGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJzx0cj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHRkIGNsYXNzPVwiezB9IHsxfVwiIHszfT1cIns1fVwiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwiezJ9XCIgezN9PVwiezV9XCI+PC9kaXY+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvdGQ+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz1cInswfSB7NH1cIiB7M309XCJ7NX1cIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezZ9JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvdGQ+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvdHI+JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSU5FX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVNQkVSU19CTE9DS19OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTUJFUl9MSU5FX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQV9BVFRSX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09ERV9CTE9DS19OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKyBvcHRpb25zLnN0YXJ0RnJvbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lc1tpXS5sZW5ndGggPiAwID8gbGluZXNbaV0gOiAnICdcbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0KCc8dGFibGUgY2xhc3M9XCJ7MH1cIj57MX08L3RhYmxlPicsIFtUQUJMRV9OQU1FLCBodG1sXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBpbnB1dEh0bWw7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCBDb2RlIGJsb2NrLlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBFeHRlcm5hbCBBUEkgb3B0aW9ucy5cbiAgICAgICAgICogQHJldHVybnMge09iamVjdH0gSW50ZXJuYWwgQVBJIG9wdGlvbnMuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBtYXBPcHRpb25zKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNpbmdsZUxpbmU6IGdldFNpbmdsZUxpbmVPcHRpb24ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgc3RhcnRGcm9tOiBnZXRTdGFydEZyb21PcHRpb24oZWxlbWVudCwgb3B0aW9ucylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBnZXRTaW5nbGVMaW5lT3B0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zaW5nbGVMaW5lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2luZ2xlTGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldFN0YXJ0RnJvbU9wdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSAxO1xuICAgICAgICAgICAgbGV0IHN0YXJ0RnJvbSA9IGRlZmF1bHRWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKGlzRmluaXRlKG9wdGlvbnMuc3RhcnRGcm9tKSkge1xuICAgICAgICAgICAgICAgIHN0YXJ0RnJvbSA9IG9wdGlvbnMuc3RhcnRGcm9tO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjYW4gYmUgb3ZlcnJpZGRlbiBiZWNhdXNlIGxvY2FsIG9wdGlvbiBpcyBwcmlvcml0eVxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2RhdGEtbG4tc3RhcnQtZnJvbScpO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzdGFydEZyb20gPSB0b051bWJlcih2YWx1ZSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0RnJvbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWN1cnNpdmUgbWV0aG9kIGZvciBmaXggbXVsdGktbGluZSBlbGVtZW50cyBpbXBsZW1lbnRhdGlvbiBpbiBoaWdobGlnaHQuanNcbiAgICAgICAgICogRG9pbmcgZGVlcCBwYXNzYWdlIG9uIGNoaWxkIG5vZGVzLlxuICAgICAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBkdXBsaWNhdGVNdWx0aWxpbmVOb2RlcyhlbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlcztcblxuICAgICAgICAgICAgZm9yIChjb25zdCBub2RlIGluIG5vZGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGVzLmhhc093blByb3BlcnR5KG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZXNbbm9kZV07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldExpbmVzQ291bnQoY2hpbGQudGV4dENvbnRlbnQpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cGxpY2F0ZU11bHRpbGluZU5vZGVzKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwbGljYXRlTXVsdGlsaW5lTm9kZShjaGlsZC5wYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNZXRob2QgZm9yIGZpeCBtdWx0aS1saW5lIGVsZW1lbnRzIGltcGxlbWVudGF0aW9uIGluIGhpZ2hsaWdodC5qc1xuICAgICAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBkdXBsaWNhdGVNdWx0aWxpbmVOb2RlKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lO1xuXG4gICAgICAgICAgICBpZiAoIS9obGpzLS8udGVzdChjbGFzc05hbWUpKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gZ2V0TGluZXMoZWxlbWVudC5pbm5lckhUTUwpO1xuXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IGxpbmVzW2ldLmxlbmd0aCA+IDAgPyBsaW5lc1tpXSA6ICcgJztcblxuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXQoJzxzcGFuIGNsYXNzPVwiezB9XCI+ezF9PC9zcGFuPlxcbicsIFtjbGFzc05hbWUsIGxpbmVUZXh0XSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gcmVzdWx0LnRyaW0oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldExpbmVzKHRleHQpIHtcbiAgICAgICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgICByZXR1cm4gdGV4dC5zcGxpdChCUkVBS19MSU5FX1JFR0VYUCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBnZXRMaW5lc0NvdW50KHRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiAodGV4dC50cmltKCkubWF0Y2goQlJFQUtfTElORV9SRUdFWFApIHx8IFtdKS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICAvLy9cbiAgICAgICAgLy8vIEhFTFBFUlNcbiAgICAgICAgLy8vXG5cbiAgICAgICAgZnVuY3Rpb24gYXN5bmMoZnVuYykge1xuICAgICAgICAgICAgdy5zZXRUaW1lb3V0KGZ1bmMsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHtAbGluayBodHRwczovL3djb2Rlci5naXRodWIuaW8vbm90ZXMvc3RyaW5nLWZvcm1hdC1mb3Itc3RyaW5nLWZvcm1hdGluZy1pbi1qYXZhc2NyaXB0fVxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0XG4gICAgICAgICAqIEBwYXJhbSB7YXJyYXl9IGFyZ3NcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGZvcm1hdChmb3JtYXQsIGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXQucmVwbGFjZSgvXFx7KFxcZCspXFx9L2csIGZ1bmN0aW9uIChtLCBuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3Nbbl0gIT09IHVuZGVmaW5lZCA/IGFyZ3Nbbl0gOiBtO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCBDb2RlIGJsb2NrLlxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gYXR0ck5hbWUgQXR0cmlidXRlIG5hbWUuXG4gICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IEF0dHJpYnV0ZSB2YWx1ZSBvciBlbXB0eS5cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdldEF0dHJpYnV0ZShlbGVtZW50LCBhdHRyTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaGFzQXR0cmlidXRlKGF0dHJOYW1lKSA/IGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJOYW1lKSA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHN0ciBTb3VyY2Ugc3RyaW5nLlxuICAgICAgICAgKiBAcGFyYW0ge051bWJlcn0gZmFsbGJhY2sgRmFsbGJhY2sgdmFsdWUuXG4gICAgICAgICAqIEByZXR1cm5zIFBhcnNlZCBudW1iZXIgb3IgZmFsbGJhY2sgdmFsdWUuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiB0b051bWJlcihzdHIsIGZhbGxiYWNrKSB7XG4gICAgICAgICAgICBpZiAoIXN0cikgcmV0dXJuIGZhbGxiYWNrO1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKHN0cik7XG5cbiAgICAgICAgICAgIHJldHVybiBpc0Zpbml0ZShudW1iZXIpID8gbnVtYmVyIDogZmFsbGJhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
418
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay1oaWdobGlnaHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay1oaWdobGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUNMLGVBQWUsRUFFZixTQUFTLEVBQ1QsZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxJQUFJLGNBQWMsQ0FDbkUsdUNBQXVDLEVBQ3ZDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUNqQyxDQUFDO0FBRUYsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLENBQUMsUUFBZ0IsRUFBWSxFQUFFLENBQUMsQ0FBQztJQUNyRixPQUFPLEVBQUUscUNBQXFDO0lBQzlDLFFBQVEsRUFBRSxRQUFRO0NBQ3JCLENBQUMsQ0FBQztBQUVILDZFQUE2RTtBQVE3RSxNQUFNLE9BQU8scUJBQXFCO0lBUTlCLHFCQUFxQjtJQUNyQixJQUNJLElBQUksQ0FBQyxJQUFzQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXpCLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLElBQUksQ0FDUiwwQ0FBMEMsUUFBUSxvQkFBb0IsSUFBSSxDQUFDLG9CQUFvQixJQUFJLEVBQ25HLElBQUksQ0FDUCxDQUFDO1lBQ0YsUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUN6QyxDQUFDO1FBRUQsTUFBTSxFQUNGLEtBQUssRUFBRSxlQUFlLEVBQ3RCLFFBQVEsRUFBRSxtQkFBbUIsRUFDN0IsT0FBTyxFQUNQLFNBQVMsRUFDWixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUM3QixRQUFRLEVBQUUsUUFBUztTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1Ysc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMERBQTBELEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUVELElBQUksU0FBUyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xCLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLGdGQUFnRixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7WUFDbEYsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxtQkFBb0IsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLDhCQUE4QixDQUFDLENBQUM7SUFDL0YsQ0FBQztJQVFEO1FBMURpQixrQkFBYSxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDekMsYUFBUSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3JFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUErQzdDLGdDQUFnQztRQUNPLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFFN0Qsa0VBQWtFO1FBQzFCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHaEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXpCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLDRCQUE0QixDQUFDLENBQVcsRUFBRSxDQUFTO1FBQ3ZELFlBQVksQ0FBQztRQUViLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTztRQUVmLE1BQU0sVUFBVSxHQUFHLFNBQVMsRUFDeEIsU0FBUyxHQUFHLGNBQWMsRUFDMUIsZUFBZSxHQUFHLGNBQWMsRUFDaEMsa0JBQWtCLEdBQUcsaUJBQWlCLEVBQ3RDLGdCQUFnQixHQUFHLFdBQVcsRUFDOUIsY0FBYyxHQUFHLGtCQUFrQixFQUNuQyxpQkFBaUIsR0FBRyxhQUFhLENBQUM7UUFFdEMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNaLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztZQUN4RCxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7WUFDOUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO1lBQ3RELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztZQUU5QyxTQUFTLEVBQUUsQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNKLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBTTtZQUNsQyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFFcEIsT0FBTyxNQUFNLEVBQUUsQ0FBQztnQkFDWixJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdEUsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7Z0JBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDL0IsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxTQUFTLGNBQWMsQ0FBQyxZQUFZO1lBQ2hDLElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQztZQUUxQixPQUFPLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQy9CLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBRUQsMkRBQTJEO1FBQzNELHNFQUFzRTtRQUN0RSwwRUFBMEU7UUFDMUUsMEVBQTBFO1FBQzFFLHlDQUF5QztRQUN6QyxTQUFTLHdCQUF3QixDQUFDLFNBQVM7WUFDdkMsNENBQTRDO1lBQzVDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUUzQyxnRUFBZ0U7WUFDaEUsSUFBSSxRQUFRLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUVwQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ25DLENBQUM7WUFFRCwrREFBK0Q7WUFDL0QsSUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUVsQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ2pDLENBQUM7WUFFRCx1QkFBdUI7WUFDdkIsSUFBSSxlQUFlLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUQsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFMUQsMEJBQTBCO1lBQzFCLElBQUksZUFBZSxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUN6QyxJQUFJLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUV2QyxrREFBa0Q7Z0JBQ2xELElBQUksZUFBZSxHQUFHLGNBQWMsRUFBRSxDQUFDO29CQUNuQyxJQUFJLEdBQUcsR0FBRyxlQUFlLENBQUM7b0JBRTFCLGVBQWUsR0FBRyxjQUFjLENBQUM7b0JBQ2pDLGNBQWMsR0FBRyxHQUFHLENBQUM7b0JBQ3JCLEdBQUcsR0FBRyxhQUFhLENBQUM7b0JBQ3BCLGFBQWEsR0FBRyxZQUFZLENBQUM7b0JBQzdCLFlBQVksR0FBRyxHQUFHLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBRUQsOENBQThDO2dCQUM5QyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2hELGFBQWEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO2dCQUVELDZDQUE2QztnQkFDN0MsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3BELFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO2dCQUVELDhDQUE4QztnQkFDOUMsSUFBSSxZQUFZLEdBQUcsYUFBYSxDQUFDO2dCQUNqQyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTdDLEtBQUssSUFBSSxDQUFDLEdBQUcsZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ3hELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEYsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFFM0QsWUFBWSxJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDO2dCQUNuRCxDQUFDO2dCQUVELFlBQVksSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDO2dCQUVwQyxPQUFPLFlBQVksQ0FBQztnQkFDcEIsMEJBQTBCO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLGFBQWEsQ0FBQztZQUN6QixDQUFDO1FBQ0wsQ0FBQztRQUVELGlFQUFpRTtRQUNqRSx3RUFBd0U7UUFDeEUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7WUFDbEMsd0JBQXdCO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUcsQ0FBQztZQUVwQyx5REFBeUQ7WUFDekQsSUFBSSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxhQUFhLENBQUM7Z0JBRWxCLGdFQUFnRTtnQkFDaEUsa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMvQyxhQUFhLEdBQUcsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hELENBQUM7cUJBQU0sQ0FBQztvQkFDSix1REFBdUQ7b0JBQ3ZELGFBQWEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pDLENBQUM7Z0JBRUQsQ0FBQyxDQUFDLGFBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxTQUFTO1lBQ2QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVyQyxHQUFHLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUN0QixHQUFHLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FDbEIsZ0NBQWdDLEdBQUcsb0JBQW9CLEdBQUcsZ0NBQWdDLEVBQzFGO2dCQUNJLFVBQVU7Z0JBQ1YsZ0JBQWdCO2dCQUNoQixjQUFjO2FBQ2pCLENBQ0osQ0FBQztZQUNGLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELFNBQVMscUJBQXFCLENBQUMsT0FBTztZQUNsQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssYUFBYSxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ2hFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFO29CQUNuQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7UUFFRCxTQUFTLGFBQWEsQ0FBQyxPQUFPO1lBQzFCLElBQUksQ0FBQztnQkFDRCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFFaEUsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzNCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUN2QyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQ3pDLENBQUM7b0JBQ0wsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1Qsc0NBQXNDO2dCQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDTCxDQUFDO1FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxPQUFPO1lBQ3JDLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELFNBQVMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU87WUFDdEMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRO2dCQUFFLE9BQU87WUFFeEMsS0FBSyxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELFNBQVMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU87WUFDMUMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRO2dCQUFFLE9BQU87WUFFeEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDcEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUFFLE9BQU87WUFFdEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV4QyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUUxQixPQUFPLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTztZQUN6QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXJELHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWpDLE9BQU8sc0JBQXNCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsT0FBTztZQUM5QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbEMsdURBQXVEO1lBQ3ZELElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNoQixDQUFDO1lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3pDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFFZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzNDLElBQUksSUFBSSxNQUFNLENBQ1YsTUFBTTt3QkFDRixnQ0FBZ0M7d0JBQ2hDLG1DQUFtQzt3QkFDbkMsT0FBTzt3QkFDUCxnQ0FBZ0M7d0JBQ2hDLEtBQUs7d0JBQ0wsT0FBTzt3QkFDUCxPQUFPLEVBQ1g7d0JBQ0ksU0FBUzt3QkFDVCxrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUzt3QkFDckIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztxQkFDdkMsQ0FDSixDQUFDO2dCQUNOLENBQUM7Z0JBRUQsT0FBTyxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVEOzs7O1dBSUc7UUFDSCxTQUFTLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTztZQUNoQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUV4QixPQUFPO2dCQUNILFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7Z0JBQ3hDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO2FBQ2xELENBQUM7UUFDTixDQUFDO1FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxPQUFPO1lBQ2hDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztZQUUzQixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQzlCLENBQUM7WUFFRCxPQUFPLFlBQVksQ0FBQztRQUN4QixDQUFDO1FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTztZQUN4QyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7WUFDdkIsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDO1lBRTdCLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUM5QixTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNsQyxDQUFDO1lBRUQscURBQXFEO1lBQ3JELE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUUxRCxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDOUMsQ0FBQztZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFFRDs7OztXQUlHO1FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxPQUFPO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFFakMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzdCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFMUIsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUN2QyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUM5Qix1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbkMsQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDN0MsQ0FBQztvQkFDTCxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUVEOzs7V0FHRztRQUNILFNBQVMsc0JBQXNCLENBQUMsT0FBTztZQUNuQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBRXBDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFBRSxPQUFPO1lBRXJDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFMUMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRWhCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFFdEQsTUFBTSxJQUFJLE1BQU0sQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzlFLENBQUM7WUFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsU0FBUyxRQUFRLENBQUMsSUFBSTtZQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUVqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsU0FBUyxhQUFhLENBQUMsSUFBSTtZQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxDQUFDO1FBRUQsR0FBRztRQUNILFdBQVc7UUFDWCxHQUFHO1FBRUgsU0FBUyxLQUFLLENBQUMsSUFBSTtZQUNmLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFFRDs7OztXQUlHO1FBQ0gsU0FBUyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUk7WUFDeEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVEOzs7O1dBSUc7UUFDSCxTQUFTLFlBQVksQ0FBQyxPQUFPLEVBQUUsUUFBUTtZQUNuQyxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNsRixDQUFDO1FBRUQ7Ozs7V0FJRztRQUNILFNBQVMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRO1lBQzNCLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sUUFBUSxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzQixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7a0lBOWRRLHFCQUFxQjtzSEFBckIscUJBQXFCLDZIQXNEVixlQUFlLDRDQUdmLGdCQUFnQjs7NEZBekQzQixxQkFBcUI7a0JBUGpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsTUFBTTtxQkFDaEI7aUJBQ0o7d0RBV08sSUFBSTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkE2Q2MsU0FBUztzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBR0csVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBQcm92aWRlcixcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VjdXJpdHlDb250ZXh0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBLQlFfV0lORE9XLCBrYnFJbmplY3ROYXRpdmVFbGVtZW50IH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IGhsanMgZnJvbSAnaGlnaGxpZ2h0LmpzJztcbmltcG9ydCB7IEticUNvZGVCbG9ja0ZpbGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBGYWxsYmFjayBsYW5ndWFnZSBmb3IgY29kZSBibG9jayBpZiBsYW5ndWFnZSBpcyBub3Qgc3VwcG9ydGVkL3NwZWNpZmllZC5cbiAqXG4gKiBMaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXM6XG4gKiBAbGluayBodHRwczovL2hpZ2hsaWdodGpzLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9zdXBwb3J0ZWQtbGFuZ3VhZ2VzLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IEtCUV9DT0RFX0JMT0NLX0ZBTExCQUNLX0ZJTEVfTEFOR1VBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcbiAgICAnS0JRX0NPREVfQkxPQ0tfRkFMTEJBQ0tfRklMRV9MQU5HVUFHRScsXG4gICAgeyBmYWN0b3J5OiAoKSA9PiAncGxhaW50ZXh0JyB9XG4pO1xuXG4vKiogVXRpbGl0eSBwcm92aWRlciBmb3IgYEtCUV9DT0RFX0JMT0NLX0ZBTExCQUNLX0ZJTEVfTEFOR1VBR0VgLiAqL1xuZXhwb3J0IGNvbnN0IGticUNvZGVCbG9ja0ZhbGxiYWNrRmlsZUxhbmd1YWdlUHJvdmlkZXIgPSAobGFuZ3VhZ2U6IHN0cmluZyk6IFByb3ZpZGVyID0+ICh7XG4gICAgcHJvdmlkZTogS0JRX0NPREVfQkxPQ0tfRkFMTEJBQ0tfRklMRV9MQU5HVUFHRSxcbiAgICB1c2VWYWx1ZTogbGFuZ3VhZ2Vcbn0pO1xuXG4vKiogRGlyZWN0aXZlIHdoaWNoIGFwcGxpZXMgc3ludGF4IGhpZ2hsaWdodGluZyB0byB0aGUgY29kZSBibG9jayBjb250ZW50LiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2NvZGVba2JxQ29kZUJsb2NrSGlnaGxpZ2h0XScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2hsanMnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb2RlQmxvY2tIaWdobGlnaHQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlRWxlbWVudCA9IGticUluamVjdE5hdGl2ZUVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0PERvY3VtZW50PihET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYWxsYmFja0ZpbGVMYW5ndWFnZSA9IGluamVjdChLQlFfQ09ERV9CTE9DS19GQUxMQkFDS19GSUxFX0xBTkdVQUdFKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIC8qKiBUaGUgY29kZSBmaWxlLiAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgc2V0IGZpbGUoZmlsZTogS2JxQ29kZUJsb2NrRmlsZSkge1xuICAgICAgICBpZiAoIXRoaXMud2luZG93KSByZXR1cm47XG5cbiAgICAgICAgbGV0IHsgbGFuZ3VhZ2UgfSA9IGZpbGU7XG5cbiAgICAgICAgaWYgKCFsYW5ndWFnZSB8fCAhaGxqcy5nZXRMYW5ndWFnZShsYW5ndWFnZSkpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYFtLYnFDb2RlQmxvY2tdIFVua25vd24gZmlsZSBsYW5ndWFnZTogXCIke2xhbmd1YWdlfVwiLiBGYWxsIGJhY2sgdG8gXCIke3RoaXMuZmFsbGJhY2tGaWxlTGFuZ3VhZ2V9XCIuYCxcbiAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGFuZ3VhZ2UgPSB0aGlzLmZhbGxiYWNrRmlsZUxhbmd1YWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdmFsdWU6IGhpZ2hsaWdodGVkSFRNTCxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBoaWdobGlnaHRlZExhbmd1YWdlLFxuICAgICAgICAgICAgaWxsZWdhbCxcbiAgICAgICAgICAgIHJlbGV2YW5jZVxuICAgICAgICB9ID0gaGxqcy5oaWdobGlnaHQoZmlsZS5jb250ZW50LCB7XG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpbGxlZ2FsKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbS2JxQ29kZUJsb2NrXSBGaWxlIGNvbnRlbnQgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLicsIGZpbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbGV2YW5jZSA9PT0gMCkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0ticUNvZGVCbG9ja10gRmlsZSBjb250ZW50IGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuJywgZmlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYWZlSFRNTCA9IHRoaXMuZG9tU2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBoaWdobGlnaHRlZEhUTUwpO1xuICAgICAgICBjb25zdCBoaWdobGlnaHRlZEhUTUxXaXRoTGluZU51bWJlcnMgPSB0aGlzLndpbmRvd1snaGxqcyddLmxpbmVOdW1iZXJzVmFsdWUoc2FmZUhUTUwsIHtcbiAgICAgICAgICAgIHN0YXJ0RnJvbTogdGhpcy5zdGFydEZyb20sXG4gICAgICAgICAgICBzaW5nbGVMaW5lOiB0aGlzLnNpbmdsZUxpbmVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAnZGF0YS1sYW5ndWFnZScsIGhpZ2hsaWdodGVkTGFuZ3VhZ2UhKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLm5hdGl2ZUVsZW1lbnQsICdpbm5lckhUTUwnLCBoaWdobGlnaHRlZEhUTUxXaXRoTGluZU51bWJlcnMpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgc3RhcnRpbmcgbGluZSBudW1iZXIuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgc3RhcnRGcm9tOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBsaW5lIG51bWJlcnMgZm9yIHNpbmdsZSBsaW5lIGNvZGUgYmxvY2suICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNpbmdsZUxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXRMaW5lTnVtYmVyc1BsdWdpbigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIEhpZ2hsaWdodEpTIGxpbmUgbnVtYmVycyBwbHVnaW4uIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbmNlIHdoZW5cbiAgICAgKiB0aGUgY29tcG9uZW50IGlzIGNvbnN0cnVjdGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdExpbmVOdW1iZXJzUGx1Z2luKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMud2luZG93KSByZXR1cm47XG5cbiAgICAgICAgdGhpcy53aW5kb3dbJ2hsanMnXSA9IGhsanM7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SlNMaW5lTnVtYmVyc1BsdWdpbih0aGlzLmRvY3VtZW50LCB0aGlzLndpbmRvdyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbm90IGludGVuZGVkIGZvciBlZGl0aW5nLlxuICAgICAqIENoYW5nZXMgbWF5IGxlYWQgdG8gdW5wcmVkaWN0YWJsZSBiZWhhdmlvci5cbiAgICAgKiBTb3VyY2UgY29kZTogaHR0cHM6Ly9naXRodWIuY29tL3djb2Rlci9oaWdobGlnaHRqcy1saW5lLW51bWJlcnMuanMvYmxvYi92Mi45LjAvc3JjL2hpZ2hsaWdodGpzLWxpbmUtbnVtYmVycy5qc1xuICAgICAqL1xuICAgIHByaXZhdGUgaGlnaGxpZ2h0SlNMaW5lTnVtYmVyc1BsdWdpbihkOiBEb2N1bWVudCwgdzogV2luZG93KTogdm9pZCB7XG4gICAgICAgICd1c2Ugc3RyaWN0JztcblxuICAgICAgICBpZiAoIXcpIHJldHVybjtcblxuICAgICAgICBjb25zdCBUQUJMRV9OQU1FID0gJ2hsanMtbG4nLFxuICAgICAgICAgICAgTElORV9OQU1FID0gJ2hsanMtbG4tbGluZScsXG4gICAgICAgICAgICBDT0RFX0JMT0NLX05BTUUgPSAnaGxqcy1sbi1jb2RlJyxcbiAgICAgICAgICAgIE5VTUJFUlNfQkxPQ0tfTkFNRSA9ICdobGpzLWxuLW51bWJlcnMnLFxuICAgICAgICAgICAgTlVNQkVSX0xJTkVfTkFNRSA9ICdobGpzLWxuLW4nLFxuICAgICAgICAgICAgREFUQV9BVFRSX05BTUUgPSAnZGF0YS1saW5lLW51bWJlcicsXG4gICAgICAgICAgICBCUkVBS19MSU5FX1JFR0VYUCA9IC9cXHJcXG58XFxyfFxcbi9nO1xuXG4gICAgICAgIGlmICh3WydobGpzJ10pIHtcbiAgICAgICAgICAgIHdbJ2hsanMnXS5pbml0TGluZU51bWJlcnNPbkxvYWQgPSBpbml0TGluZU51bWJlcnNPbkxvYWQ7XG4gICAgICAgICAgICB3WydobGpzJ10ubGluZU51bWJlcnNCbG9jayA9IGxpbmVOdW1iZXJzQmxvY2s7XG4gICAgICAgICAgICB3WydobGpzJ10ubGluZU51bWJlcnNCbG9ja1N5bmMgPSBsaW5lTnVtYmVyc0Jsb2NrU3luYztcbiAgICAgICAgICAgIHdbJ2hsanMnXS5saW5lTnVtYmVyc1ZhbHVlID0gbGluZU51bWJlcnNWYWx1ZTtcblxuICAgICAgICAgICAgYWRkU3R5bGVzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignaGlnaGxpZ2h0LmpzIG5vdCBkZXRlY3RlZCEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGlzSGxqc0xuQ29kZURlc2NlbmRhbnQoZG9tRWx0KSB7XG4gICAgICAgICAgICBsZXQgY3VyRWx0ID0gZG9tRWx0O1xuXG4gICAgICAgICAgICB3aGlsZSAoY3VyRWx0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1ckVsdC5jbGFzc05hbWUgJiYgY3VyRWx0LmNsYXNzTmFtZS5pbmRleE9mKCdobGpzLWxuLWNvZGUnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VyRWx0ID0gY3VyRWx0LnBhcmVudE5vZGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldEhsanNMblRhYmxlKGhsanNMbkRvbUVsdCkge1xuICAgICAgICAgICAgbGV0IGN1ckVsdCA9IGhsanNMbkRvbUVsdDtcblxuICAgICAgICAgICAgd2hpbGUgKGN1ckVsdC5ub2RlTmFtZSAhPT0gJ1RBQkxFJykge1xuICAgICAgICAgICAgICAgIGN1ckVsdCA9IGN1ckVsdC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY3VyRWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRnVuY3Rpb24gdG8gd29ya2Fyb3VuZCBhIGNvcHkgaXNzdWUgd2l0aCBNaWNyb3NvZnQgRWRnZS5cbiAgICAgICAgLy8gRHVlIHRvIGhsanMtbG4gd3JhcHBpbmcgdGhlIGxpbmVzIG9mIGNvZGUgaW5zaWRlIGEgPHRhYmxlPiBlbGVtZW50LFxuICAgICAgICAvLyBpdHNlbGYgd3JhcHBlZCBpbnNpZGUgYSA8cHJlPiBlbGVtZW50LCB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKVxuICAgICAgICAvLyBkb2VzIG5vdCBjb250YWluIGFueSBsaW5lIGJyZWFrcy4gU28gd2UgbmVlZCB0byBnZXQgdGhlbSBiYWNrIHVzaW5nIHRoZVxuICAgICAgICAvLyByZW5kZXJlZCBjb2RlIGluIHRoZSBET00gYXMgcmVmZXJlbmNlLlxuICAgICAgICBmdW5jdGlvbiBlZGdlR2V0U2VsZWN0ZWRDb2RlTGluZXMoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAvLyBjdXJyZW50IHNlbGVjdGVkIHRleHQgd2l0aG91dCBsaW5lIGJyZWFrc1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuXG4gICAgICAgICAgICAvLyBnZXQgdGhlIDx0ZD4gZWxlbWVudCB3cmFwcGluZyB0aGUgZmlyc3QgbGluZSBvZiBzZWxlY3RlZCBjb2RlXG4gICAgICAgICAgICBsZXQgdGRBbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yTm9kZTtcblxuICAgICAgICAgICAgd2hpbGUgKHRkQW5jaG9yLm5vZGVOYW1lICE9PSAnVEQnKSB7XG4gICAgICAgICAgICAgICAgdGRBbmNob3IgPSB0ZEFuY2hvci5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBnZXQgdGhlIDx0ZD4gZWxlbWVudCB3cmFwcGluZyB0aGUgbGFzdCBsaW5lIG9mIHNlbGVjdGVkIGNvZGVcbiAgICAgICAgICAgIGxldCB0ZEZvY3VzID0gc2VsZWN0aW9uLmZvY3VzTm9kZTtcblxuICAgICAgICAgICAgd2hpbGUgKHRkRm9jdXMubm9kZU5hbWUgIT09ICdURCcpIHtcbiAgICAgICAgICAgICAgICB0ZEZvY3VzID0gdGRGb2N1cy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBleHRyYWN0IGxpbmUgbnVtYmVyc1xuICAgICAgICAgICAgbGV0IGZpcnN0TGluZU51bWJlciA9IHBhcnNlSW50KHRkQW5jaG9yLmRhdGFzZXQubGluZU51bWJlcik7XG4gICAgICAgICAgICBsZXQgbGFzdExpbmVOdW1iZXIgPSBwYXJzZUludCh0ZEZvY3VzLmRhdGFzZXQubGluZU51bWJlcik7XG5cbiAgICAgICAgICAgIC8vIG11bHRpLWxpbmVzIGNvcGllZCBjYXNlXG4gICAgICAgICAgICBpZiAoZmlyc3RMaW5lTnVtYmVyICE9IGxhc3RMaW5lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0TGluZVRleHQgPSB0ZEFuY2hvci50ZXh0Q29udGVudDtcbiAgICAgICAgICAgICAgICBsZXQgbGFzdExpbmVUZXh0ID0gdGRGb2N1cy50ZXh0Q29udGVudDtcblxuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBzZWxlY3Rpb24gd2FzIG1hZGUgYmFja3dhcmQsIHN3YXAgdmFsdWVzXG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0TGluZU51bWJlciA+IGxhc3RMaW5lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0bXAgPSBmaXJzdExpbmVOdW1iZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lTnVtYmVyID0gbGFzdExpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RMaW5lTnVtYmVyID0gdG1wO1xuICAgICAgICAgICAgICAgICAgICB0bXAgPSBmaXJzdExpbmVUZXh0O1xuICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmVUZXh0ID0gbGFzdExpbmVUZXh0O1xuICAgICAgICAgICAgICAgICAgICBsYXN0TGluZVRleHQgPSB0bXA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZGlzY2FyZCBub3QgY29waWVkIGNoYXJhY3RlcnMgaW4gZmlyc3QgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChzZWxlY3Rpb25UZXh0LmluZGV4T2YoZmlyc3RMaW5lVGV4dCkgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lVGV4dCA9IGZpcnN0TGluZVRleHQuc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZGlzY2FyZCBub3QgY29waWVkIGNoYXJhY3RlcnMgaW4gbGFzdCBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKHNlbGVjdGlvblRleHQubGFzdEluZGV4T2YobGFzdExpbmVUZXh0KSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdExpbmVUZXh0ID0gbGFzdExpbmVUZXh0LnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyByZWNvbnN0cnVjdCBhbmQgcmV0dXJuIHRoZSByZWFsIGNvcGllZCB0ZXh0XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkVGV4dCA9IGZpcnN0TGluZVRleHQ7XG4gICAgICAgICAgICAgICAgY29uc3QgaGxqc0xuVGFibGUgPSBnZXRIbGpzTG5UYWJsZSh0ZEFuY2hvcik7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gZmlyc3RMaW5lTnVtYmVyICsgMTsgaSA8IGxhc3RMaW5lTnVtYmVyOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZUxpbmVTZWwgPSBmb3JtYXQoJy57MH1bezF9PVwiezJ9XCJdJywgW0NPREVfQkxPQ0tfTkFNRSwgREFUQV9BVFRSX05BTUUsIGldKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZUxpbmVFbHQgPSBobGpzTG5UYWJsZS5xdWVyeVNlbGVjdG9yKGNvZGVMaW5lU2VsKTtcblxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFRleHQgKz0gJ1xcbicgKyBjb2RlTGluZUVsdC50ZXh0Q29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZWxlY3RlZFRleHQgKz0gJ1xcbicgKyBsYXN0TGluZVRleHQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRUZXh0O1xuICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBjb3BpZWQgbGluZSBjYXNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25UZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW5zdXJlIGNvbnNpc3RlbnQgY29kZSBjb3B5L3Bhc3RlIGJlaGF2aW9yIGFjcm9zcyBhbGwgYnJvd3NlcnNcbiAgICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2NvZGVyL2hpZ2hsaWdodGpzLWxpbmUtbnVtYmVycy5qcy9pc3N1ZXMvNTEpXG4gICAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcignY29weScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAvLyBnZXQgY3VycmVudCBzZWxlY3Rpb25cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHcuZ2V0U2VsZWN0aW9uKCkhO1xuXG4gICAgICAgICAgICAvLyBvdmVycmlkZSBiZWhhdmlvciB3aGVuIG9uZSB3YW50cyB0byBjb3B5IGxpbmUgb2YgY29kZXNcbiAgICAgICAgICAgIGlmIChpc0hsanNMbkNvZGVEZXNjZW5kYW50KHNlbGVjdGlvbi5hbmNob3JOb2RlKSkge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3Rpb25UZXh0O1xuXG4gICAgICAgICAgICAgICAgLy8gd29ya2Fyb3VuZCBhbiBpc3N1ZSB3aXRoIE1pY3Jvc29mdCBFZGdlIGFzIGNvcGllZCBsaW5lIGJyZWFrc1xuICAgICAgICAgICAgICAgIC8vIGFyZSByZW1vdmVkIG90aGVyd2lzZSBmcm9tIHRoZSBzZWxlY3Rpb24gc3RyaW5nXG4gICAgICAgICAgICAgICAgaWYgKHcubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdFZGdlJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblRleHQgPSBlZGdlR2V0U2VsZWN0ZWRDb2RlTGluZXMoc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBvdGhlciBicm93c2VycyBjYW4gZGlyZWN0bHkgdXNlIHRoZSBzZWxlY3Rpb24gc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblRleHQgPSBzZWxlY3Rpb24udG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLmNsaXBib2FyZERhdGEhLnNldERhdGEoJ3RleHQvcGxhaW4nLCBzZWxlY3Rpb25UZXh0KTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIGFkZFN0eWxlcygpIHtcbiAgICAgICAgICAgIGNvbnN0IGNzcyA9IGQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgICAgICAgY3NzLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgY3NzLmlubmVySFRNTCA9IGZvcm1hdChcbiAgICAgICAgICAgICAgICAnLnswfXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9JyArICcuezB9IHRke3BhZGRpbmc6MH0nICsgJy57MX06YmVmb3Jle2NvbnRlbnQ6YXR0cih7Mn0pfScsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBUQUJMRV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICBOVU1CRVJfTElORV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICBEQVRBX0FUVFJfTkFNRVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoY3NzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluaXRMaW5lTnVtYmVyc09uTG9hZChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAoZC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnIHx8IGQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50UmVhZHkob3B0aW9ucyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHcuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRSZWFkeShvcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50UmVhZHkob3B0aW9ucykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9ja3MgPSBkLnF1ZXJ5U2VsZWN0b3JBbGwoJ2NvZGUuaGxqcyxjb2RlLm5vaGlnaGxpZ2h0Jyk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGkgaW4gYmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9ja3MuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNQbHVnaW5EaXNhYmxlZEZvckJsb2NrKGJsb2Nrc1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyc0Jsb2NrKGJsb2Nrc1tpXSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdMaW5lTnVtYmVycyBlcnJvcjogJywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpc1BsdWdpbkRpc2FibGVkRm9yQmxvY2soZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdub2hsanNsbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gbGluZU51bWJlcnNCbG9jayhlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnQgIT09ICdvYmplY3QnKSByZXR1cm47XG5cbiAgICAgICAgICAgIGFzeW5jKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGxpbmVOdW1iZXJzSW50ZXJuYWwoZWxlbWVudCwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGxpbmVOdW1iZXJzQmxvY2tTeW5jKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWxlbWVudCAhPT0gJ29iamVjdCcpIHJldHVybjtcblxuICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBsaW5lTnVtYmVyc0ludGVybmFsKGVsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gbGluZU51bWJlcnNWYWx1ZSh2YWx1ZSwgb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGQuY3JlYXRlRWxlbWVudCgnY29kZScpO1xuXG4gICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlO1xuXG4gICAgICAgICAgICByZXR1cm4gbGluZU51bWJlcnNJbnRlcm5hbChlbGVtZW50LCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGxpbmVOdW1iZXJzSW50ZXJuYWwoZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgaW50ZXJuYWxPcHRpb25zID0gbWFwT3B0aW9ucyhlbGVtZW50LCBvcHRpb25zKTtcblxuICAgICAgICAgICAgZHVwbGljYXRlTXVsdGlsaW5lTm9kZXMoZWxlbWVudCk7XG5cbiAgICAgICAgICAgIHJldHVybiBhZGRMaW5lTnVtYmVyc0Jsb2NrRm9yKGVsZW1lbnQuaW5uZXJIVE1MLCBpbnRlcm5hbE9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gYWRkTGluZU51bWJlcnNCbG9ja0ZvcihpbnB1dEh0bWwsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gZ2V0TGluZXMoaW5wdXRIdG1sKTtcblxuICAgICAgICAgICAgLy8gaWYgbGFzdCBsaW5lIGNvbnRhaW5zIG9ubHkgY2FycmlhZ2UgcmV0dXJuIHJlbW92ZSBpdFxuICAgICAgICAgICAgaWYgKGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICBsaW5lcy5wb3AoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEgfHwgb3B0aW9ucy5zaW5nbGVMaW5lKSB7XG4gICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnJztcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gbGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJzx0cj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHRkIGNsYXNzPVwiezB9IHsxfVwiIHszfT1cIns1fVwiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwiezJ9XCIgezN9PVwiezV9XCI+PC9kaXY+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvdGQ+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz1cInswfSB7NH1cIiB7M309XCJ7NX1cIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezZ9JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvdGQ+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvdHI+JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSU5FX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVNQkVSU19CTE9DS19OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTUJFUl9MSU5FX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQV9BVFRSX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09ERV9CTE9DS19OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKyBvcHRpb25zLnN0YXJ0RnJvbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lc1tpXS5sZW5ndGggPiAwID8gbGluZXNbaV0gOiAnICdcbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0KCc8dGFibGUgY2xhc3M9XCJ7MH1cIj57MX08L3RhYmxlPicsIFtUQUJMRV9OQU1FLCBodG1sXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBpbnB1dEh0bWw7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCBDb2RlIGJsb2NrLlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBFeHRlcm5hbCBBUEkgb3B0aW9ucy5cbiAgICAgICAgICogQHJldHVybnMge09iamVjdH0gSW50ZXJuYWwgQVBJIG9wdGlvbnMuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBtYXBPcHRpb25zKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNpbmdsZUxpbmU6IGdldFNpbmdsZUxpbmVPcHRpb24ob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgc3RhcnRGcm9tOiBnZXRTdGFydEZyb21PcHRpb24oZWxlbWVudCwgb3B0aW9ucylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBnZXRTaW5nbGVMaW5lT3B0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zaW5nbGVMaW5lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2luZ2xlTGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldFN0YXJ0RnJvbU9wdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSAxO1xuICAgICAgICAgICAgbGV0IHN0YXJ0RnJvbSA9IGRlZmF1bHRWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKGlzRmluaXRlKG9wdGlvbnMuc3RhcnRGcm9tKSkge1xuICAgICAgICAgICAgICAgIHN0YXJ0RnJvbSA9IG9wdGlvbnMuc3RhcnRGcm9tO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjYW4gYmUgb3ZlcnJpZGRlbiBiZWNhdXNlIGxvY2FsIG9wdGlvbiBpcyBwcmlvcml0eVxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2RhdGEtbG4tc3RhcnQtZnJvbScpO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzdGFydEZyb20gPSB0b051bWJlcih2YWx1ZSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0RnJvbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWN1cnNpdmUgbWV0aG9kIGZvciBmaXggbXVsdGktbGluZSBlbGVtZW50cyBpbXBsZW1lbnRhdGlvbiBpbiBoaWdobGlnaHQuanNcbiAgICAgICAgICogRG9pbmcgZGVlcCBwYXNzYWdlIG9uIGNoaWxkIG5vZGVzLlxuICAgICAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBkdXBsaWNhdGVNdWx0aWxpbmVOb2RlcyhlbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBub2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlcztcblxuICAgICAgICAgICAgZm9yIChjb25zdCBub2RlIGluIG5vZGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGVzLmhhc093blByb3BlcnR5KG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZXNbbm9kZV07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldExpbmVzQ291bnQoY2hpbGQudGV4dENvbnRlbnQpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cGxpY2F0ZU11bHRpbGluZU5vZGVzKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwbGljYXRlTXVsdGlsaW5lTm9kZShjaGlsZC5wYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNZXRob2QgZm9yIGZpeCBtdWx0aS1saW5lIGVsZW1lbnRzIGltcGxlbWVudGF0aW9uIGluIGhpZ2hsaWdodC5qc1xuICAgICAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBkdXBsaWNhdGVNdWx0aWxpbmVOb2RlKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lO1xuXG4gICAgICAgICAgICBpZiAoIS9obGpzLS8udGVzdChjbGFzc05hbWUpKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gZ2V0TGluZXMoZWxlbWVudC5pbm5lckhUTUwpO1xuXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IGxpbmVzW2ldLmxlbmd0aCA+IDAgPyBsaW5lc1tpXSA6ICcgJztcblxuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXQoJzxzcGFuIGNsYXNzPVwiezB9XCI+ezF9PC9zcGFuPlxcbicsIFtjbGFzc05hbWUsIGxpbmVUZXh0XSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gcmVzdWx0LnRyaW0oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldExpbmVzKHRleHQpIHtcbiAgICAgICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgICByZXR1cm4gdGV4dC5zcGxpdChCUkVBS19MSU5FX1JFR0VYUCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBnZXRMaW5lc0NvdW50KHRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiAodGV4dC50cmltKCkubWF0Y2goQlJFQUtfTElORV9SRUdFWFApIHx8IFtdKS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICAvLy9cbiAgICAgICAgLy8vIEhFTFBFUlNcbiAgICAgICAgLy8vXG5cbiAgICAgICAgZnVuY3Rpb24gYXN5bmMoZnVuYykge1xuICAgICAgICAgICAgdy5zZXRUaW1lb3V0KGZ1bmMsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHtAbGluayBodHRwczovL3djb2Rlci5naXRodWIuaW8vbm90ZXMvc3RyaW5nLWZvcm1hdC1mb3Itc3RyaW5nLWZvcm1hdGluZy1pbi1qYXZhc2NyaXB0fVxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0XG4gICAgICAgICAqIEBwYXJhbSB7YXJyYXl9IGFyZ3NcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGZvcm1hdChmb3JtYXQsIGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXQucmVwbGFjZSgvXFx7KFxcZCspXFx9L2csIGZ1bmN0aW9uIChtLCBuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3Nbbl0gIT09IHVuZGVmaW5lZCA/IGFyZ3Nbbl0gOiBtO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCBDb2RlIGJsb2NrLlxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gYXR0ck5hbWUgQXR0cmlidXRlIG5hbWUuXG4gICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IEF0dHJpYnV0ZSB2YWx1ZSBvciBlbXB0eS5cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdldEF0dHJpYnV0ZShlbGVtZW50LCBhdHRyTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaGFzQXR0cmlidXRlKGF0dHJOYW1lKSA/IGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJOYW1lKSA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHN0ciBTb3VyY2Ugc3RyaW5nLlxuICAgICAgICAgKiBAcGFyYW0ge051bWJlcn0gZmFsbGJhY2sgRmFsbGJhY2sgdmFsdWUuXG4gICAgICAgICAqIEByZXR1cm5zIFBhcnNlZCBudW1iZXIgb3IgZmFsbGJhY2sgdmFsdWUuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiB0b051bWJlcihzdHIsIGZhbGxiYWNrKSB7XG4gICAgICAgICAgICBpZiAoIXN0cikgcmV0dXJuIGZhbGxiYWNrO1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKHN0cik7XG5cbiAgICAgICAgICAgIHJldHVybiBpc0Zpbml0ZShudW1iZXIpID8gbnVtYmVyIDogZmFsbGJhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -4,9 +4,9 @@ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
4
  import { KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';
5
5
  import { KbqAnimationCurves, KbqAnimationDurations, KbqComponentColors } from '@koobiq/components/core';
6
6
  import { KbqIconModule } from '@koobiq/components/icon';
7
+ import { KbqResizable, KbqResizer } from '@koobiq/components/resizer';
7
8
  import { KbqScrollbar, KbqScrollbarModule } from '@koobiq/components/scrollbar';
8
9
  import { SizeL } from '@koobiq/design-tokens';
9
- import { KbqResizable, KbqResizer } from './resizable';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@koobiq/components/button";
12
12
  import * as i2 from "@koobiq/components/icon";
@@ -429,4 +429,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
429
429
  KBQ_CONTENT_PANEL_CONTAINER_PANEL_ANIMATION
430
430
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-content-panel-container{display:flex;gap:var(--kbq-size-l);overflow:hidden;position:relative;box-sizing:border-box;height:100%}.kbq-content-panel-container .kbq-content-panel-container__content{flex-grow:1;height:100%}.kbq-content-panel-container .kbq-content-panel-container__panel{position:absolute;right:0;top:0;padding:0 var(--kbq-size-s) var(--kbq-size-s) 0;display:flex;height:100%;box-sizing:border-box}.kbq-content-panel-container .kbq-content-panel-container__panel-resizer{position:absolute;top:0;left:calc(var(--kbq-content-panel-resizer-width) / -2);width:var(--kbq-content-panel-resizer-width);height:100%;z-index:2}\n"] }]
431
431
  }], ctorParameters: () => [] });
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udGVudC1wYW5lbC9jb250ZW50LXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUNILGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQTZCLE1BQU0sYUFBYSxDQUFDOzs7OztBQUVsRixNQUFNLDZDQUE2QyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtJQUM5RSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FB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QkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIG91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgc2lnbmFsLFxuICAgIHZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEticUFuaW1hdGlvbkN1cnZlcywgS2JxQW5pbWF0aW9uRHVyYXRpb25zLCBLYnFDb21wb25lbnRDb2xvcnMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFJY29uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxU2Nyb2xsYmFyLCBLYnFTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFNpemVMIH0gZnJvbSAnQGtvb2JpcS9kZXNpZ24tdG9rZW5zJztcbmltcG9ydCB7IEticVJlc2l6YWJsZSwgS2JxUmVzaXplciwgS2JxUmVzaXplclNpemVDaGFuZ2VFdmVudCB9IGZyb20gJy4vcmVzaXphYmxlJztcblxuY29uc3QgS0JRX0NPTlRFTlRfUEFORUxfQ09OVEFJTkVSX0NPTlRFTlRfQU5JTUFUSU9OID0gdHJpZ2dlcignY29udGVudEFuaW1hdGlvbicsIFtcbiAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7ICdtYXJnaW4tcmlnaHQnOiAwIH0pKSxcbiAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgJ21hcmdpbi1yaWdodCc6ICd7eyBtYXJnaW5SaWdodCB9fXB4JyB9KSwgeyBwYXJhbXM6IHsgbWFyZ2luUmlnaHQ6IDAgfSB9KSxcbiAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgW2FuaW1hdGUoYCR7S2JxQW5pbWF0aW9uRHVyYXRpb25zLkVudGVyaW5nfSAke0ticUFuaW1hdGlvbkN1cnZlcy5BY2NlbGVyYXRpb25DdXJ2ZX1gKV0pLFxuICAgIHRyYW5zaXRpb24oJ2ZhbHNlID0+IHRydWUnLCBbYW5pbWF0ZShgJHtLYnFBbmltYXRpb25EdXJhdGlvbnMuRXhpdGluZ30gJHtLYnFBbmltYXRpb25DdXJ2ZXMuRGVjZWxlcmF0aW9uQ3VydmV9YCldKVxuXSk7XG5cbmNvbnN0IEtCUV9DT05URU5UX1BBTkVMX0NPTlRBSU5FUl9QQU5FTF9BTklNQVRJT04gPSB0cmlnZ2VyKCdwYW5lbEFuaW1hdGlvbicsIFtcbiAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgICBgJHtLYnFBbmltYXRpb25EdXJhdGlvbnMuRW50ZXJpbmd9ICR7S2JxQW5pbWF0aW9uQ3VydmVzLkRlY2VsZXJhdGlvbkN1cnZlfWAsXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCUpJyB9KVxuICAgICAgICApXSksXG4gICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgYCR7S2JxQW5pbWF0aW9uRHVyYXRpb25zLkV4aXRpbmd9ICR7S2JxQW5pbWF0aW9uQ3VydmVzLkFjY2VsZXJhdGlvbkN1cnZlfWAsXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pXG4gICAgICAgICldKVxuXG5dKTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1jb250ZW50LXBhbmVsLWFzaWRlJyxcbiAgICBleHBvcnRBczogJ2ticUNvbnRlbnRQYW5lbEFzaWRlJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIGAsXG4gICAgc3R5bGVVcmw6ICcuL2NvbnRlbnQtcGFuZWwtYXNpZGUuc2NzcycsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb250ZW50LXBhbmVsLWFzaWRlJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb250ZW50UGFuZWxBc2lkZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticUNvbnRlbnRQYW5lbEhlYWRlclRpdGxlXScsXG4gICAgZXhwb3J0QXM6ICdrYnFDb250ZW50UGFuZWxIZWFkZXJUaXRsZScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb250ZW50LXBhbmVsLWhlYWRlci10aXRsZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUNvbnRlbnRQYW5lbEhlYWRlclRpdGxlIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxQ29udGVudFBhbmVsSGVhZGVyQWN0aW9uc10nLFxuICAgIGV4cG9ydEFzOiAna2JxQ29udGVudFBhbmVsSGVhZGVyQWN0aW9ucycsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb250ZW50LXBhbmVsLWhlYWRlci1hY3Rpb25zJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29udGVudFBhbmVsSGVhZGVyQWN0aW9ucyB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLYnFCdXR0b25Nb2R1bGUsIEticUljb25Nb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAna2JxLWNvbnRlbnQtcGFuZWwtaGVhZGVyJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwtaGVhZGVyJ1xuICAgIH0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1jb250ZW50LXBhbmVsLWhlYWRlcl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticUNvbnRlbnRQYW5lbEhlYWRlclRpdGxlXVwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWNvbnRlbnQtcGFuZWwtaGVhZGVyX19hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticUNvbnRlbnRQYW5lbEhlYWRlckFjdGlvbnNdXCIgLz5cbiAgICAgICAgICAgICAgICBAaWYgKCFjb250ZW50UGFuZWxDb250YWluZXIuZGlzYWJsZUNsb3NlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtY29udGVudC1wYW5lbC1oZWFkZXJfX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb21wb25lbnRDb2xvcnMuQ29udHJhc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticVN0eWxlXT1cImJ1dHRvblN0eWxlcy5UcmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGVudFBhbmVsQ29udGFpbmVyLmNsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS14bWFya18xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIGAsXG4gICAgc3R5bGVVcmw6ICcuL2NvbnRlbnQtcGFuZWwtaGVhZGVyLnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29udGVudFBhbmVsSGVhZGVyIHtcbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRlbnRQYW5lbENvbnRhaW5lciA9IGluamVjdChLYnFDb250ZW50UGFuZWxDb250YWluZXIpO1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnV0dG9uU3R5bGVzID0gS2JxQnV0dG9uU3R5bGVzO1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcG9uZW50Q29sb3JzID0gS2JxQ29tcG9uZW50Q29sb3JzO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLYnFTY3JvbGxiYXJNb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAna2JxLWNvbnRlbnQtcGFuZWwtYm9keScsXG4gICAgZXhwb3J0QXM6ICdrYnFDb250ZW50UGFuZWxCb2R5JyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwtYm9keSdcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxrYnEtc2Nyb2xsYmFyIGNsYXNzPVwia2JxLWNvbnRlbnQtcGFuZWwtYm9keV9fY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9rYnEtc2Nyb2xsYmFyPlxuICAgIGAsXG4gICAgc3R5bGVVcmw6ICcuL2NvbnRlbnQtcGFuZWwtYm9keS5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticUNvbnRlbnRQYW5lbEJvZHkge1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICByZWFkb25seSBzY3JvbGxiYXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQoS2JxU2Nyb2xsYmFyKTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1jb250ZW50LXBhbmVsLWZvb3RlcicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb250ZW50LXBhbmVsLWZvb3RlcidcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vY29udGVudC1wYW5lbC1mb290ZXIuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb250ZW50UGFuZWxGb290ZXIge31cblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1jb250ZW50LXBhbmVsJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwnXG4gICAgfSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJrYnEtY29udGVudC1wYW5lbC1hc2lkZVwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtY29udGVudC1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWNvbnRlbnQtcGFuZWwtaGVhZGVyXCIgLz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1jb250ZW50LXBhbmVsLWJvZHlcIiAvPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWNvbnRlbnQtcGFuZWwtZm9vdGVyXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFtcbiAgICAgICAgJy4vY29udGVudC1wYW5lbC10b2tlbnMuc2NzcycsXG4gICAgICAgICcuL2NvbnRlbnQtcGFuZWwuc2NzcydcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29udGVudFBhbmVsIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50UGFuZWxCb2R5ID0gY29udGVudENoaWxkKEticUNvbnRlbnRQYW5lbEJvZHkpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB0aGlzLmhhbmRsZUNvbnRlbnRCb2R5U2Nyb2xsKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ29udGVudEJvZHlTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRQYW5lbEJvZHkgPSB0aGlzLmNvbnRlbnRQYW5lbEJvZHkoKTtcblxuICAgICAgICBpZiAoIWNvbnRlbnRQYW5lbEJvZHkpIHJldHVybjtcblxuICAgICAgICBjb250ZW50UGFuZWxCb2R5XG4gICAgICAgICAgICAuc2Nyb2xsYmFyKClcbiAgICAgICAgICAgIC5vblNjcm9sbC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW2luc3RhbmNlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gaW5zdGFuY2UuZWxlbWVudHMoKS5zY3JvbGxPZmZzZXRFbGVtZW50O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cENvbnRlbnRIZWFkZXJTaGFkb3coc2Nyb2xsVG9wID49IDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBDb250ZW50Rm9vdGVyU2hhZG93KHNjcm9sbEhlaWdodCAtIChzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQpID49IDEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cENvbnRlbnRIZWFkZXJTaGFkb3coc2hvdWxkU2hvd1NoYWRvdzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSAna2JxLWNvbnRlbnQtcGFuZWxfaGVhZGVyLXdpdGgtc2hhZG93JztcblxuICAgICAgICBpZiAoc2hvdWxkU2hvd1NoYWRvdykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwQ29udGVudEZvb3RlclNoYWRvdyhzaG91bGRTaG93U2hhZG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9ICdrYnEtY29udGVudC1wYW5lbF9mb290ZXItd2l0aC1zaGFkb3cnO1xuXG4gICAgICAgIGlmIChzaG91bGRTaG93U2hhZG93KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS2JxUmVzaXphYmxlLCBLYnFSZXNpemVyLCBLYnFTY3JvbGxiYXJNb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAna2JxLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyJyxcbiAgICBleHBvcnRBczogJ2ticUNvbnRlbnRQYW5lbENvbnRhaW5lcicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb250ZW50LXBhbmVsLWNvbnRhaW5lcicsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyX19vcGVuZWRdJzogJ29wZW5lZFN0YXRlKCknLFxuICAgICAgICAnKGtleWRvd24uZXNjYXBlKSc6ICdoYW5kbGVFc2NhcGVLZXlkb3duKCRldmVudCknXG4gICAgfSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8a2JxLXNjcm9sbGJhciBjbGFzcz1cImticS1jb250ZW50LXBhbmVsLWNvbnRhaW5lcl9fY29udGVudFwiIFtAY29udGVudEFuaW1hdGlvbl09XCJjb250ZW50QW5pbWF0aW9uU3RhdGUoKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9rYnEtc2Nyb2xsYmFyPlxuICAgICAgICBAaWYgKG9wZW5lZFN0YXRlKCkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImticS1jb250ZW50LXBhbmVsLWNvbnRhaW5lcl9fcGFuZWxcIlxuICAgICAgICAgICAgICAgIGticVJlc2l6YWJsZVxuICAgICAgICAgICAgICAgIEBwYW5lbEFuaW1hdGlvblxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwibWluV2lkdGgoKVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoU3RhdGUoKVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJtYXhXaWR0aCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKCFkaXNhYmxlUmVzaXplcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyX19wYW5lbC1yZXNpemVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFSZXNpemVyXT1cIlstMSwgMF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNpemVDaGFuZ2UpPVwiaGFuZGxlUmVzaXplclNpemVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGJsY2xpY2spPVwiaGFuZGxlUmVzaXplckRCTENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1jb250ZW50LXBhbmVsXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vY29udGVudC1wYW5lbC1jb250YWluZXIuc2NzcycsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICBLQlFfQ09OVEVOVF9QQU5FTF9DT05UQUlORVJfQ09OVEVOVF9BTklNQVRJT04sXG4gICAgICAgIEtCUV9DT05URU5UX1BBTkVMX0NPTlRBSU5FUl9QQU5FTF9BTklNQVRJT05cbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29udGVudFBhbmVsQ29udGFpbmVyIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb250ZW50IHBhbmVsIGlzIG9wZW5lZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgb3BlbmVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgZXZlbnQgd2hlbiB0aGUgY29udGVudCBwYW5lbCBvcGVuZWQgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBvcGVuZWRDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbnRlbnQgcGFuZWwgY2FuIG5vdCBiZSBjbG9zZWQgYnkgY2xpY2tpbmcgb24gdGhlIGNsb3NlIGJ1dHRvbiBvciBwcmVzc2luZyB0aGUgRVNDQVBFIGtleS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZUNsb3NlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29udGVudCBwYW5lbCBjYW4gbm90IGJlIGNsb3NlZCBieSBwcmVzc2luZyB0aGUgRVNDQVBFIGtleS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNhYmxlQ2xvc2VCeUVzY2FwZSA9IGlucHV0KHRoaXMuZGlzYWJsZUNsb3NlKCksIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29udGVudCBwYW5lbCByZXNpemVyIGlzIGRpc2FibGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2FibGVSZXNpemVyID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogTWluaW11bSB3aWR0aCBvZiB0aGUgYEticUNvbnRlbnRQYW5lbGAuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCA0ODBcbiAgICAgKi9cbiAgICByZWFkb25seSBtaW5XaWR0aCA9IGlucHV0KDQ4MCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBgS2JxQ29udGVudFBhbmVsYC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDY0MFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHdpZHRoID0gaW5wdXQoNjQwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogTWF4IHdpZHRoIG9mIHRoZSBgS2JxQ29udGVudFBhbmVsYC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDgwMFxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1heFdpZHRoID0gaW5wdXQoODAwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGVuZWRTdGF0ZSA9IHNpZ25hbCh0aGlzLm9wZW5lZCgpKTtcblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2lkdGhTdGF0ZSA9IHNpZ25hbCh0aGlzLndpZHRoKCkpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29udGVudCBwYW5lbCBpcyBvcGVuZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXNPcGVuZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wZW5lZFN0YXRlKCkpO1xuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250ZW50QW5pbWF0aW9uU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5vcGVuZWRTdGF0ZSgpLFxuICAgICAgICAgICAgcGFyYW1zOiB7IG1hcmdpblJpZ2h0OiB0aGlzLndpZHRoU3RhdGUoKSArIChwYXJzZUludChTaXplTCkgfHwgMTYpIH1cbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBUT0RPOiBTaG91bGQgdXNlIGxpbmtlZCBzaWduYWxcbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMub3BlbmVkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcGVuZWQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZFN0YXRlLnNldChvcGVuZWQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVE9ETzogU2hvdWxkIHVzZSBsaW5rZWQgc2lnbmFsXG4gICAgICAgIHRvT2JzZXJ2YWJsZSh0aGlzLndpZHRoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh3aWR0aCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMud2lkdGhTdGF0ZS5zZXQod2lkdGgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyB0aGUgY29udGVudCBwYW5lbCBvcGVuZWQgc3RhdGUuXG4gICAgICovXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5lZFN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICFzdGF0ZSk7XG4gICAgICAgIHRoaXMub3BlbmVkQ2hhbmdlLmVtaXQodGhpcy5vcGVuZWRTdGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgY29udGVudCBwYW5lbC5cbiAgICAgKi9cbiAgICBvcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vcGVuZWRTdGF0ZSgpKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5vcGVuZWRTdGF0ZS5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMub3BlbmVkQ2hhbmdlLmVtaXQodGhpcy5vcGVuZWRTdGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIGNvbnRlbnQgcGFuZWwuXG4gICAgICovXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5vcGVuZWRTdGF0ZSgpKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5vcGVuZWRTdGF0ZS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHRoaXMub3BlbmVkU3RhdGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYW5kbGVSZXNpemVyREJMQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLndpZHRoU3RhdGUuc2V0KHRoaXMud2lkdGgoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYW5kbGVSZXNpemVyU2l6ZUNoYW5nZSh7IHdpZHRoIH06IEticVJlc2l6ZXJTaXplQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHdpZHRoID4gdGhpcy5tYXhXaWR0aCgpKSByZXR1cm4gdGhpcy53aWR0aFN0YXRlLnNldCh0aGlzLm1heFdpZHRoKCkpO1xuICAgICAgICBpZiAod2lkdGggPCB0aGlzLm1pbldpZHRoKCkpIHJldHVybiB0aGlzLndpZHRoU3RhdGUuc2V0KHRoaXMubWluV2lkdGgoKSk7XG5cbiAgICAgICAgdGhpcy53aWR0aFN0YXRlLnNldCh3aWR0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYW5kbGVFc2NhcGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5vcGVuZWRTdGF0ZSgpIHx8IHRoaXMuZGlzYWJsZUNsb3NlKCkgfHwgdGhpcy5kaXNhYmxlQ2xvc2VCeUVzY2FwZSgpKSByZXR1cm47XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbn1cbiJdfQ==
432
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udGVudC1wYW5lbC9jb250ZW50LXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUNILGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUE2QixNQUFNLDRCQUE0QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBRTlDLE1BQU0sNkNBQTZDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFO0lBQzlFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxD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LGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgb3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBzaWduYWwsXG4gICAgdmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLYnFCdXR0b25Nb2R1bGUsIEticUJ1dHRvblN0eWxlcyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgS2JxQW5pbWF0aW9uQ3VydmVzLCBLYnFBbmltYXRpb25EdXJhdGlvbnMsIEticUNvbXBvbmVudENvbG9ycyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFSZXNpemFibGUsIEticVJlc2l6ZXIsIEticVJlc2l6ZXJTaXplQ2hhbmdlRXZlbnQgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcmVzaXplcic7XG5pbXBvcnQgeyBLYnFTY3JvbGxiYXIsIEticVNjcm9sbGJhck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHsgU2l6ZUwgfSBmcm9tICdAa29vYmlxL2Rlc2lnbi10b2tlbnMnO1xuXG5jb25zdCBLQlFfQ09OVEVOVF9QQU5FTF9DT05UQUlORVJfQ09OVEVOVF9BTklNQVRJT04gPSB0cmlnZ2VyKCdjb250ZW50QW5pbWF0aW9uJywgW1xuICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgJ21hcmdpbi1yaWdodCc6IDAgfSkpLFxuICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyAnbWFyZ2luLXJpZ2h0JzogJ3t7IG1hcmdpblJpZ2h0IH19cHgnIH0pLCB7IHBhcmFtczogeyBtYXJnaW5SaWdodDogMCB9IH0pLFxuICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBbYW5pbWF0ZShgJHtLYnFBbmltYXRpb25EdXJhdGlvbnMuRW50ZXJpbmd9ICR7S2JxQW5pbWF0aW9uQ3VydmVzLkFjY2VsZXJhdGlvbkN1cnZlfWApXSksXG4gICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIFthbmltYXRlKGAke0ticUFuaW1hdGlvbkR1cmF0aW9ucy5FeGl0aW5nfSAke0ticUFuaW1hdGlvbkN1cnZlcy5EZWNlbGVyYXRpb25DdXJ2ZX1gKV0pXG5dKTtcblxuY29uc3QgS0JRX0NPTlRFTlRfUEFORUxfQ09OVEFJTkVSX1BBTkVMX0FOSU1BVElPTiA9IHRyaWdnZXIoJ3BhbmVsQW5pbWF0aW9uJywgW1xuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgIGAke0ticUFuaW1hdGlvbkR1cmF0aW9ucy5FbnRlcmluZ30gJHtLYnFBbmltYXRpb25DdXJ2ZXMuRGVjZWxlcmF0aW9uQ3VydmV9YCxcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwJSknIH0pXG4gICAgICAgICldKSxcbiAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgICBgJHtLYnFBbmltYXRpb25EdXJhdGlvbnMuRXhpdGluZ30gJHtLYnFBbmltYXRpb25DdXJ2ZXMuQWNjZWxlcmF0aW9uQ3VydmV9YCxcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSlcbiAgICAgICAgKV0pXG5cbl0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLWNvbnRlbnQtcGFuZWwtYXNpZGUnLFxuICAgIGV4cG9ydEFzOiAna2JxQ29udGVudFBhbmVsQXNpZGUnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vY29udGVudC1wYW5lbC1hc2lkZS5zY3NzJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwtYXNpZGUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticUNvbnRlbnRQYW5lbEFzaWRlIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxQ29udGVudFBhbmVsSGVhZGVyVGl0bGVdJyxcbiAgICBleHBvcnRBczogJ2ticUNvbnRlbnRQYW5lbEhlYWRlclRpdGxlJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwtaGVhZGVyLXRpdGxlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29udGVudFBhbmVsSGVhZGVyVGl0bGUge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFDb250ZW50UGFuZWxIZWFkZXJBY3Rpb25zXScsXG4gICAgZXhwb3J0QXM6ICdrYnFDb250ZW50UGFuZWxIZWFkZXJBY3Rpb25zJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwtaGVhZGVyLWFjdGlvbnMnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb250ZW50UGFuZWxIZWFkZXJBY3Rpb25zIHt9XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ticUJ1dHRvbk1vZHVsZSwgS2JxSWNvbk1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdrYnEtY29udGVudC1wYW5lbC1oZWFkZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtY29udGVudC1wYW5lbC1oZWFkZXInXG4gICAgfSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWNvbnRlbnQtcGFuZWwtaGVhZGVyX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJba2JxQ29udGVudFBhbmVsSGVhZGVyVGl0bGVdXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtY29udGVudC1wYW5lbC1oZWFkZXJfX2FjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJba2JxQ29udGVudFBhbmVsSGVhZGVyQWN0aW9uc11cIiAvPlxuICAgICAgICAgICAgICAgIEBpZiAoIWNvbnRlbnRQYW5lbENvbnRhaW5lci5kaXNhYmxlQ2xvc2UoKSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImticS1jb250ZW50LXBhbmVsLWhlYWRlcl9fY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbXBvbmVudENvbG9ycy5Db250cmFzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2JxU3R5bGVdPVwiYnV0dG9uU3R5bGVzLlRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb250ZW50UGFuZWxDb250YWluZXIuY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLXhtYXJrXzE2XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vY29udGVudC1wYW5lbC1oZWFkZXIuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb250ZW50UGFuZWxIZWFkZXIge1xuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGVudFBhbmVsQ29udGFpbmVyID0gaW5qZWN0KEticUNvbnRlbnRQYW5lbENvbnRhaW5lcik7XG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBidXR0b25TdHlsZXMgPSBLYnFCdXR0b25TdHlsZXM7XG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb21wb25lbnRDb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ticVNjcm9sbGJhck1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdrYnEtY29udGVudC1wYW5lbC1ib2R5JyxcbiAgICBleHBvcnRBczogJ2ticUNvbnRlbnRQYW5lbEJvZHknLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtY29udGVudC1wYW5lbC1ib2R5J1xuICAgIH0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGticS1zY3JvbGxiYXIgY2xhc3M9XCJrYnEtY29udGVudC1wYW5lbC1ib2R5X19jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2ticS1zY3JvbGxiYXI+XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vY29udGVudC1wYW5lbC1ib2R5LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29udGVudFBhbmVsQm9keSB7XG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNjcm9sbGJhciA9IHZpZXdDaGlsZC5yZXF1aXJlZChLYnFTY3JvbGxiYXIpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLWNvbnRlbnQtcGFuZWwtZm9vdGVyJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwtZm9vdGVyJ1xuICAgIH0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9jb250ZW50LXBhbmVsLWZvb3Rlci5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticUNvbnRlbnRQYW5lbEZvb3RlciB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLWNvbnRlbnQtcGFuZWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtY29udGVudC1wYW5lbCdcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1jb250ZW50LXBhbmVsLWFzaWRlXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1jb250ZW50LXBhbmVsX19jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJrYnEtY29udGVudC1wYW5lbC1oZWFkZXJcIiAvPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWNvbnRlbnQtcGFuZWwtYm9keVwiIC8+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJrYnEtY29udGVudC1wYW5lbC1mb290ZXJcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogW1xuICAgICAgICAnLi9jb250ZW50LXBhbmVsLXRva2Vucy5zY3NzJyxcbiAgICAgICAgJy4vY29udGVudC1wYW5lbC5zY3NzJ1xuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb250ZW50UGFuZWwge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRQYW5lbEJvZHkgPSBjb250ZW50Q2hpbGQoS2JxQ29udGVudFBhbmVsQm9keSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHRoaXMuaGFuZGxlQ29udGVudEJvZHlTY3JvbGwoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVDb250ZW50Qm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGVudFBhbmVsQm9keSA9IHRoaXMuY29udGVudFBhbmVsQm9keSgpO1xuXG4gICAgICAgIGlmICghY29udGVudFBhbmVsQm9keSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnRlbnRQYW5lbEJvZHlcbiAgICAgICAgICAgIC5zY3JvbGxiYXIoKVxuICAgICAgICAgICAgLm9uU2Nyb2xsLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbaW5zdGFuY2VdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBpbnN0YW5jZS5lbGVtZW50cygpLnNjcm9sbE9mZnNldEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwQ29udGVudEhlYWRlclNoYWRvdyhzY3JvbGxUb3AgPj0gMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cENvbnRlbnRGb290ZXJTaGFkb3coc2Nyb2xsSGVpZ2h0IC0gKHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCkgPj0gMSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwQ29udGVudEhlYWRlclNoYWRvdyhzaG91bGRTaG93U2hhZG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9ICdrYnEtY29udGVudC1wYW5lbF9oZWFkZXItd2l0aC1zaGFkb3cnO1xuXG4gICAgICAgIGlmIChzaG91bGRTaG93U2hhZG93KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBDb250ZW50Rm9vdGVyU2hhZG93KHNob3VsZFNob3dTaGFkb3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gJ2ticS1jb250ZW50LXBhbmVsX2Zvb3Rlci13aXRoLXNoYWRvdyc7XG5cbiAgICAgICAgaWYgKHNob3VsZFNob3dTaGFkb3cpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLYnFSZXNpemFibGUsIEticVJlc2l6ZXIsIEticVNjcm9sbGJhck1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdrYnEtY29udGVudC1wYW5lbC1jb250YWluZXInLFxuICAgIGV4cG9ydEFzOiAna2JxQ29udGVudFBhbmVsQ29udGFpbmVyJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29udGVudC1wYW5lbC1jb250YWluZXJfX29wZW5lZF0nOiAnb3BlbmVkU3RhdGUoKScsXG4gICAgICAgICcoa2V5ZG93bi5lc2NhcGUpJzogJ2hhbmRsZUVzY2FwZUtleWRvd24oJGV2ZW50KSdcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxrYnEtc2Nyb2xsYmFyIGNsYXNzPVwia2JxLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyX19jb250ZW50XCIgW0Bjb250ZW50QW5pbWF0aW9uXT1cImNvbnRlbnRBbmltYXRpb25TdGF0ZSgpXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2ticS1zY3JvbGxiYXI+XG4gICAgICAgIEBpZiAob3BlbmVkU3RhdGUoKSkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyX19wYW5lbFwiXG4gICAgICAgICAgICAgICAga2JxUmVzaXphYmxlXG4gICAgICAgICAgICAgICAgQHBhbmVsQW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJtaW5XaWR0aCgpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhTdGF0ZSgpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnB4XT1cIm1heFdpZHRoKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoIWRpc2FibGVSZXNpemVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtY29udGVudC1wYW5lbC1jb250YWluZXJfX3BhbmVsLXJlc2l6ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticVJlc2l6ZXJdPVwiWy0xLCAwXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZUNoYW5nZSk9XCJoYW5kbGVSZXNpemVyU2l6ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJoYW5kbGVSZXNpemVyREJMQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWNvbnRlbnQtcGFuZWxcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9jb250ZW50LXBhbmVsLWNvbnRhaW5lci5zY3NzJyxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIEtCUV9DT05URU5UX1BBTkVMX0NPTlRBSU5FUl9DT05URU5UX0FOSU1BVElPTixcbiAgICAgICAgS0JRX0NPTlRFTlRfUEFORUxfQ09OVEFJTkVSX1BBTkVMX0FOSU1BVElPTlxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb250ZW50UGFuZWxDb250YWluZXIge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbnRlbnQgcGFuZWwgaXMgb3BlbmVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBvcGVuZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSBjb250ZW50IHBhbmVsIG9wZW5lZCBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29udGVudCBwYW5lbCBjYW4gbm90IGJlIGNsb3NlZCBieSBjbGlja2luZyBvbiB0aGUgY2xvc2UgYnV0dG9uIG9yIHByZXNzaW5nIHRoZSBFU0NBUEUga2V5LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNhYmxlQ2xvc2UgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb250ZW50IHBhbmVsIGNhbiBub3QgYmUgY2xvc2VkIGJ5IHByZXNzaW5nIHRoZSBFU0NBUEUga2V5LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2FibGVDbG9zZUJ5RXNjYXBlID0gaW5wdXQodGhpcy5kaXNhYmxlQ2xvc2UoKSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb250ZW50IHBhbmVsIHJlc2l6ZXIgaXMgZGlzYWJsZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZVJlc2l6ZXIgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBNaW5pbXVtIHdpZHRoIG9mIHRoZSBgS2JxQ29udGVudFBhbmVsYC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDQ4MFxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1pbldpZHRoID0gaW5wdXQoNDgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogV2lkdGggb2YgdGhlIGBLYnFDb250ZW50UGFuZWxgLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgNjQwXG4gICAgICovXG4gICAgcmVhZG9ubHkgd2lkdGggPSBpbnB1dCg2NDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBNYXggd2lkdGggb2YgdGhlIGBLYnFDb250ZW50UGFuZWxgLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgODAwXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWF4V2lkdGggPSBpbnB1dCg4MDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wZW5lZFN0YXRlID0gc2lnbmFsKHRoaXMub3BlbmVkKCkpO1xuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB3aWR0aFN0YXRlID0gc2lnbmFsKHRoaXMud2lkdGgoKSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb250ZW50IHBhbmVsIGlzIG9wZW5lZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpc09wZW5lZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3BlbmVkU3RhdGUoKSk7XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRlbnRBbmltYXRpb25TdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLm9wZW5lZFN0YXRlKCksXG4gICAgICAgICAgICBwYXJhbXM6IHsgbWFyZ2luUmlnaHQ6IHRoaXMud2lkdGhTdGF0ZSgpICsgKHBhcnNlSW50KFNpemVMKSB8fCAxNikgfVxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vIFRPRE86IFNob3VsZCB1c2UgbGlua2VkIHNpZ25hbFxuICAgICAgICB0b09ic2VydmFibGUodGhpcy5vcGVuZWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9wZW5lZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbmVkU3RhdGUuc2V0KG9wZW5lZCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBUT0RPOiBTaG91bGQgdXNlIGxpbmtlZCBzaWduYWxcbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMud2lkdGgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHdpZHRoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy53aWR0aFN0YXRlLnNldCh3aWR0aCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHRoZSBjb250ZW50IHBhbmVsIG9wZW5lZCBzdGF0ZS5cbiAgICAgKi9cbiAgICB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbmVkU3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gIXN0YXRlKTtcbiAgICAgICAgdGhpcy5vcGVuZWRDaGFuZ2UuZW1pdCh0aGlzLm9wZW5lZFN0YXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBjb250ZW50IHBhbmVsLlxuICAgICAqL1xuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9wZW5lZFN0YXRlKCkpIHJldHVybjtcblxuICAgICAgICB0aGlzLm9wZW5lZFN0YXRlLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5vcGVuZWRDaGFuZ2UuZW1pdCh0aGlzLm9wZW5lZFN0YXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgY29udGVudCBwYW5lbC5cbiAgICAgKi9cbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wZW5lZFN0YXRlKCkpIHJldHVybjtcblxuICAgICAgICB0aGlzLm9wZW5lZFN0YXRlLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMub3BlbmVkQ2hhbmdlLmVtaXQodGhpcy5vcGVuZWRTdGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhbmRsZVJlc2l6ZXJEQkxDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHRoaXMud2lkdGhTdGF0ZS5zZXQodGhpcy53aWR0aCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhbmRsZVJlc2l6ZXJTaXplQ2hhbmdlKHsgd2lkdGggfTogS2JxUmVzaXplclNpemVDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAod2lkdGggPiB0aGlzLm1heFdpZHRoKCkpIHJldHVybiB0aGlzLndpZHRoU3RhdGUuc2V0KHRoaXMubWF4V2lkdGgoKSk7XG4gICAgICAgIGlmICh3aWR0aCA8IHRoaXMubWluV2lkdGgoKSkgcmV0dXJuIHRoaXMud2lkdGhTdGF0ZS5zZXQodGhpcy5taW5XaWR0aCgpKTtcblxuICAgICAgICB0aGlzLndpZHRoU3RhdGUuc2V0KHdpZHRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhbmRsZUVzY2FwZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wZW5lZFN0YXRlKCkgfHwgdGhpcy5kaXNhYmxlQ2xvc2UoKSB8fCB0aGlzLmRpc2FibGVDbG9zZUJ5RXNjYXBlKCkpIHJldHVybjtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,3 @@
1
1
  export * from './content-panel';
2
2
  export * from './module';
3
- export * from './resizable';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnRlbnQtcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGVudC1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc2l6YWJsZSc7XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnRlbnQtcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGVudC1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG4iXX0=
@@ -43,6 +43,7 @@ export function mixinColor(base, defaultColor = KbqComponentColors.Empty) {
43
43
  constructor(...args) {
44
44
  super(...args);
45
45
  this.color = defaultColor;
46
+ // eslint-disable-next-line no-console
46
47
  console.warn('mixinColor deprecated and will be deleted in next major release');
47
48
  }
48
49
  };
@@ -85,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
85
86
  }], ctorParameters: () => [], propDecorators: { color: [{
86
87
  type: Input
87
88
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWNyRSxNQUFNLENBQU4sSUFBWSxZQVVYO0FBVkQsV0FBWSxZQUFZO0lBQ3BCLG1DQUFtQixDQUFBO0lBQ25CLHVDQUF1QixDQUFBO0lBQ3ZCLCtCQUFlLENBQUE7SUFDZiw2QkFBYSxDQUFBO0lBQ2IsbUNBQW1CLENBQUE7SUFDbkIsbUNBQW1CLENBQUE7SUFFbkIscUNBQXFCLENBQUE7SUFDckIsMEJBQVUsQ0FBQTtBQUNkLENBQUMsRUFWVyxZQUFZLEtBQVosWUFBWSxRQVV2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVlYO0FBWkQsV0FBWSxrQkFBa0I7SUFDMUIscUNBQWUsQ0FBQTtJQUNmLDhDQUF3QixDQUFBO0lBQ3hCLDJDQUFxQixDQUFBO0lBQ3JCLG9EQUE4QixDQUFBO0lBRTlCLHFDQUFlLENBQUE7SUFDZix5Q0FBbUIsQ0FBQTtJQUNuQix5Q0FBbUIsQ0FBQTtJQUVuQiwwQ0FBb0IsQ0FBQTtJQUNwQixxQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFaVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBWTdCO0FBUUQsTUFBTSxVQUFVLFVBQVUsQ0FDdEIsSUFBTyxFQUNQLGVBQWtELGtCQUFrQixDQUFDLEtBQUs7SUFFMUUsT0FBTyxLQUFNLFNBQVEsSUFBSTtRQUNyQixJQUFJLEtBQUs7WUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLEtBQXdDO1lBQzlDLE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxZQUFZLENBQUM7WUFFM0MsSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3pFLENBQUM7Z0JBRUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztnQkFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztZQUMvQixDQUFDO1FBQ0wsQ0FBQztRQUlELFlBQVksR0FBRyxJQUFXO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRWYsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7WUFFMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFNMUIsa0NBQWtDO0lBQ2xDLElBQUksY0FBYztRQUNkLE9BQU8sT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBaUQ7UUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFekMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBRUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7SUFJRDtRQWpDQSxvQkFBb0I7UUFDWCxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQWlDOUQsSUFBSSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7SUFDMUMsQ0FBQztJQUVELHVHQUF1RztJQUN2RyxlQUFlLENBQUMsS0FBaUQ7UUFDN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztrSUF6Q1EsaUJBQWlCO3NIQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO3dEQWF2QixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29uc3RydWN0b3IsIENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQ29sb3Ige1xuICAgIGNvbG9yOiBLYnFDb21wb25lbnRDb2xvcnMgfCBUaGVtZVBhbGV0dGUgfCBzdHJpbmc7XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgdHlwZSBDYW5Db2xvckN0b3IgPSBDb25zdHJ1Y3RvcjxDYW5Db2xvcj4gJiBBYnN0cmFjdENvbnN0cnVjdG9yPENhbkNvbG9yPjtcblxuZXhwb3J0IGludGVyZmFjZSBIYXNFbGVtZW50UmVmIHtcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xufVxuXG5leHBvcnQgZW51bSBUaGVtZVBhbGV0dGUge1xuICAgIFByaW1hcnkgPSAncHJpbWFyeScsXG4gICAgU2Vjb25kYXJ5ID0gJ3NlY29uZGFyeScsXG4gICAgRXJyb3IgPSAnZXJyb3InLFxuICAgIEluZm8gPSAnaW5mbycsXG4gICAgV2FybmluZyA9ICd3YXJuaW5nJyxcbiAgICBTdWNjZXNzID0gJ3N1Y2Nlc3MnLFxuXG4gICAgRGVmYXVsdCA9ICdzZWNvbmRhcnknLFxuICAgIEVtcHR5ID0gJydcbn1cblxuZXhwb3J0IGVudW0gS2JxQ29tcG9uZW50Q29sb3JzIHtcbiAgICBUaGVtZSA9ICd0aGVtZScsXG4gICAgVGhlbWVGYWRlID0gJ3RoZW1lLWZhZGUnLFxuICAgIENvbnRyYXN0ID0gJ2NvbnRyYXN0JyxcbiAgICBDb250cmFzdEZhZGUgPSAnY29udHJhc3QtZmFkZScsXG5cbiAgICBFcnJvciA9ICdlcnJvcicsXG4gICAgV2FybmluZyA9ICd3YXJuaW5nJyxcbiAgICBTdWNjZXNzID0gJ3N1Y2Nlc3MnLFxuXG4gICAgRGVmYXVsdCA9ICdjb250cmFzdCcsXG4gICAgRW1wdHkgPSAnZW1wdHknXG59XG5cbi8qKiBNaXhpbiB0byBhdWdtZW50IGEgZGlyZWN0aXZlIHdpdGggYSBgY29sb3JgIHByb3BlcnR5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluQ29sb3I8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8SGFzRWxlbWVudFJlZj4+KFxuICAgIGJhc2U6IFQsXG4gICAgZGVmYXVsdENvbG9yPzogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlXG4pOiBDYW5Db2xvckN0b3IgJiBUO1xuXG5leHBvcnQgZnVuY3Rpb24gbWl4aW5Db2xvcjxUIGV4dGVuZHMgQ29uc3RydWN0b3I8SGFzRWxlbWVudFJlZj4+KFxuICAgIGJhc2U6IFQsXG4gICAgZGVmYXVsdENvbG9yOiBLYnFDb21wb25lbnRDb2xvcnMgfCBUaGVtZVBhbGV0dGUgPSBLYnFDb21wb25lbnRDb2xvcnMuRW1wdHlcbik6IENhbkNvbG9yQ3RvciAmIFQge1xuICAgIHJldHVybiBjbGFzcyBleHRlbmRzIGJhc2Uge1xuICAgICAgICBnZXQgY29sb3IoKTogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBzZXQgY29sb3IodmFsdWU6IEticUNvbXBvbmVudENvbG9ycyB8IFRoZW1lUGFsZXR0ZSkge1xuICAgICAgICAgICAgY29uc3QgY29sb3JQYWxldHRlID0gdmFsdWUgfHwgZGVmYXVsdENvbG9yO1xuXG4gICAgICAgICAgICBpZiAoY29sb3JQYWxldHRlICE9PSB0aGlzLl9jb2xvcikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGBrYnEtJHt0aGlzLl9jb2xvcn1gKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY29sb3JQYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGticS0ke2NvbG9yUGFsZXR0ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jb2xvciA9IGNvbG9yUGFsZXR0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX2NvbG9yOiBLYnFDb21wb25lbnRDb2xvcnMgfCBUaGVtZVBhbGV0dGU7XG5cbiAgICAgICAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gZGVmYXVsdENvbG9yO1xuXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ21peGluQ29sb3IgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBkZWxldGVkIGluIG5leHQgbWFqb3IgcmVsZWFzZScpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBLYnFDb2xvckRpcmVjdGl2ZSB7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBkZWZhdWx0Q29sb3I6IEticUNvbXBvbmVudENvbG9ycyB8IFRoZW1lUGFsZXR0ZSB8IHN0cmluZztcblxuICAgIC8qKiBjdXJyZW50IGNsYXNzIG5hbWUgb2YgY29sb3IgKi9cbiAgICBnZXQgY29sb3JDbGFzc05hbWUoKTogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBrYnEtJHt0aGlzLl9jb2xvcn1gO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNvbG9yKCk6IEticUNvbXBvbmVudENvbG9ycyB8IFRoZW1lUGFsZXR0ZSB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgICB9XG5cbiAgICBzZXQgY29sb3IodmFsdWU6IEticUNvbXBvbmVudENvbG9ycyB8IFRoZW1lUGFsZXR0ZSB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBjb2xvciA9IHZhbHVlIHx8IHRoaXMuZGVmYXVsdENvbG9yO1xuXG4gICAgICAgIGlmIChjb2xvciAhPT0gdGhpcy5fY29sb3IpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jb2xvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYGticS0ke3RoaXMuX2NvbG9yfWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29sb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBrYnEtJHtjb2xvcn1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fY29sb3IgPSBjb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY29sb3I6IEticUNvbXBvbmVudENvbG9ycyB8IFRoZW1lUGFsZXR0ZSB8IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvbG9yID0gS2JxQ29tcG9uZW50Q29sb3JzLkVtcHR5O1xuICAgIH1cblxuICAgIC8qKiB0aGlzIGNvbG9yIHdpbGwgYmUgdXNlZCBhcyBhIGRlZmF1bHQgdmFsdWUuIEZvciBleGFtcGxlIFtjb2xvcl09XCInJyB8IGZhbHNlIHwgdW5kZWZpbmVkIHwgbnVsbFwiLiAqL1xuICAgIHNldERlZmF1bHRDb2xvcihjb2xvcjogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdENvbG9yID0gY29sb3I7XG4gICAgfVxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWNyRSxNQUFNLENBQU4sSUFBWSxZQVVYO0FBVkQsV0FBWSxZQUFZO0lBQ3BCLG1DQUFtQixDQUFBO0lBQ25CLHVDQUF1QixDQUFBO0lBQ3ZCLCtCQUFlLENBQUE7SUFDZiw2QkFBYSxDQUFBO0lBQ2IsbUNBQW1CLENBQUE7SUFDbkIsbUNBQW1CLENBQUE7SUFFbkIscUNBQXFCLENBQUE7SUFDckIsMEJBQVUsQ0FBQTtBQUNkLENBQUMsRUFWVyxZQUFZLEtBQVosWUFBWSxRQVV2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQVlYO0FBWkQsV0FBWSxrQkFBa0I7SUFDMUIscUNBQWUsQ0FBQTtJQUNmLDhDQUF3QixDQUFBO0lBQ3hCLDJDQUFxQixDQUFBO0lBQ3JCLG9EQUE4QixDQUFBO0lBRTlCLHFDQUFlLENBQUE7SUFDZix5Q0FBbUIsQ0FBQTtJQUNuQix5Q0FBbUIsQ0FBQTtJQUVuQiwwQ0FBb0IsQ0FBQTtJQUNwQixxQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFaVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBWTdCO0FBUUQsTUFBTSxVQUFVLFVBQVUsQ0FDdEIsSUFBTyxFQUNQLGVBQWtELGtCQUFrQixDQUFDLEtBQUs7SUFFMUUsT0FBTyxLQUFNLFNBQVEsSUFBSTtRQUNyQixJQUFJLEtBQUs7WUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLEtBQXdDO1lBQzlDLE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxZQUFZLENBQUM7WUFFM0MsSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3pFLENBQUM7Z0JBRUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztnQkFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztZQUMvQixDQUFDO1FBQ0wsQ0FBQztRQUlELFlBQVksR0FBRyxJQUFXO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRWYsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7WUFFMUIsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUVBQWlFLENBQUMsQ0FBQztRQUNwRixDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLGtDQUFrQztJQUNsQyxJQUFJLGNBQWM7UUFDZCxPQUFPLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQWlEO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXpDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDekUsQ0FBQztZQUVELElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUM7SUFDTCxDQUFDO0lBSUQ7UUFqQ0Esb0JBQW9CO1FBQ1gsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFpQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCx1R0FBdUc7SUFDdkcsZUFBZSxDQUFDLEtBQWlEO1FBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7a0lBekNRLGlCQUFpQjtzSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTt3REFhdkIsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnN0cnVjdG9yLCBDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbkNvbG9yIHtcbiAgICBjb2xvcjogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IHR5cGUgQ2FuQ29sb3JDdG9yID0gQ29uc3RydWN0b3I8Q2FuQ29sb3I+ICYgQWJzdHJhY3RDb25zdHJ1Y3RvcjxDYW5Db2xvcj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzRWxlbWVudFJlZiB7XG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbn1cblxuZXhwb3J0IGVudW0gVGhlbWVQYWxldHRlIHtcbiAgICBQcmltYXJ5ID0gJ3ByaW1hcnknLFxuICAgIFNlY29uZGFyeSA9ICdzZWNvbmRhcnknLFxuICAgIEVycm9yID0gJ2Vycm9yJyxcbiAgICBJbmZvID0gJ2luZm8nLFxuICAgIFdhcm5pbmcgPSAnd2FybmluZycsXG4gICAgU3VjY2VzcyA9ICdzdWNjZXNzJyxcblxuICAgIERlZmF1bHQgPSAnc2Vjb25kYXJ5JyxcbiAgICBFbXB0eSA9ICcnXG59XG5cbmV4cG9ydCBlbnVtIEticUNvbXBvbmVudENvbG9ycyB7XG4gICAgVGhlbWUgPSAndGhlbWUnLFxuICAgIFRoZW1lRmFkZSA9ICd0aGVtZS1mYWRlJyxcbiAgICBDb250cmFzdCA9ICdjb250cmFzdCcsXG4gICAgQ29udHJhc3RGYWRlID0gJ2NvbnRyYXN0LWZhZGUnLFxuXG4gICAgRXJyb3IgPSAnZXJyb3InLFxuICAgIFdhcm5pbmcgPSAnd2FybmluZycsXG4gICAgU3VjY2VzcyA9ICdzdWNjZXNzJyxcblxuICAgIERlZmF1bHQgPSAnY29udHJhc3QnLFxuICAgIEVtcHR5ID0gJ2VtcHR5J1xufVxuXG4vKiogTWl4aW4gdG8gYXVnbWVudCBhIGRpcmVjdGl2ZSB3aXRoIGEgYGNvbG9yYCBwcm9wZXJ0eS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaXhpbkNvbG9yPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPEhhc0VsZW1lbnRSZWY+PihcbiAgICBiYXNlOiBULFxuICAgIGRlZmF1bHRDb2xvcj86IEticUNvbXBvbmVudENvbG9ycyB8IFRoZW1lUGFsZXR0ZVxuKTogQ2FuQ29sb3JDdG9yICYgVDtcblxuZXhwb3J0IGZ1bmN0aW9uIG1peGluQ29sb3I8VCBleHRlbmRzIENvbnN0cnVjdG9yPEhhc0VsZW1lbnRSZWY+PihcbiAgICBiYXNlOiBULFxuICAgIGRlZmF1bHRDb2xvcjogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlID0gS2JxQ29tcG9uZW50Q29sb3JzLkVtcHR5XG4pOiBDYW5Db2xvckN0b3IgJiBUIHtcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBiYXNlIHtcbiAgICAgICAgZ2V0IGNvbG9yKCk6IEticUNvbXBvbmVudENvbG9ycyB8IFRoZW1lUGFsZXR0ZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgc2V0IGNvbG9yKHZhbHVlOiBLYnFDb21wb25lbnRDb2xvcnMgfCBUaGVtZVBhbGV0dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yUGFsZXR0ZSA9IHZhbHVlIHx8IGRlZmF1bHRDb2xvcjtcblxuICAgICAgICAgICAgaWYgKGNvbG9yUGFsZXR0ZSAhPT0gdGhpcy5fY29sb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShga2JxLSR7dGhpcy5fY29sb3J9YCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yUGFsZXR0ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBrYnEtJHtjb2xvclBhbGV0dGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5fY29sb3IgPSBjb2xvclBhbGV0dGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF9jb2xvcjogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgICAgICBzdXBlciguLi5hcmdzKTtcblxuICAgICAgICAgICAgdGhpcy5jb2xvciA9IGRlZmF1bHRDb2xvcjtcblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignbWl4aW5Db2xvciBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIGRlbGV0ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlJyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEticUNvbG9yRGlyZWN0aXZlIHtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRDb2xvcjogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nO1xuXG4gICAgLyoqIGN1cnJlbnQgY2xhc3MgbmFtZSBvZiBjb2xvciAqL1xuICAgIGdldCBjb2xvckNsYXNzTmFtZSgpOiBLYnFDb21wb25lbnRDb2xvcnMgfCBUaGVtZVBhbGV0dGUgfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGticS0ke3RoaXMuX2NvbG9yfWA7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgY29sb3IoKTogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgIH1cblxuICAgIHNldCBjb2xvcih2YWx1ZTogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gdmFsdWUgfHwgdGhpcy5kZWZhdWx0Q29sb3I7XG5cbiAgICAgICAgaWYgKGNvbG9yICE9PSB0aGlzLl9jb2xvcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NvbG9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShga2JxLSR7dGhpcy5fY29sb3J9YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb2xvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGticS0ke2NvbG9yfWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9jb2xvciA9IGNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jb2xvcjogS2JxQ29tcG9uZW50Q29sb3JzIHwgVGhlbWVQYWxldHRlIHwgc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBLYnFDb21wb25lbnRDb2xvcnMuRW1wdHk7XG4gICAgfVxuXG4gICAgLyoqIHRoaXMgY29sb3Igd2lsbCBiZSB1c2VkIGFzIGEgZGVmYXVsdCB2YWx1ZS4gRm9yIGV4YW1wbGUgW2NvbG9yXT1cIicnIHwgZmFsc2UgfCB1bmRlZmluZWQgfCBudWxsXCIuICovXG4gICAgc2V0RGVmYXVsdENvbG9yKGNvbG9yOiBLYnFDb21wb25lbnRDb2xvcnMgfCBUaGVtZVBhbGV0dGUgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29sb3IgPSBjb2xvcjtcbiAgICB9XG59XG4iXX0=
@@ -52,6 +52,7 @@ export class KbqCommonModule {
52
52
  }
53
53
  checkDoctypeIsDefined() {
54
54
  if (this.document && !this.document.doctype) {
55
+ // eslint-disable-next-line no-console
55
56
  console.warn('Current document does not have a doctype. This may cause ' +
56
57
  'some koobiq components not to behave as expected.');
57
58
  }
@@ -72,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
72
73
  type: Inject,
73
74
  args: [KBQ_SANITY_CHECKS]
74
75
  }] }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS9jb21tb24tYmVoYXZpb3JzL2NvbW1vbi1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFdkM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVUsbUJBQW1CLEVBQUU7SUFDOUUsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLHFCQUFxQjtDQUNqQyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUtILE1BQU0sT0FBTyxlQUFlO0lBT3hCLFlBQTJELG9CQUE2QjtRQUE3Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVM7UUFOckUsYUFBUSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLDRGQUE0RjtRQUNwRix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFHaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFRCx3Q0FBd0M7SUFDaEMsZ0JBQWdCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCx3Q0FBd0M7SUFDaEMsU0FBUztRQUNiLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUMsT0FBTyxDQUFDLElBQUksQ0FDUiwyREFBMkQ7Z0JBQ3ZELG1EQUFtRCxDQUMxRCxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7a0lBL0JRLGVBQWUsa0JBT1EsaUJBQWlCO21JQVB4QyxlQUFlLFlBSGQsVUFBVSxhQUNWLFVBQVU7bUlBRVgsZUFBZSxZQUhkLFVBQVUsRUFDVixVQUFVOzs0RkFFWCxlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUN4Qjs7MEJBUWdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmlkaU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlLCBOZ01vZHVsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtCUV9XSU5ET1cgfSBmcm9tICcuLi90b2tlbnMnO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNvbmZpZ3VyZXMgd2hldGhlciB0aGUga29vYmlxIHNhbml0eSBjaGVja3MgYXJlIGVuYWJsZWQuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgS0JRX1NBTklUWV9DSEVDS1MgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ2ticS1zYW5pdHktY2hlY2tzJywge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiBtY1Nhbml0eUNoZWNrc0ZhY3Rvcnlcbn0pO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICpcbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1jU2FuaXR5Q2hlY2tzRmFjdG9yeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBNb2R1bGUgdGhhdCBjYXB0dXJlcyBhbnl0aGluZyB0aGF0IHNob3VsZCBiZSBsb2FkZWQgYW5kL29yIHJ1biBmb3IgKmFsbCogS29vYmlxXG4gKiBjb21wb25lbnRzLiBUaGlzIGluY2x1ZGVzIEJpZGksIGV0Yy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0JpZGlNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtCaWRpTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDb21tb25Nb2R1bGUge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KEtCUV9XSU5ET1cpO1xuXG4gICAgLy8gV2hldGhlciB3ZSd2ZSBkb25lIHRoZSBnbG9iYWwgc2FuaXR5IGNoZWNrcyAoZS5nLiBhIHRoZW1lIGlzIGxvYWRlZCwgdGhlcmUgaXMgYSBkb2N0eXBlKS5cbiAgICBwcml2YXRlIGhhc0RvbmVHbG9iYWxDaGVja3MgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoS0JRX1NBTklUWV9DSEVDS1MpIHByaXZhdGUgX3Nhbml0eUNoZWNrc0VuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuYXJlQ2hlY2tzRW5hYmxlZCgpICYmICF0aGlzLmhhc0RvbmVHbG9iYWxDaGVja3MpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tEb2N0eXBlSXNEZWZpbmVkKCk7XG4gICAgICAgICAgICB0aGlzLmhhc0RvbmVHbG9iYWxDaGVja3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2hldGhlciBhbnkgc2FuaXR5IGNoZWNrcyBhcmUgZW5hYmxlZFxuICAgIHByaXZhdGUgYXJlQ2hlY2tzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nhbml0eUNoZWNrc0VuYWJsZWQgJiYgaXNEZXZNb2RlKCkgJiYgIXRoaXMuaXNUZXN0RW52KCk7XG4gICAgfVxuXG4gICAgLy8gV2hldGhlciB0aGUgY29kZSBpcyBydW5uaW5nIGluIHRlc3RzLlxuICAgIHByaXZhdGUgaXNUZXN0RW52KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy53aW5kb3cgJiYgKHRoaXMud2luZG93WydfX2thcm1hX18nXSB8fCB0aGlzLndpbmRvd1snamFzbWluZSddIHx8IHRoaXMud2luZG93WydfX2plc3RfXyddKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0RvY3R5cGVJc0RlZmluZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50ICYmICF0aGlzLmRvY3VtZW50LmRvY3R5cGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAnQ3VycmVudCBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGEgZG9jdHlwZS4gVGhpcyBtYXkgY2F1c2UgJyArXG4gICAgICAgICAgICAgICAgICAgICdzb21lIGtvb2JpcSBjb21wb25lbnRzIG5vdCB0byBiZWhhdmUgYXMgZXhwZWN0ZWQuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS9jb21tb24tYmVoYXZpb3JzL2NvbW1vbi1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFdkM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVUsbUJBQW1CLEVBQUU7SUFDOUUsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLHFCQUFxQjtDQUNqQyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUtILE1BQU0sT0FBTyxlQUFlO0lBT3hCLFlBQTJELG9CQUE2QjtRQUE3Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVM7UUFOckUsYUFBUSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLDRGQUE0RjtRQUNwRix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFHaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFRCx3Q0FBd0M7SUFDaEMsZ0JBQWdCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCx3Q0FBd0M7SUFDaEMsU0FBUztRQUNiLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUMsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQ1IsMkRBQTJEO2dCQUN2RCxtREFBbUQsQ0FDMUQsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO2tJQWhDUSxlQUFlLGtCQU9RLGlCQUFpQjttSUFQeEMsZUFBZSxZQUhkLFVBQVUsYUFDVixVQUFVO21JQUVYLGVBQWUsWUFIZCxVQUFVLEVBQ1YsVUFBVTs7NEZBRVgsZUFBZTtrQkFKM0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDeEI7OzBCQVFnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpZGlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIGlzRGV2TW9kZSwgTmdNb2R1bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLQlFfV0lORE9XIH0gZnJvbSAnLi4vdG9rZW5zJztcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjb25maWd1cmVzIHdoZXRoZXIgdGhlIGtvb2JpcSBzYW5pdHkgY2hlY2tzIGFyZSBlbmFibGVkLlxuICpcbiAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICpcbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IEtCUV9TQU5JVFlfQ0hFQ0tTID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdrYnEtc2FuaXR5LWNoZWNrcycsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogbWNTYW5pdHlDaGVja3NGYWN0b3J5XG59KTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBObyBsb25nZXIgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtY1Nhbml0eUNoZWNrc0ZhY3RvcnkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogTW9kdWxlIHRoYXQgY2FwdHVyZXMgYW55dGhpbmcgdGhhdCBzaG91bGQgYmUgbG9hZGVkIGFuZC9vciBydW4gZm9yICphbGwqIEtvb2JpcVxuICogY29tcG9uZW50cy4gVGhpcyBpbmNsdWRlcyBCaWRpLCBldGMuXG4gKlxuICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtCaWRpTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbQmlkaU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29tbW9uTW9kdWxlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIC8vIFdoZXRoZXIgd2UndmUgZG9uZSB0aGUgZ2xvYmFsIHNhbml0eSBjaGVja3MgKGUuZy4gYSB0aGVtZSBpcyBsb2FkZWQsIHRoZXJlIGlzIGEgZG9jdHlwZSkuXG4gICAgcHJpdmF0ZSBoYXNEb25lR2xvYmFsQ2hlY2tzID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KEtCUV9TQU5JVFlfQ0hFQ0tTKSBwcml2YXRlIF9zYW5pdHlDaGVja3NFbmFibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLmFyZUNoZWNrc0VuYWJsZWQoKSAmJiAhdGhpcy5oYXNEb25lR2xvYmFsQ2hlY2tzKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrRG9jdHlwZUlzRGVmaW5lZCgpO1xuICAgICAgICAgICAgdGhpcy5oYXNEb25lR2xvYmFsQ2hlY2tzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdoZXRoZXIgYW55IHNhbml0eSBjaGVja3MgYXJlIGVuYWJsZWRcbiAgICBwcml2YXRlIGFyZUNoZWNrc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zYW5pdHlDaGVja3NFbmFibGVkICYmIGlzRGV2TW9kZSgpICYmICF0aGlzLmlzVGVzdEVudigpO1xuICAgIH1cblxuICAgIC8vIFdoZXRoZXIgdGhlIGNvZGUgaXMgcnVubmluZyBpbiB0ZXN0cy5cbiAgICBwcml2YXRlIGlzVGVzdEVudigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMud2luZG93ICYmICh0aGlzLndpbmRvd1snX19rYXJtYV9fJ10gfHwgdGhpcy53aW5kb3dbJ2phc21pbmUnXSB8fCB0aGlzLndpbmRvd1snX19qZXN0X18nXSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tEb2N0eXBlSXNEZWZpbmVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kb2N1bWVudCAmJiAhdGhpcy5kb2N1bWVudC5kb2N0eXBlKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdDdXJyZW50IGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBkb2N0eXBlLiBUaGlzIG1heSBjYXVzZSAnICtcbiAgICAgICAgICAgICAgICAgICAgJ3NvbWUga29vYmlxIGNvbXBvbmVudHMgbm90IHRvIGJlaGF2ZSBhcyBleHBlY3RlZC4nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -11,8 +11,9 @@ export function mixinDisabled(base) {
11
11
  constructor(...args) {
12
12
  super(...args);
13
13
  this._disabled = false;
14
+ // eslint-disable-next-line no-console
14
15
  console.warn('mixinDisabled deprecated and will be deleted in next major release');
15
16
  }
16
17
  };
17
18
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9kaXNhYmxlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWE5RCx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLGFBQWEsQ0FBNEIsSUFBTztJQUM1RCxPQUFPLEtBQU0sU0FBUSxJQUFJO1FBQ3JCLElBQUksUUFBUTtZQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsS0FBVTtZQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFJRCxZQUFZLEdBQUcsSUFBVztZQUN0QixLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUhYLGNBQVMsR0FBWSxLQUFLLENBQUM7WUFLL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnN0cnVjdG9yLCBDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbkRpc2FibGUge1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IHR5cGUgQ2FuRGlzYWJsZUN0b3IgPSBDb25zdHJ1Y3RvcjxDYW5EaXNhYmxlPiAmIEFic3RyYWN0Q29uc3RydWN0b3I8Q2FuRGlzYWJsZT47XG5cbi8qKiBNaXhpbiB0byBhdWdtZW50IGEgZGlyZWN0aXZlIHdpdGggYSBgZGlzYWJsZWRgIHByb3BlcnR5LiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBtaXhpbkRpc2FibGVkPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPHt9Pj4oYmFzZTogVCk6IENhbkRpc2FibGVDdG9yICYgVDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gbWl4aW5EaXNhYmxlZDxUIGV4dGVuZHMgQ29uc3RydWN0b3I8e30+PihiYXNlOiBUKTogQ2FuRGlzYWJsZUN0b3IgJiBUIHtcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBiYXNlIHtcbiAgICAgICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ21peGluRGlzYWJsZWQgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBkZWxldGVkIGluIG5leHQgbWFqb3IgcmVsZWFzZScpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9kaXNhYmxlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWE5RCx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLGFBQWEsQ0FBNEIsSUFBTztJQUM1RCxPQUFPLEtBQU0sU0FBUSxJQUFJO1FBQ3JCLElBQUksUUFBUTtZQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsS0FBVTtZQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFJRCxZQUFZLEdBQUcsSUFBVztZQUN0QixLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUhYLGNBQVMsR0FBWSxLQUFLLENBQUM7WUFLL0Isc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0VBQW9FLENBQUMsQ0FBQztRQUN2RixDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25zdHJ1Y3RvciwgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBDYW5EaXNhYmxlIHtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCB0eXBlIENhbkRpc2FibGVDdG9yID0gQ29uc3RydWN0b3I8Q2FuRGlzYWJsZT4gJiBBYnN0cmFjdENvbnN0cnVjdG9yPENhbkRpc2FibGU+O1xuXG4vKiogTWl4aW4gdG8gYXVnbWVudCBhIGRpcmVjdGl2ZSB3aXRoIGEgYGRpc2FibGVkYCBwcm9wZXJ0eS4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gbWl4aW5EaXNhYmxlZDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3Rvcjx7fT4+KGJhc2U6IFQpOiBDYW5EaXNhYmxlQ3RvciAmIFQ7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRGlzYWJsZWQ8VCBleHRlbmRzIENvbnN0cnVjdG9yPHt9Pj4oYmFzZTogVCk6IENhbkRpc2FibGVDdG9yICYgVCB7XG4gICAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgYmFzZSB7XG4gICAgICAgIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgICAgICBzdXBlciguLi5hcmdzKTtcblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignbWl4aW5EaXNhYmxlZCBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIGRlbGV0ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlJyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl19
@@ -4,6 +4,7 @@ export function mixinErrorState(base) {
4
4
  super(...args);
5
5
  /** Whether the component is in an error state. */
6
6
  this.errorState = false;
7
+ // eslint-disable-next-line no-console
7
8
  console.warn('mixinErrorState deprecated and will be deleted in next major release');
8
9
  }
9
10
  updateErrorState() {
@@ -46,4 +47,4 @@ export class KbqErrorStateTracker {
46
47
  }
47
48
  }
48
49
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9lcnJvci1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ0EsTUFBTSxVQUFVLGVBQWUsQ0FBdUMsSUFBTztJQUN6RSxPQUFPLEtBQU0sU0FBUSxJQUFJO1FBTXJCLFlBQVksR0FBRyxJQUFXO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBTm5CLGtEQUFrRDtZQUNsRCxlQUFVLEdBQVksS0FBSyxDQUFDO1lBT3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0VBQXNFLENBQUMsQ0FBQztRQUN6RixDQUFDO1FBRUQsZ0JBQWdCO1lBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDdkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztZQUN4RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQThCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV2RCxJQUFJLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFPN0IsWUFDWSxjQUF3QyxFQUN6QyxTQUEyQixFQUMxQixlQUEwQyxFQUMxQyxVQUF5QixFQUN6QixZQUEyQjtRQUozQixtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDMUIsb0JBQWUsR0FBZixlQUFlLENBQTJCO1FBQzFDLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFYdkMsMERBQTBEO1FBQzFELGVBQVUsR0FBRyxLQUFLLENBQUM7SUFXaEIsQ0FBQztJQUVKLHlFQUF5RTtJQUN6RSxnQkFBZ0I7UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQTJCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRixNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUM7UUFFakUsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uL2Vycm9yL2Vycm9yLXN0YXRlLW1hdGNoZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25zdHJ1Y3RvciwgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yJztcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuVXBkYXRlRXJyb3JTdGF0ZSB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBpbiBhbiBlcnJvciBzdGF0ZS4gKi9cbiAgICBlcnJvclN0YXRlOiBib29sZWFuO1xuICAgIC8qKiBBbiBvYmplY3QgdXNlZCB0byBjb250cm9sIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICAgIGVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcjtcbiAgICAvKiogVXBkYXRlcyB0aGUgZXJyb3Igc3RhdGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGVycm9yIHN0YXRlIG1hdGNoZXIuICovXG4gICAgdXBkYXRlRXJyb3JTdGF0ZSgpOiB2b2lkO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IHR5cGUgQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgPSBDb25zdHJ1Y3RvcjxDYW5VcGRhdGVFcnJvclN0YXRlPjtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFzRXJyb3JTdGF0ZSB7XG4gICAgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBudWxsO1xuICAgIHBhcmVudEZvcm06IE5nRm9ybSB8IG51bGw7XG4gICAgZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcjtcblxuICAgIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbDtcbiAgICBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD47XG59XG5cbi8qKlxuICogTWl4aW4gdG8gYXVnbWVudCBhIGRpcmVjdGl2ZSB3aXRoIHVwZGF0ZUVycm9yU3RhdGUgbWV0aG9kLlxuICogRm9yIGNvbXBvbmVudCB3aXRoIGBlcnJvclN0YXRlYCBhbmQgbmVlZCB0byB1cGRhdGUgYGVycm9yU3RhdGVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWl4aW5FcnJvclN0YXRlPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPEhhc0Vycm9yU3RhdGU+PihiYXNlOiBUKTogQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgJiBUO1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRXJyb3JTdGF0ZTxUIGV4dGVuZHMgQ29uc3RydWN0b3I8SGFzRXJyb3JTdGF0ZT4+KGJhc2U6IFQpOiBDYW5VcGRhdGVFcnJvclN0YXRlQ3RvciAmIFQge1xuICAgIHJldHVybiBjbGFzcyBleHRlbmRzIGJhc2Uge1xuICAgICAgICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGluIGFuIGVycm9yIHN0YXRlLiAqL1xuICAgICAgICBlcnJvclN0YXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAgICAgZXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgICAgICBzdXBlciguLi5hcmdzKTtcblxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdtaXhpbkVycm9yU3RhdGUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBkZWxldGVkIGluIG5leHQgbWFqb3IgcmVsZWFzZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlRXJyb3JTdGF0ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZFN0YXRlID0gdGhpcy5lcnJvclN0YXRlO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnRGb3JtR3JvdXAgfHwgdGhpcy5wYXJlbnRGb3JtO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlciA9IHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXIgfHwgdGhpcy5kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2wgPyAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2wpIDogbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IG5ld1N0YXRlID0gbWF0Y2hlci5pc0Vycm9yU3RhdGUoY29udHJvbCwgcGFyZW50KTtcblxuICAgICAgICAgICAgaWYgKG5ld1N0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8qKlxuICogQ2xhc3MgdGhhdCB0cmFja3MgdGhlIGVycm9yIHN0YXRlIG9mIGEgY29tcG9uZW50LlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgS2JxRXJyb3JTdGF0ZVRyYWNrZXIgaW1wbGVtZW50cyBDYW5VcGRhdGVFcnJvclN0YXRlIHtcbiAgICAvKiogV2hldGhlciB0aGUgdHJhY2tlciBpcyBjdXJyZW50bHkgaW4gYW4gZXJyb3Igc3RhdGUuICovXG4gICAgZXJyb3JTdGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIFVzZXItZGVmaW5lZCBtYXRjaGVyIGZvciB0aGUgZXJyb3Igc3RhdGUuICovXG4gICAgZXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGVmYXVsdE1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyIHwgbnVsbCxcbiAgICAgICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIHByaXZhdGUgcGFyZW50Rm9ybTogTmdGb3JtIHwgbnVsbCxcbiAgICAgICAgcHJpdmF0ZSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD5cbiAgICApIHt9XG5cbiAgICAvKiogVXBkYXRlcyB0aGUgZXJyb3Igc3RhdGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGVycm9yIHN0YXRlIG1hdGNoZXIuICovXG4gICAgdXBkYXRlRXJyb3JTdGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLmVycm9yU3RhdGU7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50Rm9ybUdyb3VwIHx8IHRoaXMucGFyZW50Rm9ybTtcbiAgICAgICAgY29uc3QgbWF0Y2hlciA9IHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXIgfHwgdGhpcy5kZWZhdWx0TWF0Y2hlcjtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmdDb250cm9sID8gKHRoaXMubmdDb250cm9sLmNvbnRyb2wgYXMgQWJzdHJhY3RDb250cm9sKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gbWF0Y2hlcj8uaXNFcnJvclN0YXRlKGNvbnRyb2wsIHBhcmVudCkgPz8gZmFsc2U7XG5cbiAgICAgICAgaWYgKG5ld1N0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5lcnJvclN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9lcnJvci1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ0EsTUFBTSxVQUFVLGVBQWUsQ0FBdUMsSUFBTztJQUN6RSxPQUFPLEtBQU0sU0FBUSxJQUFJO1FBTXJCLFlBQVksR0FBRyxJQUFXO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBTm5CLGtEQUFrRDtZQUNsRCxlQUFVLEdBQVksS0FBSyxDQUFDO1lBT3hCLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLHNFQUFzRSxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELGdCQUFnQjtZQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUM7WUFDeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUE4QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdkYsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFdkQsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO2dCQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdCLENBQUM7UUFDTCxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBTzdCLFlBQ1ksY0FBd0MsRUFDekMsU0FBMkIsRUFDMUIsZUFBMEMsRUFDMUMsVUFBeUIsRUFDekIsWUFBMkI7UUFKM0IsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBWHZDLDBEQUEwRDtRQUMxRCxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBV2hCLENBQUM7SUFFSix5RUFBeUU7SUFDekUsZ0JBQWdCO1FBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUEyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEYsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDO1FBRWpFLElBQUksUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0NvbnRyb2wsIE5nRm9ybSwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICcuLi9lcnJvci9lcnJvci1zdGF0ZS1tYXRjaGVyJztcbmltcG9ydCB7IEFic3RyYWN0Q29uc3RydWN0b3IsIENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvcic7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgaW50ZXJmYWNlIENhblVwZGF0ZUVycm9yU3RhdGUge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgaW4gYW4gZXJyb3Igc3RhdGUuICovXG4gICAgZXJyb3JTdGF0ZTogYm9vbGVhbjtcbiAgICAvKiogQW4gb2JqZWN0IHVzZWQgdG8gY29udHJvbCB0aGUgZXJyb3Igc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgICBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG4gICAgLyoqIFVwZGF0ZXMgdGhlIGVycm9yIHN0YXRlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBlcnJvciBzdGF0ZSBtYXRjaGVyLiAqL1xuICAgIHVwZGF0ZUVycm9yU3RhdGUoKTogdm9pZDtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCB0eXBlIENhblVwZGF0ZUVycm9yU3RhdGVDdG9yID0gQ29uc3RydWN0b3I8Q2FuVXBkYXRlRXJyb3JTdGF0ZT47XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgaW50ZXJmYWNlIEhhc0Vycm9yU3RhdGUge1xuICAgIHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlIHwgbnVsbDtcbiAgICBwYXJlbnRGb3JtOiBOZ0Zvcm0gfCBudWxsO1xuICAgIGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgICBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGw7XG4gICAgc3RhdGVDaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+O1xufVxuXG4vKipcbiAqIE1peGluIHRvIGF1Z21lbnQgYSBkaXJlY3RpdmUgd2l0aCB1cGRhdGVFcnJvclN0YXRlIG1ldGhvZC5cbiAqIEZvciBjb21wb25lbnQgd2l0aCBgZXJyb3JTdGF0ZWAgYW5kIG5lZWQgdG8gdXBkYXRlIGBlcnJvclN0YXRlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1peGluRXJyb3JTdGF0ZTxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxIYXNFcnJvclN0YXRlPj4oYmFzZTogVCk6IENhblVwZGF0ZUVycm9yU3RhdGVDdG9yICYgVDtcbmV4cG9ydCBmdW5jdGlvbiBtaXhpbkVycm9yU3RhdGU8VCBleHRlbmRzIENvbnN0cnVjdG9yPEhhc0Vycm9yU3RhdGU+PihiYXNlOiBUKTogQ2FuVXBkYXRlRXJyb3JTdGF0ZUN0b3IgJiBUIHtcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBiYXNlIHtcbiAgICAgICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBpbiBhbiBlcnJvciBzdGF0ZS4gKi9cbiAgICAgICAgZXJyb3JTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAgIGVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcjtcblxuICAgICAgICBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICAgICAgc3VwZXIoLi4uYXJncyk7XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ21peGluRXJyb3JTdGF0ZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIGRlbGV0ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlJyk7XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVFcnJvclN0YXRlKCkge1xuICAgICAgICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLmVycm9yU3RhdGU7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudEZvcm1Hcm91cCB8fCB0aGlzLnBhcmVudEZvcm07XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVyID0gdGhpcy5lcnJvclN0YXRlTWF0Y2hlciB8fCB0aGlzLmRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbCA/ICh0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbCkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgbmV3U3RhdGUgPSBtYXRjaGVyLmlzRXJyb3JTdGF0ZShjb250cm9sLCBwYXJlbnQpO1xuXG4gICAgICAgICAgICBpZiAobmV3U3RhdGUgIT09IG9sZFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbn1cblxuLyoqXG4gKiBDbGFzcyB0aGF0IHRyYWNrcyB0aGUgZXJyb3Igc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBLYnFFcnJvclN0YXRlVHJhY2tlciBpbXBsZW1lbnRzIENhblVwZGF0ZUVycm9yU3RhdGUge1xuICAgIC8qKiBXaGV0aGVyIHRoZSB0cmFja2VyIGlzIGN1cnJlbnRseSBpbiBhbiBlcnJvciBzdGF0ZS4gKi9cbiAgICBlcnJvclN0YXRlID0gZmFsc2U7XG5cbiAgICAvKiogVXNlci1kZWZpbmVkIG1hdGNoZXIgZm9yIHRoZSBlcnJvciBzdGF0ZS4gKi9cbiAgICBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkZWZhdWx0TWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgfCBudWxsLFxuICAgICAgICBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBwcml2YXRlIHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlIHwgbnVsbCxcbiAgICAgICAgcHJpdmF0ZSBwYXJlbnRGb3JtOiBOZ0Zvcm0gfCBudWxsLFxuICAgICAgICBwcml2YXRlIHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPlxuICAgICkge31cblxuICAgIC8qKiBVcGRhdGVzIHRoZSBlcnJvciBzdGF0ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZXJyb3Igc3RhdGUgbWF0Y2hlci4gKi9cbiAgICB1cGRhdGVFcnJvclN0YXRlKCkge1xuICAgICAgICBjb25zdCBvbGRTdGF0ZSA9IHRoaXMuZXJyb3JTdGF0ZTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnRGb3JtR3JvdXAgfHwgdGhpcy5wYXJlbnRGb3JtO1xuICAgICAgICBjb25zdCBtYXRjaGVyID0gdGhpcy5lcnJvclN0YXRlTWF0Y2hlciB8fCB0aGlzLmRlZmF1bHRNYXRjaGVyO1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2wgPyAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBBYnN0cmFjdENvbnRyb2wpIDogbnVsbDtcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSBtYXRjaGVyPy5pc0Vycm9yU3RhdGUoY29udHJvbCwgcGFyZW50KSA/PyBmYWxzZTtcblxuICAgICAgICBpZiAobmV3U3RhdGUgIT09IG9sZFN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { Directive } from '@angular/core';
2
+ import { toSignal } from '@angular/core/rxjs-interop';
3
+ import { fromEvent, map, merge } from 'rxjs';
4
+ import { kbqInjectNativeElement } from '../utils';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Directive that adds a `kbq-hovered` class to an element, based on its hover state.
8
+ *
9
+ * @docs-private
10
+ */
11
+ export class KbqHover {
12
+ constructor() {
13
+ this.element = kbqInjectNativeElement();
14
+ /**
15
+ * Whether the element is hovered.
16
+ */
17
+ this.hovered = toSignal(merge(fromEvent(this.element, 'mouseenter'), fromEvent(this.element, 'mouseleave')).pipe(map(({ type }) => type === 'mouseenter')), { initialValue: false });
18
+ }
19
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: KbqHover, isStandalone: true, selector: "[kbqHover]", host: { properties: { "class.kbq-hovered": "hovered()" }, classAttribute: "kbq-hover" }, exportAs: ["kbqHover"], ngImport: i0 }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqHover, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ standalone: true,
26
+ selector: '[kbqHover]',
27
+ exportAs: 'kbqHover',
28
+ host: {
29
+ class: 'kbq-hover',
30
+ '[class.kbq-hovered]': 'hovered()'
31
+ }
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9ob3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVsRDs7OztHQUlHO0FBVUgsTUFBTSxPQUFPLFFBQVE7SUFUckI7UUFVcUIsWUFBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFFcEQ7O1dBRUc7UUFDTSxZQUFPLEdBQUcsUUFBUSxDQUN2QixLQUFLLENBQ0QsU0FBUyxDQUFhLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQ2pELFNBQVMsQ0FBYSxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUNwRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsRUFDaEQsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQzFCLENBQUM7S0FDTDtrSUFiWSxRQUFRO3NIQUFSLFFBQVE7OzRGQUFSLFFBQVE7a0JBVHBCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxXQUFXO3dCQUNsQixxQkFBcUIsRUFBRSxXQUFXO3FCQUNyQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1hcCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGticUluamVjdE5hdGl2ZUVsZW1lbnQgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgYWRkcyBhIGBrYnEtaG92ZXJlZGAgY2xhc3MgdG8gYW4gZWxlbWVudCwgYmFzZWQgb24gaXRzIGhvdmVyIHN0YXRlLlxuICpcbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFIb3Zlcl0nLFxuICAgIGV4cG9ydEFzOiAna2JxSG92ZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtaG92ZXInLFxuICAgICAgICAnW2NsYXNzLmticS1ob3ZlcmVkXSc6ICdob3ZlcmVkKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFIb3ZlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0ga2JxSW5qZWN0TmF0aXZlRWxlbWVudCgpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyBob3ZlcmVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhvdmVyZWQgPSB0b1NpZ25hbChcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbGVtZW50LCAnbW91c2VlbnRlcicpLFxuICAgICAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxlbWVudCwgJ21vdXNlbGVhdmUnKVxuICAgICAgICApLnBpcGUobWFwKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gJ21vdXNlZW50ZXInKSksXG4gICAgICAgIHsgaW5pdGlhbFZhbHVlOiBmYWxzZSB9XG4gICAgKTtcbn1cbiJdfQ==