@tolle_/tolle-ui 18.2.28 → 18.2.30

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 (279) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +5 -11
  2. package/esm2022/lib/accordion.component.mjs +4 -9
  3. package/esm2022/lib/alert-dialog-dynamic.component.mjs +5 -10
  4. package/esm2022/lib/alert-dialog.component.mjs +44 -59
  5. package/esm2022/lib/alert.component.mjs +5 -11
  6. package/esm2022/lib/aspect-ratio.component.mjs +119 -0
  7. package/esm2022/lib/attachment.component.mjs +334 -0
  8. package/esm2022/lib/avatar-fallback.component.mjs +3 -3
  9. package/esm2022/lib/avatar.component.mjs +4 -9
  10. package/esm2022/lib/badge.component.mjs +4 -9
  11. package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
  12. package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
  13. package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
  14. package/esm2022/lib/breadcrumb.component.mjs +3 -3
  15. package/esm2022/lib/bubble.component.mjs +301 -0
  16. package/esm2022/lib/button.component.mjs +5 -11
  17. package/esm2022/lib/calendar.component.mjs +5 -11
  18. package/esm2022/lib/card.component.mjs +14 -43
  19. package/esm2022/lib/carousel/carousel.component.mjs +5 -12
  20. package/esm2022/lib/chain-of-thought.component.mjs +380 -0
  21. package/esm2022/lib/chart-pie.component.mjs +386 -0
  22. package/esm2022/lib/chart.component.mjs +1146 -0
  23. package/esm2022/lib/chart.service.mjs +555 -0
  24. package/esm2022/lib/checkbox.component.mjs +5 -11
  25. package/esm2022/lib/checkpoint.component.mjs +134 -0
  26. package/esm2022/lib/collapsible.component.mjs +4 -11
  27. package/esm2022/lib/combobox.component.mjs +372 -0
  28. package/esm2022/lib/command-dialog.component.mjs +164 -0
  29. package/esm2022/lib/command.component.mjs +514 -0
  30. package/esm2022/lib/command.service.mjs +130 -0
  31. package/esm2022/lib/confirmation.component.mjs +219 -0
  32. package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
  33. package/esm2022/lib/context-menu.component.mjs +460 -0
  34. package/esm2022/lib/context-menu.service.mjs +121 -0
  35. package/esm2022/lib/context.component.mjs +377 -0
  36. package/esm2022/lib/conversation.component.mjs +442 -0
  37. package/esm2022/lib/country-selector.component.mjs +5 -11
  38. package/esm2022/lib/data-table.component.mjs +63 -12
  39. package/esm2022/lib/date-picker.component.mjs +251 -198
  40. package/esm2022/lib/date-range-picker.component.mjs +224 -116
  41. package/esm2022/lib/date-time-picker.component.mjs +506 -0
  42. package/esm2022/lib/direction.component.mjs +79 -0
  43. package/esm2022/lib/dropdown-item.component.mjs +3 -3
  44. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  45. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  46. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  47. package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
  48. package/esm2022/lib/empty-state.component.mjs +4 -9
  49. package/esm2022/lib/field.component.mjs +394 -0
  50. package/esm2022/lib/hover-card.component.mjs +6 -16
  51. package/esm2022/lib/inline-citation.component.mjs +263 -0
  52. package/esm2022/lib/input-group.component.mjs +418 -0
  53. package/esm2022/lib/input.component.mjs +5 -11
  54. package/esm2022/lib/item.component.mjs +243 -0
  55. package/esm2022/lib/kbd.component.mjs +82 -0
  56. package/esm2022/lib/label.component.mjs +4 -9
  57. package/esm2022/lib/marker.component.mjs +135 -0
  58. package/esm2022/lib/masked-input.component.mjs +5 -11
  59. package/esm2022/lib/menubar.component.mjs +683 -0
  60. package/esm2022/lib/message-scroller.component.mjs +353 -0
  61. package/esm2022/lib/message-scroller.service.mjs +157 -0
  62. package/esm2022/lib/message.component.mjs +228 -0
  63. package/esm2022/lib/model-selector.component.mjs +310 -0
  64. package/esm2022/lib/multi-select.component.mjs +155 -72
  65. package/esm2022/lib/native-select.component.mjs +201 -0
  66. package/esm2022/lib/navigation-menu.component.mjs +642 -0
  67. package/esm2022/lib/otp-group.component.mjs +3 -3
  68. package/esm2022/lib/otp-slot.component.mjs +4 -9
  69. package/esm2022/lib/otp.component.mjs +5 -11
  70. package/esm2022/lib/pagination.component.mjs +7 -10
  71. package/esm2022/lib/plan.component.mjs +335 -0
  72. package/esm2022/lib/popover-content.component.mjs +4 -9
  73. package/esm2022/lib/popover.component.mjs +15 -13
  74. package/esm2022/lib/progress.component.mjs +4 -9
  75. package/esm2022/lib/prompt-input.component.mjs +526 -0
  76. package/esm2022/lib/queue.component.mjs +280 -0
  77. package/esm2022/lib/radio-group.component.mjs +6 -13
  78. package/esm2022/lib/radio-item.component.mjs +4 -9
  79. package/esm2022/lib/range-calendar.component.mjs +5 -11
  80. package/esm2022/lib/reasoning.component.mjs +335 -0
  81. package/esm2022/lib/resizable.component.mjs +219 -0
  82. package/esm2022/lib/segment.component.mjs +17 -7
  83. package/esm2022/lib/select-group.component.mjs +4 -8
  84. package/esm2022/lib/select-item.component.mjs +4 -9
  85. package/esm2022/lib/select-separator.component.mjs +4 -8
  86. package/esm2022/lib/select.component.mjs +133 -49
  87. package/esm2022/lib/separator.component.mjs +4 -9
  88. package/esm2022/lib/sheet.component.mjs +38 -56
  89. package/esm2022/lib/shimmer.component.mjs +84 -0
  90. package/esm2022/lib/sidebar.component.mjs +11 -1
  91. package/esm2022/lib/skeleton.component.mjs +4 -9
  92. package/esm2022/lib/sources.component.mjs +452 -0
  93. package/esm2022/lib/spinner.component.mjs +68 -0
  94. package/esm2022/lib/suggestion.component.mjs +207 -0
  95. package/esm2022/lib/switch.component.mjs +5 -11
  96. package/esm2022/lib/table.component.mjs +213 -0
  97. package/esm2022/lib/tabs.component.mjs +4 -11
  98. package/esm2022/lib/tag-input.component.mjs +5 -11
  99. package/esm2022/lib/task.component.mjs +359 -0
  100. package/esm2022/lib/textarea.component.mjs +5 -11
  101. package/esm2022/lib/theme.service.mjs +17 -6
  102. package/esm2022/lib/time-picker.component.mjs +923 -0
  103. package/esm2022/lib/toast.service.mjs +3 -2
  104. package/esm2022/lib/toaster.component.mjs +76 -39
  105. package/esm2022/lib/toggle-group.component.mjs +4 -9
  106. package/esm2022/lib/toggle.component.mjs +5 -11
  107. package/esm2022/lib/tool.component.mjs +462 -0
  108. package/esm2022/lib/typography.component.mjs +83 -0
  109. package/esm2022/lib/utils/color.mjs +140 -19
  110. package/esm2022/public-api.mjs +61 -1
  111. package/fesm2022/tolle-ui.mjs +16457 -1024
  112. package/fesm2022/tolle-ui.mjs.map +1 -1
  113. package/lib/alert-dialog.component.d.ts +10 -2
  114. package/lib/aspect-ratio.component.d.ts +20 -0
  115. package/lib/attachment.component.d.ts +101 -0
  116. package/lib/bubble.component.d.ts +112 -0
  117. package/lib/chain-of-thought.component.d.ts +166 -0
  118. package/lib/chart-pie.component.d.ts +108 -0
  119. package/lib/chart.component.d.ts +369 -0
  120. package/lib/chart.service.d.ts +222 -0
  121. package/lib/checkpoint.component.d.ts +51 -0
  122. package/lib/combobox.component.d.ts +90 -0
  123. package/lib/command-dialog.component.d.ts +53 -0
  124. package/lib/command.component.d.ts +189 -0
  125. package/lib/command.service.d.ts +67 -0
  126. package/lib/confirmation.component.d.ts +70 -0
  127. package/lib/context-menu-trigger.directive.d.ts +12 -0
  128. package/lib/context-menu.component.d.ts +41 -0
  129. package/lib/context-menu.service.d.ts +38 -0
  130. package/lib/context.component.d.ts +134 -0
  131. package/lib/conversation.component.d.ts +165 -0
  132. package/lib/data-table.component.d.ts +27 -1
  133. package/lib/date-picker.component.d.ts +72 -11
  134. package/lib/date-range-picker.component.d.ts +63 -6
  135. package/lib/date-time-picker.component.d.ts +119 -0
  136. package/lib/direction.component.d.ts +45 -0
  137. package/lib/field.component.d.ts +201 -0
  138. package/lib/inline-citation.component.d.ts +103 -0
  139. package/lib/input-group.component.d.ts +150 -0
  140. package/lib/item.component.d.ts +154 -0
  141. package/lib/kbd.component.d.ts +50 -0
  142. package/lib/marker.component.d.ts +58 -0
  143. package/lib/menubar.component.d.ts +247 -0
  144. package/lib/message-scroller.component.d.ts +159 -0
  145. package/lib/message-scroller.service.d.ts +73 -0
  146. package/lib/message.component.d.ts +128 -0
  147. package/lib/model-selector.component.d.ts +103 -0
  148. package/lib/multi-select.component.d.ts +66 -14
  149. package/lib/native-select.component.d.ts +57 -0
  150. package/lib/navigation-menu.component.d.ts +230 -0
  151. package/lib/plan.component.d.ts +120 -0
  152. package/lib/popover.component.d.ts +1 -0
  153. package/lib/prompt-input.component.d.ts +194 -0
  154. package/lib/queue.component.d.ts +106 -0
  155. package/lib/reasoning.component.d.ts +127 -0
  156. package/lib/resizable.component.d.ts +43 -0
  157. package/lib/segment.component.d.ts +13 -3
  158. package/lib/select.component.d.ts +37 -5
  159. package/lib/sheet.component.d.ts +3 -0
  160. package/lib/shimmer.component.d.ts +38 -0
  161. package/lib/sidebar.component.d.ts +2 -0
  162. package/lib/sources.component.d.ts +156 -0
  163. package/lib/spinner.component.d.ts +29 -0
  164. package/lib/suggestion.component.d.ts +96 -0
  165. package/lib/table.component.d.ts +106 -0
  166. package/lib/task.component.d.ts +151 -0
  167. package/lib/theme.service.d.ts +9 -0
  168. package/lib/time-picker.component.d.ts +243 -0
  169. package/lib/toast.service.d.ts +3 -1
  170. package/lib/toaster.component.d.ts +26 -9
  171. package/lib/tool.component.d.ts +158 -0
  172. package/lib/typography.component.d.ts +32 -0
  173. package/lib/utils/color.d.ts +19 -5
  174. package/package.json +1 -1
  175. package/public-api.d.ts +50 -0
  176. package/registry/docs-content.json +8497 -1553
  177. package/registry/llms-full.txt +2679 -318
  178. package/registry/llms.txt +43 -4
  179. package/registry/manifest.json +9093 -1739
  180. package/registry/r/accordion-item.json +1 -1
  181. package/registry/r/accordion.json +1 -1
  182. package/registry/r/alert-dialog-dynamic.json +1 -1
  183. package/registry/r/alert-dialog.json +1 -1
  184. package/registry/r/alert.json +1 -1
  185. package/registry/r/attachment.json +23 -0
  186. package/registry/r/avatar-fallback.json +1 -1
  187. package/registry/r/avatar.json +1 -1
  188. package/registry/r/badge.json +1 -1
  189. package/registry/r/breadcrumb-item.json +1 -1
  190. package/registry/r/breadcrumb-link.json +1 -1
  191. package/registry/r/breadcrumb-separator.json +1 -1
  192. package/registry/r/breadcrumb.json +1 -1
  193. package/registry/r/bubble.json +23 -0
  194. package/registry/r/button.json +1 -1
  195. package/registry/r/calendar.json +1 -1
  196. package/registry/r/card.json +1 -1
  197. package/registry/r/carousel.json +1 -1
  198. package/registry/r/chain-of-thought.json +23 -0
  199. package/registry/r/chart-pie.json +30 -0
  200. package/registry/r/chart.json +28 -0
  201. package/registry/r/checkbox.json +1 -1
  202. package/registry/r/checkpoint.json +23 -0
  203. package/registry/r/collapsible.json +1 -1
  204. package/registry/r/combobox.json +31 -0
  205. package/registry/r/command-dialog.json +21 -0
  206. package/registry/r/command.json +26 -0
  207. package/registry/r/confirmation.json +23 -0
  208. package/registry/r/context.json +26 -0
  209. package/registry/r/conversation.json +23 -0
  210. package/registry/r/country-selector.json +1 -1
  211. package/registry/r/data-table.json +1 -1
  212. package/registry/r/date-picker.json +4 -4
  213. package/registry/r/date-range-picker.json +3 -3
  214. package/registry/r/date-time-picker.json +28 -0
  215. package/registry/r/direction.json +16 -0
  216. package/registry/r/dropdown-item.json +1 -1
  217. package/registry/r/dropdown-label.json +1 -1
  218. package/registry/r/dropdown-menu.json +1 -1
  219. package/registry/r/dropdown-separator.json +1 -1
  220. package/registry/r/dropdown-trigger.json +1 -1
  221. package/registry/r/empty-state.json +1 -1
  222. package/registry/r/field.json +23 -0
  223. package/registry/r/hover-card.json +1 -1
  224. package/registry/r/inline-citation.json +26 -0
  225. package/registry/r/input-group.json +23 -0
  226. package/registry/r/input.json +1 -1
  227. package/registry/r/item.json +23 -0
  228. package/registry/r/kbd.json +23 -0
  229. package/registry/r/label.json +1 -1
  230. package/registry/r/marker.json +23 -0
  231. package/registry/r/masked-input.json +1 -1
  232. package/registry/r/menubar.json +24 -0
  233. package/registry/r/message-scroller.json +26 -0
  234. package/registry/r/message.json +23 -0
  235. package/registry/r/model-selector.json +32 -0
  236. package/registry/r/multi-select.json +2 -2
  237. package/registry/r/native-select.json +23 -0
  238. package/registry/r/navigation-menu.json +24 -0
  239. package/registry/r/otp-group.json +1 -1
  240. package/registry/r/otp-slot.json +1 -1
  241. package/registry/r/otp.json +1 -1
  242. package/registry/r/pagination.json +3 -2
  243. package/registry/r/plan.json +23 -0
  244. package/registry/r/popover-content.json +1 -1
  245. package/registry/r/popover.json +1 -1
  246. package/registry/r/progress.json +1 -1
  247. package/registry/r/prompt-input.json +23 -0
  248. package/registry/r/queue.json +23 -0
  249. package/registry/r/radio-group.json +1 -1
  250. package/registry/r/radio-item.json +1 -1
  251. package/registry/r/range-calendar.json +1 -1
  252. package/registry/r/reasoning.json +23 -0
  253. package/registry/r/segment.json +1 -1
  254. package/registry/r/select-group.json +1 -1
  255. package/registry/r/select-item.json +1 -1
  256. package/registry/r/select-separator.json +1 -1
  257. package/registry/r/select.json +4 -3
  258. package/registry/r/separator.json +1 -1
  259. package/registry/r/sheet.json +1 -1
  260. package/registry/r/shimmer.json +23 -0
  261. package/registry/r/sidebar.json +1 -1
  262. package/registry/r/skeleton.json +1 -1
  263. package/registry/r/sources.json +23 -0
  264. package/registry/r/spinner.json +23 -0
  265. package/registry/r/suggestion.json +23 -0
  266. package/registry/r/switch.json +1 -1
  267. package/registry/r/table.json +21 -0
  268. package/registry/r/tabs.json +1 -1
  269. package/registry/r/tag-input.json +1 -1
  270. package/registry/r/task.json +23 -0
  271. package/registry/r/textarea.json +1 -1
  272. package/registry/r/time-picker.json +24 -0
  273. package/registry/r/toaster.json +2 -2
  274. package/registry/r/toggle-group.json +1 -1
  275. package/registry/r/toggle.json +1 -1
  276. package/registry/r/tool.json +23 -0
  277. package/registry/r/typography.json +23 -0
  278. package/registry/registry.json +915 -22
  279. package/theme.css +109 -8
@@ -62,20 +62,13 @@ export class TabsComponent {
62
62
  return cn("w-full", this.class);
63
63
  }
64
64
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TabsComponent, isStandalone: true, selector: "tolle-tabs", inputs: { defaultValue: "defaultValue", value: "value", class: "class" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class": "computedClass" } }, providers: [TabsService], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
65
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TabsComponent, isStandalone: true, selector: "tolle-tabs", inputs: { defaultValue: "defaultValue", value: "value", class: "class" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class": "computedClass" } }, providers: [TabsService], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
66
66
  }
67
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabsComponent, decorators: [{
68
68
  type: Component,
69
- args: [{
70
- selector: 'tolle-tabs',
71
- standalone: true,
72
- imports: [CommonModule],
73
- providers: [TabsService],
74
- template: `<ng-content></ng-content>`,
75
- host: {
69
+ args: [{ selector: 'tolle-tabs', standalone: true, imports: [CommonModule], providers: [TabsService], template: `<ng-content></ng-content>`, host: {
76
70
  '[class]': 'computedClass'
77
- }
78
- }]
71
+ }, styles: [":host{display:block}\n"] }]
79
72
  }], propDecorators: { defaultValue: [{
80
73
  type: Input
81
74
  }], value: [{
@@ -235,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
235
228
  }], class: [{
236
229
  type: Input
237
230
  }] } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3RhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFFdkMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQy9CLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSw0RkFBNEY7WUFDckcsU0FBUyxFQUFFLG1IQUFtSDtTQUMvSDtLQUNGO0lBQ0QsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtDQUN4QyxDQUFDLENBQUM7QUFJSCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FDN0IsaVRBQWlULEVBQ2pUO0lBQ0UsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLDRIQUE0SDtZQUNySSxTQUFTLEVBQUUsOElBQThJO1NBQzFKO0tBQ0Y7SUFDRCxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO0NBQ3hDLENBQ0YsQ0FBQztBQUVGLE1BQ00sV0FBVztJQUNMLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUNwRSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFB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LE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sRUFBRSxDQUNMLGlJQUFpSSxFQUNqSSxJQUFJLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO3dHQWxCUSxvQkFBb0I7NEZBQXBCLG9CQUFvQiwyV0FWbkIsdURBQXVELDJEQUR2RCxZQUFZOzs0RkFXYixvQkFBb0I7a0JBZGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFLHVEQUF1RDtvQkFDakUsSUFBSSxFQUFFO3dCQUNGLE1BQU0sRUFBRSxVQUFVO3dCQUNsQixXQUFXLEVBQUUsbUJBQW1CO3dCQUNoQyx3QkFBd0IsRUFBRSxjQUFjO3dCQUN4QyxpQkFBaUIsRUFBRSxHQUFHO3dCQUN0QixtQkFBbUIsRUFBRSxrQ0FBa0M7d0JBQ3ZELFNBQVMsRUFBRSxlQUFlO3FCQUM3QjtpQkFDSjt3REFFOEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBpbmplY3QsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuY29uc3QgdGFic0xpc3RWYXJpYW50cyA9IGN2YSgnJywge1xuICB2YXJpYW50czoge1xuICAgIHZhcmlhbnQ6IHtcbiAgICAgIGRlZmF1bHQ6ICdpbmxpbmUtZmxleCBoLTEwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGJnLW11dGVkIHAtMSB0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgdW5kZXJsaW5lOiAnZmxleCBoLTEwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGJvcmRlci1iIGJvcmRlci1ib3JkZXIgdy1mdWxsIGJnLXRyYW5zcGFyZW50IHAtMCB0ZXh0LW11dGVkLWZvcmVncm91bmQgZ2FwLTgnLFxuICAgIH0sXG4gIH0sXG4gIGRlZmF1bHRWYXJpYW50czogeyB2YXJpYW50OiAnZGVmYXVsdCcgfSxcbn0pO1xuXG5leHBvcnQgdHlwZSBUYWJzTGlzdFByb3BzID0gVmFyaWFudFByb3BzPHR5cGVvZiB0YWJzTGlzdFZhcmlhbnRzPjtcblxuY29uc3QgdGFic1RyaWdnZXJWYXJpYW50cyA9IGN2YShcbiAgJ2lubGluZS1mbGV4IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1hbGwgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLWRlZmF1bHQgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiAncm91bmRlZC1zbSBweC0zIHB5LTEuNSBkYXRhLVtzdGF0ZT1hY3RpdmVdOmJnLWJhY2tncm91bmQgZGF0YS1bc3RhdGU9YWN0aXZlXTp0ZXh0LWZvcmVncm91bmQgZGF0YS1bc3RhdGU9YWN0aXZlXTpzaGFkb3ctc20nLFxuICAgICAgICB1bmRlcmxpbmU6ICdweS0yIGJvcmRlci1iLTIgYm9yZGVyLXRyYW5zcGFyZW50IGRhdGEtW3N0YXRlPWFjdGl2ZV06Ym9yZGVyLXByaW1hcnkgZGF0YS1bc3RhdGU9YWN0aXZlXTp0ZXh0LWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kLzgwIC1tYi1bMXB4XScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7IHZhcmlhbnQ6ICdkZWZhdWx0JyB9LFxuICB9XG4pO1xuXG5ASW5qZWN0YWJsZSgpXG5jbGFzcyBUYWJzU2VydmljZSB7XG4gICAgcHJpdmF0ZSBhY3RpdmVUYWJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgICBhY3RpdmVUYWIkID0gdGhpcy5hY3RpdmVUYWJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgc2V0QWN0aXZlVGFiKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVUYWJTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldEFjdGl2ZVRhYigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVGFiU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS10YWJzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1RhYnNTZXJ2aWNlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzc10nOiAnY29tcHV0ZWRDbGFzcydcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYnNDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgICBASW5wdXQoKSB2YWx1ZT86IHN0cmluZztcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgICBwcml2YXRlIHRhYnNTZXJ2aWNlID0gaW5qZWN0KFRhYnNTZXJ2aWNlKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50YWJzU2VydmljZS5zZXRBY3RpdmVUYWIodGhpcy52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGFic1NlcnZpY2Uuc2V0QWN0aXZlVGFiKHRoaXMuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFic1NlcnZpY2UuYWN0aXZlVGFiJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICAgIGlmICh2YWwgJiYgdmFsICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBjbihcInctZnVsbFwiLCB0aGlzLmNsYXNzKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtdGFicy1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAncm9sZSc6ICd0YWJsaXN0JyxcbiAgICAgICAgJ1tjbGFzc10nOiAnY29tcHV0ZWRDbGFzcydcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYnNMaXN0Q29tcG9uZW50IHtcbiAgICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgdGFicyBsaXN0IHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIC8qKiBWaXN1YWwgc3R5bGUgb2YgdGhlIHRhYiBsaXN0LiBAZGVmYXVsdCAnZGVmYXVsdCcgKi9cbiAgICBASW5wdXQoKSB2YXJpYW50OiBUYWJzTGlzdFByb3BzWyd2YXJpYW50J10gPSAnZGVmYXVsdCc7XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGNuKHRhYnNMaXN0VmFyaWFudHMoeyB2YXJpYW50OiB0aGlzLnZhcmlhbnQgfSksIHRoaXMuY2xhc3MpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS10YWJzLXRyaWdnZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7XG4gICAgICAgICdyb2xlJzogJ3RhYicsXG4gICAgICAgICdbYXR0ci5hcmlhLXNlbGVjdGVkXSc6ICdpc0FjdGl2ZScsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnaXNBY3RpdmUgPyAwIDogLTEnLFxuICAgICAgICAnW2F0dHIuaWRdJzogXCIndGFiLScrdmFsdWVcIixcbiAgICAgICAgJ1thdHRyLmFyaWEtY29udHJvbHNdJzogXCIndGFicGFuZWwtJyt2YWx1ZVwiLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnaXNBY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJpbmFjdGl2ZVwiJyxcbiAgICAgICAgJyhjbGljayknOiAnb25BY3RpdmF0ZSgpJyxcbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KScsXG4gICAgICAgICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzVHJpZ2dlckNvbXBvbmVudCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdmFsdWUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gICAgcHJpdmF0ZSB0YWJzU2VydmljZSA9IGluamVjdChUYWJzU2VydmljZSk7XG4gICAgcHJpdmF0ZSB0YWJzTGlzdCA9IGluamVjdChUYWJzTGlzdENvbXBvbmVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy50YWJzU2VydmljZS5hY3RpdmVUYWIkLnN1YnNjcmliZShhY3RpdmUgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGFjdGl2ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25BY3RpdmF0ZSgpIHtcbiAgICAgICAgdGhpcy50YWJzU2VydmljZS5zZXRBY3RpdmVUYWIodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBbJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0hvbWUnLCAnRW5kJ107XG4gICAgICAgIGlmICgha2V5cy5pbmNsdWRlcyhldmVudC5rZXkpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgbGlzdCA9IGhvc3QuY2xvc2VzdCgnW3JvbGU9dGFibGlzdF0nKTtcbiAgICAgICAgaWYgKCFsaXN0KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgdHJpZ2dlcnMgPSBBcnJheS5mcm9tKGxpc3QucXVlcnlTZWxlY3RvckFsbCgndG9sbGUtdGFicy10cmlnZ2VyJykpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgIGlmICghdHJpZ2dlcnMubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdHJpZ2dlcnMuaW5kZXhPZihob3N0KTtcbiAgICAgICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleDtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggPD0gMCA/IHRyaWdnZXJzLmxlbmd0aCAtIDEgOiBjdXJyZW50SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgbmV4dEluZGV4ID0gY3VycmVudEluZGV4ID49IHRyaWdnZXJzLmxlbmd0aCAtIDEgPyAwIDogY3VycmVudEluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdFbmQnOlxuICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IHRyaWdnZXJzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXQgPSB0cmlnZ2Vyc1tuZXh0SW5kZXhdO1xuICAgICAgICBpZiAoIXRhcmdldCkgcmV0dXJuO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGFyZ2V0LmlkLnJlcGxhY2UoL150YWItLywgJycpO1xuICAgICAgICBpZiAodGFyZ2V0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGFic1NlcnZpY2Uuc2V0QWN0aXZlVGFiKHRhcmdldFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgY29uc3QgdmFyaWFudCA9IHRoaXMudGFic0xpc3Q/LnZhcmlhbnQgPT09ICd1bmRlcmxpbmUnID8gJ3VuZGVybGluZScgOiAnZGVmYXVsdCc7XG4gICAgICAgIHJldHVybiBjbih0YWJzVHJpZ2dlclZhcmlhbnRzKHsgdmFyaWFudCB9KSwgdGhpcy5jbGFzcyk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLXRhYnMtY29udGVudCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxkaXYgKm5nSWY9XCJpc0FjdGl2ZVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5gLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ3JvbGUnOiAndGFicGFuZWwnLFxuICAgICAgICAnW2F0dHIuaWRdJzogXCIndGFicGFuZWwtJyt2YWx1ZVwiLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6IFwiJ3RhYi0nK3ZhbHVlXCIsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnMCcsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdpc0FjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCInLFxuICAgICAgICAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGFic0NvbnRlbnRDb21wb25lbnQge1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHZhbHVlITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgdGFic1NlcnZpY2UgPSBpbmplY3QoVGFic1NlcnZpY2UpO1xuICAgIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy50YWJzU2VydmljZS5hY3RpdmVUYWIkLnN1YnNjcmliZShhY3RpdmUgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGFjdGl2ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBjbihcbiAgICAgICAgICAgIFwibXQtMiByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMlwiLFxuICAgICAgICAgICAgdGhpcy5jbGFzc1xuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3RhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFFdkMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQy9CLFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSw0RkFBNEY7WUFDckcsU0FBUyxFQUFFLG1IQUFtSDtTQUMvSDtLQUNGO0lBQ0QsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtDQUN4QyxDQUFDLENBQUM7QUFJSCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FDN0IsaVRBQWlULEVBQ2pUO0lBQ0UsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLDRIQUE0SDtZQUNySSxTQUFTLEVBQUUsOElBQThJO1NBQzFKO0tBQ0Y7SUFDRCxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO0NBQ3hDLENBQ0YsQ0FBQztBQUVGLE1BQ00sV0FBVztJQUNMLGdCQUFnQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUNwRSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFB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LE9BQU8sRUFBRSxDQUNMLGlJQUFpSSxFQUNqSSxJQUFJLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO3dHQWxCUSxvQkFBb0I7NEZBQXBCLG9CQUFvQiwyV0FWbkIsdURBQXVELDJEQUR2RCxZQUFZOzs0RkFXYixvQkFBb0I7a0JBZGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFLHVEQUF1RDtvQkFDakUsSUFBSSxFQUFFO3dCQUNGLE1BQU0sRUFBRSxVQUFVO3dCQUNsQixXQUFXLEVBQUUsbUJBQW1CO3dCQUNoQyx3QkFBd0IsRUFBRSxjQUFjO3dCQUN4QyxpQkFBaUIsRUFBRSxHQUFHO3dCQUN0QixtQkFBbUIsRUFBRSxrQ0FBa0M7d0JBQ3ZELFNBQVMsRUFBRSxlQUFlO3FCQUM3QjtpQkFDSjt3REFFOEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBpbmplY3QsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuY29uc3QgdGFic0xpc3RWYXJpYW50cyA9IGN2YSgnJywge1xuICB2YXJpYW50czoge1xuICAgIHZhcmlhbnQ6IHtcbiAgICAgIGRlZmF1bHQ6ICdpbmxpbmUtZmxleCBoLTEwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGJnLW11dGVkIHAtMSB0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgdW5kZXJsaW5lOiAnZmxleCBoLTEwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGJvcmRlci1iIGJvcmRlci1ib3JkZXIgdy1mdWxsIGJnLXRyYW5zcGFyZW50IHAtMCB0ZXh0LW11dGVkLWZvcmVncm91bmQgZ2FwLTgnLFxuICAgIH0sXG4gIH0sXG4gIGRlZmF1bHRWYXJpYW50czogeyB2YXJpYW50OiAnZGVmYXVsdCcgfSxcbn0pO1xuXG5leHBvcnQgdHlwZSBUYWJzTGlzdFByb3BzID0gVmFyaWFudFByb3BzPHR5cGVvZiB0YWJzTGlzdFZhcmlhbnRzPjtcblxuY29uc3QgdGFic1RyaWdnZXJWYXJpYW50cyA9IGN2YShcbiAgJ2lubGluZS1mbGV4IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1hbGwgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLWRlZmF1bHQgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiAncm91bmRlZC1zbSBweC0zIHB5LTEuNSBkYXRhLVtzdGF0ZT1hY3RpdmVdOmJnLWJhY2tncm91bmQgZGF0YS1bc3RhdGU9YWN0aXZlXTp0ZXh0LWZvcmVncm91bmQgZGF0YS1bc3RhdGU9YWN0aXZlXTpzaGFkb3ctc20nLFxuICAgICAgICB1bmRlcmxpbmU6ICdweS0yIGJvcmRlci1iLTIgYm9yZGVyLXRyYW5zcGFyZW50IGRhdGEtW3N0YXRlPWFjdGl2ZV06Ym9yZGVyLXByaW1hcnkgZGF0YS1bc3RhdGU9YWN0aXZlXTp0ZXh0LWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kLzgwIC1tYi1bMXB4XScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7IHZhcmlhbnQ6ICdkZWZhdWx0JyB9LFxuICB9XG4pO1xuXG5ASW5qZWN0YWJsZSgpXG5jbGFzcyBUYWJzU2VydmljZSB7XG4gICAgcHJpdmF0ZSBhY3RpdmVUYWJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgICBhY3RpdmVUYWIkID0gdGhpcy5hY3RpdmVUYWJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgc2V0QWN0aXZlVGFiKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVUYWJTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldEFjdGl2ZVRhYigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVGFiU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS10YWJzJyxcbiAgICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbVGFic1NlcnZpY2VdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGFic0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHZhbHVlPzogc3RyaW5nO1xuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgdGFic1NlcnZpY2UgPSBpbmplY3QoVGFic1NlcnZpY2UpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnRhYnNTZXJ2aWNlLnNldEFjdGl2ZVRhYih0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50YWJzU2VydmljZS5zZXRBY3RpdmVUYWIodGhpcy5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YWJzU2VydmljZS5hY3RpdmVUYWIkLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbCAmJiB2YWwgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGNuKFwidy1mdWxsXCIsIHRoaXMuY2xhc3MpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS10YWJzLWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7XG4gICAgICAgICdyb2xlJzogJ3RhYmxpc3QnLFxuICAgICAgICAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGFic0xpc3RDb21wb25lbnQge1xuICAgIC8qKiBFeHRyYSBUYWlsd2luZCBjbGFzc2VzIG1lcmdlZCBvbnRvIHRoZSB0YWJzIGxpc3QgdmlhIGBjbigpYCAobGFzdC13aW5zKS4gKi9cbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gICAgLyoqIFZpc3VhbCBzdHlsZSBvZiB0aGUgdGFiIGxpc3QuIEBkZWZhdWx0ICdkZWZhdWx0JyAqL1xuICAgIEBJbnB1dCgpIHZhcmlhbnQ6IFRhYnNMaXN0UHJvcHNbJ3ZhcmlhbnQnXSA9ICdkZWZhdWx0JztcblxuICAgIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gY24odGFic0xpc3RWYXJpYW50cyh7IHZhcmlhbnQ6IHRoaXMudmFyaWFudCB9KSwgdGhpcy5jbGFzcyk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLXRhYnMtdHJpZ2dlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ3JvbGUnOiAndGFiJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtc2VsZWN0ZWRdJzogJ2lzQWN0aXZlJyxcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICdpc0FjdGl2ZSA/IDAgOiAtMScsXG4gICAgICAgICdbYXR0ci5pZF0nOiBcIid0YWItJyt2YWx1ZVwiLFxuICAgICAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiBcIid0YWJwYW5lbC0nK3ZhbHVlXCIsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdpc0FjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCInLFxuICAgICAgICAnKGNsaWNrKSc6ICdvbkFjdGl2YXRlKCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJyxcbiAgICAgICAgJ1tjbGFzc10nOiAnY29tcHV0ZWRDbGFzcydcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYnNUcmlnZ2VyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB2YWx1ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgICBwcml2YXRlIHRhYnNTZXJ2aWNlID0gaW5qZWN0KFRhYnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHRhYnNMaXN0ID0gaW5qZWN0KFRhYnNMaXN0Q29tcG9uZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgZWwgPSBpbmplY3QoRWxlbWVudFJlZikgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZVRhYiQuc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzQWN0aXZlID0gYWN0aXZlID09PSB0aGlzLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkFjdGl2YXRlKCkge1xuICAgICAgICB0aGlzLnRhYnNTZXJ2aWNlLnNldEFjdGl2ZVRhYih0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IFsnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnLCAnSG9tZScsICdFbmQnXTtcbiAgICAgICAgaWYgKCFrZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHJldHVybjtcblxuICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBsaXN0ID0gaG9zdC5jbG9zZXN0KCdbcm9sZT10YWJsaXN0XScpO1xuICAgICAgICBpZiAoIWxpc3QpIHJldHVybjtcblxuICAgICAgICBjb25zdCB0cmlnZ2VycyA9IEFycmF5LmZyb20obGlzdC5xdWVyeVNlbGVjdG9yQWxsKCd0b2xsZS10YWJzLXRyaWdnZXInKSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICAgICAgaWYgKCF0cmlnZ2Vycy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0cmlnZ2Vycy5pbmRleE9mKGhvc3QpO1xuICAgICAgICBsZXQgbmV4dEluZGV4ID0gY3VycmVudEluZGV4O1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCA8PSAwID8gdHJpZ2dlcnMubGVuZ3RoIC0gMSA6IGN1cnJlbnRJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggPj0gdHJpZ2dlcnMubGVuZ3RoIC0gMSA/IDAgOiBjdXJyZW50SW5kZXggKyAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgbmV4dEluZGV4ID0gdHJpZ2dlcnMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRyaWdnZXJzW25leHRJbmRleF07XG4gICAgICAgIGlmICghdGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0VmFsdWUgPSB0YXJnZXQuaWQucmVwbGFjZSgvXnRhYi0vLCAnJyk7XG4gICAgICAgIGlmICh0YXJnZXRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50YWJzU2VydmljZS5zZXRBY3RpdmVUYWIodGFyZ2V0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5mb2N1cygpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgICAgICBjb25zdCB2YXJpYW50ID0gdGhpcy50YWJzTGlzdD8udmFyaWFudCA9PT0gJ3VuZGVybGluZScgPyAndW5kZXJsaW5lJyA6ICdkZWZhdWx0JztcbiAgICAgICAgcmV0dXJuIGNuKHRhYnNUcmlnZ2VyVmFyaWFudHMoeyB2YXJpYW50IH0pLCB0aGlzLmNsYXNzKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtdGFicy1jb250ZW50JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPGRpdiAqbmdJZj1cImlzQWN0aXZlXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PmAsXG4gICAgaG9zdDoge1xuICAgICAgICAncm9sZSc6ICd0YWJwYW5lbCcsXG4gICAgICAgICdbYXR0ci5pZF0nOiBcIid0YWJwYW5lbC0nK3ZhbHVlXCIsXG4gICAgICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogXCIndGFiLScrdmFsdWVcIixcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICcwJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogJ2lzQWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIicsXG4gICAgICAgICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzQ29udGVudENvbXBvbmVudCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdmFsdWUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gICAgcHJpdmF0ZSB0YWJzU2VydmljZSA9IGluamVjdChUYWJzU2VydmljZSk7XG4gICAgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZVRhYiQuc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzQWN0aXZlID0gYWN0aXZlID09PSB0aGlzLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGNuKFxuICAgICAgICAgICAgXCJtdC0yIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yXCIsXG4gICAgICAgICAgICB0aGlzLmNsYXNzXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -234,22 +234,17 @@ export class TagInputComponent {
234
234
  </p>
235
235
  </ng-container>
236
236
  </div>
237
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BadgeComponent, selector: "tolle-badge", inputs: ["variant", "size", "removable", "removeLabel", "class"], outputs: ["onRemove"] }] });
237
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BadgeComponent, selector: "tolle-badge", inputs: ["variant", "size", "removable", "removeLabel", "class"], outputs: ["onRemove"] }] });
238
238
  }
239
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TagInputComponent, decorators: [{
240
240
  type: Component,
241
- args: [{
242
- selector: 'tolle-tag-input',
243
- standalone: true,
244
- imports: [CommonModule, FormsModule, BadgeComponent],
245
- providers: [
241
+ args: [{ selector: 'tolle-tag-input', standalone: true, imports: [CommonModule, FormsModule, BadgeComponent], providers: [
246
242
  {
247
243
  provide: NG_VALUE_ACCESSOR,
248
244
  useExisting: forwardRef(() => TagInputComponent),
249
245
  multi: true
250
246
  }
251
- ],
252
- template: `
247
+ ], template: `
253
248
  <div class="flex flex-col gap-1.5 w-full">
254
249
  <label
255
250
  *ngIf="label"
@@ -301,8 +296,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
301
296
  </p>
302
297
  </ng-container>
303
298
  </div>
304
- `,
305
- }]
299
+ `, styles: [":host{display:block}\n"] }]
306
300
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tagInputElement: [{
307
301
  type: ViewChild,
308
302
  args: ['tagInput']
@@ -337,4 +331,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
337
331
  }], tagSuffix: [{
338
332
  type: Input
339
333
  }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvdGFnLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWlDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQW1FbkQsTUFBTSxPQUFPLGlCQUFpQjtJQThCUjtJQTdCRyxlQUFlLENBQWdDO0lBRTdELEVBQUUsR0FBVyxhQUFhLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BFLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBQzFCLFdBQVcsR0FBVyx5QkFBeUIsQ0FBQztJQUNoRCxJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUNqRCxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRTVCLGVBQWU7SUFDTixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUVoQyxzQkFBc0I7SUFDYixTQUFTLEdBQVcsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0lBQzlCLGVBQWUsR0FBWSxL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QUM7b0JBQ3BELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RUO2lCQUNGO3NGQUV3QixlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLFVBQVU7Z0JBRVosRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9iYWRnZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS10YWctaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQmFkZ2VDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRhZ0lucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xLjUgdy1mdWxsXCI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgKm5nSWY9XCJsYWJlbFwiXG4gICAgICAgIFtmb3JdPVwiaWRcIlxuICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRMYWJlbENsYXNzXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIFtjbGFzc109XCJjb21wdXRlZENvbnRhaW5lckNsYXNzXCJcbiAgICAgICAgKGNsaWNrKT1cImZvY3VzSW5wdXQoKVwiXG4gICAgICA+XG4gICAgICAgIDx0b2xsZS1iYWRnZVxuICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICBbcmVtb3ZhYmxlXT1cIiFkaXNhYmxlZCAmJiAhcmVhZG9ubHlcIlxuICAgICAgICAgIChvblJlbW92ZSk9XCJyZW1vdmVUYWcoaSwgJGV2ZW50KVwiPlxuICAgICAgICAgIHt7IHRhZ1ByZWZpeCB9fXt7IHRhZyB9fXt7IHRhZ1N1ZmZpeCB9fVxuICAgICAgICA8L3RvbGxlLWJhZGdlPlxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICN0YWdJbnB1dFxuICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0YWdzLmxlbmd0aCA9PT0gMCA/IHBsYWNlaG9sZGVyIDogJydcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5IHx8IChtYXhUYWdzICE9IG51bGwgJiYgdGFncy5sZW5ndGggPj0gbWF4VGFncylcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRJbnB1dENsYXNzXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRpc2FibGVkXCI+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJoaW50ICYmICFlcnJvclwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBweC0xIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaGludCB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJlcnJvciAmJiBlcnJvck1lc3NhZ2VcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWRlc3RydWN0aXZlIHB4LTFcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBUYWdJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQFZpZXdDaGlsZCgndGFnSW5wdXQnKSB0YWdJbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBgdGFnLWlucHV0LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaGludDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnVHlwZSBhbmQgcHJlc3MgRW50ZXIuLi4nO1xuICBASW5wdXQoKSBzaXplOiAneHMnIHwgJ3NtJyB8ICdkZWZhdWx0JyB8ICdsZycgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICAvLyBTdGF0ZSBpbnB1dHNcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBUYWctc3BlY2lmaWMgaW5wdXRzXG4gIEBJbnB1dCgpIGRlbGltaXRlcjogc3RyaW5nID0gJywnO1xuICBASW5wdXQoKSBtYXhUYWdzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWxsb3dEdXBsaWNhdGVzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRhZ1ByZWZpeDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhZ1N1ZmZpeDogc3RyaW5nID0gJyc7XG5cbiAgdGFnczogc3RyaW5nW10gPSBbXTtcbiAgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIGlzRm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy50YWdzID0gQXJyYXkuaXNBcnJheSh2YWx1ZXMpID8gWy4uLnZhbHVlc10gOiBbXTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG5cbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG5cbiAgICAvLyBFbnRlciBjcmVhdGVzIGEgdGFnXG4gICAgaWYgKGtleSA9PT0gJ0VudGVyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29tbWl0SW5wdXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEZWxpbWl0ZXIgY3JlYXRlcyBhIHRhZyAoc3RyaXAgdGhlIGRlbGltaXRlcilcbiAgICBpZiAoa2V5ID09PSB0aGlzLmRlbGltaXRlcikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29tbWl0SW5wdXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBCYWNrc3BhY2Ugb24gZW1wdHkgaW5wdXQgcmVtb3ZlcyB0aGUgbGFzdCB0YWdcbiAgICBpZiAoa2V5ID09PSAnQmFja3NwYWNlJyAmJiB0aGlzLmlucHV0VmFsdWUgPT09ICcnKSB7XG4gICAgICBpZiAodGhpcy50YWdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5yZW1vdmVUYWcodGhpcy50YWdzLmxlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5jb21taXRJbnB1dCgpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gIH1cblxuICByZW1vdmVUYWcoaW5kZXg6IG51bWJlciwgZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMudGFncy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy50YWdJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMudGFnSW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbW1pdElucHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5pbnB1dFZhbHVlLnRyaW0oKTtcbiAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgbWF4IHRhZ3NcbiAgICBpZiAodGhpcy5tYXhUYWdzICE9IG51bGwgJiYgdGhpcy50YWdzLmxlbmd0aCA+PSB0aGlzLm1heFRhZ3MpIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGR1cGxpY2F0ZXMgKGNhc2UtaW5zZW5zaXRpdmUpXG4gICAgaWYgKCF0aGlzLmFsbG93RHVwbGljYXRlcykge1xuICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy50YWdzLnNvbWUoXG4gICAgICAgIHQgPT4gdC50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZS50b0xvd2VyQ2FzZSgpXG4gICAgICApO1xuICAgICAgaWYgKGV4aXN0cykge1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudGFncy5wdXNoKHZhbHVlKTtcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlKFsuLi50aGlzLnRhZ3NdKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBjbiA9IGNuO1xuXG4gIGdldCBjb21wdXRlZExhYmVsQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgXCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBsZWFkaW5nLW5vbmUgdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMFwiLFxuICAgICAgdGhpcy5kaXNhYmxlZCAmJiBcIm9wYWNpdHktNTBcIlxuICAgICk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDb250YWluZXJDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAvLyBCYXNlIHN0eWxlcyDigJQgZmxleC13cmFwIHNvIHRhZ3MgZmxvdyBvbnRvIG11bHRpcGxlIGxpbmVzXG4gICAgICBcImdyb3VwIHJlbGF0aXZlIGZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwXCIsXG4gICAgICBcImJnLWJhY2tncm91bmRcIixcblxuICAgICAgLy8gQm9yZGVyIGFuZCBzaGFkb3dcbiAgICAgIFwiYm9yZGVyLWlucHV0IHNoYWRvdy1zbVwiLFxuXG4gICAgICAvLyBTaXppbmcg4oCUIG1pbi1oIGluc3RlYWQgb2YgZml4ZWQgaCBzbyB0YWdzIGNhbiB3cmFwXG4gICAgICB0aGlzLnNpemUgPT09ICd4cycgJiYgXCJtaW4taC04IHB4LTIgcHktMSBnYXAtMSB0ZXh0LXhzXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdzbScgJiYgXCJtaW4taC05IHB4LTMgcHktMSBnYXAtMS41IHRleHQtc21cIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmIFwibWluLWgtMTAgcHgtMyBweS0xLjUgZ2FwLTIgdGV4dC1zbVwiLFxuICAgICAgdGhpcy5zaXplID09PSAnbGcnICYmIFwibWluLWgtMTEgcHgtNCBweS0yIGdhcC0zIHRleHQtYmFzZVwiLFxuXG4gICAgICAvLyBGb2N1cyBzdGF0ZVxuICAgICAgISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpICYmIFtcbiAgICAgICAgXCJmb2N1cy13aXRoaW46Ym9yZGVyLXByaW1hcnkvODBcIixcbiAgICAgICAgXCJmb2N1cy13aXRoaW46cmluZy00XCIsXG4gICAgICAgIFwiZm9jdXMtd2l0aGluOnJpbmctcmluZy8zMFwiLFxuICAgICAgICBcImZvY3VzLXdpdGhpbjpyaW5nLW9mZnNldC0wXCIsXG4gICAgICAgIFwiZm9jdXMtd2l0aGluOnNoYWRvdy1ub25lXCIsXG4gICAgICBdLFxuXG4gICAgICAvLyBFcnJvciBzdGF0ZVxuICAgICAgdGhpcy5lcnJvciAmJiBbXG4gICAgICAgIFwiYm9yZGVyLWRlc3RydWN0aXZlXCIsXG4gICAgICAgICEodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSAmJiBbXG4gICAgICAgICAgXCJmb2N1cy13aXRoaW46Ym9yZGVyLWRlc3RydWN0aXZlLzgwXCIsXG4gICAgICAgICAgXCJmb2N1cy13aXRoaW46cmluZy1kZXN0cnVjdGl2ZS8zMFwiXG4gICAgICAgIF1cbiAgICAgIF0sXG5cbiAgICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgICB0aGlzLmRpc2FibGVkICYmIFtcbiAgICAgICAgXCJjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MFwiLFxuICAgICAgICBcImJvcmRlci1vcGFjaXR5LTUwXCJcbiAgICAgIF0sXG5cbiAgICAgIC8vIFJlYWRvbmx5IHN0YXRlXG4gICAgICB0aGlzLnJlYWRvbmx5ICYmIFtcbiAgICAgICAgXCJjdXJzb3ItZGVmYXVsdFwiLFxuICAgICAgICBcImJvcmRlci1kYXNoZWRcIixcbiAgICAgICAgIXRoaXMuZGlzYWJsZWQgJiYgXCJmb2N1cy13aXRoaW46cmluZy0wIGZvY3VzLXdpdGhpbjpib3JkZXItb3BhY2l0eS0xMDBcIlxuICAgICAgXSxcblxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRJbnB1dENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIC8vIEJhc2Ugc3R5bGVzIOKAlCBpbmxpbmUgd2l0aGluIHRoZSBmbGV4LXdyYXAgY29udGFpbmVyXG4gICAgICBcImZsZXgtMSBiZy10cmFuc3BhcmVudCBib3JkZXItbm9uZSBwLTAgbWluLXctWzgwcHhdXCIsXG4gICAgICBcInBsYWNlaG9sZGVyOnRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiLFxuXG4gICAgICAvLyBSZW1vdmUgYWxsIGRlZmF1bHQgZm9jdXMgc3R5bGVzXG4gICAgICBcImZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZm9jdXM6c2hhZG93LW5vbmVcIixcblxuICAgICAgLy8gVGV4dCBzaXppbmdcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3hzJyAmJiBcInRleHQteHNcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3NtJyAmJiBcInRleHQtc21cIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmIFwidGV4dC1zbVwiLFxuICAgICAgdGhpcy5zaXplID09PSAnbGcnICYmIFwidGV4dC1iYXNlXCIsXG5cbiAgICAgIC8vIEN1cnNvciBzdGF0ZXNcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJjdXJzb3Itbm90LWFsbG93ZWRcIixcbiAgICAgIHRoaXMucmVhZG9ubHkgJiYgXCJjdXJzb3ItZGVmYXVsdFwiLFxuXG4gICAgICAvLyBUZXh0IGNvbG9yXG4gICAgICBcInRleHQtZm9yZWdyb3VuZFwiLFxuXG4gICAgICAvLyBTZWxlY3Rpb24gY29sb3JcbiAgICAgIFwic2VsZWN0aW9uOmJnLXByaW1hcnkvMjAgc2VsZWN0aW9uOnRleHQtZm9yZWdyb3VuZFwiXG4gICAgICAvLyBOT1RFOiBjb25zdW1lciBgY2xhc3NgIGlzIGFwcGxpZWQgdG8gdGhlIGNvbnRhaW5lciBvbmx5IChjb21wdXRlZENvbnRhaW5lckNsYXNzKSxcbiAgICAgIC8vIG5vdCBkdXBsaWNhdGVkIG9udG8gdGhlIGlubmVyIDxpbnB1dD4uXG4gICAgKTtcbiAgfVxufVxuIl19
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvdGFnLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWlDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQW9FbkQsTUFBTSxPQUFPLGlCQUFpQjtJQThCUjtJQTdCRyxlQUFlLENBQWdDO0lBRTdELEVBQUUsR0FBVyxhQUFhLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BFLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBQzFCLFdBQVcsR0FBVyx5QkFBeUIsQ0FBQztJQUNoRCxJQUFJLEdBQW1DLFNBQVMsQ0FBQztJQUNqRCxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRTVCLGVBQWU7SUFDTixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUVoQyxzQkFBc0I7SUFDYixTQUFTLEdBQVcsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0lBQzlCLGVBQWUsR0FBWSxL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QUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9EVDtzRkFHc0IsZUFBZTtzQkFBckMsU0FBUzt1QkFBQyxVQUFVO2dCQUVaLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vYmFkZ2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtdGFnLWlucHV0JyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEJhZGdlQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUYWdJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMS41IHctZnVsbFwiPlxuICAgICAgPGxhYmVsXG4gICAgICAgICpuZ0lmPVwibGFiZWxcIlxuICAgICAgICBbZm9yXT1cImlkXCJcbiAgICAgICAgW2NsYXNzXT1cImNvbXB1dGVkTGFiZWxDbGFzc1wiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgPC9sYWJlbD5cblxuICAgICAgPGRpdlxuICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDb250YWluZXJDbGFzc1wiXG4gICAgICAgIChjbGljayk9XCJmb2N1c0lucHV0KClcIlxuICAgICAgPlxuICAgICAgICA8dG9sbGUtYmFkZ2VcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3M7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgICAgW3JlbW92YWJsZV09XCIhZGlzYWJsZWQgJiYgIXJlYWRvbmx5XCJcbiAgICAgICAgICAob25SZW1vdmUpPVwicmVtb3ZlVGFnKGksICRldmVudClcIj5cbiAgICAgICAgICB7eyB0YWdQcmVmaXggfX17eyB0YWcgfX17eyB0YWdTdWZmaXggfX1cbiAgICAgICAgPC90b2xsZS1iYWRnZT5cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjdGFnSW5wdXRcbiAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGFncy5sZW5ndGggPT09IDAgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seSB8fCAobWF4VGFncyAhPSBudWxsICYmIHRhZ3MubGVuZ3RoID49IG1heFRhZ3MpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgW2NsYXNzXT1cImNvbXB1dGVkSW5wdXRDbGFzc1wiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNhYmxlZFwiPlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwiaGludCAmJiAhZXJyb3JcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgcHgtMSB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMjAwXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGhpbnQgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwiZXJyb3IgJiYgZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1kZXN0cnVjdGl2ZSBweC0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVGFnSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBWaWV3Q2hpbGQoJ3RhZ0lucHV0JykgdGFnSW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASW5wdXQoKSBpZDogc3RyaW5nID0gYHRhZy1pbnB1dC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1R5cGUgYW5kIHByZXNzIEVudGVyLi4uJztcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgLy8gU3RhdGUgaW5wdXRzXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gVGFnLXNwZWNpZmljIGlucHV0c1xuICBASW5wdXQoKSBkZWxpbWl0ZXI6IHN0cmluZyA9ICcsJztcbiAgQElucHV0KCkgbWF4VGFnczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGFsbG93RHVwbGljYXRlczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0YWdQcmVmaXg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0YWdTdWZmaXg6IHN0cmluZyA9ICcnO1xuXG4gIHRhZ3M6IHN0cmluZ1tdID0gW107XG4gIGlucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMudGFncyA9IEFycmF5LmlzQXJyYXkodmFsdWVzKSA/IFsuLi52YWx1ZXNdIDogW107XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xuXG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuXG4gICAgLy8gRW50ZXIgY3JlYXRlcyBhIHRhZ1xuICAgIGlmIChrZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNvbW1pdElucHV0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVsaW1pdGVyIGNyZWF0ZXMgYSB0YWcgKHN0cmlwIHRoZSBkZWxpbWl0ZXIpXG4gICAgaWYgKGtleSA9PT0gdGhpcy5kZWxpbWl0ZXIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNvbW1pdElucHV0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQmFja3NwYWNlIG9uIGVtcHR5IGlucHV0IHJlbW92ZXMgdGhlIGxhc3QgdGFnXG4gICAgaWYgKGtleSA9PT0gJ0JhY2tzcGFjZScgJiYgdGhpcy5pbnB1dFZhbHVlID09PSAnJykge1xuICAgICAgaWYgKHRoaXMudGFncy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVGFnKHRoaXMudGFncy5sZW5ndGggLSAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuY29tbWl0SW5wdXQoKTtcbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlVGFnKGluZGV4OiBudW1iZXIsIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLnRhZ3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgfVxuXG4gIGZvY3VzSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMudGFnSW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnRhZ0lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21taXRJbnB1dCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRWYWx1ZS50cmltKCk7XG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIG1heCB0YWdzXG4gICAgaWYgKHRoaXMubWF4VGFncyAhPSBudWxsICYmIHRoaXMudGFncy5sZW5ndGggPj0gdGhpcy5tYXhUYWdzKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBkdXBsaWNhdGVzIChjYXNlLWluc2Vuc2l0aXZlKVxuICAgIGlmICghdGhpcy5hbGxvd0R1cGxpY2F0ZXMpIHtcbiAgICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMudGFncy5zb21lKFxuICAgICAgICB0ID0+IHQudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWUudG9Mb3dlckNhc2UoKVxuICAgICAgKTtcbiAgICAgIGlmIChleGlzdHMpIHtcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gJyc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRhZ3MucHVzaCh2YWx1ZSk7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gJyc7XG4gICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZShbLi4udGhpcy50YWdzXSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY24gPSBjbjtcblxuICBnZXQgY29tcHV0ZWRMYWJlbENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIFwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgbGVhZGluZy1ub25lIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDBcIixcbiAgICAgIHRoaXMuZGlzYWJsZWQgJiYgXCJvcGFjaXR5LTUwXCJcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgLy8gQmFzZSBzdHlsZXMg4oCUIGZsZXgtd3JhcCBzbyB0YWdzIGZsb3cgb250byBtdWx0aXBsZSBsaW5lc1xuICAgICAgXCJncm91cCByZWxhdGl2ZSBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMFwiLFxuICAgICAgXCJiZy1iYWNrZ3JvdW5kXCIsXG5cbiAgICAgIC8vIEJvcmRlciBhbmQgc2hhZG93XG4gICAgICBcImJvcmRlci1pbnB1dCBzaGFkb3ctc21cIixcblxuICAgICAgLy8gU2l6aW5nIOKAlCBtaW4taCBpbnN0ZWFkIG9mIGZpeGVkIGggc28gdGFncyBjYW4gd3JhcFxuICAgICAgdGhpcy5zaXplID09PSAneHMnICYmIFwibWluLWgtOCBweC0yIHB5LTEgZ2FwLTEgdGV4dC14c1wiLFxuICAgICAgdGhpcy5zaXplID09PSAnc20nICYmIFwibWluLWgtOSBweC0zIHB5LTEgZ2FwLTEuNSB0ZXh0LXNtXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdkZWZhdWx0JyAmJiBcIm1pbi1oLTEwIHB4LTMgcHktMS41IGdhcC0yIHRleHQtc21cIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2xnJyAmJiBcIm1pbi1oLTExIHB4LTQgcHktMiBnYXAtMyB0ZXh0LWJhc2VcIixcblxuICAgICAgLy8gRm9jdXMgc3RhdGVcbiAgICAgICEodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSAmJiBbXG4gICAgICAgIFwiZm9jdXMtd2l0aGluOmJvcmRlci1wcmltYXJ5LzgwXCIsXG4gICAgICAgIFwiZm9jdXMtd2l0aGluOnJpbmctNFwiLFxuICAgICAgICBcImZvY3VzLXdpdGhpbjpyaW5nLXJpbmcvMzBcIixcbiAgICAgICAgXCJmb2N1cy13aXRoaW46cmluZy1vZmZzZXQtMFwiLFxuICAgICAgICBcImZvY3VzLXdpdGhpbjpzaGFkb3ctbm9uZVwiLFxuICAgICAgXSxcblxuICAgICAgLy8gRXJyb3Igc3RhdGVcbiAgICAgIHRoaXMuZXJyb3IgJiYgW1xuICAgICAgICBcImJvcmRlci1kZXN0cnVjdGl2ZVwiLFxuICAgICAgICAhKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkgJiYgW1xuICAgICAgICAgIFwiZm9jdXMtd2l0aGluOmJvcmRlci1kZXN0cnVjdGl2ZS84MFwiLFxuICAgICAgICAgIFwiZm9jdXMtd2l0aGluOnJpbmctZGVzdHJ1Y3RpdmUvMzBcIlxuICAgICAgICBdXG4gICAgICBdLFxuXG4gICAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICAgdGhpcy5kaXNhYmxlZCAmJiBbXG4gICAgICAgIFwiY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTBcIixcbiAgICAgICAgXCJib3JkZXItb3BhY2l0eS01MFwiXG4gICAgICBdLFxuXG4gICAgICAvLyBSZWFkb25seSBzdGF0ZVxuICAgICAgdGhpcy5yZWFkb25seSAmJiBbXG4gICAgICAgIFwiY3Vyc29yLWRlZmF1bHRcIixcbiAgICAgICAgXCJib3JkZXItZGFzaGVkXCIsXG4gICAgICAgICF0aGlzLmRpc2FibGVkICYmIFwiZm9jdXMtd2l0aGluOnJpbmctMCBmb2N1cy13aXRoaW46Ym9yZGVyLW9wYWNpdHktMTAwXCJcbiAgICAgIF0sXG5cbiAgICAgIHRoaXMuY2xhc3NcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkSW5wdXRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAvLyBCYXNlIHN0eWxlcyDigJQgaW5saW5lIHdpdGhpbiB0aGUgZmxleC13cmFwIGNvbnRhaW5lclxuICAgICAgXCJmbGV4LTEgYmctdHJhbnNwYXJlbnQgYm9yZGVyLW5vbmUgcC0wIG1pbi13LVs4MHB4XVwiLFxuICAgICAgXCJwbGFjZWhvbGRlcjp0ZXh0LW11dGVkLWZvcmVncm91bmRcIixcblxuICAgICAgLy8gUmVtb3ZlIGFsbCBkZWZhdWx0IGZvY3VzIHN0eWxlc1xuICAgICAgXCJmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGZvY3VzOnNoYWRvdy1ub25lXCIsXG5cbiAgICAgIC8vIFRleHQgc2l6aW5nXG4gICAgICB0aGlzLnNpemUgPT09ICd4cycgJiYgXCJ0ZXh0LXhzXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdzbScgJiYgXCJ0ZXh0LXNtXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdkZWZhdWx0JyAmJiBcInRleHQtc21cIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2xnJyAmJiBcInRleHQtYmFzZVwiLFxuXG4gICAgICAvLyBDdXJzb3Igc3RhdGVzXG4gICAgICB0aGlzLmRpc2FibGVkICYmIFwiY3Vyc29yLW5vdC1hbGxvd2VkXCIsXG4gICAgICB0aGlzLnJlYWRvbmx5ICYmIFwiY3Vyc29yLWRlZmF1bHRcIixcblxuICAgICAgLy8gVGV4dCBjb2xvclxuICAgICAgXCJ0ZXh0LWZvcmVncm91bmRcIixcblxuICAgICAgLy8gU2VsZWN0aW9uIGNvbG9yXG4gICAgICBcInNlbGVjdGlvbjpiZy1wcmltYXJ5LzIwIHNlbGVjdGlvbjp0ZXh0LWZvcmVncm91bmRcIlxuICAgICAgLy8gTk9URTogY29uc3VtZXIgYGNsYXNzYCBpcyBhcHBsaWVkIHRvIHRoZSBjb250YWluZXIgb25seSAoY29tcHV0ZWRDb250YWluZXJDbGFzcyksXG4gICAgICAvLyBub3QgZHVwbGljYXRlZCBvbnRvIHRoZSBpbm5lciA8aW5wdXQ+LlxuICAgICk7XG4gIH1cbn1cbiJdfQ==