ngx-tethys 18.0.0-next.0 → 18.0.0-next.2

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 (404) hide show
  1. package/CHANGELOG.md +161 -1
  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/breadcrumb/breadcrumb.component.d.ts +30 -2
  10. package/breadcrumb/module.d.ts +3 -1
  11. package/breadcrumb/styles/breadcrumb.scss +8 -0
  12. package/button/button-icon.component.d.ts +2 -2
  13. package/button/button.component.d.ts +2 -2
  14. package/button/styles/button.scss +5 -5
  15. package/card/card.component.d.ts +3 -3
  16. package/card/content.component.d.ts +1 -1
  17. package/carousel/carousel.component.d.ts +4 -4
  18. package/cascader/cascader-li.component.d.ts +5 -5
  19. package/cascader/cascader-search-option.component.d.ts +3 -3
  20. package/cascader/cascader.component.d.ts +8 -8
  21. package/checkbox/checkbox.component.d.ts +1 -1
  22. package/collapse/collapse-item.component.d.ts +2 -2
  23. package/collapse/collapse.component.d.ts +1 -1
  24. package/color-picker/color-picker-panel.component.d.ts +1 -1
  25. package/color-picker/color-picker.component.d.ts +3 -3
  26. package/copy/copy.directive.d.ts +1 -1
  27. package/core/behaviors/decorators.d.ts +1 -1
  28. package/core/overlay/abstract-overlay.config.d.ts +6 -0
  29. package/date-picker/abstract-picker.component.d.ts +15 -8
  30. package/date-picker/abstract-picker.directive.d.ts +3 -3
  31. package/date-picker/base-picker.component.d.ts +2 -2
  32. package/date-picker/date-picker.config.d.ts +1 -0
  33. package/date-picker/date-picker.service.d.ts +1 -0
  34. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
  35. package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
  36. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
  37. package/date-picker/picker.component.d.ts +1 -1
  38. package/date-picker/picker.util.d.ts +2 -0
  39. package/date-range/date-range.component.d.ts +8 -2
  40. package/dialog/body/dialog-body.component.d.ts +1 -1
  41. package/dialog/footer/dialog-footer.component.d.ts +1 -1
  42. package/dialog/header/dialog-header.component.d.ts +1 -1
  43. package/divider/divider.component.d.ts +2 -2
  44. package/drag-drop/drag-handle.directive.d.ts +1 -1
  45. package/drag-drop/drag.directive.d.ts +1 -1
  46. package/drag-drop/drop-container.directive.d.ts +1 -1
  47. package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
  48. package/dropdown/dropdown-menu.component.d.ts +1 -1
  49. package/dropdown/dropdown.directive.d.ts +1 -1
  50. package/empty/empty.component.d.ts +1 -1
  51. package/esm2022/action/action.component.mjs +7 -6
  52. package/esm2022/alert/alert.component.mjs +5 -5
  53. package/esm2022/anchor/anchor.component.mjs +5 -5
  54. package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
  55. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
  56. package/esm2022/avatar/avatar.component.mjs +8 -8
  57. package/esm2022/badge/badge.component.mjs +7 -6
  58. package/esm2022/breadcrumb/breadcrumb.component.mjs +73 -32
  59. package/esm2022/breadcrumb/module.mjs +6 -4
  60. package/esm2022/button/button-icon.component.mjs +6 -5
  61. package/esm2022/button/button.component.mjs +6 -6
  62. package/esm2022/card/card.component.mjs +7 -6
  63. package/esm2022/card/content.component.mjs +5 -4
  64. package/esm2022/carousel/carousel.component.mjs +8 -7
  65. package/esm2022/cascader/cascader-li.component.mjs +9 -8
  66. package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
  67. package/esm2022/cascader/cascader.component.mjs +19 -12
  68. package/esm2022/checkbox/checkbox.component.mjs +5 -4
  69. package/esm2022/collapse/collapse-item.component.mjs +6 -6
  70. package/esm2022/collapse/collapse.component.mjs +5 -4
  71. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
  72. package/esm2022/color-picker/color-picker.component.mjs +7 -6
  73. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +1 -1
  74. package/esm2022/copy/copy.directive.mjs +5 -4
  75. package/esm2022/core/behaviors/decorators.mjs +2 -2
  76. package/esm2022/core/overlay/abstract-overlay.config.mjs +7 -1
  77. package/esm2022/date-picker/abstract-picker.component.mjs +28 -17
  78. package/esm2022/date-picker/abstract-picker.directive.mjs +8 -7
  79. package/esm2022/date-picker/base-picker.component.mjs +5 -5
  80. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  81. package/esm2022/date-picker/date-picker.config.mjs +2 -1
  82. package/esm2022/date-picker/date-picker.service.mjs +4 -1
  83. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  84. package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
  85. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
  86. package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
  87. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +7 -4
  88. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
  89. package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
  90. package/esm2022/date-picker/month-picker.component.mjs +3 -3
  91. package/esm2022/date-picker/picker.component.mjs +5 -5
  92. package/esm2022/date-picker/picker.util.mjs +14 -2
  93. package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
  94. package/esm2022/date-picker/range-picker.component.mjs +3 -3
  95. package/esm2022/date-picker/week-picker.component.mjs +3 -3
  96. package/esm2022/date-picker/year-picker.component.mjs +3 -3
  97. package/esm2022/date-range/date-range.component.mjs +6 -5
  98. package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
  99. package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
  100. package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
  101. package/esm2022/divider/divider.component.mjs +6 -5
  102. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
  103. package/esm2022/drag-drop/drag.directive.mjs +5 -4
  104. package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
  105. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
  106. package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
  107. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  108. package/esm2022/empty/empty.component.mjs +5 -4
  109. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
  110. package/esm2022/form/form-group-label.directive.mjs +5 -4
  111. package/esm2022/form/form-group.component.mjs +7 -6
  112. package/esm2022/icon/icon.component.mjs +6 -5
  113. package/esm2022/image/image.class.mjs +1 -1
  114. package/esm2022/image/image.directive.mjs +6 -5
  115. package/esm2022/image/index.mjs +6 -5
  116. package/esm2022/image/preview/image-preview.component.mjs +21 -13
  117. package/esm2022/input/input-search.component.mjs +5 -4
  118. package/esm2022/input/input.component.mjs +6 -5
  119. package/esm2022/input-number/input-number.component.mjs +14 -7
  120. package/esm2022/layout/header.component.mjs +7 -6
  121. package/esm2022/layout/sidebar-header.component.mjs +5 -4
  122. package/esm2022/layout/sidebar.component.mjs +12 -11
  123. package/esm2022/list/list.component.mjs +5 -4
  124. package/esm2022/list/selection/selection-list.mjs +7 -7
  125. package/esm2022/loading/loading.component.mjs +6 -5
  126. package/esm2022/mention/mention.directive.mjs +3 -3
  127. package/esm2022/menu/group/menu-group.component.mjs +10 -9
  128. package/esm2022/menu/item/action/menu-item-action.component.mjs +17 -7
  129. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
  130. package/esm2022/menu/menu.component.mjs +5 -4
  131. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
  132. package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
  133. package/esm2022/nav/nav-item.directive.mjs +7 -6
  134. package/esm2022/nav/nav.component.mjs +18 -7
  135. package/esm2022/pagination/pagination.class.mjs +1 -1
  136. package/esm2022/pagination/pagination.component.mjs +22 -10
  137. package/esm2022/pagination/pagination.config.mjs +3 -2
  138. package/esm2022/popover/popover.directive.mjs +6 -5
  139. package/esm2022/popover/popover.service.mjs +2 -1
  140. package/esm2022/property/property-item.component.mjs +6 -5
  141. package/esm2022/property-operation/property-operation.component.mjs +9 -9
  142. package/esm2022/radio/group/radio-group.component.mjs +5 -4
  143. package/esm2022/rate/rate-item.component.mjs +5 -4
  144. package/esm2022/rate/rate.component.mjs +7 -7
  145. package/esm2022/resizable/resizable.directive.mjs +7 -6
  146. package/esm2022/resizable/resize-handle.component.mjs +5 -4
  147. package/esm2022/resizable/resize-handles.component.mjs +5 -4
  148. package/esm2022/segment/segment-item.component.mjs +5 -5
  149. package/esm2022/segment/segment.component.mjs +5 -4
  150. package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
  151. package/esm2022/select/native-select/native-select.component.mjs +5 -5
  152. package/esm2022/shared/base-form-check.component.mjs +6 -5
  153. package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
  154. package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
  155. package/esm2022/shared/directives/thy-show.mjs +5 -4
  156. package/esm2022/shared/option/group/option-group.component.mjs +5 -4
  157. package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
  158. package/esm2022/shared/option/option.component.mjs +5 -5
  159. package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
  160. package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
  161. package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
  162. package/esm2022/skeleton/skeleton.component.mjs +5 -4
  163. package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
  164. package/esm2022/skeleton/stylized/list.component.mjs +5 -4
  165. package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
  166. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
  167. package/esm2022/slider/slider.component.mjs +6 -6
  168. package/esm2022/space/space.component.mjs +5 -4
  169. package/esm2022/stepper/step-header.component.mjs +6 -5
  170. package/esm2022/stepper/stepper.component.mjs +5 -4
  171. package/esm2022/switch/switch.component.mjs +6 -5
  172. package/esm2022/table/table-column.component.mjs +9 -9
  173. package/esm2022/table/table-skeleton.component.mjs +8 -7
  174. package/esm2022/table/table.component.mjs +19 -17
  175. package/esm2022/tabs/tab.component.mjs +5 -4
  176. package/esm2022/tabs/tabs.component.mjs +6 -6
  177. package/esm2022/tag/tag.component.mjs +5 -5
  178. package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
  179. package/esm2022/time-picker/time-picker.component.mjs +9 -9
  180. package/esm2022/timeline/timeline.component.mjs +5 -4
  181. package/esm2022/tooltip/tooltip.directive.mjs +6 -6
  182. package/esm2022/tree/tree-node.component.mjs +9 -8
  183. package/esm2022/tree/tree.component.mjs +32 -11
  184. package/esm2022/tree/tree.service.mjs +3 -3
  185. package/esm2022/tree-select/tree-select.component.mjs +20 -18
  186. package/esm2022/upload/file-select.component.mjs +24 -27
  187. package/esm2022/version.mjs +2 -2
  188. package/esm2022/vote/vote.component.mjs +7 -6
  189. package/esm2022/watermark/watermark.directive.mjs +5 -4
  190. package/fesm2022/ngx-tethys-action.mjs +6 -5
  191. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-alert.mjs +4 -4
  193. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-anchor.mjs +4 -4
  195. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
  197. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-avatar.mjs +7 -7
  199. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-badge.mjs +6 -5
  201. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-breadcrumb.mjs +117 -77
  203. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-button.mjs +8 -8
  205. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-card.mjs +8 -7
  207. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-carousel.mjs +7 -6
  209. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-cascader.mjs +28 -21
  211. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
  213. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-collapse.mjs +7 -7
  215. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-color-picker.mjs +9 -8
  217. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-copy.mjs +4 -3
  219. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-core.mjs +7 -1
  221. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-date-picker.mjs +86 -57
  223. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-date-range.mjs +5 -4
  225. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-dialog.mjs +8 -7
  227. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-divider.mjs +5 -4
  229. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
  231. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
  233. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-empty.mjs +4 -3
  235. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-form.mjs +10 -10
  237. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-icon.mjs +5 -5
  239. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-image.mjs +24 -16
  241. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-input-number.mjs +13 -6
  243. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-input.mjs +7 -6
  245. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-layout.mjs +17 -16
  247. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-list.mjs +8 -8
  249. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-loading.mjs +5 -4
  251. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-mention.mjs +2 -2
  253. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-menu.mjs +26 -16
  255. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-nav.mjs +26 -16
  257. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-pagination.mjs +23 -10
  259. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-popover.mjs +6 -5
  261. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
  263. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-property.mjs +5 -4
  265. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-radio.mjs +7 -6
  267. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-rate.mjs +8 -8
  269. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-resizable.mjs +10 -10
  271. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  273. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-select.mjs +15 -15
  275. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys-shared.mjs +25 -25
  277. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  278. package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
  279. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  280. package/fesm2022/ngx-tethys-slide.mjs +4 -4
  281. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  282. package/fesm2022/ngx-tethys-slider.mjs +5 -5
  283. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  284. package/fesm2022/ngx-tethys-space.mjs +4 -3
  285. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  286. package/fesm2022/ngx-tethys-stepper.mjs +7 -6
  287. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  288. package/fesm2022/ngx-tethys-switch.mjs +5 -4
  289. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  290. package/fesm2022/ngx-tethys-table.mjs +29 -27
  291. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  292. package/fesm2022/ngx-tethys-tabs.mjs +7 -7
  293. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  294. package/fesm2022/ngx-tethys-tag.mjs +4 -4
  295. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  296. package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
  297. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  298. package/fesm2022/ngx-tethys-timeline.mjs +4 -3
  299. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  300. package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
  301. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  302. package/fesm2022/ngx-tethys-tree-select.mjs +14 -11
  303. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  304. package/fesm2022/ngx-tethys-tree.mjs +39 -18
  305. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  306. package/fesm2022/ngx-tethys-upload.mjs +23 -27
  307. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  308. package/fesm2022/ngx-tethys-vote.mjs +6 -5
  309. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  310. package/fesm2022/ngx-tethys-watermark.mjs +4 -3
  311. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  312. package/fesm2022/ngx-tethys.mjs +1 -1
  313. package/fesm2022/ngx-tethys.mjs.map +1 -1
  314. package/form/form-group-error/form-group-error.component.d.ts +1 -1
  315. package/form/form-group-label.directive.d.ts +1 -1
  316. package/form/form-group.component.d.ts +3 -3
  317. package/icon/icon.component.d.ts +2 -2
  318. package/image/image.class.d.ts +1 -1
  319. package/image/image.directive.d.ts +2 -2
  320. package/image/index.d.ts +5 -4
  321. package/image/preview/image-preview.component.d.ts +5 -5
  322. package/input/input-search.component.d.ts +1 -1
  323. package/input/input.component.d.ts +2 -2
  324. package/input/styles/input-group.scss +3 -0
  325. package/input-number/input-number.component.d.ts +10 -3
  326. package/layout/header.component.d.ts +3 -3
  327. package/layout/sidebar-header.component.d.ts +1 -1
  328. package/layout/sidebar.component.d.ts +7 -7
  329. package/list/list.component.d.ts +1 -1
  330. package/list/selection/selection-list.d.ts +3 -3
  331. package/loading/loading.component.d.ts +2 -2
  332. package/menu/group/menu-group.component.d.ts +6 -6
  333. package/menu/item/action/menu-item-action.component.d.ts +8 -3
  334. package/menu/item/name/menu-item-name.component.d.ts +1 -1
  335. package/menu/menu.component.d.ts +1 -1
  336. package/menu/styles/menu.scss +8 -0
  337. package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
  338. package/nav/nav-ink-bar.directive.d.ts +2 -2
  339. package/nav/nav-item.directive.d.ts +3 -3
  340. package/nav/nav.component.d.ts +7 -5
  341. package/package.json +2 -2
  342. package/pagination/pagination.class.d.ts +4 -0
  343. package/pagination/pagination.component.d.ts +11 -6
  344. package/popover/popover.directive.d.ts +2 -2
  345. package/property/property-item.component.d.ts +4 -1
  346. package/property/styles/properties.scss +2 -0
  347. package/property-operation/property-operation.component.d.ts +5 -5
  348. package/radio/group/radio-group.component.d.ts +1 -1
  349. package/rate/rate-item.component.d.ts +1 -1
  350. package/rate/rate.component.d.ts +3 -3
  351. package/resizable/resizable.directive.d.ts +3 -3
  352. package/resizable/resize-handle.component.d.ts +1 -1
  353. package/resizable/resize-handles.component.d.ts +1 -1
  354. package/schematics/ng-update/update-18/complete.js +0 -10
  355. package/schematics/ng-update/update-18/index.spec.js +0 -73
  356. package/schematics/ng-update/update-18/update-data.js +4 -860
  357. package/schematics/version.d.ts +1 -1
  358. package/schematics/version.js +1 -1
  359. package/segment/segment-item.component.d.ts +1 -1
  360. package/segment/segment.component.d.ts +5 -1
  361. package/select/custom-select/custom-select.component.d.ts +10 -10
  362. package/select/native-select/native-select.component.d.ts +1 -1
  363. package/shared/base-form-check.component.d.ts +2 -2
  364. package/shared/directives/thy-autofocus.directive.d.ts +2 -2
  365. package/shared/directives/thy-scroll.directive.d.ts +1 -1
  366. package/shared/directives/thy-show.d.ts +1 -1
  367. package/shared/option/group/option-group.component.d.ts +1 -1
  368. package/shared/option/list-option/list-option.component.d.ts +1 -1
  369. package/shared/option/option.component.d.ts +1 -1
  370. package/shared/option/styles/select-dropdown.scss +1 -0
  371. package/shared/select/select-control/select-control.component.d.ts +6 -6
  372. package/skeleton/skeleton-circle.component.d.ts +1 -1
  373. package/skeleton/skeleton-rectangle.component.d.ts +1 -1
  374. package/skeleton/skeleton.component.d.ts +1 -1
  375. package/skeleton/stylized/bullet-list.component.d.ts +1 -1
  376. package/skeleton/stylized/list.component.d.ts +1 -1
  377. package/skeleton/stylized/paragraph.component.d.ts +1 -1
  378. package/slide/slide-body/slide-body-section.component.d.ts +1 -1
  379. package/slider/slider.component.d.ts +2 -2
  380. package/slider/slider.scss +12 -20
  381. package/space/space.component.d.ts +1 -1
  382. package/stepper/step-header.component.d.ts +2 -2
  383. package/stepper/stepper.component.d.ts +1 -1
  384. package/styles/modules/tables.scss +20 -0
  385. package/styles/variables.scss +2 -2
  386. package/switch/switch.component.d.ts +2 -2
  387. package/table/styles/skeleton.scss +5 -0
  388. package/table/table-column.component.d.ts +5 -5
  389. package/table/table-skeleton.component.d.ts +2 -2
  390. package/table/table.component.d.ts +13 -11
  391. package/tabs/tab.component.d.ts +1 -1
  392. package/tabs/tabs.component.d.ts +2 -2
  393. package/tag/tag.component.d.ts +1 -1
  394. package/time-picker/time-picker-panel.component.d.ts +2 -2
  395. package/time-picker/time-picker.component.d.ts +5 -5
  396. package/timeline/timeline.component.d.ts +1 -1
  397. package/tooltip/tooltip.directive.d.ts +10 -2
  398. package/tree/tree-node.component.d.ts +20 -5
  399. package/tree/tree.component.d.ts +17 -7
  400. package/tree/tree.service.d.ts +1 -1
  401. package/tree-select/tree-select.component.d.ts +7 -7
  402. package/upload/file-select.component.d.ts +7 -8
  403. package/vote/vote.component.d.ts +3 -3
  404. package/watermark/watermark.directive.d.ts +1 -1
@@ -4,8 +4,9 @@ import { combineLatest, fromEvent, Subject, timer } from 'rxjs';
4
4
  import { delay, filter, take, takeUntil } from 'rxjs/operators';
5
5
  import { OverlayOutsideClickDispatcher } from '@angular/cdk/overlay';
6
6
  import { NgIf, NgTemplateOutlet } from '@angular/common';
7
- import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, NgZone, numberAttribute, Output, TemplateRef, ViewChild } from '@angular/core';
7
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, NgZone, numberAttribute, Output, TemplateRef, ViewChild } from '@angular/core';
8
8
  import { ThyProperties } from './properties.component';
9
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "ngx-tethys/core";
11
12
  import * as i2 from "@angular/cdk/overlay";
@@ -134,7 +135,7 @@ export class ThyPropertyItem {
134
135
  this.eventDestroy$.complete();
135
136
  }
136
137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ThyClickDispatcher }, { token: i0.NgZone }, { token: i2.OverlayOutsideClickDispatcher }, { token: i3.ThyProperties }], target: i0.ɵɵFactoryTarget.Component }); }
137
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable", booleanAttribute], thySpan: ["thySpan", "thySpan", numberAttribute], thyOperationTrigger: "thyOperationTrigger" }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-item-operational": "!!operation", "class.thy-property-item-operational-hover": "thyOperationTrigger === 'hover'", "style.grid-column": "this.gridColumn" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, static: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable", coerceBooleanProperty], thySpan: ["thySpan", "thySpan", numberAttribute], thyOperationTrigger: "thyOperationTrigger" }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-item-operational": "!!operation", "class.thy-property-item-operational-hover": "thyOperationTrigger === 'hover'", "style.grid-column": "this.gridColumn" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, static: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && !isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
139
  }
139
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyItem, decorators: [{
140
141
  type: Component,
@@ -142,12 +143,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
142
143
  class: 'thy-property-item',
143
144
  '[class.thy-property-item-operational]': '!!operation',
144
145
  '[class.thy-property-item-operational-hover]': "thyOperationTrigger === 'hover'"
145
- }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyFlexibleText, NgTemplateOutlet], template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n" }]
146
+ }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyFlexibleText, NgTemplateOutlet], template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && !isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n" }]
146
147
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ThyClickDispatcher }, { type: i0.NgZone }, { type: i2.OverlayOutsideClickDispatcher }, { type: i3.ThyProperties }], propDecorators: { thyLabelText: [{
147
148
  type: Input
148
149
  }], thyEditable: [{
149
150
  type: Input,
150
- args: [{ transform: booleanAttribute }]
151
+ args: [{ transform: coerceBooleanProperty }]
151
152
  }], thySpan: [{
152
153
  type: Input,
153
154
  args: [{ transform: numberAttribute }]
@@ -174,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
174
175
  type: HostBinding,
175
176
  args: ['style.grid-column']
176
177
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcGVydHkvcHJvcGVydHktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvcHJvcGVydHkvcHJvcGVydHktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSw2QkFBNkIsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLGVBQWUsRUFJZixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBSXZEOzs7R0FHRztBQWFILE1BQU0sT0FBTyxlQUFlO0lBcUV4QixJQUNJLFVBQVU7UUFDVixPQUFPLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxD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QmMsSUFBSSw2RkFBRSxlQUFlLG1PQUFFLGdCQUFnQjs7MkZBRXhDLGVBQWU7a0JBWjNCLFNBQVM7K0JBQ0ksbUJBQW1CLFFBRXZCO3dCQUNGLEtBQUssRUFBRSxtQkFBbUI7d0JBQzFCLHVDQUF1QyxFQUFFLGFBQWE7d0JBQ3RELDZDQUE2QyxFQUFFLGlDQUFpQztxQkFDbkYsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQztvTkFRekMsWUFBWTtzQkFBcEIsS0FBSztnQkFPa0MsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNQyxPQUFPO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNNUIsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFNa0MsS0FBSztzQkFBN0MsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU1HLE1BQU07c0JBQS9DLFlBQVk7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNSyxTQUFTO3NCQUFyRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS0ssT0FBTztzQkFBdEQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS1QsV0FBVztzQkFBL0MsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWUvQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGh5Q2xpY2tEaXNwYXRjaGVyIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeUZsZXhpYmxlVGV4dCB9IGZyb20gJ25neC10ZXRoeXMvZmxleGlibGUtdGV4dCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaWx0ZXIsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT3ZlcmxheU91dHNpZGVDbGlja0Rpc3BhdGNoZXIsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUaHlQcm9wZXJ0aWVzIH0gZnJvbSAnLi9wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIFRoeVByb3BlcnR5SXRlbU9wZXJhdGlvblRyaWdnZXIgPSAnaG92ZXInIHwgJ2Fsd2F5cyc7XG5cbi8qKlxuICog5bGe5oCn57uE5Lu2XG4gKiBAbmFtZSB0aHktcHJvcGVydHktaXRlbVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1wcm9wZXJ0eS1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1wcm9wZXJ0eS1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcHJvcGVydHktaXRlbS1vcGVyYXRpb25hbF0nOiAnISFvcGVyYXRpb24nLFxuICAgICAgICAnW2NsYXNzLnRoeS1wcm9wZXJ0eS1pdGVtLW9wZXJhdGlvbmFsLWhvdmVyXSc6IFwidGh5T3BlcmF0aW9uVHJpZ2dlciA9PT0gJ2hvdmVyJ1wiXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUaHlGbGV4aWJsZVRleHQsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVByb3BlcnR5SXRlbSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIOWxnuaAp+WQjeensFxuICAgICAqIEB0eXBlIHN0aW5nXG4gICAgICogQGRlZmF1bHQgdGh5TGFiZWxUZXh0XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TGFiZWxUZXh0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lsZ7mgKfmmK/lkKbmmK/lj6/nvJbovpHnmoRcbiAgICAgKiBAdHlwZSBzdGluZ1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUVkaXRhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6Leo5YiX55qE5pWw6YePXG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5U3BhbjogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWxnuaAp+aTjeS9nOeOsOWunuinpuWPkeaWueW8j++8jOm7mOiupCBhbHdheXMg5LiA55u05pi+56S6XG4gICAgICogQHR5cGUgJ2hvdmVyJyB8ICdhbHdheXMnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5T3BlcmF0aW9uVHJpZ2dlcjogVGh5UHJvcGVydHlJdGVtT3BlcmF0aW9uVHJpZ2dlciA9ICdhbHdheXMnO1xuXG4gICAgQE91dHB1dCgpIHRoeUVkaXRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIOWxnuaAp+WQjeensOiHquWumuS5ieaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnbGFiZWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsYWJlbCE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICog5bGe5oCn5YaF5a6557yW6L6R5qih5p2/77yM5Y+q5pyJ5ZyoIHRoeUVkaXRhYmxlIOS4uiB0cnVlIOaXtueUn+aViFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZWRpdG9yJywgeyBzdGF0aWM6IHRydWUgfSkgZWRpdG9yITogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzljLrmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ29wZXJhdGlvbicsIHsgc3RhdGljOiB0cnVlIH0pIG9wZXJhdGlvbiE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50ITogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpdGVtQ29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBlZGl0aW5nOiBib29sZWFuO1xuXG4gICAgY2hhbmdlcyQgPSBuZXcgU3ViamVjdDxTaW1wbGVDaGFuZ2VzPigpO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIGV2ZW50RGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJpdmF0ZSBvcmlnaW5PdmVybGF5czogT3ZlcmxheVJlZltdID0gW107XG5cbiAgICBwcml2YXRlIGNsaWNrRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZ3JpZC1jb2x1bW4nKVxuICAgIGdldCBncmlkQ29sdW1uKCkge1xuICAgICAgICByZXR1cm4gYHNwYW4gJHtNYXRoLm1pbih0aGlzLnRoeVNwYW4sIHRoaXMucGFyZW50LnRoeUNvbHVtbil9YDtcbiAgICB9XG5cbiAgICBpc1ZlcnRpY2FsID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGNsaWNrRGlzcGF0Y2hlcjogVGh5Q2xpY2tEaXNwYXRjaGVyLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyOiBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcbiAgICAgICAgcHJpdmF0ZSBwYXJlbnQ6IFRoeVByb3BlcnRpZXNcbiAgICApIHtcbiAgICAgICAgdGhpcy5vcmlnaW5PdmVybGF5cyA9IFsuLi50aGlzLm92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLl9hdHRhY2hlZE92ZXJsYXlzXSBhcyBPdmVybGF5UmVmW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlQ2xpY2soKTtcbiAgICAgICAgdGhpcy5wYXJlbnQubGF5b3V0JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGxheW91dCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzVmVydGljYWwgPSBsYXlvdXQgPT09ICd2ZXJ0aWNhbCc7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy50aHlFZGl0YWJsZSAmJiBjaGFuZ2VzLnRoeUVkaXRhYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVDbGljaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRFZGl0aW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREZXN0cm95JC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmV2ZW50RGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY2xpY2tFdmVudFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tFdmVudFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRFZGl0aW5nKGVkaXRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghIXRoaXMuZWRpdGluZyAhPT0gISFlZGl0aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlFZGl0aW5nQ2hhbmdlLmVtaXQoZWRpdGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVkaXRpbmcgPSBlZGl0aW5nO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2Ugc2V0RWRpdGluZyhlZGl0aW5nOiBib29sZWFuKVxuICAgICAqL1xuICAgIHNldEtlZXBFZGl0aW5nKGtlZXA6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXRFZGl0aW5nKGtlZXApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzT3ZlcmxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheU91dHNpZGVDbGlja0Rpc3BhdGNoZXIuX2F0dGFjaGVkT3ZlcmxheXMubGVuZ3RoID4gdGhpcy5vcmlnaW5PdmVybGF5cy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RWRpdGFibGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jbGlja0V2ZW50U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jbGlja0V2ZW50U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuaXRlbUNvbnRlbnQubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZXZlbnREZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFZGl0aW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iaW5kRWRpdG9yQmx1ckV2ZW50KHRoaXMuaXRlbUNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZU92ZXJsYXlEZXRhY2goKSB7XG4gICAgICAgIGNvbnN0IG9wZW5lZE92ZXJsYXlzID0gdGhpcy5vdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5fYXR0YWNoZWRPdmVybGF5cy5zbGljZSh0aGlzLm9yaWdpbk92ZXJsYXlzLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlzRGV0YWNobWVudHMkID0gb3BlbmVkT3ZlcmxheXMubWFwKG92ZXJsYXkgPT4gb3ZlcmxheS5kZXRhY2htZW50cygpKTtcbiAgICAgICAgaWYgKG92ZXJsYXlzRGV0YWNobWVudHMkLmxlbmd0aCkge1xuICAgICAgICAgICAgY29tYmluZUxhdGVzdChvdmVybGF5c0RldGFjaG1lbnRzJClcbiAgICAgICAgICAgICAgICAucGlwZShkZWxheSg1MCksIHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFZGl0aW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlRG9jdW1lbnRDbGljayhlZGl0b3JFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLmNsaWNrRGlzcGF0Y2hlclxuICAgICAgICAgICAgLmNsaWNrZWQoMClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhZWRpdG9yRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEVkaXRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kRWRpdG9yQmx1ckV2ZW50KGVkaXRvckVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRpbWVyKDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNPdmVybGF5KCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmliZU92ZXJsYXlEZXRhY2goKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVEb2N1bWVudENsaWNrKGVkaXRvckVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgICAgICB0aGlzLmV2ZW50RGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmV2ZW50RGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJ0aHktcHJvcGVydHktaXRlbS1sYWJlbFwiPlxuICA8c3BhbiAqbmdJZj1cInRoeUxhYmVsVGV4dFwiIHRoeUZsZXhpYmxlVGV4dCBbdGh5VG9vbHRpcENvbnRlbnRdPVwidGh5TGFiZWxUZXh0XCI+e3sgdGh5TGFiZWxUZXh0IH19PC9zcGFuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICA8c3Bhbj4gPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT48L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidGh5LXByb3BlcnR5LWl0ZW0td3JhcHBlclwiPlxuICA8ZGl2XG4gICAgI2l0ZW1cbiAgICBjbGFzcz1cInRoeS1wcm9wZXJ0eS1pdGVtLWNvbnRlbnRcIlxuICAgIFtjbGFzcy50aHktcHJvcGVydHktaXRlbS1jb250ZW50LWVkaXRhYmxlXT1cInRoeUVkaXRhYmxlXCJcbiAgICBbY2xhc3MudGh5LXByb3BlcnR5LWl0ZW0tY29udGVudC1lZGl0aW5nXT1cImVkaXRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGh5LXByb3BlcnR5LWl0ZW0tY29udGVudC10ZXh0XCI+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJjb250ZW50XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1wcm9wZXJ0eS1pdGVtLWNvbnRlbnQtZWRpdG9yXCIgKm5nSWY9XCJ0aHlFZGl0YWJsZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiZWRpdG9yXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdG9yXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0aHktcHJvcGVydHktaXRlbS1vcGVyYXRpb25cIiAqbmdJZj1cIm9wZXJhdGlvblwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJvcGVyYXRpb25cIj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvcGVydHkvcHJvcGVydHktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvcHJvcGVydHkvcHJvcGVydHktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSw2QkFBNkIsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUlmLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFJeEQ7OztHQUdHO0FBYUgsTUFBTSxPQUFPLGVBQWU7SUFxRXhCLElBQ0ksVUFBVTtRQUNWLE9BQU8sUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFP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Q0FNckIsZUFBZSw4NEJDbkV2Qyw4dENBNkJBLDRDRGlCYyxJQUFJLDZGQUFFLGVBQWUsbU9BQUUsZ0JBQWdCOzsyRkFFeEMsZUFBZTtrQkFaM0IsU0FBUzsrQkFDSSxtQkFBbUIsUUFFdkI7d0JBQ0YsS0FBSyxFQUFFLG1CQUFtQjt3QkFDMUIsdUNBQXVDLEVBQUUsYUFBYTt3QkFDdEQsNkNBQTZDLEVBQUUsaUNBQWlDO3FCQUNuRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDO29OQVF6QyxZQUFZO3NCQUFwQixLQUFLO2dCQU91QyxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1KLE9BQU87c0JBQTdDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU01QixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQU1rQyxLQUFLO3NCQUE3QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTUcsTUFBTTtzQkFBL0MsWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU1LLFNBQVM7c0JBQXJELFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLSyxPQUFPO3NCQUF0RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLVCxXQUFXO3NCQUEvQyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBZS9CLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaHlDbGlja0Rpc3BhdGNoZXIgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5RmxleGlibGVUZXh0IH0gZnJvbSAnbmd4LXRldGh5cy9mbGV4aWJsZS10ZXh0JztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb21FdmVudCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIGZpbHRlciwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlciwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUaHlQcm9wZXJ0aWVzIH0gZnJvbSAnLi9wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBUaHlQcm9wZXJ0eUl0ZW1PcGVyYXRpb25UcmlnZ2VyID0gJ2hvdmVyJyB8ICdhbHdheXMnO1xuXG4vKipcbiAqIOWxnuaAp+e7hOS7tlxuICogQG5hbWUgdGh5LXByb3BlcnR5LWl0ZW1cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktcHJvcGVydHktaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktcHJvcGVydHktaXRlbScsXG4gICAgICAgICdbY2xhc3MudGh5LXByb3BlcnR5LWl0ZW0tb3BlcmF0aW9uYWxdJzogJyEhb3BlcmF0aW9uJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcHJvcGVydHktaXRlbS1vcGVyYXRpb25hbC1ob3Zlcl0nOiBcInRoeU9wZXJhdGlvblRyaWdnZXIgPT09ICdob3ZlcidcIlxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5RmxleGlibGVUZXh0LCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlQcm9wZXJ0eUl0ZW0gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiDlsZ7mgKflkI3np7BcbiAgICAgKiBAdHlwZSBzdGluZ1xuICAgICAqIEBkZWZhdWx0IHRoeUxhYmVsVGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUxhYmVsVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5bGe5oCn5piv5ZCm5piv5Y+v57yW6L6R55qEXG4gICAgICogQHR5cGUgc3RpbmdcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUVkaXRhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6Leo5YiX55qE5pWw6YePXG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5U3BhbjogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWxnuaAp+aTjeS9nOeOsOWunuinpuWPkeaWueW8j++8jOm7mOiupCBhbHdheXMg5LiA55u05pi+56S6XG4gICAgICogQHR5cGUgJ2hvdmVyJyB8ICdhbHdheXMnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5T3BlcmF0aW9uVHJpZ2dlcjogVGh5UHJvcGVydHlJdGVtT3BlcmF0aW9uVHJpZ2dlciA9ICdhbHdheXMnO1xuXG4gICAgQE91dHB1dCgpIHRoeUVkaXRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIOWxnuaAp+WQjeensOiHquWumuS5ieaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnbGFiZWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsYWJlbCE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICog5bGe5oCn5YaF5a6557yW6L6R5qih5p2/77yM5Y+q5pyJ5ZyoIHRoeUVkaXRhYmxlIOS4uiB0cnVlIOaXtueUn+aViFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZWRpdG9yJywgeyBzdGF0aWM6IHRydWUgfSkgZWRpdG9yITogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzljLrmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ29wZXJhdGlvbicsIHsgc3RhdGljOiB0cnVlIH0pIG9wZXJhdGlvbiE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50ITogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpdGVtQ29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBlZGl0aW5nOiBib29sZWFuO1xuXG4gICAgY2hhbmdlcyQgPSBuZXcgU3ViamVjdDxTaW1wbGVDaGFuZ2VzPigpO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIGV2ZW50RGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJpdmF0ZSBvcmlnaW5PdmVybGF5czogT3ZlcmxheVJlZltdID0gW107XG5cbiAgICBwcml2YXRlIGNsaWNrRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZ3JpZC1jb2x1bW4nKVxuICAgIGdldCBncmlkQ29sdW1uKCkge1xuICAgICAgICByZXR1cm4gYHNwYW4gJHtNYXRoLm1pbih0aGlzLnRoeVNwYW4sIHRoaXMucGFyZW50LnRoeUNvbHVtbil9YDtcbiAgICB9XG5cbiAgICBpc1ZlcnRpY2FsID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGNsaWNrRGlzcGF0Y2hlcjogVGh5Q2xpY2tEaXNwYXRjaGVyLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyOiBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcbiAgICAgICAgcHJpdmF0ZSBwYXJlbnQ6IFRoeVByb3BlcnRpZXNcbiAgICApIHtcbiAgICAgICAgdGhpcy5vcmlnaW5PdmVybGF5cyA9IFsuLi50aGlzLm92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLl9hdHRhY2hlZE92ZXJsYXlzXSBhcyBPdmVybGF5UmVmW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlQ2xpY2soKTtcbiAgICAgICAgdGhpcy5wYXJlbnQubGF5b3V0JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGxheW91dCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzVmVydGljYWwgPSBsYXlvdXQgPT09ICd2ZXJ0aWNhbCc7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy50aHlFZGl0YWJsZSAmJiBjaGFuZ2VzLnRoeUVkaXRhYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVDbGljaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRFZGl0aW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREZXN0cm95JC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmV2ZW50RGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY2xpY2tFdmVudFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tFdmVudFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRFZGl0aW5nKGVkaXRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghIXRoaXMuZWRpdGluZyAhPT0gISFlZGl0aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlFZGl0aW5nQ2hhbmdlLmVtaXQoZWRpdGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVkaXRpbmcgPSBlZGl0aW5nO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2Ugc2V0RWRpdGluZyhlZGl0aW5nOiBib29sZWFuKVxuICAgICAqL1xuICAgIHNldEtlZXBFZGl0aW5nKGtlZXA6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXRFZGl0aW5nKGtlZXApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzT3ZlcmxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheU91dHNpZGVDbGlja0Rpc3BhdGNoZXIuX2F0dGFjaGVkT3ZlcmxheXMubGVuZ3RoID4gdGhpcy5vcmlnaW5PdmVybGF5cy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RWRpdGFibGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jbGlja0V2ZW50U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jbGlja0V2ZW50U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuaXRlbUNvbnRlbnQubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZXZlbnREZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFZGl0aW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iaW5kRWRpdG9yQmx1ckV2ZW50KHRoaXMuaXRlbUNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZU92ZXJsYXlEZXRhY2goKSB7XG4gICAgICAgIGNvbnN0IG9wZW5lZE92ZXJsYXlzID0gdGhpcy5vdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5fYXR0YWNoZWRPdmVybGF5cy5zbGljZSh0aGlzLm9yaWdpbk92ZXJsYXlzLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlzRGV0YWNobWVudHMkID0gb3BlbmVkT3ZlcmxheXMubWFwKG92ZXJsYXkgPT4gb3ZlcmxheS5kZXRhY2htZW50cygpKTtcbiAgICAgICAgaWYgKG92ZXJsYXlzRGV0YWNobWVudHMkLmxlbmd0aCkge1xuICAgICAgICAgICAgY29tYmluZUxhdGVzdChvdmVybGF5c0RldGFjaG1lbnRzJClcbiAgICAgICAgICAgICAgICAucGlwZShkZWxheSg1MCksIHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFZGl0aW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlRG9jdW1lbnRDbGljayhlZGl0b3JFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLmNsaWNrRGlzcGF0Y2hlclxuICAgICAgICAgICAgLmNsaWNrZWQoMClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhZWRpdG9yRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEVkaXRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kRWRpdG9yQmx1ckV2ZW50KGVkaXRvckVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRpbWVyKDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNPdmVybGF5KCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmliZU92ZXJsYXlEZXRhY2goKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVEb2N1bWVudENsaWNrKGVkaXRvckVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgICAgICB0aGlzLmV2ZW50RGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmV2ZW50RGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJ0aHktcHJvcGVydHktaXRlbS1sYWJlbFwiPlxuICA8c3BhbiAqbmdJZj1cInRoeUxhYmVsVGV4dFwiIHRoeUZsZXhpYmxlVGV4dCBbdGh5VG9vbHRpcENvbnRlbnRdPVwidGh5TGFiZWxUZXh0XCI+e3sgdGh5TGFiZWxUZXh0IH19PC9zcGFuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICA8c3Bhbj4gPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT48L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwidGh5LXByb3BlcnR5LWl0ZW0tb3BlcmF0aW9uXCIgKm5nSWY9XCJvcGVyYXRpb24gJiYgaXNWZXJ0aWNhbFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJvcGVyYXRpb25cIj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRoeS1wcm9wZXJ0eS1pdGVtLXdyYXBwZXJcIj5cbiAgPGRpdlxuICAgICNpdGVtXG4gICAgY2xhc3M9XCJ0aHktcHJvcGVydHktaXRlbS1jb250ZW50XCJcbiAgICBbY2xhc3MudGh5LXByb3BlcnR5LWl0ZW0tY29udGVudC1lZGl0YWJsZV09XCJ0aHlFZGl0YWJsZVwiXG4gICAgW2NsYXNzLnRoeS1wcm9wZXJ0eS1pdGVtLWNvbnRlbnQtZWRpdGluZ109XCJlZGl0aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1wcm9wZXJ0eS1pdGVtLWNvbnRlbnQtdGV4dFwiPlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiY29udGVudFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0aHktcHJvcGVydHktaXRlbS1jb250ZW50LWVkaXRvclwiICpuZ0lmPVwidGh5RWRpdGFibGVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImVkaXRvclwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRvclwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGh5LXByb3BlcnR5LWl0ZW0tb3BlcmF0aW9uXCIgKm5nSWY9XCJvcGVyYXRpb24gJiYgIWlzVmVydGljYWxcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3BlcmF0aW9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,7 +1,7 @@
1
- import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, TemplateRef, ViewChild, NgZone, booleanAttribute } from '@angular/core';
1
+ import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, TemplateRef, ViewChild, NgZone } from '@angular/core';
2
2
  import { useHostRenderer } from '@tethys/cdk/dom';
3
3
  import { ThyTranslate } from 'ngx-tethys/core';
4
- import { htmlElementIsEmpty } from 'ngx-tethys/util';
4
+ import { coerceBooleanProperty, htmlElementIsEmpty } from 'ngx-tethys/util';
5
5
  import { fromEvent, Subject } from 'rxjs';
6
6
  import { takeUntil } from 'rxjs/operators';
7
7
  import { ThyIcon } from 'ngx-tethys/icon';
@@ -131,7 +131,7 @@ export class ThyPropertyOperation {
131
131
  this.thyOnRemove.emit($event);
132
132
  }
133
133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyOperation, deps: [{ token: i1.ThyTranslate }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyOperation, isStandalone: true, selector: "thy-property-operation", inputs: { thyLabelText: "thyLabelText", thyValue: "thyValue", thyLabelTextTranslateKey: "thyLabelTextTranslateKey", thyIcon: "thyIcon", thyShowClose: ["thyShowClose", "thyShowClose", booleanAttribute], thyLabelHasValue: ["thyLabelHasValue", "thyLabelHasValue", booleanAttribute], thyLabelHideWhenHasValue: ["thyLabelHideWhenHasValue", "thyLabelHideWhenHasValue", booleanAttribute], thyType: "thyType", active: ["thyActive", "active", booleanAttribute], disabled: ["thyDisabled", "disabled", booleanAttribute] }, outputs: { thyOnRemove: "thyOnRemove", thyClick: "thyClick" }, host: { properties: { "class.thy-property-operation": "this._isPropertyOperation", "class.active": "this.active", "class.thy-property-operation-disabled": "this.disabled" } }, queries: [{ propertyName: "operationIcon", first: true, predicate: ["operationIcon"], descendants: true }], viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyButtonIcon, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: ["thySize", "thyIcon", "thyButtonIcon", "thyShape", "thyLight", "thyActive", "thyTheme", "thyColor"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyOperation, isStandalone: true, selector: "thy-property-operation", inputs: { thyLabelText: "thyLabelText", thyValue: "thyValue", thyLabelTextTranslateKey: "thyLabelTextTranslateKey", thyIcon: "thyIcon", thyShowClose: ["thyShowClose", "thyShowClose", coerceBooleanProperty], thyLabelHasValue: ["thyLabelHasValue", "thyLabelHasValue", coerceBooleanProperty], thyLabelHideWhenHasValue: ["thyLabelHideWhenHasValue", "thyLabelHideWhenHasValue", coerceBooleanProperty], thyType: "thyType", active: ["thyActive", "active", coerceBooleanProperty], disabled: ["thyDisabled", "disabled", coerceBooleanProperty] }, outputs: { thyOnRemove: "thyOnRemove", thyClick: "thyClick" }, host: { properties: { "class.thy-property-operation": "this._isPropertyOperation", "class.active": "this.active", "class.thy-property-operation-disabled": "this.disabled" } }, queries: [{ propertyName: "operationIcon", first: true, predicate: ["operationIcon"], descendants: true }], viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyButtonIcon, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: ["thySize", "thyIcon", "thyButtonIcon", "thyShape", "thyLight", "thyActive", "thyTheme", "thyColor"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
135
135
  }
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyOperation, decorators: [{
137
137
  type: Component,
@@ -159,13 +159,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
159
159
  type: Input
160
160
  }], thyShowClose: [{
161
161
  type: Input,
162
- args: [{ transform: booleanAttribute }]
162
+ args: [{ transform: coerceBooleanProperty }]
163
163
  }], thyLabelHasValue: [{
164
164
  type: Input,
165
- args: [{ transform: booleanAttribute }]
165
+ args: [{ transform: coerceBooleanProperty }]
166
166
  }], thyLabelHideWhenHasValue: [{
167
167
  type: Input,
168
- args: [{ transform: booleanAttribute }]
168
+ args: [{ transform: coerceBooleanProperty }]
169
169
  }], thyType: [{
170
170
  type: Input
171
171
  }], active: [{
@@ -173,12 +173,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
173
173
  args: ['class.active']
174
174
  }, {
175
175
  type: Input,
176
- args: [{ alias: 'thyActive', transform: booleanAttribute }]
176
+ args: [{ alias: 'thyActive', transform: coerceBooleanProperty }]
177
177
  }], disabled: [{
178
178
  type: HostBinding,
179
179
  args: ['class.thy-property-operation-disabled']
180
180
  }, {
181
181
  type: Input,
182
- args: [{ alias: 'thyDisabled', transform: booleanAttribute }]
182
+ args: [{ alias: 'thyDisabled', transform: coerceBooleanProperty }]
183
183
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb3BlcmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm9wZXJ0eS1vcGVyYXRpb24vcHJvcGVydHktb3BlcmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wcm9wZXJ0eS1vcGVyYXRpb24vcHJvcGVydHktb3BlcmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUlsRTs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQW1DN0I7O09BRUc7SUFDSCxJQUNJLFlBQVksQ0FBQyxLQUFhO1FBQzFCLElBQUksQ0FBQyxT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LE9BQU87OzJGQUV6RSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0ksd0JBQXdCLGNBRXRCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUM7K0hBd0J6RSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNDLG9CQUFvQjtzQkFBaEUsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBRVosYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUVrQixjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNekMsWUFBWTtzQkFEZixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFVRix3QkFBd0I7c0JBRDNCLEtBQUs7Z0JBU0YsT0FBTztzQkFEVixLQUFLO2dCQVVGLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPbEMsZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVVsQyx3QkFBd0I7c0JBRDNCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBV2xDLE9BQU87c0JBRFYsS0FBSztnQkFZTixNQUFNO3NCQUZMLFdBQVc7dUJBQUMsY0FBYzs7c0JBQzFCLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTMUQsUUFBUTtzQkFGUCxXQUFXO3VCQUFDLHVDQUF1Qzs7c0JBQ25ELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIE9uRGVzdHJveSxcbiAgICBOZ1pvbmUsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlUcmFuc2xhdGUgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgaHRtbEVsZW1lbnRJc0VtcHR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlGbGV4aWJsZVRleHQgfSBmcm9tICduZ3gtdGV0aHlzL2ZsZXhpYmxlLXRleHQnO1xuaW1wb3J0IHsgVGh5QnV0dG9uSWNvbiB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG50eXBlIFRoeVByb3BlcnR5T3BlcmF0aW9uVHlwZXMgPSAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJztcblxuLyoqXG4gKiDlsZ7mgKfmk43kvZznu4Tku7ZcbiAqIEBuYW1lIHRoeS1wcm9wZXJ0eS1vcGVyYXRpb25cbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1wcm9wZXJ0eS1vcGVyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1vcGVyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIE5nQ2xhc3MsIFRoeUJ1dHRvbkljb24sIFRoeUZsZXhpYmxlVGV4dCwgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UHJvcGVydHlPcGVyYXRpb24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIGxhYmVsVGV4dDogc3RyaW5nO1xuXG4gICAgb25seUhhc1RpcHMgPSBmYWxzZTtcblxuICAgIHNob3dDbG9zZSA9IGZhbHNlO1xuXG4gICAgdHlwZTogVGh5UHJvcGVydHlPcGVyYXRpb25UeXBlcztcblxuICAgIGljb246IHN0cmluZztcblxuICAgIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBsYWJlbEhpZGVXaGVuSGFzVmFsdWUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOeCueWHu+enu+mZpOWbvuagh+aXtueahOS6i+S7tuWbnuiwg++8jOatpOWHveaVsOWPquacieWcqHRoeVNob3dDbG9zZeS4unRydWXml7bmiY3kvJrlj5HnlJ9cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25SZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7vkuovku7blm57osINcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktcHJvcGVydHktb3BlcmF0aW9uJykgX2lzUHJvcGVydHlPcGVyYXRpb24gPSB0cnVlO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnb3BlcmF0aW9uSWNvbicpIG9wZXJhdGlvbkljb246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50RWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICog5bGe5oCn55qEIExhYmVsIOaWh+acrFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUxhYmVsVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubGFiZWxUZXh0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bGe5oCn55qE5YC8XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0T25seUhhc1RpcHMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlsZ7mgKfnmoQgTGFiZWwgVHJhbnNsYXRlIEtleVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUxhYmVsVGV4dFRyYW5zbGF0ZUtleSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubGFiZWxUZXh0ID0gdGhpcy50aHlUcmFuc2xhdGUuaW5zdGFudCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+5qCHXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaWNvbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW9k+acieWxnuaAp+WAvOaXtuaYr+WQpuWxleekuuenu+mZpOWbvuagh1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVNob3dDbG9zZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNob3dDbG9zZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIOaUr+aMgeacieWAvOaXtu+8jGxhYmVs5LiN5pi+56S6XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUxhYmVsSGFzVmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5sYWJlbEhpZGVXaGVuSGFzVmFsdWUgPSAhdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pyJ5YC85pe26ZqQ6JePIGxhYmVsXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5TGFiZWxIaWRlV2hlbkhhc1ZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubGFiZWxIaWRlV2hlbkhhc1ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bGe5oCn57G75Z6LXG4gICAgICogQHR5cGUgIGRhbmdlciB8IHByaW1hcnkgfCBzdWNjZXNzIHwgd2FybmluZyB8IG51bGxcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VHlwZSh2YWx1ZTogVGh5UHJvcGVydHlPcGVyYXRpb25UeXBlcykge1xuICAgICAgICB0aGlzLnR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRIb3N0Q2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmv4DmtLvnirbmgIFcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeUFjdGl2ZScsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGFjdGl2ZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOemgeeUqOaTjeS9nO+8jOa3u+WKoOWQjnByb3BlcnR5IG9wZXJhdGlvbuS4rXRoeUNsaWNr5ZKMdGh5T25SZW1vdmXkuovku7blsIbkvJrooqvnpoHnlKhcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LXByb3BlcnR5LW9wZXJhdGlvbi1kaXNhYmxlZCcpXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlEaXNhYmxlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIHNldEhvc3RDbGFzcyhmaXJzdCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCAmJiAhZmlyc3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyh0aGlzLnR5cGUgPyBbYHRoeS1wcm9wZXJ0eS1vcGVyYXRpb24tJHt0aGlzLnR5cGV9YF0gOiBbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPbmx5SGFzVGlwcyhmaXJzdCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCAmJiAhZmlyc3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vbmx5SGFzVGlwcyA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGh0bWxFbGVtZW50SXNFbXB0eSh0aGlzLmNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLm9ubHlIYXNUaXBzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25seUhhc1RpcHMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGh5VHJhbnNsYXRlOiBUaHlUcmFuc2xhdGUsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRIb3N0Q2xhc3ModHJ1ZSk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgIGZyb21FdmVudDxFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnRoeUNsaWNrLm9ic2VydmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnRoeUNsaWNrLmVtaXQoZXZlbnQpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRPbmx5SGFzVGlwcyh0cnVlKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIH1cblxuICAgIHJlbW92ZSgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy50aHlPblJlbW92ZS5lbWl0KCRldmVudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoeS1vcGVyYXRpb24taWNvblwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3BlcmF0aW9uSWNvblwiPjwvbmctY29udGFpbmVyPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJpY29uXCJcbiAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCB9XCJcbiAgICBbdGh5QnV0dG9uSWNvbl09XCJpY29uXCJcbiAgICBbdGh5U2hhcGVdPVwib25seUhhc1RpcHMgPyAnY2lyY2xlLXRoaWNrLWRhc2hlZCcgOiAnY2lyY2xlLXRoaWNrLXNvbGlkJ1wiXG4gID48L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRoeS1vcGVyYXRpb24tY29udGVudFwiIFtuZ0NsYXNzXT1cInsgJ29ubHktaGFzLXRpcHMnOiBvbmx5SGFzVGlwcyB9XCI+XG4gIDxkaXYgI2NvbnRlbnRFbGVtZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZVwiPlxuICAgIDxzcGFuIHRoeUZsZXhpYmxlVGV4dCBbdGh5VG9vbHRpcENvbnRlbnRdPVwidmFsdWVcIj57eyB2YWx1ZSB9fTwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjbGFzcz1cInRoeS10aXBzXCIgKm5nSWY9XCIhdmFsdWUgfHwgKCFsYWJlbEhpZGVXaGVuSGFzVmFsdWUgJiYgdmFsdWUpXCI+e3sgbGFiZWxUZXh0IH19PC9kaXY+XG48L2Rpdj5cbjxzcGFuICpuZ0lmPVwic2hvd0Nsb3NlICYmICFkaXNhYmxlZFwiIChjbGljayk9XCJyZW1vdmUoJGV2ZW50KVwiIGNsYXNzPVwiY2xvc2UtbGluayBjbG9zZS1saW5rLWRhbmdlclwiPlxuICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiIGNsYXNzPVwiIGNsb3NlLWxpbmstc21cIj48L3RoeS1pY29uPlxuPC9zcGFuPlxuIl19
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb3BlcmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm9wZXJ0eS1vcGVyYXRpb24vcHJvcGVydHktb3BlcmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wcm9wZXJ0eS1vcGVyYXRpb24vcHJvcGVydHktb3BlcmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBSWxFOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8sb0JBQW9CO0lBbUM3Qjs7T0FFRztJQUNILElBQ0ksWUFBWSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFNB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LE9BQU87OzJGQUV6RSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0ksd0JBQXdCLGNBRXRCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUM7K0hBd0J6RSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNDLG9CQUFvQjtzQkFBaEUsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBRVosYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUVrQixjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNekMsWUFBWTtzQkFEZixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFVRix3QkFBd0I7c0JBRDNCLEtBQUs7Z0JBU0YsT0FBTztzQkFEVixLQUFLO2dCQVVGLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFPdkMsZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVV2Qyx3QkFBd0I7c0JBRDNCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBV3ZDLE9BQU87c0JBRFYsS0FBSztnQkFZTixNQUFNO3NCQUZMLFdBQVc7dUJBQUMsY0FBYzs7c0JBQzFCLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFTL0QsUUFBUTtzQkFGUCxXQUFXO3VCQUFDLHVDQUF1Qzs7c0JBQ25ELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIE9uRGVzdHJveSxcbiAgICBOZ1pvbmVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5VHJhbnNsYXRlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgaHRtbEVsZW1lbnRJc0VtcHR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlGbGV4aWJsZVRleHQgfSBmcm9tICduZ3gtdGV0aHlzL2ZsZXhpYmxlLXRleHQnO1xuaW1wb3J0IHsgVGh5QnV0dG9uSWNvbiB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG50eXBlIFRoeVByb3BlcnR5T3BlcmF0aW9uVHlwZXMgPSAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJztcblxuLyoqXG4gKiDlsZ7mgKfmk43kvZznu4Tku7ZcbiAqIEBuYW1lIHRoeS1wcm9wZXJ0eS1vcGVyYXRpb25cbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1wcm9wZXJ0eS1vcGVyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1vcGVyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIE5nQ2xhc3MsIFRoeUJ1dHRvbkljb24sIFRoeUZsZXhpYmxlVGV4dCwgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UHJvcGVydHlPcGVyYXRpb24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIGxhYmVsVGV4dDogc3RyaW5nO1xuXG4gICAgb25seUhhc1RpcHMgPSBmYWxzZTtcblxuICAgIHNob3dDbG9zZSA9IGZhbHNlO1xuXG4gICAgdHlwZTogVGh5UHJvcGVydHlPcGVyYXRpb25UeXBlcztcblxuICAgIGljb246IHN0cmluZztcblxuICAgIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBsYWJlbEhpZGVXaGVuSGFzVmFsdWUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOeCueWHu+enu+mZpOWbvuagh+aXtueahOS6i+S7tuWbnuiwg++8jOatpOWHveaVsOWPquacieWcqHRoeVNob3dDbG9zZeS4unRydWXml7bmiY3kvJrlj5HnlJ9cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T25SZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiDngrnlh7vkuovku7blm57osINcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktcHJvcGVydHktb3BlcmF0aW9uJykgX2lzUHJvcGVydHlPcGVyYXRpb24gPSB0cnVlO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnb3BlcmF0aW9uSWNvbicpIG9wZXJhdGlvbkljb246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50RWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICog5bGe5oCn55qEIExhYmVsIOaWh+acrFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUxhYmVsVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubGFiZWxUZXh0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bGe5oCn55qE5YC8XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0T25seUhhc1RpcHMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlsZ7mgKfnmoQgTGFiZWwgVHJhbnNsYXRlIEtleVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUxhYmVsVGV4dFRyYW5zbGF0ZUtleSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubGFiZWxUZXh0ID0gdGhpcy50aHlUcmFuc2xhdGUuaW5zdGFudCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Zu+5qCHXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaWNvbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW9k+acieWxnuaAp+WAvOaXtuaYr+WQpuWxleekuuenu+mZpOWbvuagh1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5U2hvd0Nsb3NlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2hvd0Nsb3NlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8g5pSv5oyB5pyJ5YC85pe277yMbGFiZWzkuI3mmL7npLpcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlMYWJlbEhhc1ZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubGFiZWxIaWRlV2hlbkhhc1ZhbHVlID0gIXZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOacieWAvOaXtumakOiXjyBsYWJlbFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgdGh5TGFiZWxIaWRlV2hlbkhhc1ZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubGFiZWxIaWRlV2hlbkhhc1ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bGe5oCn57G75Z6LXG4gICAgICogQHR5cGUgIGRhbmdlciB8IHByaW1hcnkgfCBzdWNjZXNzIHwgd2FybmluZyB8IG51bGxcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VHlwZSh2YWx1ZTogVGh5UHJvcGVydHlPcGVyYXRpb25UeXBlcykge1xuICAgICAgICB0aGlzLnR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRIb3N0Q2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmv4DmtLvnirbmgIFcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeUFjdGl2ZScsIHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgYWN0aXZlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog56aB55So5pON5L2c77yM5re75Yqg5ZCOcHJvcGVydHkgb3BlcmF0aW9u5LitdGh5Q2xpY2vlkox0aHlPblJlbW92ZeS6i+S7tuWwhuS8muiiq+emgeeUqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktcHJvcGVydHktb3BlcmF0aW9uLWRpc2FibGVkJylcbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeURpc2FibGVkJywgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBzZXRIb3N0Q2xhc3MoZmlyc3QgPSBmYWxzZSkge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQgJiYgIWZpcnN0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3ModGhpcy50eXBlID8gW2B0aHktcHJvcGVydHktb3BlcmF0aW9uLSR7dGhpcy50eXBlfWBdIDogW10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0T25seUhhc1RpcHMoZmlyc3QgPSBmYWxzZSkge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQgJiYgIWZpcnN0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25seUhhc1RpcHMgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChodG1sRWxlbWVudElzRW1wdHkodGhpcy5jb250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5vbmx5SGFzVGlwcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9ubHlIYXNUaXBzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeVRyYW5zbGF0ZTogVGh5VHJhbnNsYXRlLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0SG9zdENsYXNzKHRydWUpO1xuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50aHlDbGljay5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy50aHlDbGljay5lbWl0KGV2ZW50KSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0T25seUhhc1RpcHModHJ1ZSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB9XG5cbiAgICByZW1vdmUoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMudGh5T25SZW1vdmUuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktb3BlcmF0aW9uLWljb25cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9wZXJhdGlvbkljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiaWNvblwiXG4gICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQgfVwiXG4gICAgW3RoeUJ1dHRvbkljb25dPVwiaWNvblwiXG4gICAgW3RoeVNoYXBlXT1cIm9ubHlIYXNUaXBzID8gJ2NpcmNsZS10aGljay1kYXNoZWQnIDogJ2NpcmNsZS10aGljay1zb2xpZCdcIlxuICA+PC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0aHktb3BlcmF0aW9uLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7ICdvbmx5LWhhcy10aXBzJzogb25seUhhc1RpcHMgfVwiPlxuICA8ZGl2ICNjb250ZW50RWxlbWVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVcIj5cbiAgICA8c3BhbiB0aHlGbGV4aWJsZVRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cInZhbHVlXCI+e3sgdmFsdWUgfX08L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJ0aHktdGlwc1wiICpuZ0lmPVwiIXZhbHVlIHx8ICghbGFiZWxIaWRlV2hlbkhhc1ZhbHVlICYmIHZhbHVlKVwiPnt7IGxhYmVsVGV4dCB9fTwvZGl2PlxuPC9kaXY+XG48c3BhbiAqbmdJZj1cInNob3dDbG9zZSAmJiAhZGlzYWJsZWRcIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIiBjbGFzcz1cImNsb3NlLWxpbmsgY2xvc2UtbGluay1kYW5nZXJcIj5cbiAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiY2xvc2VcIiBjbGFzcz1cIiBjbG9zZS1saW5rLXNtXCI+PC90aHktaWNvbj5cbjwvc3Bhbj5cbiJdfQ==
@@ -1,6 +1,7 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostBinding, Input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostBinding, Input } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
4
5
  import * as i0 from "@angular/core";
5
6
  const buttonGroupSizeMap = {
6
7
  sm: ['btn-group-sm'],
@@ -98,7 +99,7 @@ export class ThyRadioGroup {
98
99
  this.hostRenderer.updateClass(classNames);
99
100
  }
100
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyRadioGroup, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyRadioGroup, isStandalone: true, selector: "thy-radio-group", inputs: { thySize: "thySize", thyLayout: "thyLayout", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, host: { properties: { "attr.tabindex": "-1", "class.thy-radio-group": "this.thyRadioGroup", "class.btn-group": "this.isButtonGroup", "class.btn-group-outline-default": "this.isButtonGroupOutline" } }, providers: [
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyRadioGroup, isStandalone: true, selector: "thy-radio-group", inputs: { thySize: "thySize", thyLayout: "thyLayout", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "attr.tabindex": "-1", "class.thy-radio-group": "this.thyRadioGroup", "class.btn-group": "this.isButtonGroup", "class.btn-group-outline-default": "this.isButtonGroupOutline" } }, providers: [
102
103
  {
103
104
  provide: NG_VALUE_ACCESSOR,
104
105
  useExisting: forwardRef(() => ThyRadioGroup),
@@ -132,6 +133,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
132
133
  type: Input
133
134
  }], thyDisabled: [{
134
135
  type: Input,
135
- args: [{ transform: booleanAttribute }]
136
+ args: [{ transform: coerceBooleanProperty }]
136
137
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JhZGlvL2dyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9yYWRpby9ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUlSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBS2xELE1BQU0sa0JBQWtCLEdBQUc7SUFDdkIsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3BCLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQztDQUN2QixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRztJQUN4QixJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztDQUNwQyxDQUFDO0FBRUY7OztHQUdHO0FBaUJILE1BQU0sT0FBTyxhQUFhO0lBWXRCOzs7O09BSUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxJQUFZO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxNQUFjO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFpQkQsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF6Q2xCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTNCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBR3RELHlCQUFvQixHQUFHLEtBQUssQ0FB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QUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0E5R1EsYUFBYTtrR0FBYixhQUFhLHFKQXFDRixnQkFBZ0IseU5BbER6QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUM1QyxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osK0NDekNMLDZCQUNBOzsyRkQrQ2EsYUFBYTtrQkFoQnpCLFNBQVM7K0JBQ0ksaUJBQWlCLGFBRWhCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQzs0QkFDNUMsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osUUFDSzt3QkFDRixpQkFBaUIsRUFBRSxJQUFJO3FCQUMxQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJO3NGQUdzQixhQUFhO3NCQUFsRCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFFSixhQUFhO3NCQUE1QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFHOUIsb0JBQW9CO3NCQURuQixXQUFXO3VCQUFDLGlDQUFpQztnQkFhMUMsT0FBTztzQkFEVixLQUFLO2dCQU1GLFNBQVM7c0JBRFosS0FBSztnQkFla0MsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5cbmltcG9ydCB7IFRoeVJhZGlvQnV0dG9uIH0gZnJvbSAnLi4vYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UmFkaW8gfSBmcm9tICcuLi9yYWRpby5jb21wb25lbnQnO1xuXG5jb25zdCBidXR0b25Hcm91cFNpemVNYXAgPSB7XG4gICAgc206IFsnYnRuLWdyb3VwLXNtJ10sXG4gICAgbGc6IFsnYnRuLWdyb3VwLWxnJ11cbn07XG5cbmNvbnN0IHJhZGlvR3JvdXBMYXlvdXRNYXAgPSB7XG4gICAgZmxleDogWydyYWRpby1ncm91cC1sYXlvdXQtZmxleCddXG59O1xuXG4vKipcbiAqIEBuYW1lIHRoeS1yYWRpby1ncm91cFxuICogQG9yZGVyIDIwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXJhZGlvLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeVJhZGlvR3JvdXApLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogYC0xYFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlSYWRpb0dyb3VwIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1yYWRpby1ncm91cCcpIHRoeVJhZGlvR3JvdXAgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5idG4tZ3JvdXAnKSBpc0J1dHRvbkdyb3VwID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ0bi1ncm91cC1vdXRsaW5lLWRlZmF1bHQnKVxuICAgIGlzQnV0dG9uR3JvdXBPdXRsaW5lID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9zaXplOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9sYXlvdXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOWkp+Wwj1xuICAgICAqIEB0eXBlIHNtIHwgbWQgfCBsZ1xuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZShzaXplOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5TGF5b3V0KGxheW91dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xheW91dCA9IGxheW91dDtcbiAgICB9XG5cbiAgICBfaW5uZXJWYWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgcmFkaW9zOiBBcnJheTxUaHlSYWRpbyB8IFRoeVJhZGlvQnV0dG9uPiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqOWNlemAiee7hOWQiOahhlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeURpc2FibGVkID0gZmFsc2U7XG5cbiAgICBvbkNoYW5nZTogKF86IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IG51bGw7XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgYWRkUmFkaW8ocmFkaW86IFRoeVJhZGlvIHwgVGh5UmFkaW9CdXR0b24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yYWRpb3MucHVzaChyYWRpbyk7XG4gICAgICAgIHJhZGlvLnRoeUNoZWNrZWQgPSByYWRpby50aHlWYWx1ZSA9PT0gdGhpcy5faW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nLCBlbWl0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lubmVyVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaChyYWRpbyA9PiB7XG4gICAgICAgICAgICByYWRpby50aHlDaGVja2VkID0gcmFkaW8udGh5VmFsdWUgPT09IHRoaXMuX2lubmVyVmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZW1pdCkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmFkaW9zLmZvckVhY2gocmFkaW8gPT4ge1xuICAgICAgICAgICAgcmFkaW8uc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0R3JvdXAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0J1dHRvbkdyb3VwICYmICF0aGlzLmlzQnV0dG9uR3JvdXBPdXRsaW5lKSB7XG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uR3JvdXAgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc0J1dHRvbkdyb3VwT3V0bGluZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0aHlEaXNhYmxlZCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodGhpcy50aHlEaXNhYmxlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh0aGlzLnRoeURpc2FibGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDbGFzc2VzKCkge1xuICAgICAgICBjb25zdCBjbGFzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoYnV0dG9uR3JvdXBTaXplTWFwW3RoaXMuX3NpemVdKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goYnV0dG9uR3JvdXBTaXplTWFwW3RoaXMuX3NpemVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmFkaW9Hcm91cExheW91dE1hcFt0aGlzLl9sYXlvdXRdKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2gocmFkaW9Hcm91cExheW91dE1hcFt0aGlzLl9sYXlvdXRdKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc05hbWVzKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JhZGlvL2dyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9yYWRpby9ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUlsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFeEQsTUFBTSxrQkFBa0IsR0FBRztJQUN2QixFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUM7SUFDcEIsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDO0NBQ3ZCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHO0lBQ3hCLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDO0NBQ3BDLENBQUM7QUFFRjs7O0dBR0c7QUFpQkgsTUFBTSxPQUFPLGFBQWE7SUFZdEI7Ozs7T0FJRztJQUNILElBQ0ksT0FBTyxDQUFDLElBQVk7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQ0ksU0FBUyxDQUFDLE1BQWM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQWlCRCxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXpDbEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFM0Isa0JBQWEsR0FBRyxLQUFL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QUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQTlHUSxhQUFhO2tHQUFiLGFBQWEscUpBcUNGLHFCQUFxQix5TkFsRDlCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7Z0JBQzVDLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSiwrQ0N6Q0wsNkJBQ0E7OzJGRCtDYSxhQUFhO2tCQWhCekIsU0FBUzsrQkFDSSxpQkFBaUIsYUFFaEI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDOzRCQUM1QyxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixRQUNLO3dCQUNGLGlCQUFpQixFQUFFLElBQUk7cUJBQzFCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUk7c0ZBR3NCLGFBQWE7c0JBQWxELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUVKLGFBQWE7c0JBQTVDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUc5QixvQkFBb0I7c0JBRG5CLFdBQVc7dUJBQUMsaUNBQWlDO2dCQWExQyxPQUFPO3NCQURWLEtBQUs7Z0JBTUYsU0FBUztzQkFEWixLQUFLO2dCQWV1QyxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5cbmltcG9ydCB7IFRoeVJhZGlvQnV0dG9uIH0gZnJvbSAnLi4vYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UmFkaW8gfSBmcm9tICcuLi9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuY29uc3QgYnV0dG9uR3JvdXBTaXplTWFwID0ge1xuICAgIHNtOiBbJ2J0bi1ncm91cC1zbSddLFxuICAgIGxnOiBbJ2J0bi1ncm91cC1sZyddXG59O1xuXG5jb25zdCByYWRpb0dyb3VwTGF5b3V0TWFwID0ge1xuICAgIGZsZXg6IFsncmFkaW8tZ3JvdXAtbGF5b3V0LWZsZXgnXVxufTtcblxuLyoqXG4gKiBAbmFtZSB0aHktcmFkaW8tZ3JvdXBcbiAqIEBvcmRlciAyMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1yYWRpby1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaHlSYWRpb0dyb3VwKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6IGAtMWBcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5UmFkaW9Hcm91cCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktcmFkaW8tZ3JvdXAnKSB0aHlSYWRpb0dyb3VwID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYnRuLWdyb3VwJykgaXNCdXR0b25Hcm91cCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5idG4tZ3JvdXAtb3V0bGluZS1kZWZhdWx0JylcbiAgICBpc0J1dHRvbkdyb3VwT3V0bGluZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfbGF5b3V0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDlpKflsI9cbiAgICAgKiBAdHlwZSBzbSB8IG1kIHwgbGdcbiAgICAgKiBAZGVmYXVsdCBtZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNpemUoc2l6ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSBzaXplO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUxheW91dChsYXlvdXQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sYXlvdXQgPSBsYXlvdXQ7XG4gICAgfVxuXG4gICAgX2lubmVyVmFsdWU6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIHJhZGlvczogQXJyYXk8VGh5UmFkaW8gfCBUaHlSYWRpb0J1dHRvbj4gPSBbXTtcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKjljZXpgInnu4TlkIjmoYZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeURpc2FibGVkID0gZmFsc2U7XG5cbiAgICBvbkNoYW5nZTogKF86IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IG51bGw7XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgYWRkUmFkaW8ocmFkaW86IFRoeVJhZGlvIHwgVGh5UmFkaW9CdXR0b24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yYWRpb3MucHVzaChyYWRpbyk7XG4gICAgICAgIHJhZGlvLnRoeUNoZWNrZWQgPSByYWRpby50aHlWYWx1ZSA9PT0gdGhpcy5faW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nLCBlbWl0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lubmVyVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaChyYWRpbyA9PiB7XG4gICAgICAgICAgICByYWRpby50aHlDaGVja2VkID0gcmFkaW8udGh5VmFsdWUgPT09IHRoaXMuX2lubmVyVmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZW1pdCkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmFkaW9zLmZvckVhY2gocmFkaW8gPT4ge1xuICAgICAgICAgICAgcmFkaW8uc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0R3JvdXAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0J1dHRvbkdyb3VwICYmICF0aGlzLmlzQnV0dG9uR3JvdXBPdXRsaW5lKSB7XG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uR3JvdXAgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc0J1dHRvbkdyb3VwT3V0bGluZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fc2V0Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0aHlEaXNhYmxlZCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodGhpcy50aHlEaXNhYmxlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh0aGlzLnRoeURpc2FibGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDbGFzc2VzKCkge1xuICAgICAgICBjb25zdCBjbGFzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoYnV0dG9uR3JvdXBTaXplTWFwW3RoaXMuX3NpemVdKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goYnV0dG9uR3JvdXBTaXplTWFwW3RoaXMuX3NpemVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmFkaW9Hcm91cExheW91dE1hcFt0aGlzLl9sYXlvdXRdKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2gocmFkaW9Hcm91cExheW91dE1hcFt0aGlzLl9sYXlvdXRdKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc05hbWVzKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -1,7 +1,8 @@
1
- import { Component, EventEmitter, Input, Output, TemplateRef, booleanAttribute } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
2
2
  import { ThyIcon } from 'ngx-tethys/icon';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
4
  import { ThyStopPropagationDirective } from 'ngx-tethys/shared';
5
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
5
6
  import * as i0 from "@angular/core";
6
7
  /**
7
8
  * @private
@@ -20,7 +21,7 @@ export class ThyRateItem {
20
21
  this.itemClick.next(isHalf && this.allowHalf);
21
22
  }
22
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyRateItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyRateItem, isStandalone: true, selector: "thy-rate-item, [thy-rate-item]", inputs: { allowHalf: ["allowHalf", "allowHalf", booleanAttribute], iconValue: "iconValue", iconTemplate: "iconTemplate" }, outputs: { itemHover: "itemHover", itemClick: "itemClick" }, ngImport: i0, template: `
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyRateItem, isStandalone: true, selector: "thy-rate-item, [thy-rate-item]", inputs: { allowHalf: ["allowHalf", "allowHalf", coerceBooleanProperty], iconValue: "iconValue", iconTemplate: "iconTemplate" }, outputs: { itemHover: "itemHover", itemClick: "itemClick" }, ngImport: i0, template: `
24
25
  <div class="thy-rate-item-left" thyStopPropagation (mouseover)="hoverRateItem(true)" (click)="clickRateItem(true)">
25
26
  <ng-template [ngTemplateOutlet]="iconTemplate || (iconValue && character) || defaultTemplate"></ng-template>
26
27
  </div>
@@ -62,7 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
62
63
  }]
63
64
  }], ctorParameters: () => [], propDecorators: { allowHalf: [{
64
65
  type: Input,
65
- args: [{ transform: booleanAttribute }]
66
+ args: [{ transform: coerceBooleanProperty }]
66
67
  }], iconValue: [{
67
68
  type: Input
68
69
  }], iconTemplate: [{
@@ -72,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
72
73
  }], itemClick: [{
73
74
  type: Output
74
75
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yYXRlL3JhdGUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVoRTs7R0FFRztBQXNCSCxNQUFNLE9BQU8sV0FBVztJQVdwQjtRQVZ3QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTXZDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXhDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTVDLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYixhQUFhLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxhQUFhLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBckJRLFdBQVc7a0dBQVgsV0FBVyxrSEFDQSxnQkFBZ0IsZ0pBcEIxQjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQsNERBRVMsMkJBQTJCLGlHQUFFLGdCQUFnQixvSkFBRSxPQUFPOzsyRkFFdkQsV0FBVztrQkFyQnZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7S0FlVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO2lCQUNwRTt3REFFMkMsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsU0FBUztzQkFBakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVhLFNBQVM7c0JBQTNCLE1BQU07Z0JBRVksU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXJhdGUtaXRlbSwgW3RoeS1yYXRlLWl0ZW1dJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwidGh5LXJhdGUtaXRlbS1sZWZ0XCIgdGh5U3RvcFByb3BhZ2F0aW9uIChtb3VzZW92ZXIpPVwiaG92ZXJSYXRlSXRlbSh0cnVlKVwiIChjbGljayk9XCJjbGlja1JhdGVJdGVtKHRydWUpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWNvblRlbXBsYXRlIHx8IChpY29uVmFsdWUgJiYgY2hhcmFjdGVyKSB8fCBkZWZhdWx0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1yYXRlLWl0ZW0tYWxsXCIgdGh5U3RvcFByb3BhZ2F0aW9uIChtb3VzZW92ZXIpPVwiaG92ZXJSYXRlSXRlbShmYWxzZSlcIiAoY2xpY2spPVwiY2xpY2tSYXRlSXRlbShmYWxzZSlcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uVGVtcGxhdGUgfHwgKGljb25WYWx1ZSAmJiBjaGFyYWN0ZXIpIHx8IGRlZmF1bHRUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxuICAgICAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwic3Rhci1maWxsXCI+PC90aHktaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2NoYXJhY3Rlcj5cbiAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaWNvblZhbHVlXCI+PC90aHktaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UmF0ZUl0ZW0gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd0hhbGYgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGljb25WYWx1ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGl0ZW1Ib3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBob3ZlclJhdGVJdGVtKGlzSGFsZjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1Ib3Zlci5uZXh0KGlzSGFsZiAmJiB0aGlzLmFsbG93SGFsZik7XG4gICAgfVxuXG4gICAgY2xpY2tSYXRlSXRlbShpc0hhbGY6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2submV4dChpc0hhbGYgJiYgdGhpcy5hbGxvd0hhbGYpO1xuICAgIH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yYXRlL3JhdGUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RDs7R0FFRztBQXNCSCxNQUFNLE9BQU8sV0FBVztJQVdwQjtRQVY2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTTVDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXhDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTVDLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYixhQUFhLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxhQUFhLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBckJRLFdBQVc7a0dBQVgsV0FBVyxrSEFDQSxxQkFBcUIsZ0pBcEIvQjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQsNERBRVMsMkJBQTJCLGlHQUFFLGdCQUFnQixvSkFBRSxPQUFPOzsyRkFFdkQsV0FBVztrQkFyQnZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7S0FlVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO2lCQUNwRTt3REFFZ0QsU0FBUztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFFbEMsU0FBUztzQkFBakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVhLFNBQVM7c0JBQTNCLE1BQU07Z0JBRVksU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1yYXRlLWl0ZW0sIFt0aHktcmF0ZS1pdGVtXScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1yYXRlLWl0ZW0tbGVmdFwiIHRoeVN0b3BQcm9wYWdhdGlvbiAobW91c2VvdmVyKT1cImhvdmVyUmF0ZUl0ZW0odHJ1ZSlcIiAoY2xpY2spPVwiY2xpY2tSYXRlSXRlbSh0cnVlKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImljb25UZW1wbGF0ZSB8fCAoaWNvblZhbHVlICYmIGNoYXJhY3RlcikgfHwgZGVmYXVsdFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aHktcmF0ZS1pdGVtLWFsbFwiIHRoeVN0b3BQcm9wYWdhdGlvbiAobW91c2VvdmVyKT1cImhvdmVyUmF0ZUl0ZW0oZmFsc2UpXCIgKGNsaWNrKT1cImNsaWNrUmF0ZUl0ZW0oZmFsc2UpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWNvblRlbXBsYXRlIHx8IChpY29uVmFsdWUgJiYgY2hhcmFjdGVyKSB8fCBkZWZhdWx0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cbiAgICAgICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInN0YXItZmlsbFwiPjwvdGh5LWljb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjaGFyYWN0ZXI+XG4gICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImljb25WYWx1ZVwiPjwvdGh5LWljb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeUljb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeVJhdGVJdGVtIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSBhbGxvd0hhbGYgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGljb25WYWx1ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGl0ZW1Ib3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBob3ZlclJhdGVJdGVtKGlzSGFsZjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1Ib3Zlci5uZXh0KGlzSGFsZiAmJiB0aGlzLmFsbG93SGFsZik7XG4gICAgfVxuXG4gICAgY2xpY2tSYXRlSXRlbShpc0hhbGY6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2submV4dChpc0hhbGYgJiYgdGhpcy5hbGxvd0hhbGYpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';
2
- import { helpers } from 'ngx-tethys/util';
2
+ import { coerceBooleanProperty, helpers } from 'ngx-tethys/util';
3
3
  import { NgClass, NgFor } from '@angular/common';
4
- import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, Input, numberAttribute, Output, TemplateRef } from '@angular/core';
4
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, Input, numberAttribute, Output, TemplateRef } from '@angular/core';
5
5
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
6
  import { ThyStopPropagationDirective } from 'ngx-tethys/shared';
7
7
  import { ThyTooltipDirective } from 'ngx-tethys/tooltip';
@@ -198,7 +198,7 @@ export class ThyRate extends TabIndexDisabledControlValueAccessorMixin {
198
198
  return item || index;
199
199
  }
200
200
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyRate, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
201
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyRate, isStandalone: true, selector: "thy-rate", inputs: { thyCount: ["thyCount", "thyCount", numberAttribute], thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyAllowHalf: ["thyAllowHalf", "thyAllowHalf", booleanAttribute], thyAllowClear: ["thyAllowClear", "thyAllowClear", booleanAttribute], thyTooltips: "thyTooltips", thyIconTemplate: "thyIconTemplate" }, outputs: { thyItemHoverChange: "thyItemHoverChange" }, host: { properties: { "attr.tabindex": "tabIndex", "class.thy-rate": "this.className" }, classAttribute: "thy-rate" }, providers: [
201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyRate, isStandalone: true, selector: "thy-rate", inputs: { thyCount: ["thyCount", "thyCount", numberAttribute], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyAllowHalf: ["thyAllowHalf", "thyAllowHalf", coerceBooleanProperty], thyAllowClear: ["thyAllowClear", "thyAllowClear", coerceBooleanProperty], thyTooltips: "thyTooltips", thyIconTemplate: "thyIconTemplate" }, outputs: { thyItemHoverChange: "thyItemHoverChange" }, host: { properties: { "attr.tabindex": "tabIndex", "class.thy-rate": "this.className" }, classAttribute: "thy-rate" }, providers: [
202
202
  {
203
203
  provide: NG_VALUE_ACCESSOR,
204
204
  useExisting: forwardRef(() => ThyRate),
@@ -223,13 +223,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
223
223
  args: [{ transform: numberAttribute }]
224
224
  }], thyDisabled: [{
225
225
  type: Input,
226
- args: [{ transform: booleanAttribute }]
226
+ args: [{ transform: coerceBooleanProperty }]
227
227
  }], thyAllowHalf: [{
228
228
  type: Input,
229
- args: [{ transform: booleanAttribute }]
229
+ args: [{ transform: coerceBooleanProperty }]
230
230
  }], thyAllowClear: [{
231
231
  type: Input,
232
- args: [{ transform: booleanAttribute }]
232
+ args: [{ transform: coerceBooleanProperty }]
233
233
  }], thyTooltips: [{
234
234
  type: Input
235
235
  }], thyIconTemplate: [{
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
241
241
  type: HostBinding,
242
242
  args: ['class.thy-rate']
243
243
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmF0ZS9yYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9yYXRlL3JhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsZUFBZSxFQUdmLE1BQU0sRUFFTixXQUFXLEVBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFcEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBRXRCOzs7O0dBSUc7QUFtQkgsTUFBTSxPQUFPLE9BQVEsU0FBUSx5Q0FBeUM7SUEwQmxFOzs7T0FHRztJQUNILElBQ2EsV0FBVyxDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQWEsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQXFCRDs7O09BR0c7SUFDSCxJ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QUFtQixDQUFDO3NGQTBCakQsUUFBUTtzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBT3hCLFdBQVc7c0JBRHZCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBY0UsWUFBWTtzQkFBbkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLRSxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU03QixXQUFXO3NCQUFuQixLQUFLO2dCQU9GLGVBQWU7c0JBRGxCLEtBQUs7dUJBQUMsaUJBQWlCO2dCQWNMLGtCQUFrQjtzQkFBcEMsTUFBTTtnQkFFd0IsU0FBUztzQkFBdkMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJJbmRleERpc2FibGVkQ29udHJvbFZhbHVlQWNjZXNzb3JNaXhpbiB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVGh5UmF0ZUl0ZW0gfSBmcm9tICcuL3JhdGUtaXRlbS5jb21wb25lbnQnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbi8qKlxuICog6K+E5YiG57uE5Lu2XG4gKiBAbmFtZSB0aHktcmF0ZVxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXJhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaHlSYXRlKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6IGB0YWJJbmRleGAsXG4gICAgICAgIGNsYXNzOiAndGh5LXJhdGUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBUaHlSYXRlSXRlbSwgTmdDbGFzcywgVGh5VG9vbHRpcERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UmF0ZSBleHRlbmRzIFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBwcml2YXRlIF92YWx1ZSA9IDA7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRWYWx1ZSA9IDA7XG5cbiAgICBwcml2YXRlIGhhc0hhbGYgPSBmYWxzZTtcblxuICAgIHB1YmxpYyByYXRlQXJyYXk6IG51bWJlcltdID0gW107XG5cbiAgICBwdWJsaWMgcmF0ZVN0eWxlQXJyYXk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+W10gPSBbXTtcblxuICAgIHByaXZhdGUgaWNvbnM6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmdbXSB8IFRlbXBsYXRlUmVmPGFueT5bXSA9IG51bGw7XG5cbiAgICBwdWJsaWMgaWNvblZhbHVlOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgcHVibGljIGljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcblxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnor4TliIbnmoTmgLvmlbBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlDb3VudCA9IDU7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblj6ror7tcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIG92ZXJyaWRlIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuICAgIG92ZXJyaWRlIGdldCB0aHlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWFgeiuuOWNiumAiVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUFsbG93SGFsZiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5YWB6K645YaN5qyh54K55Ye75ZCO5riF6ZmkXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUFsbG93Q2xlYXIgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5q+P6aG555qE5o+Q56S65L+h5oGvXG4gICAgICogQHR5cGUgc3RyaW5nW11cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUb29sdGlwczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieaooeadv++8jOebruWJjeaUr+aMgeS8oOWNleS4quaooeadv+aIluWbvuagh+WQjeensOOAgeaVsOe7hCjmqKHmnb8gfCDlm77moIflkI3np7ApXG4gICAgICogQHR5cGUgc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZ1tdIHwgVGVtcGxhdGVSZWY8YW55PltdXG4gICAgICovXG4gICAgQElucHV0KCd0aHlJY29uVGVtcGxhdGUnKVxuICAgIHNldCB0aHlJY29uVGVtcGxhdGUodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmdbXSB8IFRlbXBsYXRlUmVmPGFueT5bXSkge1xuICAgICAgICB0aGlzLmljb25zID0gdmFsdWU7XG4gICAgICAgIGlmICghdGhpcy5pY29ucykge1xuICAgICAgICAgICAgdGhpcy5pY29uVmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5pY29uVGVtcGxhdGUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRJY29uVGVtcGxhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW9k+WJjeWAvGhvdmVy5pe255qE5Zue6LCDXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeUl0ZW1Ib3ZlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktcmF0ZScpIGNsYXNzTmFtZSA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXQgdGh5VmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHNldCB0aHlWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmhhc0hhbGYgPSAhTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSk7XG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gTWF0aC5jZWlsKHZhbHVlKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aHlWYWx1ZSA9IHZhbHVlIHx8IDA7XG4gICAgICAgIHRoaXMudXBkYXRlUmF0ZUFycmF5KCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0aHlDb3VudCwgdGh5VmFsdWUgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aHlDb3VudCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSYXRlQXJyYXkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aHlWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJdGVtU3R5bGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaXRlbUhvdmVyKGlzSGFsZjogYm9vbGVhbiwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aHlEaXNhYmxlZCB8fCAodGhpcy5jdXJyZW50VmFsdWUgPT09IGluZGV4ICsgMSAmJiB0aGlzLmhhc0hhbGYgPT09IGlzSGFsZikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IGluZGV4ICsgMTtcbiAgICAgICAgdGhpcy5oYXNIYWxmID0gaXNIYWxmO1xuICAgICAgICBjb25zdCBfdmFsdWUgPSBpc0hhbGYgPyBOdW1iZXIodGhpcy5jdXJyZW50VmFsdWUgLSAwLjUpIDogdGhpcy5jdXJyZW50VmFsdWU7XG4gICAgICAgIHRoaXMudGh5SXRlbUhvdmVyQ2hhbmdlLmVtaXQoX3ZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtU3R5bGUoKTtcbiAgICB9XG5cbiAgICBpdGVtQ2xpY2soaXNIYWxmOiBib29sZWFuLCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSBpbmRleCArIDE7XG4gICAgICAgIGNvbnN0IF92YWx1ZSA9IGlzSGFsZiA/IGluZGV4ICsgMSAtIDAuNSA6IGluZGV4ICsgMTtcbiAgICAgICAgaWYgKHRoaXMudGh5VmFsdWUgPT09IF92YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5QWxsb3dDbGVhcikge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5VmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnRoeVZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRoeVZhbHVlID0gX3ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudGh5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbVN0eWxlKCk7XG4gICAgfVxuXG4gICAgb25SYXRlTGVhdmUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmhhc0hhbGYgPSAhTnVtYmVyLmlzSW50ZWdlcih0aGlzLnRoeVZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSBNYXRoLmNlaWwodGhpcy50aHlWYWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbVN0eWxlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmF0ZUFycmF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJhdGVBcnJheSA9IEFycmF5KHRoaXMudGh5Q291bnQpXG4gICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgLm1hcCgoXywgaSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbVN0eWxlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlSXRlbVN0eWxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgY29uc3QgcmF0ZVN0eWxlID0gJ3RoeS1yYXRlLXN0YXInO1xuICAgICAgICB0aGlzLnJhdGVTdHlsZUFycmF5ID0gdGhpcy5yYXRlQXJyYXkubWFwKGkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpICsgMTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgW2Ake3JhdGVTdHlsZX0tLWZ1bGxgXTogdmFsdWUgPCB0aGlzLmN1cnJlbnRWYWx1ZSB8fCAodmFsdWUgPT09IHRoaXMuY3VycmVudFZhbHVlICYmICF0aGlzLmhhc0hhbGYpLFxuICAgICAgICAgICAgICAgIFtgJHtyYXRlU3R5bGV9LS1oYWxmYF06IHRoaXMuaGFzSGFsZiAmJiB2YWx1ZSA9PT0gdGhpcy5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgW2Ake3JhdGVTdHlsZX0tLWFjdGl2ZWBdOiB0aGlzLmhhc0hhbGYgJiYgdmFsdWUgPT09IHRoaXMuY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgICAgIFtgJHtyYXRlU3R5bGV9LS16ZXJvYF06IHZhbHVlID4gdGhpcy5jdXJyZW50VmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZUljb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pY29ucykge1xuICAgICAgICAgICAgdGhpcy5pY29uVmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5pY29uVGVtcGxhdGUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRJY29uVGVtcGxhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEljb25UZW1wbGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGhlbHBlcnMuaXNBcnJheSh0aGlzLmljb25zKSAmJiB0aGlzLmljb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJY29uID0gKHRoaXMuY3VycmVudFZhbHVlICYmIHRoaXMuY3VycmVudFZhbHVlIC0gMSkgfHwgMDtcbiAgICAgICAgICAgIGlmICh0aGlzLmljb25zW2N1cnJlbnRJY29uXSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uVGVtcGxhdGUgPSB0aGlzLmljb25zW2N1cnJlbnRJY29uXSBhcyBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25WYWx1ZSA9IHRoaXMuaWNvbnNbY3VycmVudEljb25dIGFzIHN0cmluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghaGVscGVycy5pc0FycmF5KHRoaXMuaWNvbnMpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pY29ucyBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uVGVtcGxhdGUgPSB0aGlzLmljb25zO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25WYWx1ZSA9IHRoaXMuaWNvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgICAgICByZXR1cm4gaXRlbSB8fCBpbmRleDtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LXJhdGUtY29udGFpbmVyXCIgW2NsYXNzLnRoeS1yYXRlLWNvbnRhaW5lci0tZGlzYWJsZWRdPVwidGh5RGlzYWJsZWRcIiAobW91c2VsZWF2ZSk9XCJvblJhdGVMZWF2ZSgkZXZlbnQpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0YXIgb2YgcmF0ZUFycmF5OyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgPGRpdlxuICAgICAgdGh5U3RvcFByb3BhZ2F0aW9uXG4gICAgICBjbGFzcz1cInRoeS1yYXRlLXN0YXJcIlxuICAgICAgW25nQ2xhc3NdPVwicmF0ZVN0eWxlQXJyYXlbaW5kZXhdIHx8ICcnXCJcbiAgICAgIHRoeS1yYXRlLWl0ZW1cbiAgICAgIFthbGxvd0hhbGZdPVwidGh5QWxsb3dIYWxmXCJcbiAgICAgIFtpY29uVmFsdWVdPVwiaWNvblZhbHVlXCJcbiAgICAgIFtpY29uVGVtcGxhdGVdPVwiaWNvblRlbXBsYXRlXCJcbiAgICAgIChpdGVtSG92ZXIpPVwiaXRlbUhvdmVyKCRldmVudCwgaW5kZXgpXCJcbiAgICAgIChpdGVtQ2xpY2spPVwiaXRlbUNsaWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgIFt0aHlUb29sdGlwXT1cInRoeVRvb2x0aXBzW2luZGV4XVwiXG4gICAgICB0aHlUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgICA+PC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmF0ZS9yYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9yYXRlL3JhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxlQUFlLEVBR2YsTUFBTSxFQUVOLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUVwRCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFFdEI7Ozs7R0FJRztBQW1CSCxNQUFNLE9BQU8sT0FBUSxTQUFRLHlDQUF5QztJQTBCbEU7OztPQUdHO0lBQ0gsSUFDYSxXQUFXLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBYSxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBcUJEOzs7T0FHRztJQUNILElBQ0ksZUFBZSxDQUFDLEtBQWdFO1FBQ2hGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQVNELFlBQW9CLEdBQXNCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE5RWxDLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFFekIsbUJBQWMsR0FBOEIsRUFBRSxDQUFDO1FBRTlDLFVBQUssR0FBOEQsSUFBSSxDQUFDO1FBRXpFLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFFekIsaUJBQVksR0FBcUIsSUFBSSxDQUFDO1FBRXJDLHNCQUFpQixHQUFlLElBQUksQ0FBQztRQUVyQyxxQkFBZ0IsR0FBcUIsSUFBSSxDQUFDO1FBRWxEOztXQUVHO1FBQ29DLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFjcEQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQjs7O1dBR0c7UUFDMEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFbEU7O1dBRUc7UUFDMEMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFbEU7OztXQUdHO1FBQ00sZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFpQnBDOztXQUVHO1FBQ2dCLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFcEMsY0FBUyxHQUFHLElBQUksQ0FBQztJQUloRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUViLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN2QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBZSxFQUFFLEtBQWE7UUFDcEMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuRixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzVFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBZSxFQUFFLEtBQWE7UUFDcEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3BCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2hDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDVixPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsT0FBTztnQkFDSCxDQUFDLEdBQUcsU0FBUyxRQUFRLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbkcsQ0FBQyxHQUFHLFNBQVMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVk7Z0JBQ25FLENBQUMsR0FBRyxTQUFTLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZO2dCQUNyRSxDQUFDLEdBQUcsU0FBUyxRQUFRLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVk7YUFDcEQsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLFdBQVcsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFxQixDQUFDO1lBQ3BFLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFXLENBQUM7WUFDdkQsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxLQUFLLFlBQVksV0FBVyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNuQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2hDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDOUIsT0FBTyxJQUFJLElBQUksS0FBSyxDQUFDO0lBQ3pCLENBQUM7OEdBck5RLE9BQU87a0dBQVAsT0FBTyx5RkF3QkksZUFBZSwrQ0FNZixxQkFBcUIsa0RBY3JCLHFCQUFxQixxREFLckIscUJBQXFCLDhQQWhFOUI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDdEMsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLHNFQ3hDTCxxcUJBaUJBLDRDRDhCYyxLQUFLLG1IQUFFLDJCQUEyQixpR0FBRSxXQUFXLG9LQUFFLE9BQU8sb0ZBQUUsbUJBQW1COzsyRkFFOUUsT0FBTztrQkFsQm5CLFNBQVM7K0JBQ0ksVUFBVSxhQUVUO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQzs0QkFDdEMsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osUUFDSzt3QkFDRixpQkFBaUIsRUFBRSxVQUFVO3dCQUM3QixLQUFLLEVBQUUsVUFBVTtxQkFDcEIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLDJCQUEyQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUM7c0ZBMEJqRCxRQUFRO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPeEIsV0FBVztzQkFEdkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFjRSxZQUFZO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUtFLGFBQWE7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWxDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0YsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBY0wsa0JBQWtCO3NCQUFwQyxNQUFNO2dCQUV3QixTQUFTO3NCQUF2QyxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgaGVscGVycyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5VG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvdG9vbHRpcCc7XG5pbXBvcnQgeyBUaHlSYXRlSXRlbSB9IGZyb20gJy4vcmF0ZS1pdGVtLmNvbXBvbmVudCc7XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fTtcblxuLyoqXG4gKiDor4TliIbnu4Tku7ZcbiAqIEBuYW1lIHRoeS1yYXRlXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktcmF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeVJhdGUpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogYHRhYkluZGV4YCxcbiAgICAgICAgY2xhc3M6ICd0aHktcmF0ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsIFRoeVJhdGVJdGVtLCBOZ0NsYXNzLCBUaHlUb29sdGlwRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlSYXRlIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgX3ZhbHVlID0gMDtcblxuICAgIHByaXZhdGUgY3VycmVudFZhbHVlID0gMDtcblxuICAgIHByaXZhdGUgaGFzSGFsZiA9IGZhbHNlO1xuXG4gICAgcHVibGljIHJhdGVBcnJheTogbnVtYmVyW10gPSBbXTtcblxuICAgIHB1YmxpYyByYXRlU3R5bGVBcnJheTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj5bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBpY29uczogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZ1tdIHwgVGVtcGxhdGVSZWY8YW55PltdID0gbnVsbDtcblxuICAgIHB1YmxpYyBpY29uVmFsdWU6IHN0cmluZyA9IG51bGw7XG5cbiAgICBwdWJsaWMgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieivhOWIhueahOaAu+aVsFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUNvdW50ID0gNTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWPquivu1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBvdmVycmlkZSBzZXQgdGh5RGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cbiAgICBvdmVycmlkZSBnZXQgdGh5RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblhYHorrjljYrpgIlcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFsbG93SGFsZiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5YWB6K645YaN5qyh54K55Ye75ZCO5riF6ZmkXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5QWxsb3dDbGVhciA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnmr4/pobnnmoTmj5DnpLrkv6Hmga9cbiAgICAgKiBAdHlwZSBzdHJpbmdbXVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRvb2x0aXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5qih5p2/77yM55uu5YmN5pSv5oyB5Lyg5Y2V5Liq5qih5p2/5oiW5Zu+5qCH5ZCN56ew44CB5pWw57uEKOaooeadvyB8IOWbvuagh+WQjeensClcbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nW10gfCBUZW1wbGF0ZVJlZjxhbnk+W11cbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeUljb25UZW1wbGF0ZScpXG4gICAgc2V0IHRoeUljb25UZW1wbGF0ZSh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZ1tdIHwgVGVtcGxhdGVSZWY8YW55PltdKSB7XG4gICAgICAgIHRoaXMuaWNvbnMgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF0aGlzLmljb25zKSB7XG4gICAgICAgICAgICB0aGlzLmljb25WYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmljb25UZW1wbGF0ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldEljb25UZW1wbGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5b2T5YmN5YC8aG92ZXLml7bnmoTlm57osINcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5SXRlbUhvdmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1yYXRlJykgY2xhc3NOYW1lID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCB0aHlWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHRoeVZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaGFzSGFsZiA9ICFOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSBNYXRoLmNlaWwodmFsdWUpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeVZhbHVlID0gdmFsdWUgfHwgMDtcbiAgICAgICAgdGhpcy51cGRhdGVSYXRlQXJyYXkoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRoeUNvdW50LCB0aHlWYWx1ZSB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeUNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJhdGVBcnJheSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoeVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1TdHlsZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBpdGVtSG92ZXIoaXNIYWxmOiBib29sZWFuLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkIHx8ICh0aGlzLmN1cnJlbnRWYWx1ZSA9PT0gaW5kZXggKyAxICYmIHRoaXMuaGFzSGFsZiA9PT0gaXNIYWxmKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gaW5kZXggKyAxO1xuICAgICAgICB0aGlzLmhhc0hhbGYgPSBpc0hhbGY7XG4gICAgICAgIGNvbnN0IF92YWx1ZSA9IGlzSGFsZiA/IE51bWJlcih0aGlzLmN1cnJlbnRWYWx1ZSAtIDAuNSkgOiB0aGlzLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgdGhpcy50aHlJdGVtSG92ZXJDaGFuZ2UuZW1pdChfdmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1TdHlsZSgpO1xuICAgIH1cblxuICAgIGl0ZW1DbGljayhpc0hhbGY6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IGluZGV4ICsgMTtcbiAgICAgICAgY29uc3QgX3ZhbHVlID0gaXNIYWxmID8gaW5kZXggKyAxIC0gMC41IDogaW5kZXggKyAxO1xuICAgICAgICBpZiAodGhpcy50aHlWYWx1ZSA9PT0gX3ZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlBbGxvd0NsZWFyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlWYWx1ZSA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudGh5VmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGh5VmFsdWUgPSBfdmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy50aHlWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVJdGVtU3R5bGUoKTtcbiAgICB9XG5cbiAgICBvblJhdGVMZWF2ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaGFzSGFsZiA9ICFOdW1iZXIuaXNJbnRlZ2VyKHRoaXMudGh5VmFsdWUpO1xuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IE1hdGguY2VpbCh0aGlzLnRoeVZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtU3R5bGUoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVSYXRlQXJyYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmF0ZUFycmF5ID0gQXJyYXkodGhpcy50aHlDb3VudClcbiAgICAgICAgICAgIC5maWxsKDApXG4gICAgICAgICAgICAubWFwKChfLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtU3R5bGUoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVJdGVtU3R5bGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgICAgICBjb25zdCByYXRlU3R5bGUgPSAndGh5LXJhdGUtc3Rhcic7XG4gICAgICAgIHRoaXMucmF0ZVN0eWxlQXJyYXkgPSB0aGlzLnJhdGVBcnJheS5tYXAoaSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGkgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBbYCR7cmF0ZVN0eWxlfS0tZnVsbGBdOiB2YWx1ZSA8IHRoaXMuY3VycmVudFZhbHVlIHx8ICh2YWx1ZSA9PT0gdGhpcy5jdXJyZW50VmFsdWUgJiYgIXRoaXMuaGFzSGFsZiksXG4gICAgICAgICAgICAgICAgW2Ake3JhdGVTdHlsZX0tLWhhbGZgXTogdGhpcy5oYXNIYWxmICYmIHZhbHVlID09PSB0aGlzLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgICBbYCR7cmF0ZVN0eWxlfS0tYWN0aXZlYF06IHRoaXMuaGFzSGFsZiAmJiB2YWx1ZSA9PT0gdGhpcy5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgW2Ake3JhdGVTdHlsZX0tLXplcm9gXTogdmFsdWUgPiB0aGlzLmN1cnJlbnRWYWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlSWNvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmljb25zKSB7XG4gICAgICAgICAgICB0aGlzLmljb25WYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmljb25UZW1wbGF0ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldEljb25UZW1wbGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0SWNvblRlbXBsYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoaGVscGVycy5pc0FycmF5KHRoaXMuaWNvbnMpICYmIHRoaXMuaWNvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEljb24gPSAodGhpcy5jdXJyZW50VmFsdWUgJiYgdGhpcy5jdXJyZW50VmFsdWUgLSAxKSB8fCAwO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWNvbnNbY3VycmVudEljb25dIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25UZW1wbGF0ZSA9IHRoaXMuaWNvbnNbY3VycmVudEljb25dIGFzIFRlbXBsYXRlUmVmPGFueT47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaWNvblZhbHVlID0gdGhpcy5pY29uc1tjdXJyZW50SWNvbl0gYXMgc3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFoZWxwZXJzLmlzQXJyYXkodGhpcy5pY29ucykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmljb25zIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb25UZW1wbGF0ZSA9IHRoaXMuaWNvbnM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaWNvblZhbHVlID0gdGhpcy5pY29ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiBpdGVtIHx8IGluZGV4O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktcmF0ZS1jb250YWluZXJcIiBbY2xhc3MudGh5LXJhdGUtY29udGFpbmVyLS1kaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiIChtb3VzZWxlYXZlKT1cIm9uUmF0ZUxlYXZlKCRldmVudClcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RhciBvZiByYXRlQXJyYXk7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICA8ZGl2XG4gICAgICB0aHlTdG9wUHJvcGFnYXRpb25cbiAgICAgIGNsYXNzPVwidGh5LXJhdGUtc3RhclwiXG4gICAgICBbbmdDbGFzc109XCJyYXRlU3R5bGVBcnJheVtpbmRleF0gfHwgJydcIlxuICAgICAgdGh5LXJhdGUtaXRlbVxuICAgICAgW2FsbG93SGFsZl09XCJ0aHlBbGxvd0hhbGZcIlxuICAgICAgW2ljb25WYWx1ZV09XCJpY29uVmFsdWVcIlxuICAgICAgW2ljb25UZW1wbGF0ZV09XCJpY29uVGVtcGxhdGVcIlxuICAgICAgKGl0ZW1Ib3Zlcik9XCJpdGVtSG92ZXIoJGV2ZW50LCBpbmRleClcIlxuICAgICAgKGl0ZW1DbGljayk9XCJpdGVtQ2xpY2soJGV2ZW50LCBpbmRleClcIlxuICAgICAgW3RoeVRvb2x0aXBdPVwidGh5VG9vbHRpcHNbaW5kZXhdXCJcbiAgICAgIHRoeVRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAgID48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==