ngx-tethys 17.0.9 → 17.0.11

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 (352) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/action/action.component.d.ts +3 -3
  3. package/alert/alert.component.d.ts +1 -1
  4. package/anchor/anchor.component.d.ts +3 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
  7. package/avatar/avatar.component.d.ts +4 -4
  8. package/badge/badge.component.d.ts +3 -3
  9. package/button/button-icon.component.d.ts +2 -2
  10. package/button/button.component.d.ts +2 -2
  11. package/card/card.component.d.ts +3 -3
  12. package/card/content.component.d.ts +1 -1
  13. package/carousel/carousel.component.d.ts +4 -4
  14. package/cascader/cascader-li.component.d.ts +5 -5
  15. package/cascader/cascader-search-option.component.d.ts +3 -3
  16. package/cascader/cascader.component.d.ts +8 -8
  17. package/checkbox/checkbox.component.d.ts +1 -1
  18. package/collapse/collapse-item.component.d.ts +2 -2
  19. package/collapse/collapse.component.d.ts +1 -1
  20. package/color-picker/color-picker-panel.component.d.ts +1 -1
  21. package/color-picker/color-picker.component.d.ts +3 -3
  22. package/copy/copy.directive.d.ts +1 -1
  23. package/core/behaviors/decorators.d.ts +1 -1
  24. package/date-picker/abstract-picker.component.d.ts +7 -7
  25. package/date-picker/abstract-picker.directive.d.ts +3 -3
  26. package/date-picker/base-picker.component.d.ts +2 -2
  27. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
  28. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
  29. package/date-picker/picker.component.d.ts +1 -1
  30. package/date-range/date-range.component.d.ts +8 -2
  31. package/dialog/body/dialog-body.component.d.ts +1 -1
  32. package/dialog/footer/dialog-footer.component.d.ts +1 -1
  33. package/dialog/header/dialog-header.component.d.ts +1 -1
  34. package/divider/divider.component.d.ts +2 -2
  35. package/drag-drop/drag-handle.directive.d.ts +1 -1
  36. package/drag-drop/drag.directive.d.ts +1 -1
  37. package/drag-drop/drop-container.directive.d.ts +1 -1
  38. package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
  39. package/dropdown/dropdown-menu.component.d.ts +1 -1
  40. package/dropdown/dropdown.directive.d.ts +1 -1
  41. package/empty/empty.component.d.ts +1 -1
  42. package/esm2022/action/action.component.mjs +7 -6
  43. package/esm2022/alert/alert.component.mjs +5 -5
  44. package/esm2022/anchor/anchor.component.mjs +5 -5
  45. package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
  46. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
  47. package/esm2022/avatar/avatar.component.mjs +8 -8
  48. package/esm2022/badge/badge.component.mjs +7 -6
  49. package/esm2022/button/button-icon.component.mjs +6 -5
  50. package/esm2022/button/button.component.mjs +6 -6
  51. package/esm2022/card/card.component.mjs +7 -6
  52. package/esm2022/card/content.component.mjs +5 -4
  53. package/esm2022/carousel/carousel.component.mjs +8 -7
  54. package/esm2022/cascader/cascader-li.component.mjs +9 -8
  55. package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
  56. package/esm2022/cascader/cascader.component.mjs +12 -12
  57. package/esm2022/checkbox/checkbox.component.mjs +5 -4
  58. package/esm2022/collapse/collapse-item.component.mjs +6 -6
  59. package/esm2022/collapse/collapse.component.mjs +5 -4
  60. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
  61. package/esm2022/color-picker/color-picker.component.mjs +7 -6
  62. package/esm2022/copy/copy.directive.mjs +5 -4
  63. package/esm2022/core/behaviors/decorators.mjs +2 -2
  64. package/esm2022/date-picker/abstract-picker.component.mjs +11 -10
  65. package/esm2022/date-picker/abstract-picker.directive.mjs +6 -6
  66. package/esm2022/date-picker/base-picker.component.mjs +5 -5
  67. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  68. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
  69. package/esm2022/date-picker/picker.component.mjs +5 -5
  70. package/esm2022/date-range/date-range.component.mjs +6 -5
  71. package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
  72. package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
  73. package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
  74. package/esm2022/divider/divider.component.mjs +6 -5
  75. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
  76. package/esm2022/drag-drop/drag.directive.mjs +5 -4
  77. package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
  78. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
  79. package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
  80. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  81. package/esm2022/empty/empty.component.mjs +5 -4
  82. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
  83. package/esm2022/form/form-group-label.directive.mjs +5 -4
  84. package/esm2022/form/form-group.component.mjs +7 -6
  85. package/esm2022/icon/icon.component.mjs +6 -5
  86. package/esm2022/image/image.directive.mjs +6 -5
  87. package/esm2022/input/input-search.component.mjs +5 -4
  88. package/esm2022/input/input.component.mjs +6 -5
  89. package/esm2022/input-number/input-number.component.mjs +6 -6
  90. package/esm2022/layout/header.component.mjs +7 -6
  91. package/esm2022/layout/sidebar-header.component.mjs +5 -4
  92. package/esm2022/layout/sidebar.component.mjs +12 -11
  93. package/esm2022/list/list.component.mjs +5 -4
  94. package/esm2022/list/selection/selection-list.mjs +7 -7
  95. package/esm2022/loading/loading.component.mjs +6 -5
  96. package/esm2022/mention/mention.directive.mjs +3 -3
  97. package/esm2022/menu/group/menu-group.component.mjs +10 -9
  98. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -4
  99. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
  100. package/esm2022/menu/menu.component.mjs +5 -4
  101. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
  102. package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
  103. package/esm2022/nav/nav-item.directive.mjs +7 -6
  104. package/esm2022/nav/nav.component.mjs +8 -7
  105. package/esm2022/pagination/pagination.component.mjs +9 -9
  106. package/esm2022/popover/popover.directive.mjs +6 -5
  107. package/esm2022/property/property-item.component.mjs +5 -4
  108. package/esm2022/property-operation/property-operation.component.mjs +9 -9
  109. package/esm2022/radio/group/radio-group.component.mjs +5 -4
  110. package/esm2022/rate/rate-item.component.mjs +5 -4
  111. package/esm2022/rate/rate.component.mjs +7 -7
  112. package/esm2022/resizable/resizable.directive.mjs +7 -6
  113. package/esm2022/resizable/resize-handle.component.mjs +5 -4
  114. package/esm2022/resizable/resize-handles.component.mjs +5 -4
  115. package/esm2022/segment/segment-item.component.mjs +5 -5
  116. package/esm2022/segment/segment.component.mjs +5 -4
  117. package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
  118. package/esm2022/select/native-select/native-select.component.mjs +5 -5
  119. package/esm2022/shared/base-form-check.component.mjs +6 -5
  120. package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
  121. package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
  122. package/esm2022/shared/directives/thy-show.mjs +5 -4
  123. package/esm2022/shared/option/group/option-group.component.mjs +5 -4
  124. package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
  125. package/esm2022/shared/option/option.component.mjs +5 -5
  126. package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
  127. package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
  128. package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
  129. package/esm2022/skeleton/skeleton.component.mjs +5 -4
  130. package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
  131. package/esm2022/skeleton/stylized/list.component.mjs +5 -4
  132. package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
  133. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
  134. package/esm2022/slider/slider.component.mjs +6 -6
  135. package/esm2022/space/space.component.mjs +5 -4
  136. package/esm2022/stepper/step-header.component.mjs +6 -5
  137. package/esm2022/stepper/stepper.component.mjs +5 -4
  138. package/esm2022/switch/switch.component.mjs +6 -5
  139. package/esm2022/table/table-column.component.mjs +9 -9
  140. package/esm2022/table/table-skeleton.component.mjs +6 -5
  141. package/esm2022/table/table.component.mjs +14 -14
  142. package/esm2022/tabs/tab.component.mjs +5 -4
  143. package/esm2022/tabs/tabs.component.mjs +6 -6
  144. package/esm2022/tag/tag.component.mjs +5 -5
  145. package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
  146. package/esm2022/time-picker/time-picker.component.mjs +9 -9
  147. package/esm2022/timeline/timeline.component.mjs +5 -4
  148. package/esm2022/tooltip/tooltip.directive.mjs +6 -6
  149. package/esm2022/tree/tree-node.component.mjs +9 -8
  150. package/esm2022/tree/tree.component.mjs +10 -10
  151. package/esm2022/tree-select/tree-select.component.mjs +11 -11
  152. package/esm2022/upload/file-select.component.mjs +6 -5
  153. package/esm2022/version.mjs +2 -2
  154. package/esm2022/vote/vote.component.mjs +7 -6
  155. package/esm2022/watermark/watermark.directive.mjs +5 -4
  156. package/fesm2022/ngx-tethys-action.mjs +6 -5
  157. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-alert.mjs +4 -4
  159. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-anchor.mjs +4 -4
  161. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
  163. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  164. package/fesm2022/ngx-tethys-avatar.mjs +7 -7
  165. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  166. package/fesm2022/ngx-tethys-badge.mjs +6 -5
  167. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  168. package/fesm2022/ngx-tethys-button.mjs +8 -8
  169. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  170. package/fesm2022/ngx-tethys-card.mjs +8 -7
  171. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-carousel.mjs +7 -6
  173. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-cascader.mjs +21 -21
  175. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
  177. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-collapse.mjs +7 -7
  179. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-color-picker.mjs +8 -7
  181. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-copy.mjs +4 -3
  183. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-core.mjs +1 -1
  185. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-date-picker.mjs +26 -26
  187. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-date-range.mjs +5 -4
  189. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-dialog.mjs +8 -7
  191. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-divider.mjs +5 -4
  193. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
  195. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
  197. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-empty.mjs +4 -3
  199. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-form.mjs +10 -10
  201. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-icon.mjs +5 -5
  203. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-image.mjs +5 -5
  205. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  207. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-input.mjs +7 -6
  209. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-layout.mjs +17 -16
  211. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-list.mjs +8 -8
  213. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-loading.mjs +5 -4
  215. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-mention.mjs +2 -2
  217. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-menu.mjs +15 -14
  219. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-nav.mjs +16 -16
  221. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-pagination.mjs +8 -8
  223. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-popover.mjs +5 -5
  225. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
  227. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-property.mjs +4 -3
  229. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-radio.mjs +7 -6
  231. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-rate.mjs +8 -8
  233. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-resizable.mjs +10 -10
  235. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  237. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-select.mjs +15 -15
  239. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-shared.mjs +25 -25
  241. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
  243. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-slide.mjs +4 -4
  245. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-slider.mjs +5 -5
  247. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-space.mjs +4 -3
  249. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-stepper.mjs +7 -6
  251. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-switch.mjs +5 -4
  253. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-table.mjs +22 -22
  255. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-tabs.mjs +7 -7
  257. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-tag.mjs +4 -4
  259. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
  261. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-timeline.mjs +4 -3
  263. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
  265. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
  267. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-tree.mjs +15 -15
  269. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-upload.mjs +5 -5
  271. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-vote.mjs +6 -5
  273. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-watermark.mjs +4 -3
  275. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys.mjs +1 -1
  277. package/fesm2022/ngx-tethys.mjs.map +1 -1
  278. package/form/form-group-error/form-group-error.component.d.ts +1 -1
  279. package/form/form-group-label.directive.d.ts +1 -1
  280. package/form/form-group.component.d.ts +3 -3
  281. package/icon/icon.component.d.ts +2 -2
  282. package/image/image.directive.d.ts +2 -2
  283. package/input/input-search.component.d.ts +1 -1
  284. package/input/input.component.d.ts +2 -2
  285. package/input-number/input-number.component.d.ts +2 -2
  286. package/layout/header.component.d.ts +3 -3
  287. package/layout/sidebar-header.component.d.ts +1 -1
  288. package/layout/sidebar.component.d.ts +7 -7
  289. package/list/list.component.d.ts +1 -1
  290. package/list/selection/selection-list.d.ts +3 -3
  291. package/loading/loading.component.d.ts +2 -2
  292. package/menu/group/menu-group.component.d.ts +6 -6
  293. package/menu/item/action/menu-item-action.component.d.ts +1 -1
  294. package/menu/item/name/menu-item-name.component.d.ts +1 -1
  295. package/menu/menu.component.d.ts +1 -1
  296. package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
  297. package/nav/nav-ink-bar.directive.d.ts +2 -2
  298. package/nav/nav-item.directive.d.ts +3 -3
  299. package/nav/nav.component.d.ts +4 -4
  300. package/package.json +1 -1
  301. package/pagination/pagination.component.d.ts +5 -5
  302. package/popover/popover.directive.d.ts +2 -2
  303. package/property/property-item.component.d.ts +4 -1
  304. package/property-operation/property-operation.component.d.ts +5 -5
  305. package/radio/group/radio-group.component.d.ts +1 -1
  306. package/rate/rate-item.component.d.ts +1 -1
  307. package/rate/rate.component.d.ts +3 -3
  308. package/resizable/resizable.directive.d.ts +3 -3
  309. package/resizable/resize-handle.component.d.ts +1 -1
  310. package/resizable/resize-handles.component.d.ts +1 -1
  311. package/schematics/version.d.ts +1 -1
  312. package/schematics/version.js +1 -1
  313. package/segment/segment-item.component.d.ts +1 -1
  314. package/segment/segment.component.d.ts +5 -1
  315. package/select/custom-select/custom-select.component.d.ts +10 -10
  316. package/select/native-select/native-select.component.d.ts +1 -1
  317. package/shared/base-form-check.component.d.ts +2 -2
  318. package/shared/directives/thy-autofocus.directive.d.ts +2 -2
  319. package/shared/directives/thy-scroll.directive.d.ts +1 -1
  320. package/shared/directives/thy-show.d.ts +1 -1
  321. package/shared/option/group/option-group.component.d.ts +1 -1
  322. package/shared/option/list-option/list-option.component.d.ts +1 -1
  323. package/shared/option/option.component.d.ts +1 -1
  324. package/shared/select/select-control/select-control.component.d.ts +6 -6
  325. package/skeleton/skeleton-circle.component.d.ts +1 -1
  326. package/skeleton/skeleton-rectangle.component.d.ts +1 -1
  327. package/skeleton/skeleton.component.d.ts +1 -1
  328. package/skeleton/stylized/bullet-list.component.d.ts +1 -1
  329. package/skeleton/stylized/list.component.d.ts +1 -1
  330. package/skeleton/stylized/paragraph.component.d.ts +1 -1
  331. package/slide/slide-body/slide-body-section.component.d.ts +1 -1
  332. package/slider/slider.component.d.ts +2 -2
  333. package/space/space.component.d.ts +1 -1
  334. package/stepper/step-header.component.d.ts +2 -2
  335. package/stepper/stepper.component.d.ts +1 -1
  336. package/switch/switch.component.d.ts +2 -2
  337. package/table/table-column.component.d.ts +5 -5
  338. package/table/table-skeleton.component.d.ts +2 -2
  339. package/table/table.component.d.ts +10 -10
  340. package/tabs/tab.component.d.ts +1 -1
  341. package/tabs/tabs.component.d.ts +2 -2
  342. package/tag/tag.component.d.ts +1 -1
  343. package/time-picker/time-picker-panel.component.d.ts +2 -2
  344. package/time-picker/time-picker.component.d.ts +5 -5
  345. package/timeline/timeline.component.d.ts +1 -1
  346. package/tooltip/tooltip.directive.d.ts +10 -2
  347. package/tree/tree-node.component.d.ts +20 -5
  348. package/tree/tree.component.d.ts +6 -6
  349. package/tree-select/tree-select.component.d.ts +7 -7
  350. package/upload/file-select.component.d.ts +2 -2
  351. package/vote/vote.component.d.ts +3 -3
  352. package/watermark/watermark.directive.d.ts +1 -1
@@ -1,11 +1,11 @@
1
- import { Directive, ElementRef, NgZone, Input, ViewContainerRef, HostBinding, Optional, Inject, ChangeDetectorRef, booleanAttribute, numberAttribute } from '@angular/core';
1
+ import { Directive, ElementRef, NgZone, Input, ViewContainerRef, HostBinding, Optional, Inject, ChangeDetectorRef, numberAttribute } from '@angular/core';
2
2
  import { Overlay } from '@angular/cdk/overlay';
3
3
  import { ThyAutocompleteService } from './overlay/autocomplete.service';
4
4
  import { ThyAutocomplete } from './autocomplete.component';
5
5
  import { ThyOptionSelectionChangeEvent } from 'ngx-tethys/shared';
6
6
  import { DOCUMENT } from '@angular/common';
7
7
  import { Subject, merge, fromEvent, of } from 'rxjs';
8
- import { ESCAPE, UP_ARROW, ENTER, DOWN_ARROW, TAB } from 'ngx-tethys/util';
8
+ import { ESCAPE, UP_ARROW, ENTER, DOWN_ARROW, TAB, coerceBooleanProperty } from 'ngx-tethys/util';
9
9
  import { filter, map, take, delay, switchMap } from 'rxjs/operators';
10
10
  import { ScrollToService } from 'ngx-tethys/core';
11
11
  import { warnDeprecation } from 'ngx-tethys/util';
@@ -239,7 +239,7 @@ export class ThyAutocompleteTriggerDirective {
239
239
  this.destroyPanel();
240
240
  }
241
241
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAutocompleteTriggerDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.Overlay }, { token: i2.ThyAutocompleteService }, { token: i0.ViewContainerRef }, { token: DOCUMENT, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
242
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyAutocompleteTriggerDirective, isStandalone: true, selector: "input[thyAutocompleteTrigger], textarea[thyAutocompleteTrigger], thy-input[thyAutocompleteTrigger], thy-input-search[thyAutocompleteTrigger], input[thyAutocomplete], textarea[thyAutocomplete], thy-input[thyAutocomplete], thy-input-search[thyAutocomplete]", inputs: { autocompleteComponent: ["thyAutocompleteComponent", "autocompleteComponent"], autocomplete: ["thyAutocomplete", "autocomplete"], thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyAutocompleteWidth: ["thyAutocompleteWidth", "thyAutocompleteWidth", numberAttribute], thyPlacement: "thyPlacement", thyIsFocusOpen: ["thyIsFocusOpen", "thyIsFocusOpen", booleanAttribute] }, host: { listeners: { "input": "handleInput($event)", "focusin": "onFocus()", "keydown": "onKeydown($event)" }, properties: { "class.thy-autocomplete-opened": "this.panelOpened" } }, exportAs: ["thyAutocompleteTrigger", "thyAutocomplete"], ngImport: i0 }); }
242
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyAutocompleteTriggerDirective, isStandalone: true, selector: "input[thyAutocompleteTrigger], textarea[thyAutocompleteTrigger], thy-input[thyAutocompleteTrigger], thy-input-search[thyAutocompleteTrigger], input[thyAutocomplete], textarea[thyAutocomplete], thy-input[thyAutocomplete], thy-input-search[thyAutocomplete]", inputs: { autocompleteComponent: ["thyAutocompleteComponent", "autocompleteComponent"], autocomplete: ["thyAutocomplete", "autocomplete"], thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyAutocompleteWidth: ["thyAutocompleteWidth", "thyAutocompleteWidth", numberAttribute], thyPlacement: "thyPlacement", thyIsFocusOpen: ["thyIsFocusOpen", "thyIsFocusOpen", coerceBooleanProperty] }, host: { listeners: { "input": "handleInput($event)", "focusin": "onFocus()", "keydown": "onKeydown($event)" }, properties: { "class.thy-autocomplete-opened": "this.panelOpened" } }, exportAs: ["thyAutocompleteTrigger", "thyAutocomplete"], ngImport: i0 }); }
243
243
  }
244
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAutocompleteTriggerDirective, decorators: [{
245
245
  type: Directive,
@@ -277,6 +277,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
277
277
  type: Input
278
278
  }], thyIsFocusOpen: [{
279
279
  type: Input,
280
- args: [{ transform: booleanAttribute }]
280
+ args: [{ transform: coerceBooleanProperty }]
281
281
  }] } });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUudHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBRVYsTUFBTSxFQUVOLEtBQUssRUFFTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFhLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRWxEOzs7R0FHRztBQVlILE1BQU0sT0FBTywrQkFB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USxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7eUVBL0VjLFdBQVc7c0JBQXhELFdBQVc7dUJBQUMsK0JBQStCO2dCQVF4QyxxQkFBcUI7c0JBRHhCLEtBQUs7dUJBQUMsMEJBQTBCO2dCQWE3QixZQUFZO3NCQURmLEtBQUs7dUJBQUMsaUJBQWlCO2dCQWFlLFNBQVM7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU1FLG9CQUFvQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTTVCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTWtDLGNBQWM7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdGFibGUsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5UmVmLCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeUF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuL292ZXJsYXkvYXV0b2NvbXBsZXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGh5QXV0b2NvbXBsZXRlUmVmIH0gZnJvbSAnLi9vdmVybGF5L2F1dG9jb21wbGV0ZS1yZWYnO1xuaW1wb3J0IHsgVGh5QXV0b2NvbXBsZXRlIH0gZnJvbSAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeU9wdGlvbiwgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgZnJvbUV2ZW50LCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFU0NBUEUsIFVQX0FSUk9XLCBFTlRFUiwgRE9XTl9BUlJPVywgVEFCIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlLCB0YXAsIGRlbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTY3JvbGxUb1NlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgd2FybkRlcHJlY2F0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiDoh6rliqjlrozmiJDop6blj5HmjIfku6RcbiAqIEBuYW1lIHRoeUF1dG9jb21wbGV0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjpcbiAgICAgICAgJ2lucHV0W3RoeUF1dG9jb21wbGV0ZVRyaWdnZXJdLCB0ZXh0YXJlYVt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgdGh5LWlucHV0W3RoeUF1dG9jb21wbGV0ZVRyaWdnZXJdLCB0aHktaW5wdXQtc2VhcmNoW3RoeUF1dG9jb21wbGV0ZVRyaWdnZXJdLCBpbnB1dFt0aHlBdXRvY29tcGxldGVdLCB0ZXh0YXJlYVt0aHlBdXRvY29tcGxldGVdLCB0aHktaW5wdXRbdGh5QXV0b2NvbXBsZXRlXSwgdGh5LWlucHV0LXNlYXJjaFt0aHlBdXRvY29tcGxldGVdJyxcbiAgICBleHBvcnRBczogJ3RoeUF1dG9jb21wbGV0ZVRyaWdnZXIsIHRoeUF1dG9jb21wbGV0ZScsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGlucHV0KSc6ICdoYW5kbGVJbnB1dCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdvbkZvY3VzKCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlBdXRvY29tcGxldGVUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByb3RlY3RlZCBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gICAgcHJpdmF0ZSBhdXRvY29tcGxldGVSZWY6IFRoeUF1dG9jb21wbGV0ZVJlZjxUaHlBdXRvY29tcGxldGU+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbG9zZUtleUV2ZW50U3RyZWFtID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgX2F1dG9jb21wbGV0ZUNvbXBvbmVudDogVGh5QXV0b2NvbXBsZXRlO1xuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy50aHktYXV0b2NvbXBsZXRlLW9wZW5lZGApIHBhbmVsT3BlbmVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDkuIvmi4noj5zljZXnu4Tku7blrp7kvovjgILlt7Llup/lvIPvvIzor7fkvb/nlKggdGh5QXV0b2NvbXBsZXRlXG4gICAgICogQHR5cGUgdGh5QXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeUF1dG9jb21wbGV0ZUNvbXBvbmVudCcpXG4gICAgc2V0IGF1dG9jb21wbGV0ZUNvbXBvbmVudChkYXRhOiBUaHlBdXRvY29tcGxldGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgd2FybkRlcHJlY2F0aW9uKGBUaGUgcHJvcGVydHkgdGh5QXV0b2NvbXBsZXRlQ29tcG9uZW50IHdpbGwgYmUgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSB0aHlBdXRvY29tcGxldGUgaW5zdGVhZC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVDb21wb25lbnQgPSBkYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS4i+aLieiPnOWNlee7hOS7tuWunuS+i1xuICAgICAqIEB0eXBlIHRoeUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5QXV0b2NvbXBsZXRlJylcbiAgICBzZXQgYXV0b2NvbXBsZXRlKGRhdGE6IFRoeUF1dG9jb21wbGV0ZSkge1xuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVDb21wb25lbnQgPSBkYXRhO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGVDb21wb25lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5by55Ye65qGG6buY6K6kIG9mZnNldFxuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU9mZnNldCA9IDQ7XG5cbiAgICAvKipcbiAgICAgKiDkuIvmi4noj5zljZXnmoTlrr3luqbvvIzkuI3orr7nva7pu5jorqTkuI7ovpPlhaXmoYblkIzlrr1cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlBdXRvY29tcGxldGVXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5LiL5ouJ6I+c5Y2V55qE5pi+56S65L2N572u77yMJ3RvcCcgfCAndG9wTGVmdCcgfCAndG9wUmlnaHQnIHwgJ2JvdHRvbScgfCAnYm90dG9tTGVmdCcgfCAnYm90dG9tUmlnaHQnIHwgJ2xlZnQnIHwgJ2xlZnRUb3AnIHwgJ2xlZnRCb3R0b20nIHwgJ3JpZ2h0JyB8ICdyaWdodFRvcCcgfCAncmlnaHRCb3R0b20nXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2VtZW50OiBUaHlQbGFjZW1lbnQgPSAnYm90dG9tTGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblhYHorrjogZrnhKbml7bmiZPlvIDkuIvmi4noj5zljZVcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUlzRm9jdXNPcGVuID0gdHJ1ZTtcblxuICAgIGdldCBhY3RpdmVPcHRpb24oKTogVGh5T3B0aW9uIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCAmJiB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHBhbmVsQ2xvc2luZ0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5T3B0aW9uU2VsZWN0ZWQsXG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnRhYk91dC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLnBhbmVsT3BlbmVkKSksXG4gICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0sXG4gICAgICAgICAgICB0aGlzLmdldE91dHNpZGVDbGlja1N0cmVhbSgpLFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID8gdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5wYW5lbE9wZW5lZCkpIDogb2YoKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAvLyBOb3JtYWxpemUgdGhlIG91dHB1dCBzbyB3ZSByZXR1cm4gYSBjb25zaXN0ZW50IHR5cGUuXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4gKGV2ZW50IGluc3RhbmNlb2YgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPyBldmVudCA6IG51bGwpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBhdXRvY29tcGxldGVTZXJ2aWNlOiBUaHlBdXRvY29tcGxldGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuT3BlbigpICYmIHRoaXMudGh5SXNGb2N1c09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgICAgIC8vIFByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uIG9uIGFsbCBlc2NhcGUga2V5IHByZXNzZXMuIFRoaXMgaXMgaGVyZSBwcmltYXJpbHkgdG8gYnJpbmcgSUVcbiAgICAgICAgLy8gaW4gbGluZSB3aXRoIG90aGVyIGJyb3dzZXJzLiBCeSBkZWZhdWx0LCBwcmVzc2luZyBlc2NhcGUgb24gSUUgd2lsbCBjYXVzZSBpdCB0byByZXZlcnRcbiAgICAgICAgLy8gdGhlIGlucHV0IHZhbHVlIHRvIHRoZSBvbmUgdGhhdCBpdCBoYWQgb24gZm9jdXMsIGhvd2V2ZXIgaXQgd29uJ3QgZGlzcGF0Y2ggYW55IGV2ZW50c1xuICAgICAgICAvLyB3aGljaCBtZWFucyB0aGF0IHRoZSBtb2RlbCB2YWx1ZSB3aWxsIGJlIG91dCBvZiBzeW5jIHdpdGggdGhlIHZpZXcuXG4gICAgICAgIGlmIChrZXlDb2RlID09PSBFU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlT3B0aW9uICYmIGtleUNvZGUgPT09IEVOVEVSICYmIHRoaXMucGFuZWxPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uLnNlbGVjdFZpYUludGVyYWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29uc3QgcHJldkFjdGl2ZUl0ZW0gPSB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW07XG4gICAgICAgICAgICBjb25zdCBpc0Fycm93S2V5ID0ga2V5Q29kZSA9PT0gVVBfQVJST1cgfHwga2V5Q29kZSA9PT0gRE9XTl9BUlJPVztcbiAgICAgICAgICAgIGlmICh0aGlzLnBhbmVsT3BlbmVkIHx8IGtleUNvZGUgPT09IFRBQikge1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNBcnJvd0tleSAmJiB0aGlzLmNhbk9wZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGlzQXJyb3dLZXkgfHwgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtICE9PSBwcmV2QWN0aXZlSXRlbSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIFNjcm9sbFRvU2VydmljZS5zY3JvbGxUb0VsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIuYWN0aXZlSXRlbS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jYW5PcGVuKCkgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlblBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmO1xuICAgICAgICBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgLy8gQ2xvc2Ugd2hlbiBwcmVzc2luZyBFU0NBUEUgb3IgQUxUICsgVVBfQVJST1csIGJhc2VkIG9uIHRoZSBhMTF5IGd1aWRlbGluZXMuXG4gICAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyN0ZXh0Ym94LWtleWJvYXJkLWludGVyYWN0aW9uXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8IChldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyAmJiBldmVudC5hbHRLZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0ubmV4dCgpO1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3RvcCBwcm9wYWdhdGlvbiwgb3RoZXJ3aXNlIHRoZSBldmVudCB3aWxsIGV2ZW50dWFsbHlcbiAgICAgICAgICAgICAgICAvLyByZWFjaCB0aGUgaW5wdXQgaXRzZWxmIGFuZCBjYXVzZSB0aGUgb3ZlcmxheSB0byBiZSByZW9wZW5lZC5cbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wZW4oKTtcbiAgICB9XG5cbiAgICBjbG9zZVBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgICAgICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMudGh5UGxhY2VtZW50LFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLnRoeU9mZnNldCxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICAgICAgICB3aWR0aDogdGhpcy50aHlBdXRvY29tcGxldGVXaWR0aCB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWYgPSB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2Uub3Blbih0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5jb250ZW50VGVtcGxhdGVSZWYsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBkZWxheSAyMDBtcyB0byBwcmV2ZW50IGVtaXQgZG9jdW1lbnQgY2xpY2sgcmlnaHRub3dcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWZcbiAgICAgICAgICAgIC5hZnRlck9wZW5lZCgpXG4gICAgICAgICAgICAucGlwZShkZWxheSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlVG9DbG9zaW5nQWN0aW9ucygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVJlZi5nZXRPdmVybGF5UmVmKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgbGlzdGVucyB0byBhIHN0cmVhbSBvZiBwYW5lbCBjbG9zaW5nIGFjdGlvbnMgYW5kIHJlc2V0cyB0aGVcbiAgICAgKiBzdHJlYW0gZXZlcnkgdGltZSB0aGUgb3B0aW9uIGxpc3QgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgY29uc3QgZmlyc3RTdGFibGUgPSB0aGlzLm5nWm9uZS5vblN0YWJsZS5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgICAgICBjb25zdCBvcHRpb25DaGFuZ2VzID0gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQub3B0aW9ucy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAvLyBEZWZlciBlbWl0dGluZyB0byB0aGUgc3RyZWFtIHVudGlsIHRoZSBuZXh0IHRpY2ssIGJlY2F1c2UgY2hhbmdpbmdcbiAgICAgICAgICAgIC8vIGJpbmRpbmdzIGluIGhlcmUgd2lsbCBjYXVzZSBcImNoYW5nZWQgYWZ0ZXIgY2hlY2tlZFwiIGVycm9ycy5cbiAgICAgICAgICAgIGRlbGF5KDApXG4gICAgICAgICk7XG4gICAgICAgIC8vIFdoZW4gdGhlIHpvbmUgaXMgc3RhYmxlIGluaXRpYWxseSwgYW5kIHdoZW4gdGhlIG9wdGlvbiBsaXN0IGNoYW5nZXMuLi5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG1lcmdlKGZpcnN0U3RhYmxlLCBvcHRpb25DaGFuZ2VzKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgc3RyZWFtIG9mIHBhbmVsQ2xvc2luZ0FjdGlvbnMsIHJlcGxhY2luZyBhbnkgcHJldmlvdXMgc3RyZWFtc1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlcmUgY3JlYXRlZCwgYW5kIGZsYXR0ZW4gaXQgc28gb3VyIHN0cmVhbSBvbmx5IGVtaXRzIGNsb3NpbmcgZXZlbnRzLi4uXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFuZWxDbG9zaW5nQWN0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGZpcnN0IGNsb3NpbmcgZXZlbnQgb2NjdXJzLi4uXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLy8gc2V0IHRoZSB2YWx1ZSwgY2xvc2UgdGhlIHBhbmVsLCBhbmQgY29tcGxldGUuXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLnNldFZhbHVlQW5kQ2xvc2UoZXZlbnQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVBbmRDbG9zZShldmVudDogVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5vcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQub3B0aW9uLnRoeUxhYmVsVGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIFN0cmVhbSBvZiBjbGlja3Mgb3V0c2lkZSBvZiB0aGUgYXV0b2NvbXBsZXRlIHBhbmVsLiAqL1xuICAgIHByaXZhdGUgZ2V0T3V0c2lkZUNsaWNrU3RyZWFtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnY2xpY2snKSBhcyBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+LFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsICd0b3VjaGVuZCcpIGFzIE9ic2VydmFibGU8VG91Y2hFdmVudD5cbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgU2hhZG93IERPTSwgdGhlIGV2ZW50IHRhcmdldCB3aWxsIGJlIHRoZSBzaGFkb3cgcm9vdCwgc28gd2UgaGF2ZSB0b1xuICAgICAgICAgICAgICAgIC8vIGZhbGwgYmFjayB0byBjaGVjayB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgcGF0aCBvZiB0aGUgY2xpY2sgZXZlbnQuXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpY2tUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkOiBhbnkgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBjbGlja1RhcmdldCAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAoIWZvcm1GaWVsZCB8fCAhZm9ybUZpZWxkLmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSkgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLm92ZXJsYXlSZWYgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5jb250YWlucyhjbGlja1RhcmdldClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gaW5wdXQgPyBpbnB1dCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuICFlbGVtZW50LnJlYWRPbmx5ICYmICFlbGVtZW50LmRpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRBY3RpdmVJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5QXV0b0FjdGl2ZUZpcnN0T3B0aW9uID8gMCA6IC0xKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lQYW5lbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95UGFuZWwoKTtcbiAgICB9XG59XG4iXX0=
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUudHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUVOLEtBQUssRUFFTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQWEsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFbEQ7OztHQUdHO0FBWUgsTUFBTSxPQUFPLCtCQUEr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LFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTt5RUEvRWMsV0FBVztzQkFBeEQsV0FBVzt1QkFBQywrQkFBK0I7Z0JBUXhDLHFCQUFxQjtzQkFEeEIsS0FBSzt1QkFBQywwQkFBMEI7Z0JBYTdCLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBYWUsU0FBUztzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTUUsb0JBQW9CO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNNUIsWUFBWTtzQkFBcEIsS0FBSztnQkFNdUMsY0FBYztzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgbnVtYmVyQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiwgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlBdXRvY29tcGxldGVTZXJ2aWNlIH0gZnJvbSAnLi9vdmVybGF5L2F1dG9jb21wbGV0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRoeUF1dG9jb21wbGV0ZVJlZiB9IGZyb20gJy4vb3ZlcmxheS9hdXRvY29tcGxldGUtcmVmJztcbmltcG9ydCB7IFRoeUF1dG9jb21wbGV0ZSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlPcHRpb24sIFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgbWVyZ2UsIGZyb21FdmVudCwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRVNDQVBFLCBVUF9BUlJPVywgRU5URVIsIERPV05fQVJST1csIFRBQiwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlLCBkZWxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHdhcm5EZXByZWNhdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbi8qKlxuICog6Ieq5Yqo5a6M5oiQ6Kem5Y+R5oyH5LukXG4gKiBAbmFtZSB0aHlBdXRvY29tcGxldGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6XG4gICAgICAgICdpbnB1dFt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgdGV4dGFyZWFbdGh5QXV0b2NvbXBsZXRlVHJpZ2dlcl0sIHRoeS1pbnB1dFt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgdGh5LWlucHV0LXNlYXJjaFt0aHlBdXRvY29tcGxldGVUcmlnZ2VyXSwgaW5wdXRbdGh5QXV0b2NvbXBsZXRlXSwgdGV4dGFyZWFbdGh5QXV0b2NvbXBsZXRlXSwgdGh5LWlucHV0W3RoeUF1dG9jb21wbGV0ZV0sIHRoeS1pbnB1dC1zZWFyY2hbdGh5QXV0b2NvbXBsZXRlXScsXG4gICAgZXhwb3J0QXM6ICd0aHlBdXRvY29tcGxldGVUcmlnZ2VyLCB0aHlBdXRvY29tcGxldGUnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhpbnB1dCknOiAnaGFuZGxlSW5wdXQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnb25Gb2N1cygpJyxcbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5QXV0b2NvbXBsZXRlVHJpZ2dlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICAgIHByaXZhdGUgYXV0b2NvbXBsZXRlUmVmOiBUaHlBdXRvY29tcGxldGVSZWY8VGh5QXV0b2NvbXBsZXRlPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xvc2VLZXlFdmVudFN0cmVhbSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIF9hdXRvY29tcGxldGVDb21wb25lbnQ6IFRoeUF1dG9jb21wbGV0ZTtcblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LWF1dG9jb21wbGV0ZS1vcGVuZWRgKSBwYW5lbE9wZW5lZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5LiL5ouJ6I+c5Y2V57uE5Lu25a6e5L6L44CC5bey5bqf5byD77yM6K+35L2/55SoIHRoeUF1dG9jb21wbGV0ZVxuICAgICAqIEB0eXBlIHRoeUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQElucHV0KCd0aHlBdXRvY29tcGxldGVDb21wb25lbnQnKVxuICAgIHNldCBhdXRvY29tcGxldGVDb21wb25lbnQoZGF0YTogVGh5QXV0b2NvbXBsZXRlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgIHdhcm5EZXByZWNhdGlvbihgVGhlIHByb3BlcnR5IHRoeUF1dG9jb21wbGV0ZUNvbXBvbmVudCB3aWxsIGJlIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgdGh5QXV0b2NvbXBsZXRlIGluc3RlYWQuYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXV0b2NvbXBsZXRlQ29tcG9uZW50ID0gZGF0YTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkuIvmi4noj5zljZXnu4Tku7blrp7kvotcbiAgICAgKiBAdHlwZSB0aHlBdXRvY29tcGxldGVDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeUF1dG9jb21wbGV0ZScpXG4gICAgc2V0IGF1dG9jb21wbGV0ZShkYXRhOiBUaHlBdXRvY29tcGxldGUpIHtcbiAgICAgICAgdGhpcy5fYXV0b2NvbXBsZXRlQ29tcG9uZW50ID0gZGF0YTtcbiAgICB9XG5cbiAgICBnZXQgYXV0b2NvbXBsZXRlQ29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlQ29tcG9uZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuahhum7mOiupCBvZmZzZXRcbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlPZmZzZXQgPSA0O1xuXG4gICAgLyoqXG4gICAgICog5LiL5ouJ6I+c5Y2V55qE5a695bqm77yM5LiN6K6+572u6buY6K6k5LiO6L6T5YWl5qGG5ZCM5a69XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5QXV0b2NvbXBsZXRlV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOS4i+aLieiPnOWNleeahOaYvuekuuS9jee9ru+8jCd0b3AnIHwgJ3RvcExlZnQnIHwgJ3RvcFJpZ2h0JyB8ICdib3R0b20nIHwgJ2JvdHRvbUxlZnQnIHwgJ2JvdHRvbVJpZ2h0JyB8ICdsZWZ0JyB8ICdsZWZ0VG9wJyB8ICdsZWZ0Qm90dG9tJyB8ICdyaWdodCcgfCAncmlnaHRUb3AnIHwgJ3JpZ2h0Qm90dG9tJ1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ2JvdHRvbUxlZnQnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5YWB6K646IGa54Sm5pe25omT5byA5LiL5ouJ6I+c5Y2VXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUlzRm9jdXNPcGVuID0gdHJ1ZTtcblxuICAgIGdldCBhY3RpdmVPcHRpb24oKTogVGh5T3B0aW9uIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCAmJiB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHBhbmVsQ2xvc2luZ0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5T3B0aW9uU2VsZWN0ZWQsXG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnRhYk91dC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLnBhbmVsT3BlbmVkKSksXG4gICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0sXG4gICAgICAgICAgICB0aGlzLmdldE91dHNpZGVDbGlja1N0cmVhbSgpLFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID8gdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5wYW5lbE9wZW5lZCkpIDogb2YoKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAvLyBOb3JtYWxpemUgdGhlIG91dHB1dCBzbyB3ZSByZXR1cm4gYSBjb25zaXN0ZW50IHR5cGUuXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4gKGV2ZW50IGluc3RhbmNlb2YgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPyBldmVudCA6IG51bGwpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBhdXRvY29tcGxldGVTZXJ2aWNlOiBUaHlBdXRvY29tcGxldGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuT3BlbigpICYmIHRoaXMudGh5SXNGb2N1c09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgICAgIC8vIFByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uIG9uIGFsbCBlc2NhcGUga2V5IHByZXNzZXMuIFRoaXMgaXMgaGVyZSBwcmltYXJpbHkgdG8gYnJpbmcgSUVcbiAgICAgICAgLy8gaW4gbGluZSB3aXRoIG90aGVyIGJyb3dzZXJzLiBCeSBkZWZhdWx0LCBwcmVzc2luZyBlc2NhcGUgb24gSUUgd2lsbCBjYXVzZSBpdCB0byByZXZlcnRcbiAgICAgICAgLy8gdGhlIGlucHV0IHZhbHVlIHRvIHRoZSBvbmUgdGhhdCBpdCBoYWQgb24gZm9jdXMsIGhvd2V2ZXIgaXQgd29uJ3QgZGlzcGF0Y2ggYW55IGV2ZW50c1xuICAgICAgICAvLyB3aGljaCBtZWFucyB0aGF0IHRoZSBtb2RlbCB2YWx1ZSB3aWxsIGJlIG91dCBvZiBzeW5jIHdpdGggdGhlIHZpZXcuXG4gICAgICAgIGlmIChrZXlDb2RlID09PSBFU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlT3B0aW9uICYmIGtleUNvZGUgPT09IEVOVEVSICYmIHRoaXMucGFuZWxPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uLnNlbGVjdFZpYUludGVyYWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29uc3QgcHJldkFjdGl2ZUl0ZW0gPSB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW07XG4gICAgICAgICAgICBjb25zdCBpc0Fycm93S2V5ID0ga2V5Q29kZSA9PT0gVVBfQVJST1cgfHwga2V5Q29kZSA9PT0gRE9XTl9BUlJPVztcbiAgICAgICAgICAgIGlmICh0aGlzLnBhbmVsT3BlbmVkIHx8IGtleUNvZGUgPT09IFRBQikge1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNBcnJvd0tleSAmJiB0aGlzLmNhbk9wZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGlzQXJyb3dLZXkgfHwgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQua2V5TWFuYWdlci5hY3RpdmVJdGVtICE9PSBwcmV2QWN0aXZlSXRlbSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIFNjcm9sbFRvU2VydmljZS5zY3JvbGxUb0VsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmtleU1hbmFnZXIuYWN0aXZlSXRlbS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jYW5PcGVuKCkgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlblBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmO1xuICAgICAgICBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgLy8gQ2xvc2Ugd2hlbiBwcmVzc2luZyBFU0NBUEUgb3IgQUxUICsgVVBfQVJST1csIGJhc2VkIG9uIHRoZSBhMTF5IGd1aWRlbGluZXMuXG4gICAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyN0ZXh0Ym94LWtleWJvYXJkLWludGVyYWN0aW9uXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8IChldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyAmJiBldmVudC5hbHRLZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldEFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0ubmV4dCgpO1xuICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3RvcCBwcm9wYWdhdGlvbiwgb3RoZXJ3aXNlIHRoZSBldmVudCB3aWxsIGV2ZW50dWFsbHlcbiAgICAgICAgICAgICAgICAvLyByZWFjaCB0aGUgaW5wdXQgaXRzZWxmIGFuZCBjYXVzZSB0aGUgb3ZlcmxheSB0byBiZSByZW9wZW5lZC5cbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9wZW4oKTtcbiAgICB9XG5cbiAgICBjbG9zZVBhbmVsKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgICAgICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMudGh5UGxhY2VtZW50LFxuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLnRoeU9mZnNldCxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICAgICAgICB3aWR0aDogdGhpcy50aHlBdXRvY29tcGxldGVXaWR0aCB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWYgPSB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2Uub3Blbih0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5jb250ZW50VGVtcGxhdGVSZWYsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBkZWxheSAyMDBtcyB0byBwcmV2ZW50IGVtaXQgZG9jdW1lbnQgY2xpY2sgcmlnaHRub3dcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZWZcbiAgICAgICAgICAgIC5hZnRlck9wZW5lZCgpXG4gICAgICAgICAgICAucGlwZShkZWxheSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlVG9DbG9zaW5nQWN0aW9ucygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZVJlZi5nZXRPdmVybGF5UmVmKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgbGlzdGVucyB0byBhIHN0cmVhbSBvZiBwYW5lbCBjbG9zaW5nIGFjdGlvbnMgYW5kIHJlc2V0cyB0aGVcbiAgICAgKiBzdHJlYW0gZXZlcnkgdGltZSB0aGUgb3B0aW9uIGxpc3QgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgY29uc3QgZmlyc3RTdGFibGUgPSB0aGlzLm5nWm9uZS5vblN0YWJsZS5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgICAgICBjb25zdCBvcHRpb25DaGFuZ2VzID0gdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQub3B0aW9ucy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAvLyBEZWZlciBlbWl0dGluZyB0byB0aGUgc3RyZWFtIHVudGlsIHRoZSBuZXh0IHRpY2ssIGJlY2F1c2UgY2hhbmdpbmdcbiAgICAgICAgICAgIC8vIGJpbmRpbmdzIGluIGhlcmUgd2lsbCBjYXVzZSBcImNoYW5nZWQgYWZ0ZXIgY2hlY2tlZFwiIGVycm9ycy5cbiAgICAgICAgICAgIGRlbGF5KDApXG4gICAgICAgICk7XG4gICAgICAgIC8vIFdoZW4gdGhlIHpvbmUgaXMgc3RhYmxlIGluaXRpYWxseSwgYW5kIHdoZW4gdGhlIG9wdGlvbiBsaXN0IGNoYW5nZXMuLi5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG1lcmdlKGZpcnN0U3RhYmxlLCBvcHRpb25DaGFuZ2VzKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgc3RyZWFtIG9mIHBhbmVsQ2xvc2luZ0FjdGlvbnMsIHJlcGxhY2luZyBhbnkgcHJldmlvdXMgc3RyZWFtc1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlcmUgY3JlYXRlZCwgYW5kIGZsYXR0ZW4gaXQgc28gb3VyIHN0cmVhbSBvbmx5IGVtaXRzIGNsb3NpbmcgZXZlbnRzLi4uXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlSXRlbSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFuZWxDbG9zaW5nQWN0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIGZpcnN0IGNsb3NpbmcgZXZlbnQgb2NjdXJzLi4uXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLy8gc2V0IHRoZSB2YWx1ZSwgY2xvc2UgdGhlIHBhbmVsLCBhbmQgY29tcGxldGUuXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLnNldFZhbHVlQW5kQ2xvc2UoZXZlbnQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVBbmRDbG9zZShldmVudDogVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5vcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQub3B0aW9uLnRoeUxhYmVsVGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIFN0cmVhbSBvZiBjbGlja3Mgb3V0c2lkZSBvZiB0aGUgYXV0b2NvbXBsZXRlIHBhbmVsLiAqL1xuICAgIHByaXZhdGUgZ2V0T3V0c2lkZUNsaWNrU3RyZWFtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCAnY2xpY2snKSBhcyBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+LFxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsICd0b3VjaGVuZCcpIGFzIE9ic2VydmFibGU8VG91Y2hFdmVudD5cbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgU2hhZG93IERPTSwgdGhlIGV2ZW50IHRhcmdldCB3aWxsIGJlIHRoZSBzaGFkb3cgcm9vdCwgc28gd2UgaGF2ZSB0b1xuICAgICAgICAgICAgICAgIC8vIGZhbGwgYmFjayB0byBjaGVjayB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgcGF0aCBvZiB0aGUgY2xpY2sgZXZlbnQuXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpY2tUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkOiBhbnkgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbE9wZW5lZCAmJlxuICAgICAgICAgICAgICAgICAgICBjbGlja1RhcmdldCAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAoIWZvcm1GaWVsZCB8fCAhZm9ybUZpZWxkLmNvbnRhaW5zKGNsaWNrVGFyZ2V0KSkgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLm92ZXJsYXlSZWYgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5jb250YWlucyhjbGlja1RhcmdldClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gaW5wdXQgPyBpbnB1dCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuICFlbGVtZW50LnJlYWRPbmx5ICYmICFlbGVtZW50LmRpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRBY3RpdmVJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQudGh5QXV0b0FjdGl2ZUZpcnN0T3B0aW9uID8gMCA6IC0xKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lQYW5lbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlS2V5RXZlbnRTdHJlYW0uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95UGFuZWwoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output, booleanAttribute } from '@angular/core';
2
- import { isString } from 'ngx-tethys/util';
1
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import { isString, coerceBooleanProperty } from 'ngx-tethys/util';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
4
  import { ThyAvatarService } from './avatar.service';
5
5
  import { AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe } from './avatar.pipe';
@@ -138,7 +138,7 @@ export class ThyAvatar {
138
138
  this.thyError.emit($event);
139
139
  }
140
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAvatar, deps: [{ token: i1.ThyAvatarService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAvatar, isStandalone: true, selector: "thy-avatar", inputs: { thyShowName: ["thyShowName", "thyShowName", booleanAttribute], thySrc: "thySrc", thyName: "thyName", thySize: "thySize", thyShowRemove: ["thyShowRemove", "thyShowRemove", booleanAttribute], thyRemovable: ["thyRemovable", "thyRemovable", booleanAttribute], thyImgClass: "thyImgClass", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyLoading: "thyLoading", thyFetchPriority: "thyFetchPriority" }, outputs: { thyOnRemove: "thyOnRemove", thyRemove: "thyRemove", thyError: "thyError" }, host: { properties: { "class.thy-avatar": "this._isAvatar" } }, ngImport: i0, template: "<img\n *ngIf=\"_src; else noSrc\"\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n/>\n\n<ng-template #noSrc>\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n</ng-template>\n\n<ng-template [ngIf]=\"thyShowName\">\n <div *ngIf=\"avatarNameSafeHtml; else noAvatarNameSafeHtml\" class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n <ng-template #noAvatarNameSafeHtml>\n <div class=\"avatar-name\">{{ avatarName }}</div>\n </ng-template>\n</ng-template>\n\n<a *ngIf=\"_showRemove\" (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</a>\n<div *ngIf=\"thyDisabled\" class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "pipe", type: AvatarShortNamePipe, name: "avatarShortName" }, { kind: "pipe", type: AvatarBgColorPipe, name: "avatarBgColor" }, { kind: "pipe", type: AvatarSrcPipe, name: "thyAvatarSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAvatar, isStandalone: true, selector: "thy-avatar", inputs: { thyShowName: ["thyShowName", "thyShowName", coerceBooleanProperty], thySrc: "thySrc", thyName: "thyName", thySize: "thySize", thyShowRemove: ["thyShowRemove", "thyShowRemove", coerceBooleanProperty], thyRemovable: ["thyRemovable", "thyRemovable", coerceBooleanProperty], thyImgClass: "thyImgClass", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyLoading: "thyLoading", thyFetchPriority: "thyFetchPriority" }, outputs: { thyOnRemove: "thyOnRemove", thyRemove: "thyRemove", thyError: "thyError" }, host: { properties: { "class.thy-avatar": "this._isAvatar" } }, ngImport: i0, template: "<img\n *ngIf=\"_src; else noSrc\"\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n/>\n\n<ng-template #noSrc>\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n</ng-template>\n\n<ng-template [ngIf]=\"thyShowName\">\n <div *ngIf=\"avatarNameSafeHtml; else noAvatarNameSafeHtml\" class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n <ng-template #noAvatarNameSafeHtml>\n <div class=\"avatar-name\">{{ avatarName }}</div>\n </ng-template>\n</ng-template>\n\n<a *ngIf=\"_showRemove\" (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</a>\n<div *ngIf=\"thyDisabled\" class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "pipe", type: AvatarShortNamePipe, name: "avatarShortName" }, { kind: "pipe", type: AvatarBgColorPipe, name: "avatarBgColor" }, { kind: "pipe", type: AvatarSrcPipe, name: "thyAvatarSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
142
142
  }
143
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAvatar, decorators: [{
144
144
  type: Component,
@@ -154,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
154
154
  type: Output
155
155
  }], thyShowName: [{
156
156
  type: Input,
157
- args: [{ transform: booleanAttribute }]
157
+ args: [{ transform: coerceBooleanProperty }]
158
158
  }], thySrc: [{
159
159
  type: Input
160
160
  }], thyName: [{
@@ -163,18 +163,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
163
163
  type: Input
164
164
  }], thyShowRemove: [{
165
165
  type: Input,
166
- args: [{ transform: booleanAttribute }]
166
+ args: [{ transform: coerceBooleanProperty }]
167
167
  }], thyRemovable: [{
168
168
  type: Input,
169
- args: [{ transform: booleanAttribute }]
169
+ args: [{ transform: coerceBooleanProperty }]
170
170
  }], thyImgClass: [{
171
171
  type: Input
172
172
  }], thyDisabled: [{
173
173
  type: Input,
174
- args: [{ transform: booleanAttribute }]
174
+ args: [{ transform: coerceBooleanProperty }]
175
175
  }], thyLoading: [{
176
176
  type: Input
177
177
  }], thyFetchPriority: [{
178
178
  type: Input
179
179
  }] } });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV6RCxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLEdBQUcsRUFBRSxFQUFFO0lBQ1AsRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFF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LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IFRoeUF2YXRhclNlcnZpY2UgfSBmcm9tICcuL2F2YXRhci5zZXJ2aWNlJztcbmltcG9ydCB7IEF2YXRhclNob3J0TmFtZVBpcGUsIEF2YXRhckJnQ29sb3JQaXBlLCBBdmF0YXJTcmNQaXBlIH0gZnJvbSAnLi9hdmF0YXIucGlwZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYsIE5nQ2xhc3MsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCBzaXplQXJyYXkgPSBbMTYsIDIyLCAyNCwgMjgsIDMyLCAzNiwgNDQsIDQ4LCA2OCwgMTEwLCAxNjBdO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSVpFID0gMzY7XG5cbmV4cG9ydCBjb25zdCB0aHlBdmF0YXJTaXplTWFwID0ge1xuICAgIHh4czogMjIsXG4gICAgeHM6IDI0LFxuICAgIHNtOiAzMixcbiAgICBtZDogMzYsXG4gICAgbGc6IDQ4XG59O1xuXG4vKiogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZW1iZWRkZWQtY29udGVudC5odG1sI2F0dHItaW1nLWxvYWRpbmcgKi9cbmV4cG9ydCB0eXBlIFRoeUF2YXRhckxvYWRpbmcgPSAnZWFnZXInIHwgJ2xhenknO1xuXG4vKiogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9wcmlvcml0eS1oaW50cy8jaWRsLWluZGV4ICovXG5leHBvcnQgdHlwZSBUaHlBdmF0YXJGZXRjaFByaW9yaXR5ID0gJ2hpZ2gnIHwgJ2xvdycgfCAnYXV0byc7XG5cbi8qKlxuICog5aS05YOP57uE5Lu2XG4gKiBAbmFtZSB0aHktYXZhdGFyXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ0NsYXNzLCBOZ1N0eWxlLCBUaHlJY29uLCBBdmF0YXJTaG9ydE5hbWVQaXBlLCBBdmF0YXJCZ0NvbG9yUGlwZSwgQXZhdGFyU3JjUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QXZhdGFyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBfc3JjOiBzdHJpbmc7XG4gICAgX25hbWU6IHN0cmluZztcbiAgICBfc2l6ZTogbnVtYmVyO1xuICAgIF9zaG93UmVtb3ZlID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWU/OiBzdHJpbmc7XG4gICAgcHVibGljIGF2YXRhck5hbWVTYWZlSHRtbD86IFNhZmVIdG1sO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktYXZhdGFyJykgX2lzQXZhdGFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqICog5bey5bqf5byD77yM6K+35L2/55SoIHRoeVJlbW92ZVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeU9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOenu+mZpOaMiemSrueahOS6i+S7tiwg5b2TIHRoeVJlbW92YWJsZSDkuLogdHJ1ZSDml7botbfkvZznlKhcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5UmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogIOWktOWDjyBpbWcg5Yqg6L29IGVycm9yIOaXtuinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlFcnJvcjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrkurrlkZjlkI3np7BcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlTaG93TmFtZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWktOWDj+i3r+W+hOWcsOWdgCwg6buY6K6k5Li65YWo6Lev5b6E77yM5aaC5p6c5LiN5piv5YWo6Lev5b6E77yM5Y+v5Lul6YCa6L+H6Ieq5a6a5LmJ5pyN5YqhIFRoeUF2YXRhclNlcnZpY2XvvIzph43lhpkgc3JjVHJhbnNmb3JtIOaWueazleWunueOsOi9rOaNolxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0QXZhdGFyU3JjKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkurrlkZjlkI3np7DvvIjlj6/orr7nva7oh6rlrprkuYnlkI3np7DvvIzpnIDpgJrov4foh6rlrprkuYnmnI3liqEgVGh5QXZhdGFyU2VydmljZe+8jOmHjeWGmSBuYW1lVHJhbnNmb3JtIOaWueazleWOu+WunueOsOi9rOaNou+8iVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyB0aGlzLl9uYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldEF2YXRhck5hbWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWktOWDj+Wkp+Wwj1xuICAgICAqIEB0eXBlIDE2IHwgMjIgfCAyNCB8IDI4IHwgMzIgfCAzNiB8IDQ0IHwgNDggfCA2OCB8IDExMCB8IDE2MCB8IHh4cygyMnB4KSB8IHhzKDI0cHgpIHwgc20oMzJweCkgfCBtZCgzNnB4KSB8IGxnKDQ4cHgpXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdmF0YXJTaXplKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF2YXRhclNpemUoKHZhbHVlIGFzIG51bWJlcikgKiAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmFibGVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVNob3dSZW1vdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1JlbW92ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuuenu+mZpOaMiemSrlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVJlbW92YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UmVtb3ZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+54mH6Ieq5a6a5LmJ57G7XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SW1nQ2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L29562W55WlXG4gICAgICogQHR5cGUgZWFnZXIo56uL5Y2z5Yqg6L29KSB8IGxhenko5bu26L+f5Yqg6L29KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxvYWRpbmc/OiBUaHlBdmF0YXJMb2FkaW5nO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L295LyY5YWI57qnXG4gICAgICogQHR5cGUgYXV0byjpu5jorqQpIHwgaGlnaCjpq5gpIHwgbG93KOS9jilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlGZXRjaFByaW9yaXR5PzogVGh5QXZhdGFyRmV0Y2hQcmlvcml0eTtcblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChzaXplQXJyYXkuaW5kZXhPZihzaXplKSA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSB0aGlzLmZpbmRDbG9zZXN0U2l6ZShzaXplQXJyYXksIHNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZENsb3Nlc3RTaXplKHNpemVBcnJheTogbnVtYmVyW10sIGN1cnJlbnRTaXplOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5WzBdO1xuICAgICAgICBsZXQgY2xvc2VzdERpZmZlcmVuY2UgPSBNYXRoLmFicyhjbG9zZXN0VmFsdWUgLSBjdXJyZW50U2l6ZSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzaXplQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREaWZmZXJlbmNlID0gTWF0aC5hYnMoc2l6ZUFycmF5W2ldIC0gY3VycmVudFNpemUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnREaWZmZXJlbmNlIDw9IGNsb3Nlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5W2ldO1xuICAgICAgICAgICAgICAgIGNsb3Nlc3REaWZmZXJlbmNlID0gY3VycmVudERpZmZlcmVuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvc2VzdFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNyYyhzcmM6IHN0cmluZykge1xuICAgICAgICBpZiAoc3JjICYmIHRoaXMudGh5QXZhdGFyU2VydmljZS5pZ25vcmVBdmF0YXJTcmNQYXRocy5pbmRleE9mKHNyYykgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBzcmM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0QXZhdGFyTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRoeUF2YXRhclNlcnZpY2UubmFtZVRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIGlmIChpc1N0cmluZyhuYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJOYW1lID0gbmFtZSBhcyBzdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyTmFtZVNhZmVIdG1sID0gbmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeUF2YXRhclNlcnZpY2U6IFRoeUF2YXRhclNlcnZpY2UsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0QXZhdGFyU2l6ZShERUZBVUxUX1NJWkUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHJlbW92ZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25SZW1vdmUuZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRoeVJlbW92ZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgYXZhdGFySW1nRXJyb3IoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLl9zZXRBdmF0YXJTcmMobnVsbCk7XG4gICAgICAgIHRoaXMudGh5RXJyb3IuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxpbWdcbiAgKm5nSWY9XCJfc3JjOyBlbHNlIG5vU3JjXCJcbiAgW3NyY109XCJfc3JjIHwgdGh5QXZhdGFyU3JjOiBfc2l6ZVwiXG4gIGNsYXNzPVwiYXZhdGFyLWF2YXRhclwiXG4gIFtuZ0NsYXNzXT1cInRoeUltZ0NsYXNzXCJcbiAgYWx0PVwie3sgYXZhdGFyTmFtZSB8fCAnJyB9fVwiXG4gIFthdHRyLmxvYWRpbmddPVwidGh5TG9hZGluZ1wiXG4gIFthdHRyLmZldGNocHJpb3JpdHldPVwidGh5RmV0Y2hQcmlvcml0eVwiXG4gIChlcnJvcik9XCJhdmF0YXJJbWdFcnJvcigkZXZlbnQpXCJcbi8+XG5cbjxuZy10ZW1wbGF0ZSAjbm9TcmM+XG4gIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWRlZmF1bHRcIiBbbmdTdHlsZV09XCJhdmF0YXJOYW1lIHwgYXZhdGFyQmdDb2xvclwiPlxuICAgIDxkaXY+e3sgYXZhdGFyTmFtZSB8IGF2YXRhclNob3J0TmFtZSB9fTwvZGl2PlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgW25nSWZdPVwidGh5U2hvd05hbWVcIj5cbiAgPGRpdiAqbmdJZj1cImF2YXRhck5hbWVTYWZlSHRtbDsgZWxzZSBub0F2YXRhck5hbWVTYWZlSHRtbFwiIGNsYXNzPVwiYXZhdGFyLW5hbWVcIiBbaW5uZXJIdG1sXT1cImF2YXRhck5hbWVTYWZlSHRtbFwiPjwvZGl2PlxuICA8bmctdGVtcGxhdGUgI25vQXZhdGFyTmFtZVNhZmVIdG1sPlxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbmFtZVwiPnt7IGF2YXRhck5hbWUgfX08L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxhICpuZ0lmPVwiX3Nob3dSZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIiBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJyZW1vdmUtbGluayBhdmF0YXItcmVtb3ZlXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInJlbW92ZS1saW5rLWljb25cIiB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIj48L3RoeS1pY29uPlxuPC9hPlxuPGRpdiAqbmdJZj1cInRoeURpc2FibGVkXCIgY2xhc3M9XCJ0aHktYXZhdGFyLWRpc2FibGVkXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInRoeS1hdmF0YXItZGlzYWJsZWQtaWNvblwiIHRoeUljb25OYW1lPVwiYmFuXCI+PC90aHktaWNvbj5cbjwvZGl2PlxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSSxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFekQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixHQUFHLEVBQUUsRUFBRTtJQUNQLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJ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ZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpc1N0cmluZywgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlBdmF0YXJTZXJ2aWNlIH0gZnJvbSAnLi9hdmF0YXIuc2VydmljZSc7XG5pbXBvcnQgeyBBdmF0YXJTaG9ydE5hbWVQaXBlLCBBdmF0YXJCZ0NvbG9yUGlwZSwgQXZhdGFyU3JjUGlwZSB9IGZyb20gJy4vYXZhdGFyLnBpcGUnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3Qgc2l6ZUFycmF5ID0gWzE2LCAyMiwgMjQsIDI4LCAzMiwgMzYsIDQ0LCA0OCwgNjgsIDExMCwgMTYwXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0laRSA9IDM2O1xuXG5leHBvcnQgY29uc3QgdGh5QXZhdGFyU2l6ZU1hcCA9IHtcbiAgICB4eHM6IDIyLFxuICAgIHhzOiAyNCxcbiAgICBzbTogMzIsXG4gICAgbWQ6IDM2LFxuICAgIGxnOiA0OFxufTtcblxuLyoqIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2VtYmVkZGVkLWNvbnRlbnQuaHRtbCNhdHRyLWltZy1sb2FkaW5nICovXG5leHBvcnQgdHlwZSBUaHlBdmF0YXJMb2FkaW5nID0gJ2VhZ2VyJyB8ICdsYXp5JztcblxuLyoqIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vcHJpb3JpdHktaGludHMvI2lkbC1pbmRleCAqL1xuZXhwb3J0IHR5cGUgVGh5QXZhdGFyRmV0Y2hQcmlvcml0eSA9ICdoaWdoJyB8ICdsb3cnIHwgJ2F1dG8nO1xuXG4vKipcbiAqIOWktOWDj+e7hOS7tlxuICogQG5hbWUgdGh5LWF2YXRhclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWF2YXRhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdDbGFzcywgTmdTdHlsZSwgVGh5SWNvbiwgQXZhdGFyU2hvcnROYW1lUGlwZSwgQXZhdGFyQmdDb2xvclBpcGUsIEF2YXRhclNyY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUF2YXRhciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgX3NyYzogc3RyaW5nO1xuICAgIF9uYW1lOiBzdHJpbmc7XG4gICAgX3NpemU6IG51bWJlcjtcbiAgICBfc2hvd1JlbW92ZSA9IGZhbHNlO1xuXG4gICAgcHVibGljIGF2YXRhclNyYzogc3RyaW5nO1xuICAgIHB1YmxpYyBhdmF0YXJOYW1lPzogc3RyaW5nO1xuICAgIHB1YmxpYyBhdmF0YXJOYW1lU2FmZUh0bWw/OiBTYWZlSHRtbDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWF2YXRhcicpIF9pc0F2YXRhciA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlPblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqICDnp7vpmaTmjInpkq7nmoTkuovku7YsIOW9kyB0aHlSZW1vdmFibGUg5Li6IHRydWUg5pe26LW35L2c55SoXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeVJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqICDlpLTlg48gaW1nIOWKoOi9vSBlcnJvciDml7bop6blj5FcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5RXJyb3I6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5bGV56S65Lq65ZGY5ZCN56ewXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlTaG93TmFtZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWktOWDj+i3r+W+hOWcsOWdgCwg6buY6K6k5Li65YWo6Lev5b6E77yM5aaC5p6c5LiN5piv5YWo6Lev5b6E77yM5Y+v5Lul6YCa6L+H6Ieq5a6a5LmJ5pyN5YqhIFRoeUF2YXRhclNlcnZpY2XvvIzph43lhpkgc3JjVHJhbnNmb3JtIOaWueazleWunueOsOi9rOaNolxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2V0QXZhdGFyU3JjKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkurrlkZjlkI3np7DvvIjlj6/orr7nva7oh6rlrprkuYnlkI3np7DvvIzpnIDpgJrov4foh6rlrprkuYnmnI3liqEgVGh5QXZhdGFyU2VydmljZe+8jOmHjeWGmSBuYW1lVHJhbnNmb3JtIOaWueazleWOu+WunueOsOi9rOaNou+8iVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyB0aGlzLl9uYW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3NldEF2YXRhck5hbWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWktOWDj+Wkp+Wwj1xuICAgICAqIEB0eXBlIDE2IHwgMjIgfCAyNCB8IDI4IHwgMzIgfCAzNiB8IDQ0IHwgNDggfCA2OCB8IDExMCB8IDE2MCB8IHh4cygyMnB4KSB8IHhzKDI0cHgpIHwgc20oMzJweCkgfCBtZCgzNnB4KSB8IGxnKDQ4cHgpXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdmF0YXJTaXplKHRoeUF2YXRhclNpemVNYXBbdmFsdWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF2YXRhclNpemUoKHZhbHVlIGFzIG51bWJlcikgKiAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOivt+S9v+eUqCB0aHlSZW1vdmFibGVcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5U2hvd1JlbW92ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UmVtb3ZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5bGV56S656e76Zmk5oyJ6ZKuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlSZW1vdmFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd1JlbW92ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWbvueJh+iHquWumuS5ieexu1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUltZ0NsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L29562W55WlXG4gICAgICogQHR5cGUgZWFnZXIo56uL5Y2z5Yqg6L29KSB8IGxhenko5bu26L+f5Yqg6L29KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxvYWRpbmc/OiBUaHlBdmF0YXJMb2FkaW5nO1xuXG4gICAgLyoqXG4gICAgICog5Zu+54mH5Yqg6L295LyY5YWI57qnXG4gICAgICogQHR5cGUgYXV0byjpu5jorqQpIHwgaGlnaCjpq5gpIHwgbG93KOS9jilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlGZXRjaFByaW9yaXR5PzogVGh5QXZhdGFyRmV0Y2hQcmlvcml0eTtcblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChzaXplQXJyYXkuaW5kZXhPZihzaXplKSA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSB0aGlzLmZpbmRDbG9zZXN0U2l6ZShzaXplQXJyYXksIHNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZENsb3Nlc3RTaXplKHNpemVBcnJheTogbnVtYmVyW10sIGN1cnJlbnRTaXplOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5WzBdO1xuICAgICAgICBsZXQgY2xvc2VzdERpZmZlcmVuY2UgPSBNYXRoLmFicyhjbG9zZXN0VmFsdWUgLSBjdXJyZW50U2l6ZSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzaXplQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREaWZmZXJlbmNlID0gTWF0aC5hYnMoc2l6ZUFycmF5W2ldIC0gY3VycmVudFNpemUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnREaWZmZXJlbmNlIDw9IGNsb3Nlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VzdFZhbHVlID0gc2l6ZUFycmF5W2ldO1xuICAgICAgICAgICAgICAgIGNsb3Nlc3REaWZmZXJlbmNlID0gY3VycmVudERpZmZlcmVuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvc2VzdFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEF2YXRhclNyYyhzcmM6IHN0cmluZykge1xuICAgICAgICBpZiAoc3JjICYmIHRoaXMudGh5QXZhdGFyU2VydmljZS5pZ25vcmVBdmF0YXJTcmNQYXRocy5pbmRleE9mKHNyYykgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBzcmM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0QXZhdGFyTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRoeUF2YXRhclNlcnZpY2UubmFtZVRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIGlmIChpc1N0cmluZyhuYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJOYW1lID0gbmFtZSBhcyBzdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyTmFtZVNhZmVIdG1sID0gbmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeUF2YXRhclNlcnZpY2U6IFRoeUF2YXRhclNlcnZpY2UsIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0QXZhdGFyU2l6ZShERUZBVUxUX1NJWkUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWF2YXRhci0ke3RoaXMuX3NpemV9YF0pO1xuICAgIH1cblxuICAgIHJlbW92ZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5T25SZW1vdmUuZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLnRoeVJlbW92ZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgYXZhdGFySW1nRXJyb3IoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLl9zZXRBdmF0YXJTcmMobnVsbCk7XG4gICAgICAgIHRoaXMudGh5RXJyb3IuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxpbWdcbiAgKm5nSWY9XCJfc3JjOyBlbHNlIG5vU3JjXCJcbiAgW3NyY109XCJfc3JjIHwgdGh5QXZhdGFyU3JjOiBfc2l6ZVwiXG4gIGNsYXNzPVwiYXZhdGFyLWF2YXRhclwiXG4gIFtuZ0NsYXNzXT1cInRoeUltZ0NsYXNzXCJcbiAgYWx0PVwie3sgYXZhdGFyTmFtZSB8fCAnJyB9fVwiXG4gIFthdHRyLmxvYWRpbmddPVwidGh5TG9hZGluZ1wiXG4gIFthdHRyLmZldGNocHJpb3JpdHldPVwidGh5RmV0Y2hQcmlvcml0eVwiXG4gIChlcnJvcik9XCJhdmF0YXJJbWdFcnJvcigkZXZlbnQpXCJcbi8+XG5cbjxuZy10ZW1wbGF0ZSAjbm9TcmM+XG4gIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWRlZmF1bHRcIiBbbmdTdHlsZV09XCJhdmF0YXJOYW1lIHwgYXZhdGFyQmdDb2xvclwiPlxuICAgIDxkaXY+e3sgYXZhdGFyTmFtZSB8IGF2YXRhclNob3J0TmFtZSB9fTwvZGl2PlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgW25nSWZdPVwidGh5U2hvd05hbWVcIj5cbiAgPGRpdiAqbmdJZj1cImF2YXRhck5hbWVTYWZlSHRtbDsgZWxzZSBub0F2YXRhck5hbWVTYWZlSHRtbFwiIGNsYXNzPVwiYXZhdGFyLW5hbWVcIiBbaW5uZXJIdG1sXT1cImF2YXRhck5hbWVTYWZlSHRtbFwiPjwvZGl2PlxuICA8bmctdGVtcGxhdGUgI25vQXZhdGFyTmFtZVNhZmVIdG1sPlxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbmFtZVwiPnt7IGF2YXRhck5hbWUgfX08L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxhICpuZ0lmPVwiX3Nob3dSZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIiBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJyZW1vdmUtbGluayBhdmF0YXItcmVtb3ZlXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInJlbW92ZS1saW5rLWljb25cIiB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIj48L3RoeS1pY29uPlxuPC9hPlxuPGRpdiAqbmdJZj1cInRoeURpc2FibGVkXCIgY2xhc3M9XCJ0aHktYXZhdGFyLWRpc2FibGVkXCI+XG4gIDx0aHktaWNvbiBjbGFzcz1cInRoeS1hdmF0YXItZGlzYWJsZWQtaWNvblwiIHRoeUljb25OYW1lPVwiYmFuXCI+PC90aHktaWNvbj5cbjwvZGl2PlxuIl19
@@ -1,6 +1,7 @@
1
1
  import { isTextColor } from 'ngx-tethys/core';
2
- import { ChangeDetectionStrategy, Component, ElementRef, Input, booleanAttribute, numberAttribute } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Input, numberAttribute } from '@angular/core';
3
3
  import { NgIf } from '@angular/common';
4
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
6
7
  * 徽标组件,支持组件`thy-badge`和`thyBadge`指令两种使用方式
@@ -199,7 +200,7 @@ export class ThyBadge {
199
200
  }
200
201
  }
201
202
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyBadge, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
202
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyBadge, isStandalone: true, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: ["thyCount", "thyCount", numberAttribute], thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thySize: "thySize", thyIsDot: ["thyIsDot", "thyIsDot", booleanAttribute], thyIsHollow: ["thyIsHollow", "thyIsHollow", booleanAttribute], thyKeepShow: ["thyKeepShow", "thyKeepShow", booleanAttribute], thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, ngImport: i0, template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyBadge, isStandalone: true, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: ["thyCount", "thyCount", numberAttribute], thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thySize: "thySize", thyIsDot: ["thyIsDot", "thyIsDot", coerceBooleanProperty], thyIsHollow: ["thyIsHollow", "thyIsHollow", coerceBooleanProperty], thyKeepShow: ["thyKeepShow", "thyKeepShow", coerceBooleanProperty], thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, ngImport: i0, template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
203
204
  }
204
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyBadge, decorators: [{
205
206
  type: Component,
@@ -223,16 +224,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
223
224
  type: Input
224
225
  }], thyIsDot: [{
225
226
  type: Input,
226
- args: [{ transform: booleanAttribute }]
227
+ args: [{ transform: coerceBooleanProperty }]
227
228
  }], thyIsHollow: [{
228
229
  type: Input,
229
- args: [{ transform: booleanAttribute }]
230
+ args: [{ transform: coerceBooleanProperty }]
230
231
  }], thyKeepShow: [{
231
232
  type: Input,
232
- args: [{ transform: booleanAttribute }]
233
+ args: [{ transform: coerceBooleanProperty }]
233
234
  }], thyTextColor: [{
234
235
  type: Input
235
236
  }], thyBackgroundColor: [{
236
237
  type: Input
237
238
  }] } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXZDOzs7R0FHRztBQVlILE1BQU0sT0FBTyxRQUFRO0lBd0NqQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkMxQyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUlaLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTVCLFdBQVc7UUFDRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRWxCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTVCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBb0J0QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBR2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFD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RSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7OEdBclBRLFFBQVE7a0dBQVIsUUFBUSx5SEE2REcsZUFBZSxtR0FxQ2YsZUFBZSwwREEyQmYsZ0JBQWdCLCtDQVloQixnQkFBZ0IsK0NBWWhCLGdCQUFnQiw4TUMzS3hDLHdOQUlBLDRDRGdCYyxJQUFJOzsyRkFFTCxRQUFRO2tCQVhwQixTQUFTOytCQUNJLHNCQUFzQixtQkFFZix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLDJCQUEyQixFQUFFLFdBQVc7cUJBQzNDLGNBQ1csSUFBSSxXQUNQLENBQUMsSUFBSSxDQUFDOytFQW9EWCxPQUFPO3NCQURWLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFlakMsVUFBVTtzQkFEYixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFVRixXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQWVqQyxPQUFPO3NCQURWLEtBQUs7Z0JBY0YsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWFsQyxXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBYWxDLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFhbEMsWUFBWTtzQkFEZixLQUFLO2dCQW1CRixrQkFBa0I7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1RleHRDb2xvciB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIGJvb2xlYW5BdHRyaWJ1dGUsIG51bWJlckF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCB0eXBlIFRoeUJhZGdlU2l6ZSA9ICdtZCcgfCAnc20nIHwgJ2xnJztcblxuLyoqXG4gKiDlvr3moIfnu4Tku7bvvIzmlK/mjIHnu4Tku7ZgdGh5LWJhZGdlYOWSjGB0aHlCYWRnZWDmjIfku6TkuKTnp43kvb/nlKjmlrnlvI9cbiAqIEBuYW1lIHRoeS1iYWRnZSxbdGh5QmFkZ2VdXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWJhZGdlLFt0aHlCYWRnZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1iYWRnZS1jb250YWluZXInLFxuICAgICAgICAnW2NsYXNzLnRoeS1iYWRnZS13cmFwcGVyXSc6ICdpc1dyYXBwZXInXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlCYWRnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgZGlzcGxheUNvbnRlbnQgPSAnJztcblxuICAgIGJhZGdlQ2xhc3NOYW1lID0gJyc7XG5cbiAgICBwcml2YXRlIG5hdGl2ZUVsZW1lbnQ6IGFueTtcblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIC8vIOaYr+WQpuWMheijueWcqOWFg+e0oOS4ilxuICAgIHByb3RlY3RlZCBpc1dyYXBwZXIgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc1Nob3dCYWRnZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIGtlZXBTaG93VmFsdWUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgdmFsdWU6IG51bWJlciB8IHN0cmluZyA9ICcnO1xuXG4gICAgcHJpdmF0ZSB2YWx1ZUhhc0JlZW5TZXQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbWF4Q291bnQ6IG51bWJlcjtcblxuICAgIHByaXZhdGUgdHlwZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBzaXplOiBUaHlCYWRnZVNpemU7XG5cbiAgICBwcml2YXRlIGlzRG90OiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBpc0hvbGxvdzogYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCB0ZXh0Q29sb3I6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBidWlsdEluVGV4dENvbG9yQ2xhc3M6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBidWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3M6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBzdXBDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+exu+Wei1xuICAgICAqIEB0eXBlIGRlZmF1bHQgfCBwcmltYXJ5IHwgZGFuZ2VyIHwgd2FybmluZyB8IHN1Y2Nlc3NcbiAgICAgKiBAZGVmYXVsdCBkYW5nZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+WGheWuueaVsOWtl1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUNvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlSGFzQmVlblNldCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+WGheWuueaWh+acrFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRlbnQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVIYXNCZWVuU2V0ID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5YaF5a655paH5pys77yM5ZG95ZCN6ZSZ6K+v77yM6K+35L2/55SoIHRoeUNvbnRlbnRcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRleHQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRoeUNvbnRlbnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfmmL7npLrnmoTmnIDlpKflgLwsIOS4jiB0aHlDb3VudCDkuIDotbfkvb/nlKgsdGh5Q291bnQg6LaF6L+H5LqGIHRoeU1heENvdW50IOiuvue9rueahOWAvOaXtu+8jOW+veagh+WGheWuueS4uiB0aHlNYXhDb3VudCtcbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlNYXhDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWF4Q291bnQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5b695qCH5pi+56S655qE5aSn5bCPXG4gICAgICogQHR5cGUgbWQgfCBzbSB8IGxnXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBUaHlCYWRnZVNpemUpIHtcbiAgICAgICAgdGhpcy5zaXplID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5piv5LiA5Liq5a6e5b+D54K577yM5bey57uP6KKr5bqf5byDXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5SXNEb3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0RvdCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt7Llup/lvIPvvIzlvr3moIfmmK/kuIDkuKrnqbrlv4PngrlcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlJc0hvbGxvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzSG9sbG93ID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoeUNvdW50IOS4uiAwIOaXtu+8jOW8uuWItuaYvuekuuaVsOWtlyAw77yM6buY6K6k5LiN5pi+56S6XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5S2VlcFNob3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5rZWVwU2hvd1ZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lvr3moIflrZfkvZPnmoTpopzoibLvvIzmlK/mjIHlhoXnva7popzoibLlkozoh6rlrprkuYnpopzoibIgJ3ByaW1hcnknIHwgJyM4N2QwNjgnIHwgLi4uXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGV4dENvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlzVGV4dENvbG9yKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MgPSBgdGV4dC0ke3ZhbHVlfWA7XG4gICAgICAgICAgICB0aGlzLnRleHRDb2xvciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRDb2xvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruW+veagh+eahOiDjOaZr+minOiJsu+8jOaUr+aMgeWGhee9ruminOiJsuWSjOiHquWumuS5ieminOiJsiAncHJpbWFyeScgfCAnIzg3ZDA2OCcgfCAuLi5cbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlCYWNrZ3JvdW5kQ29sb3IodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoaXNUZXh0Q29sb3IodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWx0SW5CYWNrZ3JvdW5kQ29sb3JDbGFzcyA9IGBiZy0ke3ZhbHVlfWA7XG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBsZXQgY2hpbGROb2RlQ291bnQgPSAwO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChuOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFsnI2NvbW1lbnQnXS5pbmRleE9mKG4ubm9kZU5hbWUpIDwgMCkge1xuICAgICAgICAgICAgICAgIGNoaWxkTm9kZUNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzV3JhcHBlciA9IGNoaWxkTm9kZUNvdW50ID4gMDtcblxuICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZUhhc0JlZW5TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tYmluZUJhZGdlQ2xhc3NlcygpIHtcbiAgICAgICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKGB0aHktYmFkZ2UtJHt0aGlzLnR5cGUgfHwgJ2Rhbmdlcid9YCk7XG4gICAgICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLSR7dGhpcy5zaXplfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzRG90KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1kb3RgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSG9sbG93KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1ob2xsb3dgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLWNvdW50YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCh0aGlzLmJ1aWx0SW5UZXh0Q29sb3JDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYmFkZ2VDbGFzc05hbWUgPSBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gdGhpcy52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMubWF4Q291bnQgIT0gdW5kZWZpbmVkICYmICh0aGlzLnZhbHVlIGFzIG51bWJlcikgPiB0aGlzLm1heENvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gYCR7dGhpcy5tYXhDb3VudH0rYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSAmJiAhdGhpcy5rZWVwU2hvd1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0JhZGdlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0JhZGdlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc1Nob3dCYWRnZVwiIGNsYXNzPVwidGh5LWJhZGdlIHt7IGJhZGdlQ2xhc3NOYW1lIH19XCIgW3N0eWxlLmNvbG9yXT1cInRleHRDb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYmFja2dyb3VuZENvbG9yXCI+XG4gIDxzcGFuPnt7IGRpc3BsYXlDb250ZW50IH19PC9zcGFuPlxuPC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXhEOzs7R0FHRztBQVlILE1BQU0sT0FBTyxRQUFRO0lBd0NqQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkMxQyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUlaLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTVCLFdBQVc7UUFDRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRWxCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTVCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBb0J0QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBR2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFD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bmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIG51bWJlckF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBUaHlCYWRnZVNpemUgPSAnbWQnIHwgJ3NtJyB8ICdsZyc7XG5cbi8qKlxuICog5b695qCH57uE5Lu277yM5pSv5oyB57uE5Lu2YHRoeS1iYWRnZWDlkoxgdGh5QmFkZ2Vg5oyH5Luk5Lik56eN5L2/55So5pa55byPXG4gKiBAbmFtZSB0aHktYmFkZ2UsW3RoeUJhZGdlXVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1iYWRnZSxbdGh5QmFkZ2VdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYmFkZ2UtY29udGFpbmVyJyxcbiAgICAgICAgJ1tjbGFzcy50aHktYmFkZ2Utd3JhcHBlcl0nOiAnaXNXcmFwcGVyJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QmFkZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRpc3BsYXlDb250ZW50ID0gJyc7XG5cbiAgICBiYWRnZUNsYXNzTmFtZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBuYXRpdmVFbGVtZW50OiBhbnk7XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICAvLyDmmK/lkKbljIXoo7nlnKjlhYPntKDkuIpcbiAgICBwcm90ZWN0ZWQgaXNXcmFwcGVyID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaXNTaG93QmFkZ2UgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBrZWVwU2hvd1ZhbHVlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgdmFsdWVIYXNCZWVuU2V0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG1heENvdW50OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIHR5cGU6IHN0cmluZztcblxuICAgIHByaXZhdGUgc2l6ZTogVGh5QmFkZ2VTaXplO1xuXG4gICAgcHJpdmF0ZSBpc0RvdDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgaXNIb2xsb3c6IGJvb2xlYW47XG5cbiAgICBwcm90ZWN0ZWQgdGV4dENvbG9yOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgYnVpbHRJblRleHRDb2xvckNsYXNzOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgc3VwQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfnsbvlnotcbiAgICAgKiBAdHlwZSBkZWZhdWx0IHwgcHJpbWFyeSB8IGRhbmdlciB8IHdhcm5pbmcgfCBzdWNjZXNzXG4gICAgICogQGRlZmF1bHQgZGFuZ2VyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VHlwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIflhoXlrrnmlbDlrZdcbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUhhc0JlZW5TZXQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VEaXNwbGF5Q29udGVudCgpO1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIflhoXlrrnmlofmnKxcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlDb250ZW50KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlSGFzQmVlblNldCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOW+veagh+WGheWuueaWh+acrO+8jOWRveWQjemUmeivr++8jOivt+S9v+eUqCB0aHlDb250ZW50XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlDb250ZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50aHlDb250ZW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5b695qCH5pi+56S655qE5pyA5aSn5YC8LCDkuI4gdGh5Q291bnQg5LiA6LW35L2/55SoLHRoeUNvdW50IOi2hei/h+S6hiB0aHlNYXhDb3VudCDorr7nva7nmoTlgLzml7bvvIzlvr3moIflhoXlrrnkuLogdGh5TWF4Q291bnQrXG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5TWF4Q291bnQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLm1heENvdW50ID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+aYvuekuueahOWkp+Wwj1xuICAgICAqIEB0eXBlIG1kIHwgc20gfCBsZ1xuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZSh2YWx1ZTogVGh5QmFkZ2VTaXplKSB7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOW+veagh+aYr+S4gOS4quWunuW/g+eCue+8jOW3sue7j+iiq+W6n+W8g1xuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5SXNEb3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0RvdCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt7Llup/lvIPvvIzlvr3moIfmmK/kuIDkuKrnqbrlv4PngrlcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUlzSG9sbG93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNIb2xsb3cgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdGh5Q291bnQg5Li6IDAg5pe277yM5by65Yi25pi+56S65pWw5a2XIDDvvIzpu5jorqTkuI3mmL7npLpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUtlZXBTaG93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMua2VlcFNob3dWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VEaXNwbGF5Q29udGVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5b695qCH5a2X5L2T55qE6aKc6Imy77yM5pSv5oyB5YaF572u6aKc6Imy5ZKM6Ieq5a6a5LmJ6aKc6ImyICdwcmltYXJ5JyB8ICcjODdkMDY4JyB8IC4uLlxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRleHRDb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChpc1RleHRDb2xvcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbHRJblRleHRDb2xvckNsYXNzID0gYHRleHQtJHt2YWx1ZX1gO1xuICAgICAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYnVpbHRJblRleHRDb2xvckNsYXNzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lvr3moIfnmoTog4zmma/popzoibLvvIzmlK/mjIHlhoXnva7popzoibLlkozoh6rlrprkuYnpopzoibIgJ3ByaW1hcnknIHwgJyM4N2QwNjgnIHwgLi4uXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QmFja2dyb3VuZENvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlzVGV4dENvbG9yKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MgPSBgYmctJHt2YWx1ZX1gO1xuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgbGV0IGNoaWxkTm9kZUNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMuZm9yRWFjaCgobjogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChbJyNjb21tZW50J10uaW5kZXhPZihuLm5vZGVOYW1lKSA8IDApIHtcbiAgICAgICAgICAgICAgICBjaGlsZE5vZGVDb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pc1dyYXBwZXIgPSBjaGlsZE5vZGVDb3VudCA+IDA7XG5cbiAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWVIYXNCZWVuU2V0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVCYWRnZUNsYXNzZXMoKSB7XG4gICAgICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLSR7dGhpcy50eXBlIHx8ICdkYW5nZXInfWApO1xuICAgICAgICBpZiAodGhpcy5zaXplKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS0ke3RoaXMuc2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0RvdCkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGB0aHktYmFkZ2UtZG90YCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0hvbGxvdykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGB0aHktYmFkZ2UtaG9sbG93YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1jb3VudGApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYnVpbHRJblRleHRDb2xvckNsYXNzKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmJ1aWx0SW5CYWNrZ3JvdW5kQ29sb3JDbGFzcykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJhZGdlQ2xhc3NOYW1lID0gY2xhc3Nlcy5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21iaW5lQmFkZ2VEaXNwbGF5Q29udGVudCgpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IHRoaXMudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLm1heENvdW50ICE9IHVuZGVmaW5lZCAmJiAodGhpcy52YWx1ZSBhcyBudW1iZXIpID4gdGhpcy5tYXhDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IGAke3RoaXMubWF4Q291bnR9K2A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMudmFsdWUgJiYgIXRoaXMua2VlcFNob3dWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dCYWRnZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dCYWRnZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNTaG93QmFkZ2VcIiBjbGFzcz1cInRoeS1iYWRnZSB7eyBiYWRnZUNsYXNzTmFtZSB9fVwiIFtzdHlsZS5jb2xvcl09XCJ0ZXh0Q29sb3JcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImJhY2tncm91bmRDb2xvclwiPlxuICA8c3Bhbj57eyBkaXNwbGF5Q29udGVudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -1,7 +1,8 @@
1
1
  import { NgClass, NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
4
  import { ThyIcon } from 'ngx-tethys/icon';
5
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
5
6
  import * as i0 from "@angular/core";
6
7
  const sizeClassesMap = {
7
8
  lg: ['btn-icon-lg'],
@@ -126,7 +127,7 @@ export class ThyButtonIcon {
126
127
  this.initialized = true;
127
128
  }
128
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyButtonIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyButtonIcon, isStandalone: true, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: { thySize: "thySize", thyIcon: "thyIcon", thyButtonIcon: "thyButtonIcon", thyShape: "thyShape", thyLight: ["thyLight", "thyLight", booleanAttribute], thyActive: ["thyActive", "thyActive", booleanAttribute], thyTheme: "thyTheme", thyColor: "thyColor" }, host: { properties: { "class.btn": "this._isBtn", "class.btn-icon": "this._isBtnIcon", "class.btn-icon-light": "this._isLighted", "class.btn-icon-active": "this._isActive" } }, ngImport: i0, template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClasses\" *ngIf=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n</ng-template>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyButtonIcon, isStandalone: true, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: { thySize: "thySize", thyIcon: "thyIcon", thyButtonIcon: "thyButtonIcon", thyShape: "thyShape", thyLight: ["thyLight", "thyLight", coerceBooleanProperty], thyActive: ["thyActive", "thyActive", coerceBooleanProperty], thyTheme: "thyTheme", thyColor: "thyColor" }, host: { properties: { "class.btn": "this._isBtn", "class.btn-icon": "this._isBtnIcon", "class.btn-icon-light": "this._isLighted", "class.btn-icon-active": "this._isActive" } }, ngImport: i0, template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClasses\" *ngIf=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n</ng-template>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
130
131
  }
131
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyButtonIcon, decorators: [{
132
133
  type: Component,
@@ -141,10 +142,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
141
142
  type: Input
142
143
  }], thyLight: [{
143
144
  type: Input,
144
- args: [{ transform: booleanAttribute }]
145
+ args: [{ transform: coerceBooleanProperty }]
145
146
  }], thyActive: [{
146
147
  type: Input,
147
- args: [{ transform: booleanAttribute }]
148
+ args: [{ transform: coerceBooleanProperty }]
148
149
  }], thyTheme: [{
149
150
  type: Input
150
151
  }], _isBtn: [{
@@ -162,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
162
163
  }], thyColor: [{
163
164
  type: Input
164
165
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1dHRvbi9idXR0b24taWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvYnV0dG9uL2J1dHRvbi1pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSTFDLE1BQU0sY0FBYyxHQUFHO0lBQ25CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUNuQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDbkIsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ25CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztDQUN0QixDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUc7SUFDcEIsZUFBZSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDO0lBQ3JELGNBQWMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQztJQUNuRCxxQkFBcUIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7SUFDM0Usb0JBQW9CLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDO0lBQ3pFLFdBQVcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0NBQ3hDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBUTtJQUN6QixhQUFhLEVBQUUsQ0FBQyxzQkFBc0Is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c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTbEMsUUFBUTtzQkFEWCxLQUFLO2dCQTBCb0IsTUFBTTtzQkFBL0IsV0FBVzt1QkFBQyxXQUFXO2dCQUNPLFVBQVU7c0JBQXhDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNRLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNHLFNBQVM7c0JBQTlDLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUUzQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcblxuZXhwb3J0IHR5cGUgVGh5QnV0dG9uSWNvblNoYXBlID0gJycgfCAnY2lyY2xlLWRhc2hlZCcgfCAnY2lyY2xlLXNvbGlkJyB8ICdjaXJjbGUtdGhpY2stZGFzaGVkJyB8ICdjaXJjbGUtdGhpY2stc29saWQnIHwgJ3NlbGYtaWNvbic7XG5cbmNvbnN0IHNpemVDbGFzc2VzTWFwID0ge1xuICAgIGxnOiBbJ2J0bi1pY29uLWxnJ10sXG4gICAgbWQ6IFsnYnRuLWljb24tbWQnXSxcbiAgICBzbTogWydidG4taWNvbi1zbSddLFxuICAgIHhzOiBbJ2J0bi1pY29uLXhzJ11cbn07XG5cbmNvbnN0IHNoYXBlQ2xhc3Nlc01hcCA9IHtcbiAgICAnY2lyY2xlLWRhc2hlZCc6IFsnYnRuLWljb24tY2lyY2xlJywgJ2NpcmNsZS1kYXNoZWQnXSxcbiAgICAnY2lyY2xlLXNvbGlkJzogWydidG4taWNvbi1jaXJjbGUnLCAnY2lyY2xlLXNvbGlkJ10sXG4gICAgJ2NpcmNsZS10aGljay1kYXNoZWQnOiBbJ2J0bi1pY29uLWNpcmNsZScsICdjaXJjbGUtZGFzaGVkJywgJ2JvcmRlci10aGljayddLFxuICAgICdjaXJjbGUtdGhpY2stc29saWQnOiBbJ2J0bi1pY29uLWNpcmNsZScsICdjaXJjbGUtc29saWQnLCAnYm9yZGVyLXRoaWNrJ10sXG4gICAgJ3NlbGYtaWNvbic6IFsnYnRuLWljb24tc2VsZi1jaXJjbGUnXVxufTtcblxuY29uc3QgdGhlbWVDbGFzc2VzTWFwOiBhbnkgPSB7XG4gICAgJ2Rhbmdlci13ZWFrJzogWydidG4taWNvbi1kYW5nZXItd2VhayddXG59O1xuXG4vKipcbiAqIOaTjeS9nOaMiemSruWbvuagh++8jOaUr+aMgWB0aHktYnV0dG9uLWljb25g57uE5Lu25ZKMYHRoeUJ1dHRvbkljb25g5oyH5Luk5Lik56eN5b2i5byPXG4gKiBAbmFtZSB0aHktYnV0dG9uLWljb24sW3RoeS1idXR0b24taWNvbl0sW3RoeUJ1dHRvbkljb25dXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYnV0dG9uLWljb24sW3RoeS1idXR0b24taWNvbl0sW3RoeUJ1dHRvbkljb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLWljb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbiwgTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgVGh5QnV0dG9uSWNvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGdcbiAgICAgKiBAZGVmYXVsdCAzNnB4XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZShzaXplOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+5qCHLCDlkoxgdGh5QnV0dG9uSWNvbmDnm7jlkIzvvIzlvZPkvb/nlKhgdGh5LWJ1dHRvbi1pY29uYOaXtu+8jOWPquiDveS9v+eUqCB0aHlJY29uIOiuvue9ruWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0SWNvbkNsYXNzKGljb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWbvuagh+aMiemSrueahOWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUJ1dHRvbkljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0SWNvbkNsYXNzKGljb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOW9oueKtu+8jOm7mOiupOWPquaYvuekuuWtl+S9k+Wbvuagh+Wbvuagh++8jGNpcmNsZS1kYXNoZWQsIGNpcmNsZS1zb2xpZCDlsZXnpLrmiJDomZrnur8s5a6e57q/6L655qGG5ZyG5b2i5Zu+5qCHLCBjaXJjbGUtdGhpY2stZGFzaGVkLCBjaXJjbGUtdGhpY2stc29saWQg6L655qGG5Yqg57KXXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2hhcGUodmFsdWU6IFRoeUJ1dHRvbkljb25TaGFwZSkge1xuICAgICAgICB0aGlzLnNoYXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS6ruiJsu+8jOminOiJsuabtOa1he+8jOmAguWQiOW3puS+p+WvvOiIqumhtumDqOeahOaMiemSrlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUxpZ2h0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzTGlnaHRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruS4uumAieS4reeKtuaAgVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0FjdGl2ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaMiemSruWxleekuuexu+Wei++8jOm7mOiupOWbvuagh+enu+S4iuWOu+aYvuekuuS4u+iJsu+8jCBkYW5nZXItd2VhayDpvKDmoIfnp7vkuIrljrvmmL7npLogZGFuZ2VyIOe6ouiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRoZW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50aGVtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldENsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHNoYXBlOiBUaHlCdXR0b25JY29uU2hhcGU7XG5cbiAgICBwcml2YXRlIHNpemU6IHN0cmluZztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBpY29uUHJlZml4ID0gJ3d0Zic7XG5cbiAgICBpY29uQ2xhc3Nlczogc3RyaW5nW107XG5cbiAgICBpY29uOiBzdHJpbmc7XG5cbiAgICB0aGVtZTogc3RyaW5nO1xuXG4gICAgc3ZnSWNvbk5hbWU6IHN0cmluZztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYnRuJykgX2lzQnRuID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bi1pY29uJykgX2lzQnRuSWNvbiA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5idG4taWNvbi1saWdodCcpIF9pc0xpZ2h0ZWQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bi1pY29uLWFjdGl2ZScpIF9pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGh5Q29sb3I6IHN0cmluZztcblxuICAgIHByaXZhdGUgc2V0SWNvbkNsYXNzKGljb246IHN0cmluZykge1xuICAgICAgICBpZiAoaWNvbikge1xuICAgICAgICAgICAgaWYgKGljb24uaW5jbHVkZXMoJ3d0ZicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xhc3NlcyA9IGljb24uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAoY2xhc3Nlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy51bnNoaWZ0KCd3dGYnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uQ2xhc3NlcyA9IGNsYXNzZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSBpY29uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pY29uQ2xhc3NlcyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnN2Z0ljb25OYW1lID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2xhc3NlcyhmaXJzdCA9IGZhbHNlKSB7XG4gICAgICAgIC8vIOiuvue9ruagt+W8j+WIpOaWreaYr+WQpuW3sue7j+WIneWni+WMlu+8jOacquWIneWni+WMluebtOaOpei/lOWbnu+8jOmZpOmdnuaYr+WIneasoeiwg+eUqFxuICAgICAgICAvLyDlj6rmnIkgbmdPbkluaXQg6LCD55So5Lya5Lyg5YWlIGZpcnN0ID0gdHJ1ZVxuICAgICAgICBpZiAoIWZpcnN0ICYmICF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IHNpemVDbGFzc2VzTWFwW3RoaXMuc2l6ZV0gPyBbLi4uc2l6ZUNsYXNzZXNNYXBbdGhpcy5zaXplXV0gOiBbXTtcbiAgICAgICAgaWYgKHRoaXMuc2hhcGUgJiYgc2hhcGVDbGFzc2VzTWFwW3RoaXMuc2hhcGVdKSB7XG4gICAgICAgICAgICBzaGFwZUNsYXNzZXNNYXBbdGhpcy5zaGFwZV0uZm9yRWFjaCgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoZW1lICYmIHRoZW1lQ2xhc3Nlc01hcFt0aGlzLnRoZW1lXSkge1xuICAgICAgICAgICAgdGhlbWVDbGFzc2VzTWFwW3RoaXMudGhlbWVdLmZvckVhY2goKGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc2VzKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKHRydWUpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG59XG4iLCI8dGh5LWljb24gKm5nSWY9XCJzdmdJY29uTmFtZTsgZWxzZSBpY29uRm9udFwiIFt0aHlJY29uTmFtZV09XCJzdmdJY29uTmFtZVwiIFtzdHlsZS5jb2xvcl09XCJ0aHlDb2xvclwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJ0aHlDb2xvclwiPjwvdGh5LWljb24+XG48bmctdGVtcGxhdGUgI2ljb25Gb250PlxuICA8aSBbbmdDbGFzc109XCJpY29uQ2xhc3Nlc1wiICpuZ0lmPVwiaWNvbkNsYXNzZXNcIiBbc3R5bGUuY29sb3JdPVwidGh5Q29sb3JcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwidGh5Q29sb3JcIj48L2k+XG48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1dHRvbi9idXR0b24taWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvYnV0dG9uL2J1dHRvbi1pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXhELE1BQU0sY0FBYyxHQUFHO0lBQ25CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUNuQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDbkIsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ25CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztDQUN0QixDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUc7SUFDcEIsZUFBZSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDO0lBQ3JELGNBQWMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQztJQUNuRCxxQkFBcUIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7SUFDM0Usb0JBQW9CLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDO0lBQ3pFLFdBQVcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0NBQ3hDLENBQUM7QUFFRixNQUFNLGVBQWUs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QUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBVXZDLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFTdkMsUUFBUTtzQkFEWCxLQUFLO2dCQTBCb0IsTUFBTTtzQkFBL0IsV0FBVzt1QkFBQyxXQUFXO2dCQUNPLFVBQVU7c0JBQXhDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNRLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNHLFNBQVM7c0JBQTlDLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUUzQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmV4cG9ydCB0eXBlIFRoeUJ1dHRvbkljb25TaGFwZSA9ICcnIHwgJ2NpcmNsZS1kYXNoZWQnIHwgJ2NpcmNsZS1zb2xpZCcgfCAnY2lyY2xlLXRoaWNrLWRhc2hlZCcgfCAnY2lyY2xlLXRoaWNrLXNvbGlkJyB8ICdzZWxmLWljb24nO1xuXG5jb25zdCBzaXplQ2xhc3Nlc01hcCA9IHtcbiAgICBsZzogWydidG4taWNvbi1sZyddLFxuICAgIG1kOiBbJ2J0bi1pY29uLW1kJ10sXG4gICAgc206IFsnYnRuLWljb24tc20nXSxcbiAgICB4czogWydidG4taWNvbi14cyddXG59O1xuXG5jb25zdCBzaGFwZUNsYXNzZXNNYXAgPSB7XG4gICAgJ2NpcmNsZS1kYXNoZWQnOiBbJ2J0bi1pY29uLWNpcmNsZScsICdjaXJjbGUtZGFzaGVkJ10sXG4gICAgJ2NpcmNsZS1zb2xpZCc6IFsnYnRuLWljb24tY2lyY2xlJywgJ2NpcmNsZS1zb2xpZCddLFxuICAgICdjaXJjbGUtdGhpY2stZGFzaGVkJzogWydidG4taWNvbi1jaXJjbGUnLCAnY2lyY2xlLWRhc2hlZCcsICdib3JkZXItdGhpY2snXSxcbiAgICAnY2lyY2xlLXRoaWNrLXNvbGlkJzogWydidG4taWNvbi1jaXJjbGUnLCAnY2lyY2xlLXNvbGlkJywgJ2JvcmRlci10aGljayddLFxuICAgICdzZWxmLWljb24nOiBbJ2J0bi1pY29uLXNlbGYtY2lyY2xlJ11cbn07XG5cbmNvbnN0IHRoZW1lQ2xhc3Nlc01hcDogYW55ID0ge1xuICAgICdkYW5nZXItd2Vhayc6IFsnYnRuLWljb24tZGFuZ2VyLXdlYWsnXVxufTtcblxuLyoqXG4gKiDmk43kvZzmjInpkq7lm77moIfvvIzmlK/mjIFgdGh5LWJ1dHRvbi1pY29uYOe7hOS7tuWSjGB0aHlCdXR0b25JY29uYOaMh+S7pOS4pOenjeW9ouW8j1xuICogQG5hbWUgdGh5LWJ1dHRvbi1pY29uLFt0aHktYnV0dG9uLWljb25dLFt0aHlCdXR0b25JY29uXVxuICogQG9yZGVyIDIwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWJ1dHRvbi1pY29uLFt0aHktYnV0dG9uLWljb25dLFt0aHlCdXR0b25JY29uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi1pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb24sIE5nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUJ1dHRvbkljb24gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIOWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGxnXG4gICAgICogQGRlZmF1bHQgMzZweFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNpemUoc2l6ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWbvuaghywg5ZKMYHRoeUJ1dHRvbkljb25g55u45ZCM77yM5b2T5L2/55SoYHRoeS1idXR0b24taWNvbmDml7bvvIzlj6rog73kvb/nlKggdGh5SWNvbiDorr7nva7lm77moIdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlJY29uKGljb246IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldEljb25DbGFzcyhpY29uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlm77moIfmjInpkq7nmoTlm77moIdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlCdXR0b25JY29uKGljb246IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldEljb25DbGFzcyhpY29uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrnmoTlvaLnirbvvIzpu5jorqTlj6rmmL7npLrlrZfkvZPlm77moIflm77moIfvvIxjaXJjbGUtZGFzaGVkLCBjaXJjbGUtc29saWQg5bGV56S65oiQ6Jma57q/LOWunue6v+i+ueahhuWchuW9ouWbvuaghywgY2lyY2xlLXRoaWNrLWRhc2hlZCwgY2lyY2xlLXRoaWNrLXNvbGlkIOi+ueahhuWKoOeyl1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNoYXBlKHZhbHVlOiBUaHlCdXR0b25JY29uU2hhcGUpIHtcbiAgICAgICAgdGhpcy5zaGFwZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldENsYXNzZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkuq7oibLvvIzpopzoibLmm7TmtYXvvIzpgILlkIjlt6bkvqflr7zoiKrpobbpg6jnmoTmjInpkq5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUxpZ2h0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzTGlnaHRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruS4uumAieS4reeKtuaAgVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5QWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzQWN0aXZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu5bGV56S657G75Z6L77yM6buY6K6k5Zu+5qCH56e75LiK5Y675pi+56S65Li76Imy77yMIGRhbmdlci13ZWFrIOm8oOagh+enu+S4iuWOu+aYvuekuiBkYW5nZXIg57qi6ImyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGhlbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRoZW1lID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc2hhcGU6IFRoeUJ1dHRvbkljb25TaGFwZTtcblxuICAgIHByaXZhdGUgc2l6ZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIGljb25QcmVmaXggPSAnd3RmJztcblxuICAgIGljb25DbGFzc2VzOiBzdHJpbmdbXTtcblxuICAgIGljb246IHN0cmluZztcblxuICAgIHRoZW1lOiBzdHJpbmc7XG5cbiAgICBzdmdJY29uTmFtZTogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5idG4nKSBfaXNCdG4gPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYnRuLWljb24nKSBfaXNCdG5JY29uID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bi1pY29uLWxpZ2h0JykgX2lzTGlnaHRlZCA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYnRuLWljb24tYWN0aXZlJykgX2lzQWN0aXZlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0aHlDb2xvcjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBzZXRJY29uQ2xhc3MoaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIGlmIChpY29uKSB7XG4gICAgICAgICAgICBpZiAoaWNvbi5pbmNsdWRlcygnd3RmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc2VzID0gaWNvbi5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmIChjbGFzc2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnVuc2hpZnQoJ3d0ZicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmljb25DbGFzc2VzID0gY2xhc3NlcztcbiAgICAgICAgICAgICAgICB0aGlzLnN2Z0ljb25OYW1lID0gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IGljb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmljb25DbGFzc2VzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDbGFzc2VzKGZpcnN0ID0gZmFsc2UpIHtcbiAgICAgICAgLy8g6K6+572u5qC35byP5Yik5pat5piv5ZCm5bey57uP5Yid5aeL5YyW77yM5pyq5Yid5aeL5YyW55u05o6l6L+U5Zue77yM6Zmk6Z2e5piv5Yid5qyh6LCD55SoXG4gICAgICAgIC8vIOWPquaciSBuZ09uSW5pdCDosIPnlKjkvJrkvKDlhaUgZmlyc3QgPSB0cnVlXG4gICAgICAgIGlmICghZmlyc3QgJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGFzc2VzID0gc2l6ZUNsYXNzZXNNYXBbdGhpcy5zaXplXSA/IFsuLi5zaXplQ2xhc3Nlc01hcFt0aGlzLnNpemVdXSA6IFtdO1xuICAgICAgICBpZiAodGhpcy5zaGFwZSAmJiBzaGFwZUNsYXNzZXNNYXBbdGhpcy5zaGFwZV0pIHtcbiAgICAgICAgICAgIHNoYXBlQ2xhc3Nlc01hcFt0aGlzLnNoYXBlXS5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaChjbGFzc05hbWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudGhlbWUgJiYgdGhlbWVDbGFzc2VzTWFwW3RoaXMudGhlbWVdKSB7XG4gICAgICAgICAgICB0aGVtZUNsYXNzZXNNYXBbdGhpcy50aGVtZV0uZm9yRWFjaCgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKGNsYXNzZXMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldENsYXNzZXModHJ1ZSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbn1cbiIsIjx0aHktaWNvbiAqbmdJZj1cInN2Z0ljb25OYW1lOyBlbHNlIGljb25Gb250XCIgW3RoeUljb25OYW1lXT1cInN2Z0ljb25OYW1lXCIgW3N0eWxlLmNvbG9yXT1cInRoeUNvbG9yXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cInRoeUNvbG9yXCI+PC90aHktaWNvbj5cbjxuZy10ZW1wbGF0ZSAjaWNvbkZvbnQ+XG4gIDxpIFtuZ0NsYXNzXT1cImljb25DbGFzc2VzXCIgKm5nSWY9XCJpY29uQ2xhc3Nlc1wiIFtzdHlsZS5jb2xvcl09XCJ0aHlDb2xvclwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJ0aHlDb2xvclwiPjwvaT5cbjwvbmctdGVtcGxhdGU+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=