ngx-tethys 17.0.9 → 17.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/action/action.component.d.ts +3 -3
  3. package/alert/alert.component.d.ts +1 -1
  4. package/anchor/anchor.component.d.ts +3 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
  7. package/avatar/avatar.component.d.ts +4 -4
  8. package/badge/badge.component.d.ts +3 -3
  9. package/button/button-icon.component.d.ts +2 -2
  10. package/button/button.component.d.ts +2 -2
  11. package/card/card.component.d.ts +3 -3
  12. package/card/content.component.d.ts +1 -1
  13. package/carousel/carousel.component.d.ts +4 -4
  14. package/cascader/cascader-li.component.d.ts +5 -5
  15. package/cascader/cascader-search-option.component.d.ts +3 -3
  16. package/cascader/cascader.component.d.ts +8 -8
  17. package/checkbox/checkbox.component.d.ts +1 -1
  18. package/collapse/collapse-item.component.d.ts +2 -2
  19. package/collapse/collapse.component.d.ts +1 -1
  20. package/color-picker/color-picker-panel.component.d.ts +1 -1
  21. package/color-picker/color-picker.component.d.ts +3 -3
  22. package/copy/copy.directive.d.ts +1 -1
  23. package/core/behaviors/decorators.d.ts +1 -1
  24. package/date-picker/abstract-picker.component.d.ts +7 -7
  25. package/date-picker/abstract-picker.directive.d.ts +3 -3
  26. package/date-picker/base-picker.component.d.ts +2 -2
  27. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
  28. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
  29. package/date-picker/picker.component.d.ts +1 -1
  30. package/date-range/date-range.component.d.ts +8 -2
  31. package/dialog/body/dialog-body.component.d.ts +1 -1
  32. package/dialog/footer/dialog-footer.component.d.ts +1 -1
  33. package/dialog/header/dialog-header.component.d.ts +1 -1
  34. package/divider/divider.component.d.ts +2 -2
  35. package/drag-drop/drag-handle.directive.d.ts +1 -1
  36. package/drag-drop/drag.directive.d.ts +1 -1
  37. package/drag-drop/drop-container.directive.d.ts +1 -1
  38. package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
  39. package/dropdown/dropdown-menu.component.d.ts +1 -1
  40. package/dropdown/dropdown.directive.d.ts +1 -1
  41. package/empty/empty.component.d.ts +1 -1
  42. package/esm2022/action/action.component.mjs +7 -6
  43. package/esm2022/alert/alert.component.mjs +5 -5
  44. package/esm2022/anchor/anchor.component.mjs +5 -5
  45. package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
  46. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
  47. package/esm2022/avatar/avatar.component.mjs +8 -8
  48. package/esm2022/badge/badge.component.mjs +7 -6
  49. package/esm2022/button/button-icon.component.mjs +6 -5
  50. package/esm2022/button/button.component.mjs +6 -6
  51. package/esm2022/card/card.component.mjs +7 -6
  52. package/esm2022/card/content.component.mjs +5 -4
  53. package/esm2022/carousel/carousel.component.mjs +8 -7
  54. package/esm2022/cascader/cascader-li.component.mjs +9 -8
  55. package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
  56. package/esm2022/cascader/cascader.component.mjs +12 -12
  57. package/esm2022/checkbox/checkbox.component.mjs +5 -4
  58. package/esm2022/collapse/collapse-item.component.mjs +6 -6
  59. package/esm2022/collapse/collapse.component.mjs +5 -4
  60. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
  61. package/esm2022/color-picker/color-picker.component.mjs +7 -6
  62. package/esm2022/copy/copy.directive.mjs +5 -4
  63. package/esm2022/core/behaviors/decorators.mjs +2 -2
  64. package/esm2022/date-picker/abstract-picker.component.mjs +11 -10
  65. package/esm2022/date-picker/abstract-picker.directive.mjs +6 -6
  66. package/esm2022/date-picker/base-picker.component.mjs +5 -5
  67. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  68. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
  69. package/esm2022/date-picker/picker.component.mjs +5 -5
  70. package/esm2022/date-range/date-range.component.mjs +6 -5
  71. package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
  72. package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
  73. package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
  74. package/esm2022/divider/divider.component.mjs +6 -5
  75. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
  76. package/esm2022/drag-drop/drag.directive.mjs +5 -4
  77. package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
  78. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
  79. package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
  80. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  81. package/esm2022/empty/empty.component.mjs +5 -4
  82. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
  83. package/esm2022/form/form-group-label.directive.mjs +5 -4
  84. package/esm2022/form/form-group.component.mjs +7 -6
  85. package/esm2022/icon/icon.component.mjs +6 -5
  86. package/esm2022/image/image.directive.mjs +6 -5
  87. package/esm2022/input/input-search.component.mjs +5 -4
  88. package/esm2022/input/input.component.mjs +6 -5
  89. package/esm2022/input-number/input-number.component.mjs +6 -6
  90. package/esm2022/layout/header.component.mjs +7 -6
  91. package/esm2022/layout/sidebar-header.component.mjs +5 -4
  92. package/esm2022/layout/sidebar.component.mjs +12 -11
  93. package/esm2022/list/list.component.mjs +5 -4
  94. package/esm2022/list/selection/selection-list.mjs +7 -7
  95. package/esm2022/loading/loading.component.mjs +6 -5
  96. package/esm2022/mention/mention.directive.mjs +3 -3
  97. package/esm2022/menu/group/menu-group.component.mjs +10 -9
  98. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -4
  99. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
  100. package/esm2022/menu/menu.component.mjs +5 -4
  101. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
  102. package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
  103. package/esm2022/nav/nav-item.directive.mjs +7 -6
  104. package/esm2022/nav/nav.component.mjs +8 -7
  105. package/esm2022/pagination/pagination.component.mjs +9 -9
  106. package/esm2022/popover/popover.directive.mjs +6 -5
  107. package/esm2022/property/property-item.component.mjs +5 -4
  108. package/esm2022/property-operation/property-operation.component.mjs +9 -9
  109. package/esm2022/radio/group/radio-group.component.mjs +5 -4
  110. package/esm2022/rate/rate-item.component.mjs +5 -4
  111. package/esm2022/rate/rate.component.mjs +7 -7
  112. package/esm2022/resizable/resizable.directive.mjs +7 -6
  113. package/esm2022/resizable/resize-handle.component.mjs +5 -4
  114. package/esm2022/resizable/resize-handles.component.mjs +5 -4
  115. package/esm2022/segment/segment-item.component.mjs +5 -5
  116. package/esm2022/segment/segment.component.mjs +5 -4
  117. package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
  118. package/esm2022/select/native-select/native-select.component.mjs +5 -5
  119. package/esm2022/shared/base-form-check.component.mjs +6 -5
  120. package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
  121. package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
  122. package/esm2022/shared/directives/thy-show.mjs +5 -4
  123. package/esm2022/shared/option/group/option-group.component.mjs +5 -4
  124. package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
  125. package/esm2022/shared/option/option.component.mjs +5 -5
  126. package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
  127. package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
  128. package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
  129. package/esm2022/skeleton/skeleton.component.mjs +5 -4
  130. package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
  131. package/esm2022/skeleton/stylized/list.component.mjs +5 -4
  132. package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
  133. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
  134. package/esm2022/slider/slider.component.mjs +6 -6
  135. package/esm2022/space/space.component.mjs +5 -4
  136. package/esm2022/stepper/step-header.component.mjs +6 -5
  137. package/esm2022/stepper/stepper.component.mjs +5 -4
  138. package/esm2022/switch/switch.component.mjs +6 -5
  139. package/esm2022/table/table-column.component.mjs +9 -9
  140. package/esm2022/table/table-skeleton.component.mjs +6 -5
  141. package/esm2022/table/table.component.mjs +14 -14
  142. package/esm2022/tabs/tab.component.mjs +5 -4
  143. package/esm2022/tabs/tabs.component.mjs +6 -6
  144. package/esm2022/tag/tag.component.mjs +5 -5
  145. package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
  146. package/esm2022/time-picker/time-picker.component.mjs +9 -9
  147. package/esm2022/timeline/timeline.component.mjs +5 -4
  148. package/esm2022/tooltip/tooltip.directive.mjs +6 -6
  149. package/esm2022/tree/tree-node.component.mjs +9 -8
  150. package/esm2022/tree/tree.component.mjs +10 -10
  151. package/esm2022/tree-select/tree-select.component.mjs +11 -11
  152. package/esm2022/upload/file-select.component.mjs +6 -5
  153. package/esm2022/version.mjs +2 -2
  154. package/esm2022/vote/vote.component.mjs +7 -6
  155. package/esm2022/watermark/watermark.directive.mjs +5 -4
  156. package/fesm2022/ngx-tethys-action.mjs +6 -5
  157. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-alert.mjs +4 -4
  159. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-anchor.mjs +4 -4
  161. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
  163. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  164. package/fesm2022/ngx-tethys-avatar.mjs +7 -7
  165. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  166. package/fesm2022/ngx-tethys-badge.mjs +6 -5
  167. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  168. package/fesm2022/ngx-tethys-button.mjs +8 -8
  169. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  170. package/fesm2022/ngx-tethys-card.mjs +8 -7
  171. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-carousel.mjs +7 -6
  173. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-cascader.mjs +21 -21
  175. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
  177. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-collapse.mjs +7 -7
  179. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-color-picker.mjs +8 -7
  181. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-copy.mjs +4 -3
  183. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-core.mjs +1 -1
  185. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-date-picker.mjs +26 -26
  187. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-date-range.mjs +5 -4
  189. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-dialog.mjs +8 -7
  191. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-divider.mjs +5 -4
  193. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
  195. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
  197. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-empty.mjs +4 -3
  199. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-form.mjs +10 -10
  201. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-icon.mjs +5 -5
  203. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-image.mjs +5 -5
  205. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  207. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-input.mjs +7 -6
  209. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-layout.mjs +17 -16
  211. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-list.mjs +8 -8
  213. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-loading.mjs +5 -4
  215. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-mention.mjs +2 -2
  217. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-menu.mjs +15 -14
  219. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-nav.mjs +16 -16
  221. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-pagination.mjs +8 -8
  223. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-popover.mjs +5 -5
  225. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
  227. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-property.mjs +4 -3
  229. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-radio.mjs +7 -6
  231. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-rate.mjs +8 -8
  233. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-resizable.mjs +10 -10
  235. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  237. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-select.mjs +15 -15
  239. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-shared.mjs +25 -25
  241. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
  243. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-slide.mjs +4 -4
  245. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-slider.mjs +5 -5
  247. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-space.mjs +4 -3
  249. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-stepper.mjs +7 -6
  251. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-switch.mjs +5 -4
  253. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-table.mjs +22 -22
  255. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-tabs.mjs +7 -7
  257. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-tag.mjs +4 -4
  259. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
  261. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-timeline.mjs +4 -3
  263. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
  265. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
  267. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-tree.mjs +15 -15
  269. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-upload.mjs +5 -5
  271. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-vote.mjs +6 -5
  273. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-watermark.mjs +4 -3
  275. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys.mjs +1 -1
  277. package/fesm2022/ngx-tethys.mjs.map +1 -1
  278. package/form/form-group-error/form-group-error.component.d.ts +1 -1
  279. package/form/form-group-label.directive.d.ts +1 -1
  280. package/form/form-group.component.d.ts +3 -3
  281. package/icon/icon.component.d.ts +2 -2
  282. package/image/image.directive.d.ts +2 -2
  283. package/input/input-search.component.d.ts +1 -1
  284. package/input/input.component.d.ts +2 -2
  285. package/input-number/input-number.component.d.ts +2 -2
  286. package/layout/header.component.d.ts +3 -3
  287. package/layout/sidebar-header.component.d.ts +1 -1
  288. package/layout/sidebar.component.d.ts +7 -7
  289. package/list/list.component.d.ts +1 -1
  290. package/list/selection/selection-list.d.ts +3 -3
  291. package/loading/loading.component.d.ts +2 -2
  292. package/menu/group/menu-group.component.d.ts +6 -6
  293. package/menu/item/action/menu-item-action.component.d.ts +1 -1
  294. package/menu/item/name/menu-item-name.component.d.ts +1 -1
  295. package/menu/menu.component.d.ts +1 -1
  296. package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
  297. package/nav/nav-ink-bar.directive.d.ts +2 -2
  298. package/nav/nav-item.directive.d.ts +3 -3
  299. package/nav/nav.component.d.ts +4 -4
  300. package/package.json +1 -1
  301. package/pagination/pagination.component.d.ts +5 -5
  302. package/popover/popover.directive.d.ts +2 -2
  303. package/property/property-item.component.d.ts +4 -1
  304. package/property-operation/property-operation.component.d.ts +5 -5
  305. package/radio/group/radio-group.component.d.ts +1 -1
  306. package/rate/rate-item.component.d.ts +1 -1
  307. package/rate/rate.component.d.ts +3 -3
  308. package/resizable/resizable.directive.d.ts +3 -3
  309. package/resizable/resize-handle.component.d.ts +1 -1
  310. package/resizable/resize-handles.component.d.ts +1 -1
  311. package/schematics/version.d.ts +1 -1
  312. package/schematics/version.js +1 -1
  313. package/segment/segment-item.component.d.ts +1 -1
  314. package/segment/segment.component.d.ts +5 -1
  315. package/select/custom-select/custom-select.component.d.ts +10 -10
  316. package/select/native-select/native-select.component.d.ts +1 -1
  317. package/shared/base-form-check.component.d.ts +2 -2
  318. package/shared/directives/thy-autofocus.directive.d.ts +2 -2
  319. package/shared/directives/thy-scroll.directive.d.ts +1 -1
  320. package/shared/directives/thy-show.d.ts +1 -1
  321. package/shared/option/group/option-group.component.d.ts +1 -1
  322. package/shared/option/list-option/list-option.component.d.ts +1 -1
  323. package/shared/option/option.component.d.ts +1 -1
  324. package/shared/select/select-control/select-control.component.d.ts +6 -6
  325. package/skeleton/skeleton-circle.component.d.ts +1 -1
  326. package/skeleton/skeleton-rectangle.component.d.ts +1 -1
  327. package/skeleton/skeleton.component.d.ts +1 -1
  328. package/skeleton/stylized/bullet-list.component.d.ts +1 -1
  329. package/skeleton/stylized/list.component.d.ts +1 -1
  330. package/skeleton/stylized/paragraph.component.d.ts +1 -1
  331. package/slide/slide-body/slide-body-section.component.d.ts +1 -1
  332. package/slider/slider.component.d.ts +2 -2
  333. package/space/space.component.d.ts +1 -1
  334. package/stepper/step-header.component.d.ts +2 -2
  335. package/stepper/stepper.component.d.ts +1 -1
  336. package/switch/switch.component.d.ts +2 -2
  337. package/table/table-column.component.d.ts +5 -5
  338. package/table/table-skeleton.component.d.ts +2 -2
  339. package/table/table.component.d.ts +10 -10
  340. package/tabs/tab.component.d.ts +1 -1
  341. package/tabs/tabs.component.d.ts +2 -2
  342. package/tag/tag.component.d.ts +1 -1
  343. package/time-picker/time-picker-panel.component.d.ts +2 -2
  344. package/time-picker/time-picker.component.d.ts +5 -5
  345. package/timeline/timeline.component.d.ts +1 -1
  346. package/tooltip/tooltip.directive.d.ts +10 -2
  347. package/tree/tree-node.component.d.ts +20 -5
  348. package/tree/tree.component.d.ts +6 -6
  349. package/tree-select/tree-select.component.d.ts +7 -7
  350. package/upload/file-select.component.d.ts +2 -2
  351. package/vote/vote.component.d.ts +3 -3
  352. package/watermark/watermark.directive.d.ts +1 -1
@@ -1,4 +1,5 @@
1
- import { Component, ChangeDetectionStrategy, Input, ViewChild, TemplateRef, ContentChild, booleanAttribute } from '@angular/core';
1
+ import { Component, ChangeDetectionStrategy, Input, ViewChild, TemplateRef, ContentChild } from '@angular/core';
2
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
2
3
  import * as i0 from "@angular/core";
3
4
  /**
4
5
  * 选项卡的选项组件
@@ -8,7 +9,7 @@ export class ThyTab {
8
9
  constructor() { }
9
10
  ngOnInit() { }
10
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTab, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTab, isStandalone: true, selector: "thy-tab", inputs: { thyTitle: "thyTitle", id: "id", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, queries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["title"], descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: ` <ng-template #content><ng-content></ng-content></ng-template> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTab, isStandalone: true, selector: "thy-tab", inputs: { thyTitle: "thyTitle", id: "id", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, queries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["title"], descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: ` <ng-template #content><ng-content></ng-content></ng-template> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
13
  }
13
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTab, decorators: [{
14
15
  type: Component,
@@ -30,6 +31,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
30
31
  type: Input
31
32
  }], thyDisabled: [{
32
33
  type: Input,
33
- args: [{ transform: booleanAttribute }]
34
+ args: [{ transform: coerceBooleanProperty }]
34
35
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFJOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxNQUFNO0lBeUJmLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7OEdBM0JWLE1BQU07a0dBQU4sTUFBTSxpSUF1QkssZ0JBQWdCLHNQQTNCMUIsaUVBQWlFOzsyRkFJbEUsTUFBTTtrQkFObEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLGlFQUFpRTtvQkFDM0UsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3REFNMEIsZ0JBQWdCO3NCQUF0QyxZQUFZO3VCQUFDLE9BQU87Z0JBRW1CLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLN0IsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxFQUFFO3NCQUFWLEtBQUs7Z0JBTWtDLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBDb250ZW50Q2hpbGQsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiDpgInpobnljaHnmoTpgInpobnnu4Tku7ZcbiAqIEBuYW1lIHRoeS10YWJcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdGFiJyxcbiAgICB0ZW1wbGF0ZTogYCA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+IGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUYWIgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIOiHquWumuS5iemAiemhueagh+mimOeahOaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndGl0bGUnKSB0aXRsZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDpgInpobnmoIfpophcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6YCJ6aG555qE5ZSv5LiA5qCH6K+GXG4gICAgICovXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqOmAiemhuVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXhEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxNQUFNO0lBeUJmLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7OEdBM0JWLE1BQU07a0dBQU4sTUFBTSxpSUF1QksscUJBQXFCLHNQQTNCL0IsaUVBQWlFOzsyRkFJbEUsTUFBTTtrQkFObEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLGlFQUFpRTtvQkFDM0UsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3REFNMEIsZ0JBQWdCO3NCQUF0QyxZQUFZO3VCQUFDLE9BQU87Z0JBRW1CLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLN0IsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxFQUFFO3NCQUFWLEtBQUs7Z0JBTXVDLFdBQVc7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbi8qKlxuICog6YCJ6aG55Y2h55qE6YCJ6aG557uE5Lu2XG4gKiBAbmFtZSB0aHktdGFiXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRhYicsXG4gICAgdGVtcGxhdGU6IGAgPG5nLXRlbXBsYXRlICNjb250ZW50PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPiBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5VGFiIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnpgInpobnmoIfpopjnmoTmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RpdGxlJykgdGl0bGVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudDogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICog6YCJ6aG55qCH6aKYXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmAiemhueeahOWUr+S4gOagh+ivhlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKjpgInpoblcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuIl19
@@ -1,5 +1,5 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, EventEmitter, Input, Output, QueryList, TemplateRef, inject, booleanAttribute } from '@angular/core';
2
- import { isString } from 'ngx-tethys/util';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, EventEmitter, Input, Output, QueryList, TemplateRef, inject } from '@angular/core';
2
+ import { coerceBooleanProperty, isString } from 'ngx-tethys/util';
3
3
  import { fromEvent } from 'rxjs';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { ThyTab } from './tab.component';
@@ -107,7 +107,7 @@ export class ThyTabs {
107
107
  return index;
108
108
  }
109
109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTabs, isStandalone: true, selector: "thy-tabs", inputs: { thyType: "thyType", thySize: "thySize", thyActiveTab: "thyActiveTab", thyExtra: "thyExtra", thyPosition: "thyPosition", thyAnimated: ["thyAnimated", "thyAnimated", booleanAttribute], thyResponsive: ["thyResponsive", "thyResponsive", booleanAttribute] }, outputs: { thyActiveTabChange: "thyActiveTabChange" }, host: { properties: { "class.thy-tabs-top": "thyPosition === 'top'", "class.thy-tabs-left": "thyPosition === 'left'", "style.overflow": "transitionStarted ? \"hidden\" : null" }, classAttribute: "thy-tabs" }, queries: [{ propertyName: "tabs", predicate: ThyTab, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType\"\n [thySize]=\"thySize\"\n [thyExtra]=\"thyExtra\"\n [thyVertical]=\"thyPosition === 'left'\"\n [thyResponsive]=\"thyResponsive\"\n>\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id\"\n [thyNavItemDisabled]=\"tab.thyDisabled\"\n [thyNavItemActive]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n (click)=\"activeTab(tab, i)\"\n >\n <ng-container *ngIf=\"tab.titleTemplateRef; else titleName\">\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #titleName>\n {{ tab.thyTitle }}\n </ng-template>\n </a>\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n <div\n thyTabContent\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n [active]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"\n ></div>\n</div>\n", dependencies: [{ kind: "component", type: ThyNav, selector: "thy-nav", inputs: ["thyType", "thySize", "thyHorizontal", "thyVertical", "thyFill", "thyResponsive", "thyInsideClosable", "thyExtra"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ThyNavItemDirective, selector: "[thyNavLink],[thyNavItem]", inputs: ["thyNavItemActive", "thyNavLinkActive", "thyNavItemDisabled"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyTabContent, selector: "thy-tab-content, [thyTabContent]", inputs: ["content", "active", "tabPaneAnimated"], exportAs: ["thyTabContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTabs, isStandalone: true, selector: "thy-tabs", inputs: { thyType: "thyType", thySize: "thySize", thyActiveTab: "thyActiveTab", thyExtra: "thyExtra", thyPosition: "thyPosition", thyAnimated: ["thyAnimated", "thyAnimated", coerceBooleanProperty], thyResponsive: ["thyResponsive", "thyResponsive", coerceBooleanProperty] }, outputs: { thyActiveTabChange: "thyActiveTabChange" }, host: { properties: { "class.thy-tabs-top": "thyPosition === 'top'", "class.thy-tabs-left": "thyPosition === 'left'", "style.overflow": "transitionStarted ? \"hidden\" : null" }, classAttribute: "thy-tabs" }, queries: [{ propertyName: "tabs", predicate: ThyTab, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType\"\n [thySize]=\"thySize\"\n [thyExtra]=\"thyExtra\"\n [thyVertical]=\"thyPosition === 'left'\"\n [thyResponsive]=\"thyResponsive\"\n>\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id\"\n [thyNavItemDisabled]=\"tab.thyDisabled\"\n [thyNavItemActive]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n (click)=\"activeTab(tab, i)\"\n >\n <ng-container *ngIf=\"tab.titleTemplateRef; else titleName\">\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #titleName>\n {{ tab.thyTitle }}\n </ng-template>\n </a>\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n <div\n thyTabContent\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n [active]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"\n ></div>\n</div>\n", dependencies: [{ kind: "component", type: ThyNav, selector: "thy-nav", inputs: ["thyType", "thySize", "thyHorizontal", "thyVertical", "thyFill", "thyResponsive", "thyInsideClosable", "thyExtra"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ThyNavItemDirective, selector: "[thyNavLink],[thyNavItem]", inputs: ["thyNavItemActive", "thyNavLinkActive", "thyNavItemDisabled"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyTabContent, selector: "thy-tab-content, [thyTabContent]", inputs: ["content", "active", "tabPaneAnimated"], exportAs: ["thyTabContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTabs, decorators: [{
113
113
  type: Component,
@@ -132,11 +132,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
132
132
  type: Input
133
133
  }], thyAnimated: [{
134
134
  type: Input,
135
- args: [{ transform: booleanAttribute }]
135
+ args: [{ transform: coerceBooleanProperty }]
136
136
  }], thyResponsive: [{
137
137
  type: Input,
138
- args: [{ transform: booleanAttribute }]
138
+ args: [{ transform: coerceBooleanProperty }]
139
139
  }], thyActiveTabChange: [{
140
140
  type: Output
141
141
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVE3RDs7O0dBR0c7QUFjSCxNQUFNLE9BQU8sT0FBTztJQWlCaEI7O09BRUc7SUFDSCxJQUNJLFlBQVksQ0FBQyxLQUF1QjtRQUNwQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFD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LEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQzsrR0FHcEMsSUFBSTtzQkFBbkQsZUFBZTt1QkFBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVFyQyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQU1GLFlBQVk7c0JBRGYsS0FBSztnQkFjRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS2tDLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS0UsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLNUIsa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBpbmplY3QsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVGh5VGFiIH0gZnJvbSAnLi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUFjdGl2ZVRhYkluZm8sIFRoeVRhYkFjdGl2ZUV2ZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUaHlUYWJDb250ZW50IH0gZnJvbSAnLi90YWItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5TmF2LCBUaHlOYXZJdGVtRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9uYXYnO1xuXG5leHBvcnQgdHlwZSBUaHlUYWJzU2l6ZSA9ICdsZycgfCAnbWQnIHwgJ3NtJztcblxuZXhwb3J0IHR5cGUgVGh5VGFic1R5cGUgPSAncHVsbGVkJyB8ICd0YWJzJyB8ICdwaWxscycgfCAnbGl0ZSc7XG5cbmV4cG9ydCB0eXBlIFRoeVRhYnNQb3NpdGlvbiA9ICd0b3AnIHwgJ2xlZnQnO1xuXG4vKipcbiAqIOmAiemhueWNoeWIh+aNoue7hOS7tlxuICogQG5hbWUgdGh5LXRhYnNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktdGFicycsXG4gICAgICAgICdbY2xhc3MudGh5LXRhYnMtdG9wXSc6IGB0aHlQb3NpdGlvbiA9PT0gJ3RvcCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS10YWJzLWxlZnRdJzogYHRoeVBvc2l0aW9uID09PSAnbGVmdCdgLFxuICAgICAgICAnW3N0eWxlLm92ZXJmbG93XSc6IGB0cmFuc2l0aW9uU3RhcnRlZCA/IFwiaGlkZGVuXCIgOiBudWxsYFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5TmF2LCBOZ0ZvciwgVGh5TmF2SXRlbURpcmVjdGl2ZSwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgVGh5VGFiQ29udGVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VGFicyBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkcmVuKFRoeVRhYiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSB0YWJzID0gbmV3IFF1ZXJ5TGlzdDxUaHlUYWI+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiDmoIfnrb7nsbvlnotcbiAgICAgKiBAdHlwZSAncHVsbGVkJyB8ICd0YWJzJyB8ICdwaWxscycgfCAnbGl0ZSdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUeXBlOiBUaHlUYWJzVHlwZSA9ICd0YWJzJztcblxuICAgIC8qKlxuICAgICAqIOmAiemhueWNoeeahOWkp+Wwj1xuICAgICAqIEB0eXBlICdsZycgfCAnbWQnIHwgJ3NtJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6IFRoeVRhYnNTaXplID0gJ21kJztcblxuICAgIC8qKlxuICAgICAqIOa/gOa0u+eahOmhuVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUFjdGl2ZVRhYih2YWx1ZTogVGh5QWN0aXZlVGFiSW5mbykge1xuICAgICAgICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYklkID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmZhOWKoOaTjeS9nFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUV4dHJhOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIC8qKlxuICAgICAqIOmAiemhueWNoeeahOS9jee9rlxuICAgICAqIEB0eXBlICd0b3AnIHwgJ2xlZnQnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UG9zaXRpb246IFRoeVRhYnNQb3NpdGlvbiA9ICd0b3AnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5L2/55So5Yqo55S75YiH5o2iIFRhYnNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5QW5pbWF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOWTjeW6lOW8j++8jOiHquWKqOiuoeeul+WuveW6puWtmOaUviB0aHlOYXZJdGVt77yM5bm25re75Yqg5pu05aSa5by55qGGXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeVJlc3BvbnNpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOa/gOa0u+eahOmhueWPkeeUn+aUueWPmOaXtueahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlBY3RpdmVUYWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaHlUYWJBY3RpdmVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRhYkFjdGl2ZUV2ZW50PigpO1xuXG4gICAgYWN0aXZlVGFiSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgICBhY3RpdmVUYWJJZDogc3RyaW5nO1xuXG4gICAgdHJhbnNpdGlvblN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYnNDb250ZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aHktdGFicy1jb250ZW50Jyk7XG4gICAgICAgIGZyb21FdmVudCh0YWJzQ29udGVudCwgJ3RyYW5zaXRpb25lbmQnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25TdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0aHlBY3RpdmVUYWIgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aHlBY3RpdmVUYWIgJiYgIXRoeUFjdGl2ZVRhYi5maXJzdENoYW5nZSAmJiB0aGlzLnRoeUFuaW1hdGVkKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoeUFjdGl2ZVRhYj8uY3VycmVudFZhbHVlPy5pbmRleCB8fCBBcnJheS5mcm9tKHRoaXMudGFicykuZmluZEluZGV4KGsgPT4gay5pZCA9PT0gdGh5QWN0aXZlVGFiPy5jdXJyZW50VmFsdWUuaWQpO1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uU3RhcnRlZCA9IHRoaXMuYWN0aXZlVGFiSW5kZXggIT09IGluZGV4O1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRhYnMuY2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRoeUFuaW1hdGVkICYmICh0aGlzLnRyYW5zaXRpb25TdGFydGVkID0gdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IHRhYlBhbmVBbmltYXRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5UG9zaXRpb24gPT09ICd0b3AnICYmIHRoaXMudGh5QW5pbWF0ZWQ7XG4gICAgfVxuXG4gICAgZ2V0VGFiQ29udGVudE1hcmdpbkxlZnQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudGFiUGFuZUFuaW1hdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7LSh0aGlzLmFjdGl2ZVRhYkluZGV4IHx8IDApICogMTAwfSVgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBhY3RpdmVUYWIodGFiOiBUaHlUYWIsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRhYi50aHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSWQgPSB0YWIuaWQgfHwgbnVsbDtcbiAgICAgICAgdGhpcy50aHlBbmltYXRlZCAmJiAodGhpcy50cmFuc2l0aW9uU3RhcnRlZCA9IHRoaXMuYWN0aXZlVGFiSW5kZXggIT09IGluZGV4KTtcbiAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSB0YWIuaWQgPyB0YWIuaWQgOiBpbmRleDtcbiAgICAgICAgdGhpcy50aHlBY3RpdmVUYWJDaGFuZ2UuZW1pdChhY3RpdmVUYWIpO1xuICAgIH1cblxuICAgIHRhYlRyYWNrQnkoaW5kZXg6IG51bWJlciwgaXRlbTogVGh5VGFiKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG59XG4iLCI8IS0tIHRhYnMgbmF2IC0tPlxuPHRoeS1uYXZcbiAgY2xhc3M9XCJ0aHktdGFicy1uYXZcIlxuICBbdGh5VHlwZV09XCJ0aHlUeXBlXCJcbiAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gIFt0aHlFeHRyYV09XCJ0aHlFeHRyYVwiXG4gIFt0aHlWZXJ0aWNhbF09XCJ0aHlQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgW3RoeVJlc3BvbnNpdmVdPVwidGh5UmVzcG9uc2l2ZVwiXG4+XG4gIDxhXG4gICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgdGh5TmF2SXRlbVxuICAgIFtpZF09XCJ0YWIuaWRcIlxuICAgIFt0aHlOYXZJdGVtRGlzYWJsZWRdPVwidGFiLnRoeURpc2FibGVkXCJcbiAgICBbdGh5TmF2SXRlbUFjdGl2ZV09XCIodGFiLmlkICYmIGFjdGl2ZVRhYklkICYmIHRhYi5pZCA9PT0gYWN0aXZlVGFiSWQpID8/IGkgPT09IGFjdGl2ZVRhYkluZGV4XCJcbiAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRhYlRyYWNrQnlcIlxuICAgIChjbGljayk9XCJhY3RpdmVUYWIodGFiLCBpKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLnRpdGxlVGVtcGxhdGVSZWY7IGVsc2UgdGl0bGVOYW1lXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLnRpdGxlVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGl0bGVOYW1lPlxuICAgICAge3sgdGFiLnRoeVRpdGxlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hPlxuPC90aHktbmF2PlxuPCEtLSB0YWJzIGNvbnRlbnQgLS0+XG48ZGl2IGNsYXNzPVwidGh5LXRhYnMtY29udGVudFwiIFtjbGFzcy50aHktdGFicy1jb250ZW50LWFuaW1hdGVkXT1cInRhYlBhbmVBbmltYXRlZFwiIFtzdHlsZS5tYXJnaW4tbGVmdF09XCJnZXRUYWJDb250ZW50TWFyZ2luTGVmdCgpXCI+XG4gIDxkaXZcbiAgICB0aHlUYWJDb250ZW50XG4gICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0YWJUcmFja0J5XCJcbiAgICBbYWN0aXZlXT1cIih0YWIuaWQgJiYgYWN0aXZlVGFiSWQgJiYgdGFiLmlkID09PSBhY3RpdmVUYWJJZCkgPz8gaSA9PT0gYWN0aXZlVGFiSW5kZXhcIlxuICAgIFtjb250ZW50XT1cInRhYi5jb250ZW50XCJcbiAgICBbdGFiUGFuZUFuaW1hdGVkXT1cInRhYlBhbmVBbmltYXRlZFwiXG4gID48L2Rpdj5cbjwvZGl2PlxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxXQUFXLEVBQ1gsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTdEOzs7R0FHRztBQWNILE1BQU0sT0FBTyxPQUFPO0lBaUJoQjs7T0FFRztJQUNILElBQ0ksWUFBWSxDQUFDLEtBQXVCO1FBQ3BDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQWtDRCxZQUFvQixFQUFxQixFQUFVLEVBQWM7UUFBN0MsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBOURqQixTQUFJLEdBQUcsSUFBSSxTQUFTLEVBQVUsQ0FBQztRQUU5RCxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpEOzs7V0FHRztRQUNNLFlBQU8sR0FBZ0IsTUFBTSxDQUFDO1FBRXZDOzs7V0FHRztRQUNNLFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBcUJyQzs7O1dBR0c7UUFDTSxnQkFBVyxHQUFvQixLQUFLLENBQUM7UUFFOUM7O1dBRUc7UUFDMEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFMUU7O1dBRUc7UUFDMEMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFNUU7O1dBRUc7UUFDTyx1QkFBa0IsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFdEcsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFJM0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO0lBRWlDLENBQUM7SUFFckUsUUFBUTtRQUNKLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNqQyxJQUFJLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sS0FBSyxHQUFHLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoSSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUM7WUFDdkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxRCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ2hDLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUNsQyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQXBIUSxPQUFPO2tHQUFQLE9BQU8sME5BNkNJLHFCQUFxQixxREFLckIscUJBQXFCLDBUQWpEeEIsTUFBTSxxRUNuRDNCLGd1Q0FvQ0EsNENEWWMsTUFBTSxpTEFBRSxLQUFLLG1IQUFFLG1CQUFtQiw4SUFBRSxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxhQUFhOzsyRkFFMUUsT0FBTztrQkFibkIsU0FBUzsrQkFDSSxVQUFVLG1CQUVILHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLHNCQUFzQixFQUFFLHVCQUF1Qjt3QkFDL0MsdUJBQXVCLEVBQUUsd0JBQXdCO3dCQUNqRCxrQkFBa0IsRUFBRSxxQ0FBcUM7cUJBQzVELGNBQ1csSUFBSSxXQUNQLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDOytHQUdwQyxJQUFJO3NCQUFuRCxlQUFlO3VCQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBUXJDLE9BQU87c0JBQWYsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUYsWUFBWTtzQkFEZixLQUFLO2dCQWNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsV0FBVztzQkFBbkIsS0FBSztnQkFLdUMsV0FBVztzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFLRSxhQUFhO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUtqQyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgaXNTdHJpbmcgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUaHlUYWIgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5QWN0aXZlVGFiSW5mbywgVGh5VGFiQWN0aXZlRXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRoeVRhYkNvbnRlbnQgfSBmcm9tICcuL3RhYi1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlOYXYsIFRoeU5hdkl0ZW1EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL25hdic7XG5cbmV4cG9ydCB0eXBlIFRoeVRhYnNTaXplID0gJ2xnJyB8ICdtZCcgfCAnc20nO1xuXG5leHBvcnQgdHlwZSBUaHlUYWJzVHlwZSA9ICdwdWxsZWQnIHwgJ3RhYnMnIHwgJ3BpbGxzJyB8ICdsaXRlJztcblxuZXhwb3J0IHR5cGUgVGh5VGFic1Bvc2l0aW9uID0gJ3RvcCcgfCAnbGVmdCc7XG5cbi8qKlxuICog6YCJ6aG55Y2h5YiH5o2i57uE5Lu2XG4gKiBAbmFtZSB0aHktdGFic1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10YWJzJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGFicy10b3BdJzogYHRoeVBvc2l0aW9uID09PSAndG9wJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LXRhYnMtbGVmdF0nOiBgdGh5UG9zaXRpb24gPT09ICdsZWZ0J2AsXG4gICAgICAgICdbc3R5bGUub3ZlcmZsb3ddJzogYHRyYW5zaXRpb25TdGFydGVkID8gXCJoaWRkZW5cIiA6IG51bGxgXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlOYXYsIE5nRm9yLCBUaHlOYXZJdGVtRGlyZWN0aXZlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBUaHlUYWJDb250ZW50XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUYWJzIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBDb250ZW50Q2hpbGRyZW4oVGh5VGFiLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHRhYnMgPSBuZXcgUXVlcnlMaXN0PFRoeVRhYj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKlxuICAgICAqIOagh+etvuexu+Wei1xuICAgICAqIEB0eXBlICdwdWxsZWQnIHwgJ3RhYnMnIHwgJ3BpbGxzJyB8ICdsaXRlJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVR5cGU6IFRoeVRhYnNUeXBlID0gJ3RhYnMnO1xuXG4gICAgLyoqXG4gICAgICog6YCJ6aG55Y2h55qE5aSn5bCPXG4gICAgICogQHR5cGUgJ2xnJyB8ICdtZCcgfCAnc20nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGh5VGFic1NpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICog5r+A5rS755qE6aG5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QWN0aXZlVGFiKHZhbHVlOiBUaHlBY3RpdmVUYWJJbmZvKSB7XG4gICAgICAgIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYklkID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6ZmE5Yqg5pON5L2cXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RXh0cmE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgLyoqXG4gICAgICog6YCJ6aG55Y2h55qE5L2N572uXG4gICAgICogQHR5cGUgJ3RvcCcgfCAnbGVmdCdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQb3NpdGlvbjogVGh5VGFic1Bvc2l0aW9uID0gJ3RvcCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbkvb/nlKjliqjnlLvliIfmjaIgVGFic1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUFuaW1hdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDlk43lupTlvI/vvIzoh6rliqjorqHnrpflrr3luqblrZjmlL4gdGh5TmF2SXRlbe+8jOW5tua3u+WKoOabtOWkmuW8ueahhlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeVJlc3BvbnNpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOa/gOa0u+eahOmhueWPkeeUn+aUueWPmOaXtueahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlBY3RpdmVUYWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaHlUYWJBY3RpdmVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRhYkFjdGl2ZUV2ZW50PigpO1xuXG4gICAgYWN0aXZlVGFiSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgICBhY3RpdmVUYWJJZDogc3RyaW5nO1xuXG4gICAgdHJhbnNpdGlvblN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYnNDb250ZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aHktdGFicy1jb250ZW50Jyk7XG4gICAgICAgIGZyb21FdmVudCh0YWJzQ29udGVudCwgJ3RyYW5zaXRpb25lbmQnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25TdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0aHlBY3RpdmVUYWIgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aHlBY3RpdmVUYWIgJiYgIXRoeUFjdGl2ZVRhYi5maXJzdENoYW5nZSAmJiB0aGlzLnRoeUFuaW1hdGVkKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoeUFjdGl2ZVRhYj8uY3VycmVudFZhbHVlPy5pbmRleCB8fCBBcnJheS5mcm9tKHRoaXMudGFicykuZmluZEluZGV4KGsgPT4gay5pZCA9PT0gdGh5QWN0aXZlVGFiPy5jdXJyZW50VmFsdWUuaWQpO1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uU3RhcnRlZCA9IHRoaXMuYWN0aXZlVGFiSW5kZXggIT09IGluZGV4O1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRhYnMuY2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRoeUFuaW1hdGVkICYmICh0aGlzLnRyYW5zaXRpb25TdGFydGVkID0gdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IHRhYlBhbmVBbmltYXRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh5UG9zaXRpb24gPT09ICd0b3AnICYmIHRoaXMudGh5QW5pbWF0ZWQ7XG4gICAgfVxuXG4gICAgZ2V0VGFiQ29udGVudE1hcmdpbkxlZnQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudGFiUGFuZUFuaW1hdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7LSh0aGlzLmFjdGl2ZVRhYkluZGV4IHx8IDApICogMTAwfSVgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBhY3RpdmVUYWIodGFiOiBUaHlUYWIsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRhYi50aHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSWQgPSB0YWIuaWQgfHwgbnVsbDtcbiAgICAgICAgdGhpcy50aHlBbmltYXRlZCAmJiAodGhpcy50cmFuc2l0aW9uU3RhcnRlZCA9IHRoaXMuYWN0aXZlVGFiSW5kZXggIT09IGluZGV4KTtcbiAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSB0YWIuaWQgPyB0YWIuaWQgOiBpbmRleDtcbiAgICAgICAgdGhpcy50aHlBY3RpdmVUYWJDaGFuZ2UuZW1pdChhY3RpdmVUYWIpO1xuICAgIH1cblxuICAgIHRhYlRyYWNrQnkoaW5kZXg6IG51bWJlciwgaXRlbTogVGh5VGFiKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG59XG4iLCI8IS0tIHRhYnMgbmF2IC0tPlxuPHRoeS1uYXZcbiAgY2xhc3M9XCJ0aHktdGFicy1uYXZcIlxuICBbdGh5VHlwZV09XCJ0aHlUeXBlXCJcbiAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gIFt0aHlFeHRyYV09XCJ0aHlFeHRyYVwiXG4gIFt0aHlWZXJ0aWNhbF09XCJ0aHlQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgW3RoeVJlc3BvbnNpdmVdPVwidGh5UmVzcG9uc2l2ZVwiXG4+XG4gIDxhXG4gICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgdGh5TmF2SXRlbVxuICAgIFtpZF09XCJ0YWIuaWRcIlxuICAgIFt0aHlOYXZJdGVtRGlzYWJsZWRdPVwidGFiLnRoeURpc2FibGVkXCJcbiAgICBbdGh5TmF2SXRlbUFjdGl2ZV09XCIodGFiLmlkICYmIGFjdGl2ZVRhYklkICYmIHRhYi5pZCA9PT0gYWN0aXZlVGFiSWQpID8/IGkgPT09IGFjdGl2ZVRhYkluZGV4XCJcbiAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRhYlRyYWNrQnlcIlxuICAgIChjbGljayk9XCJhY3RpdmVUYWIodGFiLCBpKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLnRpdGxlVGVtcGxhdGVSZWY7IGVsc2UgdGl0bGVOYW1lXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLnRpdGxlVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGl0bGVOYW1lPlxuICAgICAge3sgdGFiLnRoeVRpdGxlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hPlxuPC90aHktbmF2PlxuPCEtLSB0YWJzIGNvbnRlbnQgLS0+XG48ZGl2IGNsYXNzPVwidGh5LXRhYnMtY29udGVudFwiIFtjbGFzcy50aHktdGFicy1jb250ZW50LWFuaW1hdGVkXT1cInRhYlBhbmVBbmltYXRlZFwiIFtzdHlsZS5tYXJnaW4tbGVmdF09XCJnZXRUYWJDb250ZW50TWFyZ2luTGVmdCgpXCI+XG4gIDxkaXZcbiAgICB0aHlUYWJDb250ZW50XG4gICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0YWJUcmFja0J5XCJcbiAgICBbYWN0aXZlXT1cIih0YWIuaWQgJiYgYWN0aXZlVGFiSWQgJiYgdGFiLmlkID09PSBhY3RpdmVUYWJJZCkgPz8gaSA9PT0gYWN0aXZlVGFiSW5kZXhcIlxuICAgIFtjb250ZW50XT1cInRhYi5jb250ZW50XCJcbiAgICBbdGFiUGFuZUFuaW1hdGVkXT1cInRhYlBhbmVBbmltYXRlZFwiXG4gID48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,6 +1,6 @@
1
- import { Component, ElementRef, Input, ChangeDetectionStrategy, booleanAttribute } from '@angular/core';
1
+ import { Component, ElementRef, Input, ChangeDetectionStrategy } from '@angular/core';
2
2
  import { isThemeColor } from 'ngx-tethys/core';
3
- import { hexToRgb } from 'ngx-tethys/util';
3
+ import { coerceBooleanProperty, hexToRgb } from 'ngx-tethys/util';
4
4
  import { useHostRenderer } from '@tethys/cdk/dom';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
@@ -78,7 +78,7 @@ export class ThyTag {
78
78
  }
79
79
  }
80
80
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTag, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTag, isStandalone: true, selector: "thy-tag,[thyTag]", inputs: { thyTag: "thyTag", thyShape: "thyShape", thyColor: "thyColor", thyTheme: "thyTheme", thySize: "thySize", thyHoverable: ["thyHoverable", "thyHoverable", booleanAttribute] }, host: { properties: { "class.thy-tag-pill": "thyShape === \"pill\"", "class.thy-tag-outline": "thyTheme === \"outline\"", "class.thy-tag-hover": "thyHoverable", "class.thy-tag-md": "thySize === \"md\"", "class.thy-tag-sm": "thySize === \"sm\"", "class.thy-tag-xs": "thySize === \"xs\"", "class.thy-tag-lg": "thySize === \"lg\"" }, classAttribute: "thy-tag" }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTag, isStandalone: true, selector: "thy-tag,[thyTag]", inputs: { thyTag: "thyTag", thyShape: "thyShape", thyColor: "thyColor", thyTheme: "thyTheme", thySize: "thySize", thyHoverable: ["thyHoverable", "thyHoverable", coerceBooleanProperty] }, host: { properties: { "class.thy-tag-pill": "thyShape === \"pill\"", "class.thy-tag-outline": "thyTheme === \"outline\"", "class.thy-tag-hover": "thyHoverable", "class.thy-tag-md": "thySize === \"md\"", "class.thy-tag-sm": "thySize === \"sm\"", "class.thy-tag-xs": "thySize === \"xs\"", "class.thy-tag-lg": "thySize === \"lg\"" }, classAttribute: "thy-tag" }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
82
  }
83
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTag, decorators: [{
84
84
  type: Component,
@@ -104,6 +104,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
104
104
  type: Input
105
105
  }], thyHoverable: [{
106
106
  type: Input,
107
- args: [{ transform: booleanAttribute }]
107
+ args: [{ transform: coerceBooleanProperty }]
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWcvdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWcvdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLEtBQUssRUFBVSx1QkFBdUIsRUFBaUIsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUFFLFlBQVksRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVFsRDs7O0dBR0c7QUFpQkgsTUFBTSxPQUFPLE1BQU07SUFLZjs7OztPQUlHO0lBQ0gsSUFDSSxNQUFNLENBQUMsS0FBa0I7UUFDekIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBUUQ7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFrQjtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBcUJELFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqRGxDLFVBQUssR0FBZ0IsU0FBUyxDQUFDO1FBRS9CLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFjekM7OztXQUdHO1FBQ00sYUFBUSxHQUFnQixXQUFXLENBQUM7UUFVN0M7OztXQUdHO1FBQ00sYUFBUSxHQUFxQyxNQUFNLENBQUM7UUFFN0Q7OztXQUdHO1FBQ00sWUFBTyxHQUFlLElBQUksQ0FBQztJQVNTLENBQUM7SUFFOUMsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNw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QVE7c0JBRFgsS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFPTixZQUFZO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgSW5wdXQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFNpbXBsZUNoYW5nZXMsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVGhlbWVDb2xvciwgVGh5VGhlbWVDb2xvciB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBoZXhUb1JnYiB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuXG5leHBvcnQgdHlwZSBUaHlUYWdDb2xvciA9IFRoeVRoZW1lQ29sb3IgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFRoeVRhZ1NoYXBlID0gJ3BpbGwnIHwgJ3JlY3RhbmdsZSc7XG5cbmV4cG9ydCB0eXBlIFRoeVRhZ1NpemUgPSAnc20nIHwgJ21kJyB8ICdsZyc7XG5cbi8qKlxuICog5qCH562+57uE5Lu2XG4gKiBAbmFtZSB0aHktdGFnLFt0aHlUYWddXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRhZyxbdGh5VGFnXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10YWcnLFxuICAgICAgICAnW2NsYXNzLnRoeS10YWctcGlsbF0nOiAndGh5U2hhcGUgPT09IFwicGlsbFwiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGFnLW91dGxpbmVdJzogJ3RoeVRoZW1lID09PSBcIm91dGxpbmVcIicsXG4gICAgICAgICdbY2xhc3MudGh5LXRhZy1ob3Zlcl0nOiAndGh5SG92ZXJhYmxlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGFnLW1kXSc6ICd0aHlTaXplID09PSBcIm1kXCInLFxuICAgICAgICAnW2NsYXNzLnRoeS10YWctc21dJzogJ3RoeVNpemUgPT09IFwic21cIicsXG4gICAgICAgICdbY2xhc3MudGh5LXRhZy14c10nOiAndGh5U2l6ZSA9PT0gXCJ4c1wiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGFnLWxnXSc6ICd0aHlTaXplID09PSBcImxnXCInXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRhZyBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBwcml2YXRlIGNvbG9yOiBUaHlUYWdDb2xvciA9ICdkZWZhdWx0JztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICAvKipcbiAgICAgKiDmoIfnrb7popzoibLvvIx0aHlDb2xvciDnmoTnroDlhplcbiAgICAgKiBAdHlwZSBwcmltYXJ5IHwgc3VjY2VzcyB8IGluZm8gfCB3YXJuaW5nIHwgZGFuZ2VyIHwgZGVmYXVsdCB8IGxpZ2h0IHwgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRhZyh2YWx1ZTogVGh5VGFnQ29sb3IpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoIfnrb7lvaLnirZcbiAgICAgKiBAdHlwZSBwaWxsIHwgcmVjdGFuZ2xlXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2hhcGU6IFRoeVRhZ1NoYXBlID0gJ3JlY3RhbmdsZSc7XG5cbiAgICAvKipcbiAgICAgKiDmoIfnrb7popzoibLvvIzmlK/mjIHorr7nva7kuLvpopjoibLlkozpopzoibLlgLzvvIzkuLvpopjoibLkuLogZGVmYXVsdOOAgXByaW1hcnnjgIFzdWNjZXNz44CBaW5mb+OAgXdhcm5pbmfjgIFkYW5nZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlDb2xvcihjb2xvcjogVGh5VGFnQ29sb3IpIHtcbiAgICAgICAgdGhpcy5jb2xvciA9IGNvbG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagh+etvuS4u+mimO+8jGZpbGwg5Li66aKc6Imy5aGr5YWF77yMb3V0bGluZSDkuLrnur/moYbvvIx3ZWFrLWZpbGwg5Li66IOM5pmv6ImyMC4x6YCP5piO5bqm5pWI5p6cXG4gICAgICogQHR5cGUgb3V0bGluZSB8IGZpbGwgfCB3ZWFrLWZpbGxcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogJ291dGxpbmUnIHwgJ2ZpbGwnIHwgJ3dlYWstZmlsbCcgPSAnZmlsbCc7XG5cbiAgICAvKipcbiAgICAgKiDmoIfnrb7lpKflsI9cbiAgICAgKiBAdHlwZSBzbSB8IG1kIHwgbGdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaHlUYWdTaXplID0gJ21kJztcblxuICAgIC8qKlxuICAgICAqIOWPryBIb3ZlciDmgqzlgZznmoTmoIfnrb7vvIzorr7nva7kuLogdHJ1ZSDml7bkvJrmnInkuIDkuKogSG92ZXIg5pWI5p6cXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0aHlIb3ZlcmFibGU6IGJvb2xlYW4gfCBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRDb2xvcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMudGh5Q29sb3IgJiYgY2hhbmdlcy50aHlDb2xvci5jdXJyZW50VmFsdWUgJiYgIWNoYW5nZXMudGh5Q29sb3IuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sb3IoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy50aHlUaGVtZSAmJiBjaGFuZ2VzLnRoeVRoZW1lLmN1cnJlbnRWYWx1ZSAmJiAhY2hhbmdlcy50aHlUaGVtZS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRDb2xvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb2xvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JvcmRlci1jb2xvcicpO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnY29sb3InKTtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoW10pO1xuXG4gICAgICAgIGlmIChpc1RoZW1lQ29sb3IodGhpcy5jb2xvcikpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LXRhZy0ke3RoaXMudGh5VGhlbWUgPT09ICdmaWxsJyA/ICcnIDogdGhpcy50aHlUaGVtZSArICctJ30ke3RoaXMuY29sb3J9YF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5VGhlbWUgPT09ICdmaWxsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuY29sb3I7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGh5VGhlbWUgPT09ICdvdXRsaW5lJykge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmNvbG9yID0gdGhpcy5jb2xvcjtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZVsnYm9yZGVyLWNvbG9yJ10gPSB0aGlzLmNvbG9yO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBoZXhUb1JnYih0aGlzLmNvbG9yLCAwLjEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmNvbG9yID0gdGhpcy5jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWcvdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWcvdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLEtBQUssRUFBVSx1QkFBdUIsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFlBQVksRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVFsRDs7O0dBR0c7QUFpQkgsTUFBTSxPQUFPLE1BQU07SUFLZjs7OztPQUlHO0lBQ0gsSUFDSSxNQUFNLENBQUMsS0FBa0I7UUFDekIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBUUQ7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFrQjtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBcUJELFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqRGxDLFVBQUssR0FBZ0IsU0FBUyxDQUFDO1FBRS9CLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFjekM7OztXQUdHO1FBQ00sYUFBUSxHQUFnQixXQUFXLENBQUM7UUFVN0M7OztXQUdHO1FBQ00sYUFBUSxHQUFxQyxNQUFNLENBQUM7UUFFN0Q7OztXQUdHO1FBQ00sWUFBTyxHQUFlLElBQUksQ0FBQztJQVNTLENBQUM7SUFFOUMsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0wsQ0FBQztJQUVPLFFBQVE7UUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ILENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckUsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2hGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMzRCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBcEZRLE1BQU07a0dBQU4sTUFBTSxxTkErQ0sscUJBQXFCLDBaQzlFN0MsNkJBQ0E7OzJGRDhCYSxNQUFNO2tCQWhCbEIsU0FBUzsrQkFDSSxrQkFBa0IsbUJBRVgsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsU0FBUzt3QkFDaEIsc0JBQXNCLEVBQUUscUJBQXFCO3dCQUM3Qyx5QkFBeUIsRUFBRSx3QkFBd0I7d0JBQ25ELHVCQUF1QixFQUFFLGNBQWM7d0JBQ3ZDLG9CQUFvQixFQUFFLGtCQUFrQjt3QkFDeEMsb0JBQW9CLEVBQUUsa0JBQWtCO3dCQUN4QyxvQkFBb0IsRUFBRSxrQkFBa0I7d0JBQ3hDLG9CQUFvQixFQUFFLGtCQUFrQjtxQkFDM0MsY0FDVyxJQUFJOytFQWFaLE1BQU07c0JBRFQsS0FBSztnQkFXRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1GLFFBQVE7c0JBRFgsS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFPTixZQUFZO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgSW5wdXQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVGhlbWVDb2xvciwgVGh5VGhlbWVDb2xvciB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGhleFRvUmdiIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5cbmV4cG9ydCB0eXBlIFRoeVRhZ0NvbG9yID0gVGh5VGhlbWVDb2xvciB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgVGh5VGFnU2hhcGUgPSAncGlsbCcgfCAncmVjdGFuZ2xlJztcblxuZXhwb3J0IHR5cGUgVGh5VGFnU2l6ZSA9ICdzbScgfCAnbWQnIHwgJ2xnJztcblxuLyoqXG4gKiDmoIfnrb7nu4Tku7ZcbiAqIEBuYW1lIHRoeS10YWcsW3RoeVRhZ11cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdGFnLFt0aHlUYWddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFnLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LXRhZycsXG4gICAgICAgICdbY2xhc3MudGh5LXRhZy1waWxsXSc6ICd0aHlTaGFwZSA9PT0gXCJwaWxsXCInLFxuICAgICAgICAnW2NsYXNzLnRoeS10YWctb3V0bGluZV0nOiAndGh5VGhlbWUgPT09IFwib3V0bGluZVwiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGFnLWhvdmVyXSc6ICd0aHlIb3ZlcmFibGUnLFxuICAgICAgICAnW2NsYXNzLnRoeS10YWctbWRdJzogJ3RoeVNpemUgPT09IFwibWRcIicsXG4gICAgICAgICdbY2xhc3MudGh5LXRhZy1zbV0nOiAndGh5U2l6ZSA9PT0gXCJzbVwiJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGFnLXhzXSc6ICd0aHlTaXplID09PSBcInhzXCInLFxuICAgICAgICAnW2NsYXNzLnRoeS10YWctbGddJzogJ3RoeVNpemUgPT09IFwibGdcIidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5VGFnIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgY29sb3I6IFRoeVRhZ0NvbG9yID0gJ2RlZmF1bHQnO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOagh+etvuminOiJsu+8jHRoeUNvbG9yIOeahOeugOWGmVxuICAgICAqIEB0eXBlIHByaW1hcnkgfCBzdWNjZXNzIHwgaW5mbyB8IHdhcm5pbmcgfCBkYW5nZXIgfCBkZWZhdWx0IHwgbGlnaHQgfCBzdHJpbmdcbiAgICAgKiBAZGVmYXVsdCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGFnKHZhbHVlOiBUaHlUYWdDb2xvcikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagh+etvuW9oueKtlxuICAgICAqIEB0eXBlIHBpbGwgfCByZWN0YW5nbGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaGFwZTogVGh5VGFnU2hhcGUgPSAncmVjdGFuZ2xlJztcblxuICAgIC8qKlxuICAgICAqIOagh+etvuminOiJsu+8jOaUr+aMgeiuvue9ruS4u+mimOiJsuWSjOminOiJsuWAvO+8jOS4u+mimOiJsuS4uiBkZWZhdWx044CBcHJpbWFyeeOAgXN1Y2Nlc3PjgIFpbmZv44CBd2FybmluZ+OAgWRhbmdlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbG9yKGNvbG9yOiBUaHlUYWdDb2xvcikge1xuICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qCH562+5Li76aKY77yMZmlsbCDkuLrpopzoibLloavlhYXvvIxvdXRsaW5lIOS4uue6v+ahhu+8jHdlYWstZmlsbCDkuLrog4zmma/oibIwLjHpgI/mmI7luqbmlYjmnpxcbiAgICAgKiBAdHlwZSBvdXRsaW5lIHwgZmlsbCB8IHdlYWstZmlsbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiAnb3V0bGluZScgfCAnZmlsbCcgfCAnd2Vhay1maWxsJyA9ICdmaWxsJztcblxuICAgIC8qKlxuICAgICAqIOagh+etvuWkp+Wwj1xuICAgICAqIEB0eXBlIHNtIHwgbWQgfCBsZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6IFRoeVRhZ1NpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICog5Y+vIEhvdmVyIOaCrOWBnOeahOagh+etvu+8jOiuvue9ruS4uiB0cnVlIOaXtuS8muacieS4gOS4qiBIb3ZlciDmlYjmnpxcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgdGh5SG92ZXJhYmxlOiBib29sZWFuIHwgc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0Q29sb3IoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnRoeUNvbG9yICYmIGNoYW5nZXMudGh5Q29sb3IuY3VycmVudFZhbHVlICYmICFjaGFuZ2VzLnRoeUNvbG9yLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvbG9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMudGh5VGhlbWUgJiYgY2hhbmdlcy50aHlUaGVtZS5jdXJyZW50VmFsdWUgJiYgIWNoYW5nZXMudGh5VGhlbWUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29sb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdiYWNrZ3JvdW5kLWNvbG9yJyk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdib3JkZXItY29sb3InKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2NvbG9yJyk7XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtdKTtcblxuICAgICAgICBpZiAoaXNUaGVtZUNvbG9yKHRoaXMuY29sb3IpKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhbYHRoeS10YWctJHt0aGlzLnRoeVRoZW1lID09PSAnZmlsbCcgPyAnJyA6IHRoaXMudGh5VGhlbWUgKyAnLSd9JHt0aGlzLmNvbG9yfWBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVRoZW1lID09PSAnZmlsbCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmNvbG9yO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRoeVRoZW1lID09PSAnb3V0bGluZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jb2xvciA9IHRoaXMuY29sb3I7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGVbJ2JvcmRlci1jb2xvciddID0gdGhpcy5jb2xvcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gaGV4VG9SZ2IodGhpcy5jb2xvciwgMC4xKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jb2xvciA9IHRoaXMuY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -1,8 +1,8 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, ViewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, ViewChild } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { isValid } from 'date-fns';
4
4
  import { reqAnimFrame } from 'ngx-tethys/core';
5
- import { TinyDate } from 'ngx-tethys/util';
5
+ import { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';
6
6
  import { ThyButton } from 'ngx-tethys/button';
7
7
  import { NgIf, NgFor, DecimalPipe } from '@angular/common';
8
8
  import * as i0 from "@angular/core";
@@ -214,7 +214,7 @@ export class ThyTimePanel {
214
214
  }, 200);
215
215
  }
216
216
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTimePanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
217
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTimePanel, isStandalone: true, selector: "thy-time-picker-panel", inputs: { thyFormat: "thyFormat", thyHourStep: "thyHourStep", thyMinuteStep: "thyMinuteStep", thySecondStep: "thySecondStep", thyShowSelectNow: ["thyShowSelectNow", "thyShowSelectNow", booleanAttribute], thyShowOperations: ["thyShowOperations", "thyShowOperations", booleanAttribute] }, outputs: { thyPickChange: "thyPickChange", thyClosePanel: "thyClosePanel" }, host: { properties: { "class.thy-time-picker-panel-has-bottom-operation": "thyShowOperations", "class.thy-time-picker-panel-columns-2": "showColumnCount === 2", "class.thy-time-picker-panel-columns-3": "showColumnCount === 3" }, classAttribute: "thy-time-picker-panel" }, providers: [
217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTimePanel, isStandalone: true, selector: "thy-time-picker-panel", inputs: { thyFormat: "thyFormat", thyHourStep: "thyHourStep", thyMinuteStep: "thyMinuteStep", thySecondStep: "thySecondStep", thyShowSelectNow: ["thyShowSelectNow", "thyShowSelectNow", coerceBooleanProperty], thyShowOperations: ["thyShowOperations", "thyShowOperations", coerceBooleanProperty] }, outputs: { thyPickChange: "thyPickChange", thyClosePanel: "thyClosePanel" }, host: { properties: { "class.thy-time-picker-panel-has-bottom-operation": "thyShowOperations", "class.thy-time-picker-panel-columns-2": "showColumnCount === 2", "class.thy-time-picker-panel-columns-3": "showColumnCount === 3" }, classAttribute: "thy-time-picker-panel" }, providers: [
218
218
  {
219
219
  provide: NG_VALUE_ACCESSOR,
220
220
  multi: true,
@@ -255,13 +255,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
255
255
  type: Input
256
256
  }], thyShowSelectNow: [{
257
257
  type: Input,
258
- args: [{ transform: booleanAttribute }]
258
+ args: [{ transform: coerceBooleanProperty }]
259
259
  }], thyShowOperations: [{
260
260
  type: Input,
261
- args: [{ transform: booleanAttribute }]
261
+ args: [{ transform: coerceBooleanProperty }]
262
262
  }], thyPickChange: [{
263
263
  type: Output
264
264
  }], thyClosePanel: [{
265
265
  type: Output
266
266
  }] } });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFM0Q7OztHQUdHO0FBcUJILE1BQU0sT0FBTyxZQUFZO0lBT3JCOzs7O09BSUc7SUFDSCxJQUFhLFNBQVMsQ0FBQyxLQUFhO1FBQ2hDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FB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QUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNNUIsYUFBYTtzQkFBdEIsTUFBTTtnQkFNRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgcmVxQW5pbUZyYW1lIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeUJ1dHRvbiB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7IE5nSWYsIE5nRm9yLCBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICog5pe26Ze06YCJ5oup6Z2i5p2/57uE5Lu2XG4gKiBAbmFtZSB0aHktdGltZS1waWNrZXItcGFuZWxcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdGltZS1waWNrZXItcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaHlUaW1lUGFuZWwpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktdGltZS1waWNrZXItcGFuZWwnLFxuICAgICAgICAnW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC1oYXMtYm90dG9tLW9wZXJhdGlvbl0nOiBgdGh5U2hvd09wZXJhdGlvbnNgLFxuICAgICAgICAnW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC1jb2x1bW5zLTJdJzogYHNob3dDb2x1bW5Db3VudCA9PT0gMmAsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLWNvbHVtbnMtM10nOiBgc2hvd0NvbHVtbkNvdW50ID09PSAzYFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdGb3IsIFRoeUJ1dHRvbiwgRGVjaW1hbFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRpbWVQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQFZpZXdDaGlsZCgnaG91ckxpc3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIGhvdXJMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ21pbnV0ZUxpc3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1pbnV0ZUxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnc2Vjb25kTGlzdEVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2Vjb25kTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrnmoTml6XmnJ/moLzlvI/vvIzmlK/mjIEgJ0hIOm1tOnNzJyB8ICdISDptbScgfCAnbW06c3MnXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgSEg6bW06c3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5Rm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXRTZXQgPSBuZXcgU2V0KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0hvdXJDb2x1bW4gPSBmb3JtYXRTZXQuaGFzKCdIJykgfHwgZm9ybWF0U2V0LmhhcygnaCcpO1xuICAgICAgICAgICAgdGhpcy5zaG93TWludXRlQ29sdW1uID0gZm9ybWF0U2V0LmhhcygnbScpO1xuICAgICAgICAgICAgdGhpcy5zaG93U2Vjb25kQ29sdW1uID0gZm9ybWF0U2V0LmhhcygncycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93SG91ckNvbHVtbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dNaW51dGVDb2x1bW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zaG93U2Vjb25kQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dDb2x1bW5Db3VudCA9IFt0aGlzLnNob3dIb3VyQ29sdW1uLCB0aGlzLnNob3dNaW51dGVDb2x1bW4sIHRoaXMuc2hvd1NlY29uZENvbHVtbl0uZmlsdGVyKG0gPT4gbSkubGVuZ3RoO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlsI/ml7bpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlIb3VyU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOWIhumSn+mXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1pbnV0ZVN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDnp5Lpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTZWNvbmRTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5bGV56S66YCJ5oup5q2k5Yi7XG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlTaG93U2VsZWN0Tm93ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWxleekuuW6lemDqOaTjeS9nFxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5U2hvd09wZXJhdGlvbnMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog6YCJ5oup5pe26Ze06Kem5Y+R55qE5LqL5Lu2XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPERhdGU+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeVBpY2tDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlhbPpl63pnaLmnb/kuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8dm9pZD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Q2xvc2VQYW5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8vIG1hcmdpbi10b3AgKyAxcHggYm9yZGVyXG4gICAgU0NST0xMX09GRlNFVF9TUEFDSU5HID0gNTtcblxuICAgIFNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OID0gMTIwO1xuXG4gICAgcHJlZml4Q2xzID0gJ3RoeS10aW1lLXBpY2tlci1wYW5lbCc7XG5cbiAgICBob3VyUmFuZ2U6IFJlYWRvbmx5QXJyYXk8eyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9PiA9IFtdO1xuXG4gICAgbWludXRlUmFuZ2U6IFJlYWRvbmx5QXJyYXk8eyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9PiA9IFtdO1xuXG4gICAgc2Vjb25kUmFuZ2U6IFJlYWRvbmx5QXJyYXk8eyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9PiA9IFtdO1xuXG4gICAgc2hvd0hvdXJDb2x1bW4gPSB0cnVlO1xuXG4gICAgc2hvd01pbnV0ZUNvbHVtbiA9IHRydWU7XG5cbiAgICBzaG93U2Vjb25kQ29sdW1uID0gdHJ1ZTtcblxuICAgIHNob3dDb2x1bW5Db3VudDogbnVtYmVyID0gMztcblxuICAgIHZhbHVlOiBEYXRlO1xuXG4gICAgaG91cjogbnVtYmVyO1xuXG4gICAgbWludXRlOiBudW1iZXI7XG5cbiAgICBzZWNvbmQ6IG51bWJlcjtcblxuICAgIGluaXRpYWxTY3JvbGxQb3NpdGlvbjogYm9vbGVhbjtcblxuICAgIG9uVmFsdWVDaGFuZ2VGbjogKHZhbDogRGF0ZSkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcblxuICAgIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVUaW1lUmFuZ2UoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsVmFsdWUoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxTY3JvbGxQb3NpdGlvbiA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdlbmVyYXRlVGltZVJhbmdlKCkge1xuICAgICAgICB0aGlzLmhvdXJSYW5nZSA9IHRoaXMuYnVpbGRUaW1lUmFuZ2UoMjQsIHRoaXMudGh5SG91clN0ZXApO1xuICAgICAgICB0aGlzLm1pbnV0ZVJhbmdlID0gdGhpcy5idWlsZFRpbWVSYW5nZSg2MCwgdGhpcy50aHlNaW51dGVTdGVwKTtcbiAgICAgICAgdGhpcy5zZWNvbmRSYW5nZSA9IHRoaXMuYnVpbGRUaW1lUmFuZ2UoNjAsIHRoaXMudGh5U2Vjb25kU3RlcCk7XG4gICAgfVxuXG4gICAgcGlja0hvdXJzKGhvdXJzOiB7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5zZXRIb3Vycyhob3Vycy52YWx1ZSk7XG4gICAgICAgIHRoaXMuaG91ciA9IGhvdXJzLnZhbHVlO1xuICAgICAgICB0aGlzLnRoeVBpY2tDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUbyh0aGlzLmhvdXJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBwaWNrTWludXRlcyhtaW51dGVzOiB7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5zZXRNaW51dGVzKG1pbnV0ZXMudmFsdWUpO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IG1pbnV0ZXMudmFsdWU7XG4gICAgICAgIHRoaXMudGh5UGlja0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMubWludXRlTGlzdFJlZi5uYXRpdmVFbGVtZW50LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcGlja1NlY29uZHMoc2Vjb25kczogeyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0U2Vjb25kcyhzZWNvbmRzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zZWNvbmQgPSBzZWNvbmRzLnZhbHVlO1xuICAgICAgICB0aGlzLnRoeVBpY2tDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUbyh0aGlzLnNlY29uZExpc3RSZWYubmF0aXZlRWxlbWVudCwgaW5kZXgpO1xuICAgIH1cblxuICAgIHNlbGVjdE5vdygpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHRoaXMuc2V0SE1TUHJvcGVydHkoKTtcbiAgICAgICAgdGhpcy50aHlQaWNrQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMudGh5Q2xvc2VQYW5lbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgY29uZmlybVBpY2tUaW1lKCkge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbih0aGlzLnZhbHVlIHx8IG5ldyBEYXRlKCkpO1xuICAgICAgICB0aGlzLnRoeUNsb3NlUGFuZWwuZW1pdCgpO1xuICAgIH1cblxuICAgIHNjcm9sbFRvKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIGluZGV4OiBudW1iZXIgPSAwLCBkdXJhdGlvbjogbnVtYmVyID0gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTikge1xuICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSAoY29udGFpbmVyLmNoaWxkcmVuW2luZGV4XSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0VG9wIC0gdGhpcy5TQ1JPTExfT0ZGU0VUX1NQQUNJTkc7XG4gICAgICAgIHRoaXMucnVuU2Nyb2xsQW5pbWF0aW9uRnJhbWUoY29udGFpbmVyLCBvZmZzZXRUb3AsIGR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SE1TUHJvcGVydHkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRvU2Nyb2xsKHRoaXMuaW5pdGlhbFNjcm9sbFBvc2l0aW9uID8gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTiA6IDApO1xuXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogRGF0ZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbiA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxWYWx1ZSgpIHtcbiAgICAgICAgdGhpcy5ob3VyID0gMDtcbiAgICAgICAgdGhpcy5taW51dGUgPSAwO1xuICAgICAgICB0aGlzLnNlY29uZCA9IDA7XG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkVGltZVJhbmdlKGxlbmd0aDogbnVtYmVyLCBzdGVwOiBudW1iZXIgPSAxLCBzdGFydDogbnVtYmVyID0gMCwgZGlzYWJsZXM6IG51bWJlcltdID0gW10pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShNYXRoLmNlaWwobGVuZ3RoIC8gc3RlcCkpLmZpbGwoMCkubWFwKChfLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChpICsgc3RhcnQpICogc3RlcDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlcy5pbmRleE9mKHZhbHVlKSA+IC0xXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEhNU1Byb3BlcnR5KCkge1xuICAgICAgICB0aGlzLmhvdXIgPSB0aGlzLnZhbHVlLmdldEhvdXJzKCk7XG4gICAgICAgIHRoaXMubWludXRlID0gdGhpcy52YWx1ZS5nZXRNaW51dGVzKCk7XG4gICAgICAgIHRoaXMuc2Vjb25kID0gdGhpcy52YWx1ZS5nZXRTZWNvbmRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFNjcm9sbFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5ob3VyTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5ob3VyTGlzdFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWludXRlTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5taW51dGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWNvbmRMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNlY29uZExpc3RSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbFNjcm9sbFBvc2l0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5TY3JvbGxBbmltYXRpb25GcmFtZShjb250YWluZXI6IEhUTUxFbGVtZW50LCB0bzogbnVtYmVyLCBkdXJhdGlvbjogbnVtYmVyID0gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTikge1xuICAgICAgICBpZiAoZHVyYXRpb24gPD0gMCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IHRvO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRvIC0gY29udGFpbmVyLnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgZnJhbWUgPSAob2Zmc2V0IC8gZHVyYXRpb24pICogMTA7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJlcUFuaW1GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCArPSBmcmFtZTtcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyLnNjcm9sbFRvcCA9PT0gdG8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJ1blNjcm9sbEFuaW1hdGlvbkZyYW1lKGNvbnRhaW5lciwgdG8sIGR1cmF0aW9uIC0gMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXV0b1Njcm9sbChkdXJhdGlvbjogbnVtYmVyID0gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTikge1xuICAgICAgICBpZiAodGhpcy5ob3VyTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICB0aGlzLmhvdXJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5ob3VyUmFuZ2UuZmluZEluZGV4KG0gPT4gbS52YWx1ZSA9PT0gdGhpcy5ob3VyKSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW51dGVMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlTGlzdFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlUmFuZ2UuZmluZEluZGV4KG0gPT4gbS52YWx1ZSA9PT0gdGhpcy5taW51dGUpLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlY29uZExpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRSYW5nZS5maW5kSW5kZXgobSA9PiBtLnZhbHVlID09PSB0aGlzLnNlY29uZCksXG4gICAgICAgICAgICAgICAgZHVyYXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8g5YWz6Zet6Z2i5p2/5pe25pyJIDAuMnMg55qE5Yqo55S777yM5omA5Lul5bu26L+fIDIwMG1zIOWGjemHjee9rua7muWKqOS9jee9rlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRTY3JvbGxQb3NpdGlvbigpO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tY29udGVudFwiPlxuICA8dWwgI2hvdXJMaXN0RWxlbWVudCAqbmdJZj1cInNob3dIb3VyQ29sdW1uXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4ge3sgcHJlZml4Q2xzIH19LWhvdXItY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGltZSBvZiBob3VyUmFuZ2U7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLXRpbWUtY29sdW1uLWNlbGwtc2VsZWN0ZWRdPVwiaG91ciA9PT0gdGltZS52YWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJwaWNrSG91cnModGltZSwgaSlcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsLWlubmVyXCI+e3sgdGltZS52YWx1ZSB8IG51bWJlcjogJzIuMC0wJyB9fTwvc3Bhbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG4gIDx1bCAjbWludXRlTGlzdEVsZW1lbnQgKm5nSWY9XCJzaG93TWludXRlQ29sdW1uXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4ge3sgcHJlZml4Q2xzIH19LW1pbnV0ZS1jb2x1bW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0aW1lIG9mIG1pbnV0ZVJhbmdlOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsXCJcbiAgICAgICAgW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC10aW1lLWNvbHVtbi1jZWxsLXNlbGVjdGVkXT1cIm1pbnV0ZSA9PT0gdGltZS52YWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJwaWNrTWludXRlcyh0aW1lLCBpKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGwtaW5uZXJcIj57eyB0aW1lLnZhbHVlIHwgbnVtYmVyOiAnMi4wLTAnIH19PC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbiAgPHVsICNzZWNvbmRMaXN0RWxlbWVudCAqbmdJZj1cInNob3dTZWNvbmRDb2x1bW5cIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbiB7eyBwcmVmaXhDbHMgfX0tc2Vjb25kLWNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRpbWUgb2Ygc2Vjb25kUmFuZ2U7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLXRpbWUtY29sdW1uLWNlbGwtc2VsZWN0ZWRdPVwic2Vjb25kID09PSB0aW1lLnZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cInBpY2tTZWNvbmRzKHRpbWUsIGkpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4tY2VsbC1pbm5lclwiPnt7IHRpbWUudmFsdWUgfCBudW1iZXI6ICcyLjAtMCcgfX08L3NwYW4+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJ0aHlTaG93T3BlcmF0aW9uc1wiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvdHRvbS1vcGVyYXRpb25cIj5cbiAgPGEgKm5nSWY9XCJ0aHlTaG93U2VsZWN0Tm93XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtbm93XCIgKGNsaWNrKT1cInNlbGVjdE5vdygpXCI+5q2k5Yi7PC9hPlxuICA8YnV0dG9uIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29uZmlybVwiIHRoeUJ1dHRvbj1cInByaW1hcnlcIiB0aHlTaXplPVwieHNcIiBjbGFzcz1cImNvbmZpcm1cIiAoY2xpY2spPVwiY29uZmlybVBpY2tUaW1lKClcIj7noa7lrpo8L2J1dHRvbj5cbjwvZGl2PlxuIl19
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUzRDs7O0dBR0c7QUFxQkgsTUFBTSxPQUFPLFlBQVk7SUFPckI7Ozs7T0FJRztJQUNILElBQWEsU0FBUyxDQUFDLEtBQWE7UUFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFD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QUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1qQyxhQUFhO3NCQUF0QixNQUFNO2dCQU1HLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgcmVxQW5pbUZyYW1lIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgVGh5QnV0dG9uIH0gZnJvbSAnbmd4LXRldGh5cy9idXR0b24nO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiDml7bpl7TpgInmi6npnaLmnb/nu4Tku7ZcbiAqIEBuYW1lIHRoeS10aW1lLXBpY2tlci1wYW5lbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10aW1lLXBpY2tlci1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeVRpbWVQYW5lbClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10aW1lLXBpY2tlci1wYW5lbCcsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLWhhcy1ib3R0b20tb3BlcmF0aW9uXSc6IGB0aHlTaG93T3BlcmF0aW9uc2AsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLWNvbHVtbnMtMl0nOiBgc2hvd0NvbHVtbkNvdW50ID09PSAyYCxcbiAgICAgICAgJ1tjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtY29sdW1ucy0zXSc6IGBzaG93Q29sdW1uQ291bnQgPT09IDNgXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ0ZvciwgVGh5QnV0dG9uLCBEZWNpbWFsUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VGltZVBhbmVsIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBAVmlld0NoaWxkKCdob3VyTGlzdEVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgaG91ckxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnbWludXRlTGlzdEVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgbWludXRlTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdzZWNvbmRMaXN0RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWNvbmRMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOaXpeacn+agvOW8j++8jOaUr+aMgSAnSEg6bW06c3MnIHwgJ0hIOm1tJyB8ICdtbTpzcydcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKiBAZGVmYXVsdCBISDptbTpzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdFNldCA9IG5ldyBTZXQodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zaG93SG91ckNvbHVtbiA9IGZvcm1hdFNldC5oYXMoJ0gnKSB8fCBmb3JtYXRTZXQuaGFzKCdoJyk7XG4gICAgICAgICAgICB0aGlzLnNob3dNaW51dGVDb2x1bW4gPSBmb3JtYXRTZXQuaGFzKCdtJyk7XG4gICAgICAgICAgICB0aGlzLnNob3dTZWNvbmRDb2x1bW4gPSBmb3JtYXRTZXQuaGFzKCdzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3dIb3VyQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01pbnV0ZUNvbHVtbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dTZWNvbmRDb2x1bW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd0NvbHVtbkNvdW50ID0gW3RoaXMuc2hvd0hvdXJDb2x1bW4sIHRoaXMuc2hvd01pbnV0ZUNvbHVtbiwgdGhpcy5zaG93U2Vjb25kQ29sdW1uXS5maWx0ZXIobSA9PiBtKS5sZW5ndGg7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWwj+aXtumXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdXJTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5YiG6ZKf6Ze06ZqU5q2l6ZW/XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TWludXRlU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOenkumXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZFN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrpgInmi6nmraTliLtcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5U2hvd1NlbGVjdE5vdyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrlupXpg6jmk43kvZxcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5U2hvd09wZXJhdGlvbnMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog6YCJ5oup5pe26Ze06Kem5Y+R55qE5LqL5Lu2XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPERhdGU+XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeVBpY2tDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlhbPpl63pnaLmnb/kuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8dm9pZD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5Q2xvc2VQYW5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8vIG1hcmdpbi10b3AgKyAxcHggYm9yZGVyXG4gICAgU0NST0xMX09GRlNFVF9TUEFDSU5HID0gNTtcblxuICAgIFNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OID0gMTIwO1xuXG4gICAgcHJlZml4Q2xzID0gJ3RoeS10aW1lLXBpY2tlci1wYW5lbCc7XG5cbiAgICBob3VyUmFuZ2U6IFJlYWRvbmx5QXJyYXk8eyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9PiA9IFtdO1xuXG4gICAgbWludXRlUmFuZ2U6IFJlYWRvbmx5QXJyYXk8eyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9PiA9IFtdO1xuXG4gICAgc2Vjb25kUmFuZ2U6IFJlYWRvbmx5QXJyYXk8eyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9PiA9IFtdO1xuXG4gICAgc2hvd0hvdXJDb2x1bW4gPSB0cnVlO1xuXG4gICAgc2hvd01pbnV0ZUNvbHVtbiA9IHRydWU7XG5cbiAgICBzaG93U2Vjb25kQ29sdW1uID0gdHJ1ZTtcblxuICAgIHNob3dDb2x1bW5Db3VudDogbnVtYmVyID0gMztcblxuICAgIHZhbHVlOiBEYXRlO1xuXG4gICAgaG91cjogbnVtYmVyO1xuXG4gICAgbWludXRlOiBudW1iZXI7XG5cbiAgICBzZWNvbmQ6IG51bWJlcjtcblxuICAgIGluaXRpYWxTY3JvbGxQb3NpdGlvbjogYm9vbGVhbjtcblxuICAgIG9uVmFsdWVDaGFuZ2VGbjogKHZhbDogRGF0ZSkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcblxuICAgIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVUaW1lUmFuZ2UoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsVmFsdWUoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxTY3JvbGxQb3NpdGlvbiA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdlbmVyYXRlVGltZVJhbmdlKCkge1xuICAgICAgICB0aGlzLmhvdXJSYW5nZSA9IHRoaXMuYnVpbGRUaW1lUmFuZ2UoMjQsIHRoaXMudGh5SG91clN0ZXApO1xuICAgICAgICB0aGlzLm1pbnV0ZVJhbmdlID0gdGhpcy5idWlsZFRpbWVSYW5nZSg2MCwgdGhpcy50aHlNaW51dGVTdGVwKTtcbiAgICAgICAgdGhpcy5zZWNvbmRSYW5nZSA9IHRoaXMuYnVpbGRUaW1lUmFuZ2UoNjAsIHRoaXMudGh5U2Vjb25kU3RlcCk7XG4gICAgfVxuXG4gICAgcGlja0hvdXJzKGhvdXJzOiB7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5zZXRIb3Vycyhob3Vycy52YWx1ZSk7XG4gICAgICAgIHRoaXMuaG91ciA9IGhvdXJzLnZhbHVlO1xuICAgICAgICB0aGlzLnRoeVBpY2tDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUbyh0aGlzLmhvdXJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBwaWNrTWludXRlcyhtaW51dGVzOiB7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5zZXRNaW51dGVzKG1pbnV0ZXMudmFsdWUpO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IG1pbnV0ZXMudmFsdWU7XG4gICAgICAgIHRoaXMudGh5UGlja0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMubWludXRlTGlzdFJlZi5uYXRpdmVFbGVtZW50LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcGlja1NlY29uZHMoc2Vjb25kczogeyB2YWx1ZTogbnVtYmVyOyBkaXNhYmxlZDogYm9vbGVhbiB9LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0U2Vjb25kcyhzZWNvbmRzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zZWNvbmQgPSBzZWNvbmRzLnZhbHVlO1xuICAgICAgICB0aGlzLnRoeVBpY2tDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUbyh0aGlzLnNlY29uZExpc3RSZWYubmF0aXZlRWxlbWVudCwgaW5kZXgpO1xuICAgIH1cblxuICAgIHNlbGVjdE5vdygpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHRoaXMuc2V0SE1TUHJvcGVydHkoKTtcbiAgICAgICAgdGhpcy50aHlQaWNrQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMudGh5Q2xvc2VQYW5lbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgY29uZmlybVBpY2tUaW1lKCkge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbih0aGlzLnZhbHVlIHx8IG5ldyBEYXRlKCkpO1xuICAgICAgICB0aGlzLnRoeUNsb3NlUGFuZWwuZW1pdCgpO1xuICAgIH1cblxuICAgIHNjcm9sbFRvKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIGluZGV4OiBudW1iZXIgPSAwLCBkdXJhdGlvbjogbnVtYmVyID0gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTikge1xuICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSAoY29udGFpbmVyLmNoaWxkcmVuW2luZGV4XSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0VG9wIC0gdGhpcy5TQ1JPTExfT0ZGU0VUX1NQQUNJTkc7XG4gICAgICAgIHRoaXMucnVuU2Nyb2xsQW5pbWF0aW9uRnJhbWUoY29udGFpbmVyLCBvZmZzZXRUb3AsIGR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SE1TUHJvcGVydHkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRvU2Nyb2xsKHRoaXMuaW5pdGlhbFNjcm9sbFBvc2l0aW9uID8gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTiA6IDApO1xuXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogRGF0ZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbiA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxWYWx1ZSgpIHtcbiAgICAgICAgdGhpcy5ob3VyID0gMDtcbiAgICAgICAgdGhpcy5taW51dGUgPSAwO1xuICAgICAgICB0aGlzLnNlY29uZCA9IDA7XG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkVGltZVJhbmdlKGxlbmd0aDogbnVtYmVyLCBzdGVwOiBudW1iZXIgPSAxLCBzdGFydDogbnVtYmVyID0gMCwgZGlzYWJsZXM6IG51bWJlcltdID0gW10pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShNYXRoLmNlaWwobGVuZ3RoIC8gc3RlcCkpLmZpbGwoMCkubWFwKChfLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChpICsgc3RhcnQpICogc3RlcDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlcy5pbmRleE9mKHZhbHVlKSA+IC0xXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEhNU1Byb3BlcnR5KCkge1xuICAgICAgICB0aGlzLmhvdXIgPSB0aGlzLnZhbHVlLmdldEhvdXJzKCk7XG4gICAgICAgIHRoaXMubWludXRlID0gdGhpcy52YWx1ZS5nZXRNaW51dGVzKCk7XG4gICAgICAgIHRoaXMuc2Vjb25kID0gdGhpcy52YWx1ZS5nZXRTZWNvbmRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFNjcm9sbFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5ob3VyTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5ob3VyTGlzdFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWludXRlTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5taW51dGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWNvbmRMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNlY29uZExpc3RSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbFNjcm9sbFBvc2l0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5TY3JvbGxBbmltYXRpb25GcmFtZShjb250YWluZXI6IEhUTUxFbGVtZW50LCB0bzogbnVtYmVyLCBkdXJhdGlvbjogbnVtYmVyID0gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTikge1xuICAgICAgICBpZiAoZHVyYXRpb24gPD0gMCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IHRvO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRvIC0gY29udGFpbmVyLnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgZnJhbWUgPSAob2Zmc2V0IC8gZHVyYXRpb24pICogMTA7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJlcUFuaW1GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCArPSBmcmFtZTtcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyLnNjcm9sbFRvcCA9PT0gdG8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJ1blNjcm9sbEFuaW1hdGlvbkZyYW1lKGNvbnRhaW5lciwgdG8sIGR1cmF0aW9uIC0gMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXV0b1Njcm9sbChkdXJhdGlvbjogbnVtYmVyID0gdGhpcy5TQ1JPTExfREVGQVVMVF9EVVJBVElPTikge1xuICAgICAgICBpZiAodGhpcy5ob3VyTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICB0aGlzLmhvdXJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5ob3VyUmFuZ2UuZmluZEluZGV4KG0gPT4gbS52YWx1ZSA9PT0gdGhpcy5ob3VyKSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW51dGVMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlTGlzdFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlUmFuZ2UuZmluZEluZGV4KG0gPT4gbS52YWx1ZSA9PT0gdGhpcy5taW51dGUpLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlY29uZExpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRSYW5nZS5maW5kSW5kZXgobSA9PiBtLnZhbHVlID09PSB0aGlzLnNlY29uZCksXG4gICAgICAgICAgICAgICAgZHVyYXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8g5YWz6Zet6Z2i5p2/5pe25pyJIDAuMnMg55qE5Yqo55S777yM5omA5Lul5bu26L+fIDIwMG1zIOWGjemHjee9rua7muWKqOS9jee9rlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRTY3JvbGxQb3NpdGlvbigpO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tY29udGVudFwiPlxuICA8dWwgI2hvdXJMaXN0RWxlbWVudCAqbmdJZj1cInNob3dIb3VyQ29sdW1uXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4ge3sgcHJlZml4Q2xzIH19LWhvdXItY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGltZSBvZiBob3VyUmFuZ2U7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLXRpbWUtY29sdW1uLWNlbGwtc2VsZWN0ZWRdPVwiaG91ciA9PT0gdGltZS52YWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJwaWNrSG91cnModGltZSwgaSlcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsLWlubmVyXCI+e3sgdGltZS52YWx1ZSB8IG51bWJlcjogJzIuMC0wJyB9fTwvc3Bhbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG4gIDx1bCAjbWludXRlTGlzdEVsZW1lbnQgKm5nSWY9XCJzaG93TWludXRlQ29sdW1uXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4ge3sgcHJlZml4Q2xzIH19LW1pbnV0ZS1jb2x1bW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0aW1lIG9mIG1pbnV0ZVJhbmdlOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsXCJcbiAgICAgICAgW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC10aW1lLWNvbHVtbi1jZWxsLXNlbGVjdGVkXT1cIm1pbnV0ZSA9PT0gdGltZS52YWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJwaWNrTWludXRlcyh0aW1lLCBpKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGwtaW5uZXJcIj57eyB0aW1lLnZhbHVlIHwgbnVtYmVyOiAnMi4wLTAnIH19PC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbiAgPHVsICNzZWNvbmRMaXN0RWxlbWVudCAqbmdJZj1cInNob3dTZWNvbmRDb2x1bW5cIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbiB7eyBwcmVmaXhDbHMgfX0tc2Vjb25kLWNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRpbWUgb2Ygc2Vjb25kUmFuZ2U7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLXRpbWUtY29sdW1uLWNlbGwtc2VsZWN0ZWRdPVwic2Vjb25kID09PSB0aW1lLnZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cInBpY2tTZWNvbmRzKHRpbWUsIGkpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4tY2VsbC1pbm5lclwiPnt7IHRpbWUudmFsdWUgfCBudW1iZXI6ICcyLjAtMCcgfX08L3NwYW4+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJ0aHlTaG93T3BlcmF0aW9uc1wiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvdHRvbS1vcGVyYXRpb25cIj5cbiAgPGEgKm5nSWY9XCJ0aHlTaG93U2VsZWN0Tm93XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtbm93XCIgKGNsaWNrKT1cInNlbGVjdE5vdygpXCI+5q2k5Yi7PC9hPlxuICA8YnV0dG9uIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29uZmlybVwiIHRoeUJ1dHRvbj1cInByaW1hcnlcIiB0aHlTaXplPVwieHNcIiBjbGFzcz1cImNvbmZpcm1cIiAoY2xpY2spPVwiY29uZmlybVBpY2tUaW1lKClcIj7noa7lrpo8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -1,9 +1,9 @@
1
1
  import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
2
- import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
4
4
  import { isValid } from 'date-fns';
5
5
  import { getFlexiblePositions } from 'ngx-tethys/core';
6
- import { TinyDate } from 'ngx-tethys/util';
6
+ import { TinyDate, coerceBooleanProperty } from 'ngx-tethys/util';
7
7
  import { ThyTimePanel } from './time-picker-panel.component';
8
8
  import { ThyIcon } from 'ngx-tethys/icon';
9
9
  import { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';
@@ -293,7 +293,7 @@ export class ThyTimePicker {
293
293
  return this.disabled || this.thyReadonly;
294
294
  }
295
295
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTimePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
296
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTimePicker, isStandalone: true, selector: "thy-time-picker", inputs: { thySize: "thySize", thyPlaceholder: "thyPlaceholder", thyPlacement: "thyPlacement", thyFormat: "thyFormat", thyHourStep: "thyHourStep", thyMinuteStep: "thyMinuteStep", thySecondStep: "thySecondStep", thyPopupClass: "thyPopupClass", thyBackdrop: ["thyBackdrop", "thyBackdrop", booleanAttribute], thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyReadonly: ["thyReadonly", "thyReadonly", booleanAttribute], thyShowSelectNow: ["thyShowSelectNow", "thyShowSelectNow", booleanAttribute], thyAllowClear: ["thyAllowClear", "thyAllowClear", booleanAttribute] }, outputs: { thyOpenChange: "thyOpenChange" }, host: { properties: { "class.thy-time-picker-disabled": "disabled", "class.thy-time-picker-readonly": "thyReadonly" }, classAttribute: "thy-time-picker" }, providers: [
296
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTimePicker, isStandalone: true, selector: "thy-time-picker", inputs: { thySize: "thySize", thyPlaceholder: "thyPlaceholder", thyPlacement: "thyPlacement", thyFormat: "thyFormat", thyHourStep: "thyHourStep", thyMinuteStep: "thyMinuteStep", thySecondStep: "thySecondStep", thyPopupClass: "thyPopupClass", thyBackdrop: ["thyBackdrop", "thyBackdrop", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyReadonly: ["thyReadonly", "thyReadonly", coerceBooleanProperty], thyShowSelectNow: ["thyShowSelectNow", "thyShowSelectNow", coerceBooleanProperty], thyAllowClear: ["thyAllowClear", "thyAllowClear", coerceBooleanProperty] }, outputs: { thyOpenChange: "thyOpenChange" }, host: { properties: { "class.thy-time-picker-disabled": "disabled", "class.thy-time-picker-readonly": "thyReadonly" }, classAttribute: "thy-time-picker" }, providers: [
297
297
  {
298
298
  provide: NG_VALUE_ACCESSOR,
299
299
  multi: true,
@@ -354,20 +354,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
354
354
  type: Input
355
355
  }], thyBackdrop: [{
356
356
  type: Input,
357
- args: [{ transform: booleanAttribute }]
357
+ args: [{ transform: coerceBooleanProperty }]
358
358
  }], thyDisabled: [{
359
359
  type: Input,
360
- args: [{ transform: booleanAttribute }]
360
+ args: [{ transform: coerceBooleanProperty }]
361
361
  }], thyReadonly: [{
362
362
  type: Input,
363
- args: [{ transform: booleanAttribute }]
363
+ args: [{ transform: coerceBooleanProperty }]
364
364
  }], thyShowSelectNow: [{
365
365
  type: Input,
366
- args: [{ transform: booleanAttribute }]
366
+ args: [{ transform: coerceBooleanProperty }]
367
367
  }], thyAllowClear: [{
368
368
  type: Input,
369
- args: [{ transform: booleanAttribute }]
369
+ args: [{ transform: coerceBooleanProperty }]
370
370
  }], thyOpenChange: [{
371
371
  type: Output
372
372
  }] } });
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBSTFFOzs7R0FHRztBQStCSCxNQUFNLE9BQU8sYUFBYTtJQTJCdEI7Ozs7T0FJ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QUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVRLGdCQUFnQjtzQkFBakUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTXZDLE9BQU87c0JBQWYsS0FBSztnQkFNRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT08sU0FBUztzQkFBckIsS0FBSztnQkFXRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9rQyxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU9NLFdBQVc7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBYUUsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNRSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTUUsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNNUIsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0RmxleGlibGVQb3NpdGlvbnMsIFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBUaHlUaW1lUGFuZWwgfSBmcm9tICcuL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IHNjYWxlTW90aW9uLCBzY2FsZVhNb3Rpb24sIHNjYWxlWU1vdGlvbiB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFRpbWVQaWNrZXJTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICdkZWZhdWx0JztcblxuLyoqXG4gKiDml7bpl7TpgInmi6nnu4Tku7ZcbiAqIEBuYW1lIHRoeS10aW1lLXBpY2tlclxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10aW1lLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeVRpbWVQaWNrZXIpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktdGltZS1waWNrZXInLFxuICAgICAgICAnW2NsYXNzLnRoeS10aW1lLXBpY2tlci1kaXNhYmxlZF0nOiBgZGlzYWJsZWRgLFxuICAgICAgICAnW2NsYXNzLnRoeS10aW1lLXBpY2tlci1yZWFkb25seV0nOiBgdGh5UmVhZG9ubHlgXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgICAgICAgVGh5SW5wdXREaXJlY3RpdmUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBDZGtDb25uZWN0ZWRPdmVybGF5LFxuICAgICAgICBUaHlUaW1lUGFuZWxcbiAgICBdLFxuICAgIGFuaW1hdGlvbnM6IFtzY2FsZVhNb3Rpb24sIHNjYWxlWU1vdGlvbiwgc2NhbGVNb3Rpb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRpbWVQaWNrZXIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXksIHsgc3RhdGljOiB0cnVlIH0pIGNka0Nvbm5lY3RlZE92ZXJsYXk6IENka0Nvbm5lY3RlZE92ZXJsYXk7XG5cbiAgICBAVmlld0NoaWxkKCdvcmlnaW4nLCB7IHN0YXRpYzogdHJ1ZSB9KSBvcmlnaW46IENka092ZXJsYXlPcmlnaW47XG5cbiAgICBAVmlld0NoaWxkKCdwaWNrZXJJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBvdmVybGF5Q29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuWkp+Wwj1xuICAgICAqIEB0eXBlICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaW1lUGlja2VyU2l6ZSA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIOi+k+WFpeahhuaPkOekuuaWh+Wtl1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn6YCJ5oup5pe26Ze0JztcblxuICAgIC8qKlxuICAgICAqIOW8ueWHuuS9jee9rlxuICAgICAqIEB0eXBlICd0b3AnIHwgJ3RvcExlZnQnfCAndG9wUmlnaHQnIHwgJ2JvdHRvbScgfCAnYm90dG9tTGVmdCcgfCAnYm90dG9tUmlnaHQnIHwgJ2xlZnQnIHwgJ2xlZnRUb3AnIHwgJ2xlZnRCb3R0b20nIHwgJ3JpZ2h0JyB8ICdyaWdodFRvcCcgfCAncmlnaHRCb3R0b20nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2VtZW50OiBUaHlQbGFjZW1lbnQgPSAnYm90dG9tTGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrnmoTml6XmnJ/moLzlvI/vvIzmlK/mjIEgJ0hIOm1tOnNzJyB8ICdISDptbScgfCAnbW06c3MnXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgSEg6bW06c3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5Rm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mb3JtYXQgPSB2YWx1ZSB8fCAnSEg6bW06c3MnO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiBpc1ZhbGlkKHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUZXh0ID0gbmV3IFRpbnlEYXRlKHRoaXMudmFsdWUpLmZvcm1hdCh0aGlzLmZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlsI/ml7bpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlIb3VyU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOWIhumSn+mXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1pbnV0ZVN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDnp5Lpl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTZWNvbmRTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5by55Ye65bGC57uE5Lu2IGNsYXNzXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UG9wdXBDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S65by55Ye65bGC6YGu572pXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUJhY2tkcm9wOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog56aB55SoXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHRoeURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlj6ror7tcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5UmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrpgInmi6nmraTliLtcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeVNob3dTZWxlY3ROb3cgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5Y+v5riF56m65YC8XG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlBbGxvd0NsZWFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaJk+W8gC/lhbPpl63lvLnnqpfkuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8Ym9vbGVhbj5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByZWZpeENscyA9ICd0aHktdGltZS1waWNrZXInO1xuXG4gICAgb3ZlcmxheVBvc2l0aW9ucyA9IGdldEZsZXhpYmxlUG9zaXRpb25zKHRoaXMudGh5UGxhY2VtZW50LCA0KTtcblxuICAgIGZvcm1hdDogc3RyaW5nID0gJ0hIOm1tOnNzJztcblxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgc2hvd1RleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgb3BlblN0YXRlOiBib29sZWFuO1xuXG4gICAgdmFsdWU6IERhdGUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcblxuICAgIG9yaWdpblZhbHVlOiBEYXRlO1xuXG4gICAga2VlcEZvY3VzOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBpc0Rpc2FibGVkRmlyc3RDaGFuZ2UgPSB0cnVlO1xuXG4gICAgb25WYWx1ZUNoYW5nZUZuOiAodmFsOiBudW1iZXIgfCBEYXRlKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xuXG4gICAgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy50aHlQbGFjZW1lbnQsIDQpO1xuICAgIH1cblxuICAgIG9uSW5wdXRQaWNrZXJDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRVc2VyT3BlcmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5PdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25JbnB1dFBpY2tlckJsdXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmtlZXBGb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUGlja1RpbWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgfVxuXG4gICAgb25QaWNrVGltZUNvbmZpcm0odmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jb25maXJtVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQ2xlYXJUaW1lKGU6IEV2ZW50KSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub3JpZ2luVmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIG9uQ3VzdG9taXplSW5wdXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgb25LZXl1cEVudGVyKCkge1xuICAgICAgICB0aGlzLmNvbmZpcm1WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbktleXVwRXNjKCkge1xuICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UoZTogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uQ2xpY2tCYWNrZHJvcCgpIHtcbiAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbk92ZXJsYXlEZXRhY2goKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25PdXRzaWRlQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3BlblN0YXRlICYmXG4gICAgICAgICAgICAhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgICAgICAgIXRoaXMub3ZlcmxheUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk92ZXJsYXlBdHRhY2goKSB7XG4gICAgICAgIGlmICh0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkgJiYgdGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuT3ZlcmxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRVc2VyT3BlcmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtlZXBGb2N1cyA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50aHlPcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuU3RhdGUpO1xuICAgIH1cblxuICAgIGNsb3NlT3ZlcmxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmtlZXBGb2N1cyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd1RleHQ/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUN1c3RvbWl6ZUlucHV0KHRoaXMuc2hvd1RleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5vcmlnaW5WYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IG5ldyBUaW55RGF0ZSh0aGlzLnZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRoeUFsbG93Q2xlYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLm9yaWdpblZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRoeU9wZW5DaGFuZ2UuZW1pdCh0aGlzLm9wZW5TdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmx1cigpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUobmV3IFRpbnlEYXRlKHZhbHVlKS5uYXRpdmVEYXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbiA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICh0aGlzLmlzRGlzYWJsZWRGaXJzdENoYW5nZSAmJiB0aGlzLnRoeURpc2FibGVkKSB8fCBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWRGaXJzdENoYW5nZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IERhdGUsIGZvcm1hdFRleHQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChmb3JtYXRUZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IG5ldyBUaW55RGF0ZSh0aGlzLnZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnNob3dUZXh0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtVmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdFZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5vblZhbHVlQ2hhbmdlRm4pIHtcbiAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZUZuKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZEZuKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdElucHV0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5PdmVybGF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlQ3VzdG9taXplSW5wdXQodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBjb25zdCBob3VyID0gZm9ybWF0dGVyWzBdIHx8IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgbWludXRlID0gZm9ybWF0dGVyWzFdIHx8IDA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kID0gZm9ybWF0dGVyWzJdIHx8IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShuZXcgVGlueURhdGUoKS5zZXRIbXMoK2hvdXIsICttaW51dGUsICtzZWNvbmQpLm5hdGl2ZURhdGUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblZhbHVlID0gbmV3IERhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeUFsbG93Q2xlYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh0aGlzLm9yaWdpblZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUZXh0ID0gYGA7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQ3VzdG9taXplSW5wdXQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IHRoaXMuZm9ybWF0Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1hdFJ1bGUgPSB0aGlzLmZvcm1hdC5zcGxpdCgnOicpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSB2YWx1ZS5zcGxpdCgnOicpO1xuICAgICAgICB2YWxpZCA9ICFmb3JtYXRSdWxlXG4gICAgICAgICAgICAubWFwKChtLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZm9ybWF0dGVyW2ldO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5pbmNsdWRlcyhmYWxzZSk7XG4gICAgICAgIHJldHVybiB2YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVkVXNlck9wZXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50aHlSZWFkb25seTtcbiAgICB9XG59XG4iLCI8c3BhbiBjZGtPdmVybGF5T3JpZ2luICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCIgKGNsaWNrKT1cIm9uSW5wdXRQaWNrZXJDbGljaygpXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0td3JhcHBlclwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgI3BpY2tlcklucHV0XG4gICAgICB0aHlJbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3sgcHJlZml4Q2xzIH19LWlucHV0XCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnRoeS1pbnB1dC1yZWFkb25seV09XCJ0aHlSZWFkb25seVwiXG4gICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLW9wZW5lZF09XCJvcGVuU3RhdGVcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzaG93VGV4dFwiXG4gICAgICBbdGh5U2l6ZV09XCJ0aHlTaXplXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwidGh5UmVhZG9ubHlcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlaG9sZGVyXCJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRQaWNrZXJCbHVyKClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5dXBFbnRlcigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25LZXl1cEVzYygpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ3VzdG9taXplSW5wdXQoJGV2ZW50KVwiIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJpZ2h0SWNvblwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cblxuPG5nLXRlbXBsYXRlICNyaWdodEljb24+XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNsZWFyXCIgKm5nSWY9XCIhZGlzYWJsZWQgJiYgdGh5QWxsb3dDbGVhciAmJiAhdGh5UmVhZG9ubHkgJiYgc2hvd1RleHRcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCIgKGNsaWNrKT1cIm9uQ2xlYXJUaW1lKCRldmVudClcIiBuZ0NsYXNzPVwicmVtb3ZlLWxpbmsgcmVtb3ZlLWxpbmste3sgdGh5U2l6ZSB9fVwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0taWNvblwiPlxuICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiJ2Nsb2NrLWNpcmNsZS1tb21lbnQnXCIgbmdDbGFzcz1cInJlbW92ZS1saW5rLXt7IHRoeVNpemUgfX1cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIE92ZXJsYXkgLS0+XG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3BlblN0YXRlXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJ0aHlCYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cIm92ZXJsYXlQb3NpdGlvbnNcIlxuICBjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uPVwiLnRoeS10aW1lLXBpY2tlci1jb250YWluZXJcIlxuICAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGJhY2tkcm9wQ2xpY2spPVwib25DbGlja0JhY2tkcm9wKClcIlxuICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJvbk91dHNpZGVDbGljaygkZXZlbnQpXCJcbiAgKGRldGFjaCk9XCJvbk92ZXJsYXlEZXRhY2goKVwiXG4gIChhdHRhY2gpPVwib25PdmVybGF5QXR0YWNoKClcIj5cbiAgPGRpdlxuICAgICNvdmVybGF5Q29udGFpbmVyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIlxuICAgIFtAc2NhbGVYTW90aW9uXT1cInRoeVBsYWNlbWVudCA9PT0gJ2xlZnQnIHx8IHRoeVBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVZTW90aW9uXT1cInRoeVBsYWNlbWVudCA9PT0gJ3RvcCcgfHwgdGh5UGxhY2VtZW50ID09PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVNb3Rpb25dPVwiXG4gICAgICB0aHlQbGFjZW1lbnQgIT09ICdsZWZ0JyAmJiB0aHlQbGFjZW1lbnQgIT09ICdyaWdodCcgJiYgdGh5UGxhY2VtZW50ICE9PSAndG9wJyAmJiB0aHlQbGFjZW1lbnQgIT09ICdib3R0b20nID8gJ2VudGVyJyA6ICd2b2lkJ1xuICAgIFwiXG4gICAgY2xhc3M9XCJ0aHktdGltZS1waWNrZXItY29udGFpbmVyXCI+XG4gICAgPCEtLSBDb21wYXRpYmxlIGZvciBvdmVybGF5IHRoYXQgbm90IHN1cHBvcnQgb2Zmc2V0IGR5bmFtaWNhbGx5IGFuZCBpbW1lZGlhdGVseSAtLT5cbiAgICA8dGh5LXRpbWUtcGlja2VyLXBhbmVsXG4gICAgICBbbmdDbGFzc109XCJ0aHlQb3B1cENsYXNzXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW3RoeUZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgW3RoeUhvdXJTdGVwXT1cInRoeUhvdXJTdGVwXCJcbiAgICAgIFt0aHlNaW51dGVTdGVwXT1cInRoeU1pbnV0ZVN0ZXBcIlxuICAgICAgW3RoeVNlY29uZFN0ZXBdPVwidGh5U2Vjb25kU3RlcFwiXG4gICAgICBbdGh5U2hvd1NlbGVjdE5vd109XCJ0aHlTaG93U2VsZWN0Tm93XCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGlja1RpbWVDb25maXJtKCRldmVudClcIlxuICAgICAgKHRoeVBpY2tDaGFuZ2UpPVwib25QaWNrVGltZSgkZXZlbnQpXCJcbiAgICAgICh0aHlDbG9zZVBhbmVsKT1cImNsb3NlT3ZlcmxheSgpXCI+PC90aHktdGltZS1waWNrZXItcGFuZWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFJMUU7OztHQUdHO0FBK0JILE1BQU0sT0FBTyxhQUFhO0lBMkJ0Qjs7OztPQUlHO0lBQ0gsSUFBYSxTQUFTLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxVQUFVLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDTCxDQUFDO0lBaUNEOzs7O09BSUc7SUFDSCxJQUFpRCxXQUFXLENBQUMsS0FBYztRQUN2RSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFtREQsWUFBb0IsR0FBc0IsRUFBVSxVQUFzQjtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUEzSDFFOzs7V0FHRztRQUNNLFlBQU8sR0FBbUIsU0FBUyxDQUFDO1FBRTdDOzs7V0FHRztRQUNNLG1CQUFjLEdBQVcsTUFBTSxDQUFDO1FBRXpDOzs7V0FHRztRQUNNLGlCQUFZLEdBQWlCLFlBQVksQ0FBQztRQWNuRDs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUVqQzs7O1dBR0c7UUFDTSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUVuQzs7O1dBR0c7UUFDTSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQW1DbkM7OztXQUdHO1FBQzBDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUVyRTs7O1dBR0c7UUFDMEMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFbEU7OztXQUdHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXRELGNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUU5QixxQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTlELFdBQU0sR0FBVyxVQUFVLENBQUM7UUFJNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUl0QixVQUFLLEdBQVMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFNaEQsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRXJDLG9CQUFlLEdBQWlDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdELGdCQUFXLEdBQWUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFc0MsQ0FBQztJQUU5RSxRQUFRLEtBQUksQ0FBQztJQUViLGVBQWU7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFXO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVc7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBUTtRQUNoQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLENBQVE7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVk7UUFDdkIsSUFDSSxJQUFJLENBQUMsU0FBUztZQUNkLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDckQsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBYyxDQUFDLEVBQ3JFLENBQUM7WUFDQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakUsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBb0I7UUFDM0IsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMzRCxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQztRQUMvRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBVyxFQUFFLGFBQXNCLElBQUk7UUFDcEQsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFXO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWE7UUFDeEMsSUFBSSxLQUFLLEdBQVksS0FBSyxDQUFDO1FBQzNCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLEtBQUssR0FBRyxDQUFDLFVBQVU7YUFDZCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDVixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDN0MsQ0FBQzs4R0FqV1EsYUFBYTtrR0FBYixhQUFhLGlWQW9FRixxQkFBcUIsK0NBT3JCLHFCQUFxQiwrQ0FhckIscUJBQXFCLDhEQU1yQixxQkFBcUIscURBTXJCLHFCQUFxQix5TkE5SDlCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7YUFDL0M7U0FDSiwrRUFxQlUsbUJBQW1CLDhXQzdEbEMsbzNGQW9FQSw0Q0RwQlEsZ0JBQWdCLHVJQUNoQixpQkFBaUIsOElBQ2pCLFdBQVcsK21CQUNYLGdCQUFnQixvSkFDaEIsSUFBSSw2RkFDSixPQUFPLHNNQUNQLE9BQU8sb0ZBQ1AsbUJBQW1CLDQrQkFDbkIsWUFBWSxrTkFFSixDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDOzsyRkFFNUMsYUFBYTtrQkE5QnpCLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDO3lCQUMvQztxQkFDSixRQUNLO3dCQUNGLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLGtDQUFrQyxFQUFFLFVBQVU7d0JBQzlDLGtDQUFrQyxFQUFFLGFBQWE7cUJBQ3BELGNBQ1csSUFBSSxXQUNQO3dCQUNMLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsbUJBQW1CO3dCQUNuQixZQUFZO3FCQUNmLGNBQ1csQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQzsrR0FHSCxtQkFBbUI7c0JBQXBFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVULE1BQU07c0JBQTVDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFTyxRQUFRO3NCQUFuRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRVEsZ0JBQWdCO3NCQUFqRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNdkMsT0FBTztzQkFBZixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFPTyxTQUFTO3NCQUFyQixLQUFLO2dCQVdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT3VDLFdBQVc7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBT00sV0FBVztzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFhRSxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1FLGdCQUFnQjtzQkFBNUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNRSxhQUFhO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1qQyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0RmxleGlibGVQb3NpdGlvbnMsIFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaW55RGF0ZSwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeVRpbWVQYW5lbCB9IGZyb20gJy4vdGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgc2NhbGVNb3Rpb24sIHNjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuZXhwb3J0IHR5cGUgVGltZVBpY2tlclNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2RlZmF1bHQnO1xuXG4vKipcbiAqIOaXtumXtOmAieaLqee7hOS7tlxuICogQG5hbWUgdGh5LXRpbWUtcGlja2VyXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRpbWUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5VGltZVBpY2tlcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10aW1lLXBpY2tlcicsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLWRpc2FibGVkXSc6IGBkaXNhYmxlZGAsXG4gICAgICAgICdbY2xhc3MudGh5LXRpbWUtcGlja2VyLXJlYWRvbmx5XSc6IGB0aHlSZWFkb25seWBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDZGtPdmVybGF5T3JpZ2luLFxuICAgICAgICBUaHlJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFRoeUljb24sXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgICAgIFRoeVRpbWVQYW5lbFxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW3NjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uLCBzY2FsZU1vdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VGltZVBpY2tlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSwgeyBzdGF0aWM6IHRydWUgfSkgY2RrQ29ubmVjdGVkT3ZlcmxheTogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcblxuICAgIEBWaWV3Q2hpbGQoJ29yaWdpbicsIHsgc3RhdGljOiB0cnVlIH0pIG9yaWdpbjogQ2RrT3ZlcmxheU9yaWdpbjtcblxuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcklucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIG92ZXJsYXlDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5aSn5bCPXG4gICAgICogQHR5cGUgJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNpemU6IFRpbWVQaWNrZXJTaXplID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5o+Q56S65paH5a2XXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGxhY2Vob2xkZXI6IHN0cmluZyA9ICfpgInmi6nml7bpl7QnO1xuXG4gICAgLyoqXG4gICAgICog5by55Ye65L2N572uXG4gICAgICogQHR5cGUgJ3RvcCcgfCAndG9wTGVmdCd8ICd0b3BSaWdodCcgfCAnYm90dG9tJyB8ICdib3R0b21MZWZ0JyB8ICdib3R0b21SaWdodCcgfCAnbGVmdCcgfCAnbGVmdFRvcCcgfCAnbGVmdEJvdHRvbScgfCAncmlnaHQnIHwgJ3JpZ2h0VG9wJyB8ICdyaWdodEJvdHRvbSdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQbGFjZW1lbnQ6IFRoeVBsYWNlbWVudCA9ICdib3R0b21MZWZ0JztcblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOaXpeacn+agvOW8j++8jOaUr+aMgSAnSEg6bW06c3MnIHwgJ0hIOm1tJyB8ICdtbTpzcydcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKiBAZGVmYXVsdCBISDptbTpzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1hdCA9IHZhbHVlIHx8ICdISDptbTpzcyc7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIGlzVmFsaWQodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RleHQgPSBuZXcgVGlueURhdGUodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWwj+aXtumXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdXJTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5YiG6ZKf6Ze06ZqU5q2l6ZW/XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TWludXRlU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOenkumXtOmalOatpemVv1xuICAgICAqIEB0eXBlIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZFN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDlvLnlh7rlsYLnu4Tku7YgY2xhc3NcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQb3B1cENsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmL7npLrlvLnlh7rlsYLpga7nvalcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlCYWNrZHJvcDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOemgeeUqFxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHRoeURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlj6ror7tcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlSZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOWxleekuumAieaLqeatpOWIu1xuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlTaG93U2VsZWN0Tm93ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWPr+a4heepuuWAvFxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlBbGxvd0NsZWFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaJk+W8gC/lhbPpl63lvLnnqpfkuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8Ym9vbGVhbj5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5T3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByZWZpeENscyA9ICd0aHktdGltZS1waWNrZXInO1xuXG4gICAgb3ZlcmxheVBvc2l0aW9ucyA9IGdldEZsZXhpYmxlUG9zaXRpb25zKHRoaXMudGh5UGxhY2VtZW50LCA0KTtcblxuICAgIGZvcm1hdDogc3RyaW5nID0gJ0hIOm1tOnNzJztcblxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgc2hvd1RleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgb3BlblN0YXRlOiBib29sZWFuO1xuXG4gICAgdmFsdWU6IERhdGUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcblxuICAgIG9yaWdpblZhbHVlOiBEYXRlO1xuXG4gICAga2VlcEZvY3VzOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBpc0Rpc2FibGVkRmlyc3RDaGFuZ2UgPSB0cnVlO1xuXG4gICAgb25WYWx1ZUNoYW5nZUZuOiAodmFsOiBudW1iZXIgfCBEYXRlKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xuXG4gICAgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy50aHlQbGFjZW1lbnQsIDQpO1xuICAgIH1cblxuICAgIG9uSW5wdXRQaWNrZXJDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRVc2VyT3BlcmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5PdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25JbnB1dFBpY2tlckJsdXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmtlZXBGb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUGlja1RpbWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgfVxuXG4gICAgb25QaWNrVGltZUNvbmZpcm0odmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jb25maXJtVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQ2xlYXJUaW1lKGU6IEV2ZW50KSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub3JpZ2luVmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIG9uQ3VzdG9taXplSW5wdXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgb25LZXl1cEVudGVyKCkge1xuICAgICAgICB0aGlzLmNvbmZpcm1WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbktleXVwRXNjKCkge1xuICAgICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UoZTogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uQ2xpY2tCYWNrZHJvcCgpIHtcbiAgICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbk92ZXJsYXlEZXRhY2goKSB7XG4gICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25PdXRzaWRlQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3BlblN0YXRlICYmXG4gICAgICAgICAgICAhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgICAgICAgIXRoaXMub3ZlcmxheUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VPdmVybGF5KCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk92ZXJsYXlBdHRhY2goKSB7XG4gICAgICAgIGlmICh0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkgJiYgdGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuT3ZlcmxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRVc2VyT3BlcmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtlZXBGb2N1cyA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50aHlPcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuU3RhdGUpO1xuICAgIH1cblxuICAgIGNsb3NlT3ZlcmxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmtlZXBGb2N1cyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd1RleHQ/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUN1c3RvbWl6ZUlucHV0KHRoaXMuc2hvd1RleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5vcmlnaW5WYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IG5ldyBUaW55RGF0ZSh0aGlzLnZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRoeUFsbG93Q2xlYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLm9yaWdpblZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRoeU9wZW5DaGFuZ2UuZW1pdCh0aGlzLm9wZW5TdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmx1cigpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5WYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUobmV3IFRpbnlEYXRlKHZhbHVlKS5uYXRpdmVEYXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgVGlueURhdGUoKS5zZXRIbXMoMCwgMCwgMCkubmF0aXZlRGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbiA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICh0aGlzLmlzRGlzYWJsZWRGaXJzdENoYW5nZSAmJiB0aGlzLnRoeURpc2FibGVkKSB8fCBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWRGaXJzdENoYW5nZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IERhdGUsIGZvcm1hdFRleHQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBpc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChmb3JtYXRUZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93VGV4dCA9IG5ldyBUaW55RGF0ZSh0aGlzLnZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnNob3dUZXh0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtVmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdFZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5vblZhbHVlQ2hhbmdlRm4pIHtcbiAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZUZuKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZEZuKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdElucHV0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMub3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5PdmVybGF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlQ3VzdG9taXplSW5wdXQodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBjb25zdCBob3VyID0gZm9ybWF0dGVyWzBdIHx8IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgbWludXRlID0gZm9ybWF0dGVyWzFdIHx8IDA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kID0gZm9ybWF0dGVyWzJdIHx8IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShuZXcgVGlueURhdGUoKS5zZXRIbXMoK2hvdXIsICttaW51dGUsICtzZWNvbmQpLm5hdGl2ZURhdGUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblZhbHVlID0gbmV3IERhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeUFsbG93Q2xlYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh0aGlzLm9yaWdpblZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUZXh0ID0gYGA7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQ3VzdG9taXplSW5wdXQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IHRoaXMuZm9ybWF0Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1hdFJ1bGUgPSB0aGlzLmZvcm1hdC5zcGxpdCgnOicpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSB2YWx1ZS5zcGxpdCgnOicpO1xuICAgICAgICB2YWxpZCA9ICFmb3JtYXRSdWxlXG4gICAgICAgICAgICAubWFwKChtLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZm9ybWF0dGVyW2ldO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5pbmNsdWRlcyhmYWxzZSk7XG4gICAgICAgIHJldHVybiB2YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVkVXNlck9wZXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50aHlSZWFkb25seTtcbiAgICB9XG59XG4iLCI8c3BhbiBjZGtPdmVybGF5T3JpZ2luICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCIgKGNsaWNrKT1cIm9uSW5wdXRQaWNrZXJDbGljaygpXCIgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0td3JhcHBlclwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgI3BpY2tlcklucHV0XG4gICAgICB0aHlJbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3sgcHJlZml4Q2xzIH19LWlucHV0XCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnRoeS1pbnB1dC1yZWFkb25seV09XCJ0aHlSZWFkb25seVwiXG4gICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLW9wZW5lZF09XCJvcGVuU3RhdGVcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzaG93VGV4dFwiXG4gICAgICBbdGh5U2l6ZV09XCJ0aHlTaXplXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwidGh5UmVhZG9ubHlcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlaG9sZGVyXCJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRQaWNrZXJCbHVyKClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5dXBFbnRlcigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25LZXl1cEVzYygpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ3VzdG9taXplSW5wdXQoJGV2ZW50KVwiIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJpZ2h0SWNvblwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cblxuPG5nLXRlbXBsYXRlICNyaWdodEljb24+XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWNsZWFyXCIgKm5nSWY9XCIhZGlzYWJsZWQgJiYgdGh5QWxsb3dDbGVhciAmJiAhdGh5UmVhZG9ubHkgJiYgc2hvd1RleHRcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCIgKGNsaWNrKT1cIm9uQ2xlYXJUaW1lKCRldmVudClcIiBuZ0NsYXNzPVwicmVtb3ZlLWxpbmsgcmVtb3ZlLWxpbmste3sgdGh5U2l6ZSB9fVwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0taWNvblwiPlxuICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiJ2Nsb2NrLWNpcmNsZS1tb21lbnQnXCIgbmdDbGFzcz1cInJlbW92ZS1saW5rLXt7IHRoeVNpemUgfX1cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIE92ZXJsYXkgLS0+XG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3BlblN0YXRlXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJ0aHlCYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cIm92ZXJsYXlQb3NpdGlvbnNcIlxuICBjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uPVwiLnRoeS10aW1lLXBpY2tlci1jb250YWluZXJcIlxuICAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGJhY2tkcm9wQ2xpY2spPVwib25DbGlja0JhY2tkcm9wKClcIlxuICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJvbk91dHNpZGVDbGljaygkZXZlbnQpXCJcbiAgKGRldGFjaCk9XCJvbk92ZXJsYXlEZXRhY2goKVwiXG4gIChhdHRhY2gpPVwib25PdmVybGF5QXR0YWNoKClcIj5cbiAgPGRpdlxuICAgICNvdmVybGF5Q29udGFpbmVyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIlxuICAgIFtAc2NhbGVYTW90aW9uXT1cInRoeVBsYWNlbWVudCA9PT0gJ2xlZnQnIHx8IHRoeVBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVZTW90aW9uXT1cInRoeVBsYWNlbWVudCA9PT0gJ3RvcCcgfHwgdGh5UGxhY2VtZW50ID09PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVNb3Rpb25dPVwiXG4gICAgICB0aHlQbGFjZW1lbnQgIT09ICdsZWZ0JyAmJiB0aHlQbGFjZW1lbnQgIT09ICdyaWdodCcgJiYgdGh5UGxhY2VtZW50ICE9PSAndG9wJyAmJiB0aHlQbGFjZW1lbnQgIT09ICdib3R0b20nID8gJ2VudGVyJyA6ICd2b2lkJ1xuICAgIFwiXG4gICAgY2xhc3M9XCJ0aHktdGltZS1waWNrZXItY29udGFpbmVyXCI+XG4gICAgPCEtLSBDb21wYXRpYmxlIGZvciBvdmVybGF5IHRoYXQgbm90IHN1cHBvcnQgb2Zmc2V0IGR5bmFtaWNhbGx5IGFuZCBpbW1lZGlhdGVseSAtLT5cbiAgICA8dGh5LXRpbWUtcGlja2VyLXBhbmVsXG4gICAgICBbbmdDbGFzc109XCJ0aHlQb3B1cENsYXNzXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW3RoeUZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgW3RoeUhvdXJTdGVwXT1cInRoeUhvdXJTdGVwXCJcbiAgICAgIFt0aHlNaW51dGVTdGVwXT1cInRoeU1pbnV0ZVN0ZXBcIlxuICAgICAgW3RoeVNlY29uZFN0ZXBdPVwidGh5U2Vjb25kU3RlcFwiXG4gICAgICBbdGh5U2hvd1NlbGVjdE5vd109XCJ0aHlTaG93U2VsZWN0Tm93XCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGlja1RpbWVDb25maXJtKCRldmVudClcIlxuICAgICAgKHRoeVBpY2tDaGFuZ2UpPVwib25QaWNrVGltZSgkZXZlbnQpXCJcbiAgICAgICh0aHlDbG9zZVBhbmVsKT1cImNsb3NlT3ZlcmxheSgpXCI+PC90aHktdGltZS1waWNrZXItcGFuZWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==