@ng-nest/ui 12.0.6 → 12.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 (787) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +3 -3
  2. package/auto-complete/auto-complete.component.d.ts +5 -1
  3. package/auto-complete/auto-complete.property.d.ts +6 -1
  4. package/back-top/back-top.component.d.ts +1 -2
  5. package/base-form/base-form.component.d.ts +1 -1
  6. package/base-form/base-form.property.d.ts +22 -2
  7. package/bundles/ng-nest-ui-affix.umd.js +25 -21
  8. package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-alert.umd.js +25 -21
  10. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-anchor.umd.js +26 -22
  12. package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-api.umd.js +12 -14
  14. package/bundles/ng-nest-ui-api.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-auto-complete.umd.js +52 -29
  16. package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-avatar.umd.js +25 -21
  18. package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-back-top.umd.js +27 -23
  20. package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-badge.umd.js +27 -22
  22. package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-base-form.umd.js +50 -22
  24. package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-border.umd.js +12 -14
  26. package/bundles/ng-nest-ui-border.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-button.umd.js +36 -29
  28. package/bundles/ng-nest-ui-button.umd.js.map +1 -1
  29. package/bundles/ng-nest-ui-calendar.umd.js +29 -24
  30. package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
  31. package/bundles/ng-nest-ui-card.umd.js +25 -21
  32. package/bundles/ng-nest-ui-card.umd.js.map +1 -1
  33. package/bundles/ng-nest-ui-carousel.umd.js +44 -39
  34. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  35. package/bundles/ng-nest-ui-cascade.umd.js +94 -36
  36. package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
  37. package/bundles/ng-nest-ui-checkbox.umd.js +28 -23
  38. package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
  39. package/bundles/ng-nest-ui-collapse.umd.js +31 -27
  40. package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
  41. package/bundles/ng-nest-ui-color-picker.umd.js +79 -44
  42. package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
  43. package/bundles/ng-nest-ui-color.umd.js +26 -22
  44. package/bundles/ng-nest-ui-color.umd.js.map +1 -1
  45. package/bundles/ng-nest-ui-comment.umd.js +34 -29
  46. package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
  47. package/bundles/ng-nest-ui-container.umd.js +46 -42
  48. package/bundles/ng-nest-ui-container.umd.js.map +1 -1
  49. package/bundles/ng-nest-ui-core.umd.js +136 -35
  50. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  51. package/bundles/ng-nest-ui-crumb.umd.js +28 -23
  52. package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
  53. package/bundles/ng-nest-ui-date-picker.umd.js +387 -246
  54. package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
  55. package/bundles/ng-nest-ui-description.umd.js +35 -32
  56. package/bundles/ng-nest-ui-description.umd.js.map +1 -1
  57. package/bundles/ng-nest-ui-dialog.umd.js +27 -22
  58. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  59. package/bundles/ng-nest-ui-doc.umd.js +12 -14
  60. package/bundles/ng-nest-ui-doc.umd.js.map +1 -1
  61. package/bundles/ng-nest-ui-drawer.umd.js +27 -22
  62. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  63. package/bundles/ng-nest-ui-dropdown.umd.js +32 -27
  64. package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
  65. package/bundles/ng-nest-ui-empty.umd.js +25 -21
  66. package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
  67. package/bundles/ng-nest-ui-examples.umd.js +12 -14
  68. package/bundles/ng-nest-ui-examples.umd.js.map +1 -1
  69. package/bundles/ng-nest-ui-find.umd.js +45 -27
  70. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  71. package/bundles/ng-nest-ui-form.umd.js +36 -36
  72. package/bundles/ng-nest-ui-form.umd.js.map +1 -1
  73. package/bundles/ng-nest-ui-highlight.umd.js +27 -22
  74. package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
  75. package/bundles/ng-nest-ui-i18n.umd.js +537 -138
  76. package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
  77. package/bundles/ng-nest-ui-icon.umd.js +34 -29
  78. package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
  79. package/bundles/ng-nest-ui-inner.umd.js +26 -22
  80. package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
  81. package/bundles/ng-nest-ui-input-number.umd.js +44 -24
  82. package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
  83. package/bundles/ng-nest-ui-input.umd.js +65 -32
  84. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  85. package/bundles/ng-nest-ui-layout.umd.js +31 -27
  86. package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
  87. package/bundles/ng-nest-ui-link.umd.js +25 -21
  88. package/bundles/ng-nest-ui-link.umd.js.map +1 -1
  89. package/bundles/ng-nest-ui-list.umd.js +35 -30
  90. package/bundles/ng-nest-ui-list.umd.js.map +1 -1
  91. package/bundles/ng-nest-ui-loading.umd.js +27 -22
  92. package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
  93. package/bundles/ng-nest-ui-menu.umd.js +37 -33
  94. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  95. package/bundles/ng-nest-ui-message-box.umd.js +53 -47
  96. package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
  97. package/bundles/ng-nest-ui-message.umd.js +26 -22
  98. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  99. package/bundles/ng-nest-ui-notification.umd.js +26 -22
  100. package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
  101. package/bundles/ng-nest-ui-outlet.umd.js +22 -18
  102. package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
  103. package/bundles/ng-nest-ui-page-header.umd.js +25 -21
  104. package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
  105. package/bundles/ng-nest-ui-pagination.umd.js +115 -26
  106. package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
  107. package/bundles/ng-nest-ui-pattern.umd.js +12 -14
  108. package/bundles/ng-nest-ui-pattern.umd.js.map +1 -1
  109. package/bundles/ng-nest-ui-popconfirm.umd.js +25 -21
  110. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  111. package/bundles/ng-nest-ui-popover.umd.js +31 -26
  112. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  113. package/bundles/ng-nest-ui-portal.umd.js +22 -18
  114. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  115. package/bundles/ng-nest-ui-progress.umd.js +28 -23
  116. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  117. package/bundles/ng-nest-ui-radio.umd.js +28 -23
  118. package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
  119. package/bundles/ng-nest-ui-rate.umd.js +30 -26
  120. package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
  121. package/bundles/ng-nest-ui-result.umd.js +25 -21
  122. package/bundles/ng-nest-ui-result.umd.js.map +1 -1
  123. package/bundles/ng-nest-ui-ripple.umd.js +25 -21
  124. package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
  125. package/bundles/ng-nest-ui-select.umd.js +53 -34
  126. package/bundles/ng-nest-ui-select.umd.js.map +1 -1
  127. package/bundles/ng-nest-ui-skeleton.umd.js +27 -22
  128. package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
  129. package/bundles/ng-nest-ui-slider-select.umd.js +25 -21
  130. package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
  131. package/bundles/ng-nest-ui-slider.umd.js +32 -29
  132. package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
  133. package/bundles/ng-nest-ui-statistic.umd.js +37 -31
  134. package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
  135. package/bundles/ng-nest-ui-steps.umd.js +35 -27
  136. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  137. package/bundles/ng-nest-ui-switch.umd.js +25 -21
  138. package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
  139. package/bundles/ng-nest-ui-table.umd.js +58 -51
  140. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  141. package/bundles/ng-nest-ui-tabs.umd.js +39 -34
  142. package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
  143. package/bundles/ng-nest-ui-tag.umd.js +36 -21
  144. package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
  145. package/bundles/ng-nest-ui-text-retract.umd.js +27 -22
  146. package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
  147. package/bundles/ng-nest-ui-textarea.umd.js +27 -32
  148. package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
  149. package/bundles/ng-nest-ui-theme.umd.js +26 -22
  150. package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
  151. package/bundles/ng-nest-ui-time-ago.umd.js +12 -14
  152. package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
  153. package/bundles/ng-nest-ui-time-picker.umd.js +87 -46
  154. package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
  155. package/bundles/ng-nest-ui-time-range.umd.js +22 -18
  156. package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
  157. package/bundles/ng-nest-ui-timeline.umd.js +28 -23
  158. package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
  159. package/bundles/ng-nest-ui-tooltip.umd.js +31 -26
  160. package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
  161. package/bundles/ng-nest-ui-transfer.umd.js +28 -23
  162. package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
  163. package/bundles/ng-nest-ui-tree-file.umd.js +25 -21
  164. package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
  165. package/bundles/ng-nest-ui-tree.umd.js +39 -34
  166. package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
  167. package/bundles/ng-nest-ui-typography.umd.js +25 -21
  168. package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
  169. package/bundles/ng-nest-ui-upload.umd.js +32 -27
  170. package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
  171. package/bundles/ng-nest-ui.umd.js +83 -243
  172. package/bundles/ng-nest-ui.umd.js.map +1 -1
  173. package/button/buttons.component.d.ts +1 -1
  174. package/calendar/calendar.component.d.ts +2 -2
  175. package/carousel/carousel-panel.component.d.ts +2 -3
  176. package/carousel/carousel.component.d.ts +1 -1
  177. package/cascade/cascade-portal.component.d.ts +13 -7
  178. package/cascade/cascade.component.d.ts +7 -1
  179. package/cascade/cascade.property.d.ts +33 -3
  180. package/checkbox/checkbox.component.d.ts +1 -1
  181. package/color/color.component.d.ts +2 -2
  182. package/color-picker/color-picker-portal.component.d.ts +3 -3
  183. package/color-picker/color-picker.component.d.ts +10 -4
  184. package/color-picker/color-picker.property.d.ts +12 -2
  185. package/comment/comment.component.d.ts +1 -1
  186. package/core/config/config.d.ts +25 -0
  187. package/core/functions/clone-deep.d.ts +1 -0
  188. package/core/functions/drop.d.ts +1 -0
  189. package/core/functions/flex.d.ts +1 -1
  190. package/core/functions/has-in.d.ts +1 -0
  191. package/core/functions/order-by.d.ts +1 -0
  192. package/core/functions/public-api.d.ts +5 -0
  193. package/core/functions/remove.d.ts +1 -0
  194. package/core/services/reuse-strategy.service.d.ts +1 -1
  195. package/crumb/crumb.component.d.ts +1 -1
  196. package/date-picker/date-picker-portal.component.d.ts +4 -11
  197. package/date-picker/date-picker.component.d.ts +3 -4
  198. package/date-picker/date-picker.property.d.ts +55 -30
  199. package/date-picker/date-range-portal.component.d.ts +10 -6
  200. package/date-picker/date-range.component.d.ts +15 -11
  201. package/date-picker/picker-date.component.d.ts +13 -4
  202. package/date-picker/picker-month.component.d.ts +6 -3
  203. package/date-picker/picker-year.component.d.ts +4 -2
  204. package/description/description.component.d.ts +2 -4
  205. package/dropdown/dropdown-portal.component.d.ts +1 -3
  206. package/dropdown/dropdown.component.d.ts +2 -2
  207. package/esm2015/affix/affix.component.js +3 -3
  208. package/esm2015/affix/affix.module.js +4 -4
  209. package/esm2015/affix/affix.property.js +3 -3
  210. package/esm2015/alert/alert.component.js +4 -4
  211. package/esm2015/alert/alert.module.js +4 -4
  212. package/esm2015/alert/alert.property.js +3 -3
  213. package/esm2015/anchor/anchor.component.js +5 -5
  214. package/esm2015/anchor/anchor.module.js +4 -4
  215. package/esm2015/anchor/anchor.property.js +4 -4
  216. package/esm2015/api/api.component.js +3 -3
  217. package/esm2015/api/api.module.js +4 -4
  218. package/esm2015/auto-complete/auto-complete-portal.component.js +6 -6
  219. package/esm2015/auto-complete/auto-complete.component.js +20 -7
  220. package/esm2015/auto-complete/auto-complete.module.js +4 -4
  221. package/esm2015/auto-complete/auto-complete.property.js +10 -4
  222. package/esm2015/avatar/avatar.component.js +3 -3
  223. package/esm2015/avatar/avatar.module.js +4 -4
  224. package/esm2015/avatar/avatar.property.js +3 -3
  225. package/esm2015/back-top/back-top.component.js +6 -6
  226. package/esm2015/back-top/back-top.module.js +4 -4
  227. package/esm2015/back-top/back-top.property.js +3 -3
  228. package/esm2015/badge/badge.component.js +6 -5
  229. package/esm2015/badge/badge.module.js +4 -4
  230. package/esm2015/badge/badge.property.js +3 -3
  231. package/esm2015/base-form/base-form.component.js +5 -5
  232. package/esm2015/base-form/base-form.module.js +4 -4
  233. package/esm2015/base-form/base-form.property.js +29 -5
  234. package/esm2015/border/border.component.js +3 -3
  235. package/esm2015/border/border.module.js +4 -4
  236. package/esm2015/button/button.component.js +10 -7
  237. package/esm2015/button/button.module.js +4 -4
  238. package/esm2015/button/button.property.js +6 -6
  239. package/esm2015/button/buttons.component.js +4 -4
  240. package/esm2015/calendar/calendar.component.js +8 -7
  241. package/esm2015/calendar/calendar.module.js +4 -4
  242. package/esm2015/calendar/calendar.property.js +3 -3
  243. package/esm2015/card/card.component.js +3 -3
  244. package/esm2015/card/card.module.js +4 -4
  245. package/esm2015/card/card.property.js +3 -3
  246. package/esm2015/carousel/carousel-panel.component.js +15 -14
  247. package/esm2015/carousel/carousel.component.js +7 -6
  248. package/esm2015/carousel/carousel.module.js +4 -4
  249. package/esm2015/carousel/carousel.property.js +6 -6
  250. package/esm2015/cascade/cascade-portal.component.js +23 -11
  251. package/esm2015/cascade/cascade.component.js +25 -9
  252. package/esm2015/cascade/cascade.module.js +4 -4
  253. package/esm2015/cascade/cascade.property.js +28 -5
  254. package/esm2015/checkbox/checkbox.component.js +7 -6
  255. package/esm2015/checkbox/checkbox.module.js +4 -4
  256. package/esm2015/checkbox/checkbox.property.js +4 -4
  257. package/esm2015/collapse/collapse-panel.component.js +4 -4
  258. package/esm2015/collapse/collapse.component.js +3 -3
  259. package/esm2015/collapse/collapse.module.js +4 -4
  260. package/esm2015/collapse/collapse.property.js +6 -6
  261. package/esm2015/color/color.component.js +5 -5
  262. package/esm2015/color/color.module.js +4 -4
  263. package/esm2015/color/color.property.js +3 -3
  264. package/esm2015/color-picker/color-picker-portal.component.js +5 -5
  265. package/esm2015/color-picker/color-picker.component.js +33 -14
  266. package/esm2015/color-picker/color-picker.module.js +4 -4
  267. package/esm2015/color-picker/color-picker.property.js +16 -5
  268. package/esm2015/comment/comment-reply.component.js +3 -3
  269. package/esm2015/comment/comment.component.js +7 -6
  270. package/esm2015/comment/comment.module.js +4 -4
  271. package/esm2015/comment/comment.property.js +6 -6
  272. package/esm2015/container/aside.component.js +3 -3
  273. package/esm2015/container/container.component.js +5 -5
  274. package/esm2015/container/container.module.js +4 -4
  275. package/esm2015/container/container.property.js +12 -12
  276. package/esm2015/container/footer.component.js +3 -3
  277. package/esm2015/container/header.component.js +3 -3
  278. package/esm2015/container/main.component.js +3 -3
  279. package/esm2015/core/animation/fade.js +1 -1
  280. package/esm2015/core/config/config.js +1 -1
  281. package/esm2015/core/config/config.service.js +3 -3
  282. package/esm2015/core/functions/clone-deep.js +12 -0
  283. package/esm2015/core/functions/drop.js +8 -0
  284. package/esm2015/core/functions/flex.js +18 -7
  285. package/esm2015/core/functions/has-in.js +4 -0
  286. package/esm2015/core/functions/order-by.js +31 -0
  287. package/esm2015/core/functions/public-api.js +6 -1
  288. package/esm2015/core/functions/remove.js +15 -0
  289. package/esm2015/core/services/http.service.js +5 -5
  290. package/esm2015/core/services/preloading-strategy.service.js +5 -5
  291. package/esm2015/core/services/reuse-strategy.service.js +2 -2
  292. package/esm2015/core/services/storage.service.js +3 -3
  293. package/esm2015/core/theme/theme.service.js +3 -3
  294. package/esm2015/crumb/crumb.component.js +7 -6
  295. package/esm2015/crumb/crumb.module.js +4 -4
  296. package/esm2015/crumb/crumb.property.js +3 -3
  297. package/esm2015/date-picker/date-picker-portal.component.js +11 -43
  298. package/esm2015/date-picker/date-picker.component.js +13 -14
  299. package/esm2015/date-picker/date-picker.module.js +4 -4
  300. package/esm2015/date-picker/date-picker.property.js +102 -38
  301. package/esm2015/date-picker/date-range-portal.component.js +41 -20
  302. package/esm2015/date-picker/date-range.component.js +66 -47
  303. package/esm2015/date-picker/picker-date.component.js +50 -15
  304. package/esm2015/date-picker/picker-month.component.js +25 -9
  305. package/esm2015/date-picker/picker-year.component.js +21 -9
  306. package/esm2015/description/description-item.component.js +4 -4
  307. package/esm2015/description/description.component.js +8 -9
  308. package/esm2015/description/description.module.js +4 -4
  309. package/esm2015/description/description.property.js +6 -6
  310. package/esm2015/dialog/dialog.component.js +6 -5
  311. package/esm2015/dialog/dialog.module.js +4 -4
  312. package/esm2015/dialog/dialog.property.js +4 -4
  313. package/esm2015/doc/doc.component.js +3 -3
  314. package/esm2015/doc/doc.module.js +4 -4
  315. package/esm2015/drawer/drawer.component.js +6 -5
  316. package/esm2015/drawer/drawer.module.js +4 -4
  317. package/esm2015/drawer/drawer.property.js +3 -3
  318. package/esm2015/dropdown/dropdown-portal.component.js +5 -5
  319. package/esm2015/dropdown/dropdown.component.js +7 -6
  320. package/esm2015/dropdown/dropdown.module.js +4 -4
  321. package/esm2015/dropdown/dropdown.property.js +3 -3
  322. package/esm2015/empty/empty.component.js +3 -3
  323. package/esm2015/empty/empty.module.js +4 -4
  324. package/esm2015/empty/empty.property.js +3 -3
  325. package/esm2015/examples/examples.component.js +3 -3
  326. package/esm2015/examples/examples.module.js +4 -4
  327. package/esm2015/find/find.component.js +13 -10
  328. package/esm2015/find/find.module.js +4 -4
  329. package/esm2015/find/find.property.js +16 -5
  330. package/esm2015/form/control.component.js +4 -4
  331. package/esm2015/form/form.component.js +9 -8
  332. package/esm2015/form/form.module.js +4 -4
  333. package/esm2015/form/form.property.js +8 -13
  334. package/esm2015/highlight/highlight.component.js +6 -5
  335. package/esm2015/highlight/highlight.module.js +4 -4
  336. package/esm2015/highlight/highlight.property.js +4 -4
  337. package/esm2015/i18n/i18n.directive.js +6 -5
  338. package/esm2015/i18n/i18n.module.js +4 -4
  339. package/esm2015/i18n/i18n.pipe.js +3 -3
  340. package/esm2015/i18n/i18n.service.js +3 -3
  341. package/esm2015/i18n/languages/ar_EG.js +11 -3
  342. package/esm2015/i18n/languages/bg_BG.js +11 -3
  343. package/esm2015/i18n/languages/ca_ES.js +11 -3
  344. package/esm2015/i18n/languages/cs_CZ.js +11 -3
  345. package/esm2015/i18n/languages/da_DK.js +11 -3
  346. package/esm2015/i18n/languages/de_DE.js +11 -3
  347. package/esm2015/i18n/languages/el_GR.js +11 -3
  348. package/esm2015/i18n/languages/en_GB.js +11 -3
  349. package/esm2015/i18n/languages/en_US.js +7 -2
  350. package/esm2015/i18n/languages/es_ES.js +11 -3
  351. package/esm2015/i18n/languages/et_EE.js +11 -3
  352. package/esm2015/i18n/languages/fa_IR.js +11 -3
  353. package/esm2015/i18n/languages/fi_FI.js +11 -3
  354. package/esm2015/i18n/languages/fr_BE.js +10 -2
  355. package/esm2015/i18n/languages/fr_FR.js +11 -3
  356. package/esm2015/i18n/languages/he_IL.js +11 -3
  357. package/esm2015/i18n/languages/hi_IN.js +11 -3
  358. package/esm2015/i18n/languages/hr_HR.js +11 -3
  359. package/esm2015/i18n/languages/hu_HU.js +11 -3
  360. package/esm2015/i18n/languages/hy_AM.js +11 -3
  361. package/esm2015/i18n/languages/id_ID.js +11 -3
  362. package/esm2015/i18n/languages/is_IS.js +11 -3
  363. package/esm2015/i18n/languages/it_IT.js +11 -3
  364. package/esm2015/i18n/languages/ja_JP.js +11 -3
  365. package/esm2015/i18n/languages/ka_GE.js +11 -3
  366. package/esm2015/i18n/languages/kn_IN.js +11 -3
  367. package/esm2015/i18n/languages/ko_KR.js +11 -3
  368. package/esm2015/i18n/languages/ku_IQ.js +11 -3
  369. package/esm2015/i18n/languages/lv_LV.js +11 -3
  370. package/esm2015/i18n/languages/mn_MN.js +11 -3
  371. package/esm2015/i18n/languages/ms_MY.js +11 -3
  372. package/esm2015/i18n/languages/nb_NO.js +11 -3
  373. package/esm2015/i18n/languages/ne_NP.js +11 -3
  374. package/esm2015/i18n/languages/nl_BE.js +11 -3
  375. package/esm2015/i18n/languages/nl_NL.js +11 -3
  376. package/esm2015/i18n/languages/pl_PL.js +11 -3
  377. package/esm2015/i18n/languages/pt_BR.js +11 -3
  378. package/esm2015/i18n/languages/pt_PT.js +11 -3
  379. package/esm2015/i18n/languages/ro_RO.js +11 -3
  380. package/esm2015/i18n/languages/ru_RU.js +11 -3
  381. package/esm2015/i18n/languages/sk_SK.js +11 -3
  382. package/esm2015/i18n/languages/sl_SI.js +11 -3
  383. package/esm2015/i18n/languages/sr_RS.js +11 -3
  384. package/esm2015/i18n/languages/sv_SE.js +11 -3
  385. package/esm2015/i18n/languages/ta_IN.js +11 -3
  386. package/esm2015/i18n/languages/th_TH.js +29 -21
  387. package/esm2015/i18n/languages/tr_TR.js +11 -3
  388. package/esm2015/i18n/languages/uk_UA.js +11 -3
  389. package/esm2015/i18n/languages/vi_VN.js +11 -3
  390. package/esm2015/i18n/languages/zh_CN.js +6 -2
  391. package/esm2015/i18n/languages/zh_TW.js +10 -3
  392. package/esm2015/icon/icon.component.js +7 -6
  393. package/esm2015/icon/icon.module.js +4 -4
  394. package/esm2015/icon/icon.property.js +3 -3
  395. package/esm2015/icon/icon.service.js +6 -6
  396. package/esm2015/inner/inner.component.js +5 -5
  397. package/esm2015/inner/inner.module.js +4 -4
  398. package/esm2015/inner/inner.property.js +3 -3
  399. package/esm2015/input/input-group.component.js +4 -6
  400. package/esm2015/input/input.component.js +20 -7
  401. package/esm2015/input/input.module.js +4 -4
  402. package/esm2015/input/input.property.js +14 -7
  403. package/esm2015/input-number/input-number.component.js +9 -5
  404. package/esm2015/input-number/input-number.module.js +7 -6
  405. package/esm2015/input-number/input-number.property.js +17 -5
  406. package/esm2015/layout/col.component.js +3 -3
  407. package/esm2015/layout/layout.module.js +4 -4
  408. package/esm2015/layout/layout.property.js +6 -6
  409. package/esm2015/layout/row.component.js +3 -3
  410. package/esm2015/link/link.component.js +3 -3
  411. package/esm2015/link/link.module.js +4 -4
  412. package/esm2015/link/link.property.js +3 -3
  413. package/esm2015/list/list-option.component.js +3 -3
  414. package/esm2015/list/list.component.js +8 -7
  415. package/esm2015/list/list.module.js +4 -4
  416. package/esm2015/list/list.property.js +7 -7
  417. package/esm2015/loading/loading.component.js +6 -5
  418. package/esm2015/loading/loading.module.js +4 -4
  419. package/esm2015/loading/loading.property.js +3 -3
  420. package/esm2015/menu/menu-node.component.js +4 -4
  421. package/esm2015/menu/menu.component.js +10 -10
  422. package/esm2015/menu/menu.module.js +4 -4
  423. package/esm2015/menu/menu.property.js +6 -6
  424. package/esm2015/message/message.component.js +5 -5
  425. package/esm2015/message/message.module.js +4 -4
  426. package/esm2015/message/message.service.js +3 -3
  427. package/esm2015/message-box/message-box.component.js +20 -24
  428. package/esm2015/message-box/message-box.module.js +4 -4
  429. package/esm2015/message-box/message-box.service.js +10 -8
  430. package/esm2015/notification/notification.component.js +5 -5
  431. package/esm2015/notification/notification.module.js +4 -4
  432. package/esm2015/notification/notification.property.js +1 -1
  433. package/esm2015/notification/notification.service.js +3 -3
  434. package/esm2015/outlet/outlet.directive.js +3 -3
  435. package/esm2015/outlet/outlet.module.js +4 -4
  436. package/esm2015/page-header/page-header.component.js +3 -3
  437. package/esm2015/page-header/page-header.module.js +4 -4
  438. package/esm2015/page-header/page-header.property.js +3 -3
  439. package/esm2015/pagination/pagination.component.js +45 -7
  440. package/esm2015/pagination/pagination.module.js +10 -6
  441. package/esm2015/pagination/pagination.property.js +52 -4
  442. package/esm2015/pattern/pattern.component.js +3 -3
  443. package/esm2015/pattern/pattern.module.js +4 -4
  444. package/esm2015/popconfirm/popconfirm.component.js +3 -3
  445. package/esm2015/popconfirm/popconfirm.module.js +4 -4
  446. package/esm2015/popconfirm/popconfirm.property.js +3 -3
  447. package/esm2015/popover/popover-portal.component.js +4 -4
  448. package/esm2015/popover/popover.directive.js +7 -6
  449. package/esm2015/popover/popover.module.js +4 -4
  450. package/esm2015/popover/popover.property.js +3 -3
  451. package/esm2015/portal/portal.module.js +4 -4
  452. package/esm2015/portal/portal.service.js +3 -3
  453. package/esm2015/progress/progress.component.js +7 -6
  454. package/esm2015/progress/progress.module.js +4 -4
  455. package/esm2015/progress/progress.property.js +3 -3
  456. package/esm2015/radio/radio.component.js +7 -6
  457. package/esm2015/radio/radio.module.js +4 -4
  458. package/esm2015/radio/radio.property.js +4 -4
  459. package/esm2015/rate/rate.component.js +9 -9
  460. package/esm2015/rate/rate.module.js +4 -4
  461. package/esm2015/rate/rate.property.js +3 -3
  462. package/esm2015/result/result.component.js +3 -3
  463. package/esm2015/result/result.module.js +4 -4
  464. package/esm2015/result/result.property.js +3 -3
  465. package/esm2015/ripple/ripple.directive.js +4 -4
  466. package/esm2015/ripple/ripple.module.js +4 -4
  467. package/esm2015/ripple/ripple.property.js +4 -4
  468. package/esm2015/select/select-portal.component.js +6 -6
  469. package/esm2015/select/select.component.js +15 -11
  470. package/esm2015/select/select.module.js +4 -4
  471. package/esm2015/select/select.property.js +15 -4
  472. package/esm2015/skeleton/skeleton.component.js +6 -5
  473. package/esm2015/skeleton/skeleton.module.js +4 -4
  474. package/esm2015/skeleton/skeleton.property.js +3 -3
  475. package/esm2015/slider/slider.component.js +11 -12
  476. package/esm2015/slider/slider.module.js +4 -4
  477. package/esm2015/slider/slider.property.js +3 -3
  478. package/esm2015/slider-select/slider-select.component.js +3 -3
  479. package/esm2015/slider-select/slider-select.module.js +4 -4
  480. package/esm2015/slider-select/slider-select.property.js +3 -3
  481. package/esm2015/statistic/countdown.component.js +8 -7
  482. package/esm2015/statistic/statistic.component.js +6 -5
  483. package/esm2015/statistic/statistic.module.js +4 -4
  484. package/esm2015/statistic/statistic.property.js +6 -6
  485. package/esm2015/steps/steps.component.js +9 -7
  486. package/esm2015/steps/steps.module.js +7 -6
  487. package/esm2015/steps/steps.property.js +6 -4
  488. package/esm2015/switch/switch.component.js +3 -3
  489. package/esm2015/switch/switch.module.js +4 -4
  490. package/esm2015/switch/switch.property.js +3 -3
  491. package/esm2015/table/drag.directive.js +5 -5
  492. package/esm2015/table/table-body.component.js +7 -6
  493. package/esm2015/table/table-foot.component.js +4 -4
  494. package/esm2015/table/table-head.component.js +7 -6
  495. package/esm2015/table/table.component.js +9 -8
  496. package/esm2015/table/table.module.js +4 -4
  497. package/esm2015/table/table.property.js +13 -13
  498. package/esm2015/tabs/tab-content.component.js +3 -3
  499. package/esm2015/tabs/tab.component.js +4 -4
  500. package/esm2015/tabs/tabs.component.js +9 -8
  501. package/esm2015/tabs/tabs.module.js +4 -4
  502. package/esm2015/tabs/tabs.property.js +6 -6
  503. package/esm2015/tag/tag.component.js +10 -5
  504. package/esm2015/tag/tag.module.js +4 -4
  505. package/esm2015/tag/tag.property.js +10 -4
  506. package/esm2015/text-retract/text-retract.component.js +6 -5
  507. package/esm2015/text-retract/text-retract.module.js +4 -4
  508. package/esm2015/text-retract/text-retract.property.js +3 -3
  509. package/esm2015/textarea/textarea.component.js +6 -5
  510. package/esm2015/textarea/textarea.module.js +4 -4
  511. package/esm2015/textarea/textarea.property.js +4 -14
  512. package/esm2015/theme/theme.component.js +5 -5
  513. package/esm2015/theme/theme.module.js +4 -4
  514. package/esm2015/theme/theme.property.js +4 -4
  515. package/esm2015/time-ago/time-ago.module.js +4 -4
  516. package/esm2015/time-ago/time-ago.pipe.js +3 -3
  517. package/esm2015/time-picker/time-picker-frame.component.js +22 -12
  518. package/esm2015/time-picker/time-picker-portal.component.js +5 -5
  519. package/esm2015/time-picker/time-picker.component.js +31 -15
  520. package/esm2015/time-picker/time-picker.module.js +4 -4
  521. package/esm2015/time-picker/time-picker.property.js +16 -5
  522. package/esm2015/time-range/time-range.module.js +4 -4
  523. package/esm2015/time-range/time-range.pipe.js +3 -3
  524. package/esm2015/timeline/timeline.component.js +7 -6
  525. package/esm2015/timeline/timeline.module.js +4 -4
  526. package/esm2015/timeline/timeline.property.js +3 -3
  527. package/esm2015/tooltip/tooltip-portal.component.js +4 -4
  528. package/esm2015/tooltip/tooltip.directive.js +7 -6
  529. package/esm2015/tooltip/tooltip.module.js +4 -4
  530. package/esm2015/tooltip/tooltip.property.js +4 -4
  531. package/esm2015/transfer/transfer.component.js +7 -6
  532. package/esm2015/transfer/transfer.module.js +4 -4
  533. package/esm2015/transfer/transfer.property.js +3 -3
  534. package/esm2015/tree/tree-node.component.js +5 -5
  535. package/esm2015/tree/tree.component.js +11 -10
  536. package/esm2015/tree/tree.module.js +4 -4
  537. package/esm2015/tree/tree.property.js +7 -7
  538. package/esm2015/tree-file/tree-file.component.js +3 -3
  539. package/esm2015/tree-file/tree-file.module.js +4 -4
  540. package/esm2015/tree-file/tree-file.property.js +3 -3
  541. package/esm2015/typography/typography.component.js +3 -3
  542. package/esm2015/typography/typography.module.js +4 -4
  543. package/esm2015/typography/typography.property.js +3 -3
  544. package/esm2015/upload/upload-portal.component.js +5 -5
  545. package/esm2015/upload/upload.component.js +7 -6
  546. package/esm2015/upload/upload.module.js +4 -4
  547. package/esm2015/upload/upload.property.js +3 -3
  548. package/fesm2015/ng-nest-ui-affix.js +10 -10
  549. package/fesm2015/ng-nest-ui-alert.js +10 -10
  550. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  551. package/fesm2015/ng-nest-ui-anchor.js +11 -11
  552. package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
  553. package/fesm2015/ng-nest-ui-api.js +7 -7
  554. package/fesm2015/ng-nest-ui-auto-complete.js +37 -18
  555. package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
  556. package/fesm2015/ng-nest-ui-avatar.js +10 -10
  557. package/fesm2015/ng-nest-ui-back-top.js +12 -12
  558. package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
  559. package/fesm2015/ng-nest-ui-badge.js +12 -11
  560. package/fesm2015/ng-nest-ui-badge.js.map +1 -1
  561. package/fesm2015/ng-nest-ui-base-form.js +36 -12
  562. package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
  563. package/fesm2015/ng-nest-ui-border.js +7 -7
  564. package/fesm2015/ng-nest-ui-button.js +22 -19
  565. package/fesm2015/ng-nest-ui-button.js.map +1 -1
  566. package/fesm2015/ng-nest-ui-calendar.js +14 -13
  567. package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
  568. package/fesm2015/ng-nest-ui-card.js +10 -10
  569. package/fesm2015/ng-nest-ui-carousel.js +28 -27
  570. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  571. package/fesm2015/ng-nest-ui-cascade.js +80 -28
  572. package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
  573. package/fesm2015/ng-nest-ui-checkbox.js +13 -12
  574. package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
  575. package/fesm2015/ng-nest-ui-collapse.js +16 -16
  576. package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
  577. package/fesm2015/ng-nest-ui-color-picker.js +55 -24
  578. package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
  579. package/fesm2015/ng-nest-ui-color.js +11 -11
  580. package/fesm2015/ng-nest-ui-color.js.map +1 -1
  581. package/fesm2015/ng-nest-ui-comment.js +19 -18
  582. package/fesm2015/ng-nest-ui-comment.js.map +1 -1
  583. package/fesm2015/ng-nest-ui-container.js +32 -32
  584. package/fesm2015/ng-nest-ui-container.js.map +1 -1
  585. package/fesm2015/ng-nest-ui-core.js +106 -25
  586. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  587. package/fesm2015/ng-nest-ui-crumb.js +13 -12
  588. package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
  589. package/fesm2015/ng-nest-ui-date-picker.js +325 -190
  590. package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
  591. package/fesm2015/ng-nest-ui-description.js +21 -22
  592. package/fesm2015/ng-nest-ui-description.js.map +1 -1
  593. package/fesm2015/ng-nest-ui-dialog.js +12 -11
  594. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  595. package/fesm2015/ng-nest-ui-doc.js +7 -7
  596. package/fesm2015/ng-nest-ui-drawer.js +12 -11
  597. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  598. package/fesm2015/ng-nest-ui-dropdown.js +17 -16
  599. package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
  600. package/fesm2015/ng-nest-ui-empty.js +10 -10
  601. package/fesm2015/ng-nest-ui-examples.js +7 -7
  602. package/fesm2015/ng-nest-ui-find.js +31 -17
  603. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  604. package/fesm2015/ng-nest-ui-form.js +22 -26
  605. package/fesm2015/ng-nest-ui-form.js.map +1 -1
  606. package/fesm2015/ng-nest-ui-highlight.js +12 -11
  607. package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
  608. package/fesm2015/ng-nest-ui-i18n.js +532 -131
  609. package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
  610. package/fesm2015/ng-nest-ui-icon.js +18 -18
  611. package/fesm2015/ng-nest-ui-icon.js.map +1 -1
  612. package/fesm2015/ng-nest-ui-inner.js +11 -11
  613. package/fesm2015/ng-nest-ui-inner.js.map +1 -1
  614. package/fesm2015/ng-nest-ui-input-number.js +31 -14
  615. package/fesm2015/ng-nest-ui-input-number.js.map +1 -1
  616. package/fesm2015/ng-nest-ui-input.js +39 -21
  617. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  618. package/fesm2015/ng-nest-ui-layout.js +16 -16
  619. package/fesm2015/ng-nest-ui-link.js +10 -10
  620. package/fesm2015/ng-nest-ui-list.js +20 -19
  621. package/fesm2015/ng-nest-ui-list.js.map +1 -1
  622. package/fesm2015/ng-nest-ui-loading.js +12 -11
  623. package/fesm2015/ng-nest-ui-loading.js.map +1 -1
  624. package/fesm2015/ng-nest-ui-menu.js +22 -22
  625. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  626. package/fesm2015/ng-nest-ui-message-box.js +32 -34
  627. package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
  628. package/fesm2015/ng-nest-ui-message.js +11 -11
  629. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  630. package/fesm2015/ng-nest-ui-notification.js +11 -11
  631. package/fesm2015/ng-nest-ui-notification.js.map +1 -1
  632. package/fesm2015/ng-nest-ui-outlet.js +7 -7
  633. package/fesm2015/ng-nest-ui-page-header.js +10 -10
  634. package/fesm2015/ng-nest-ui-pagination.js +104 -14
  635. package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
  636. package/fesm2015/ng-nest-ui-pattern.js +7 -7
  637. package/fesm2015/ng-nest-ui-popconfirm.js +10 -10
  638. package/fesm2015/ng-nest-ui-popover.js +16 -15
  639. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  640. package/fesm2015/ng-nest-ui-portal.js +7 -7
  641. package/fesm2015/ng-nest-ui-progress.js +13 -12
  642. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  643. package/fesm2015/ng-nest-ui-radio.js +13 -12
  644. package/fesm2015/ng-nest-ui-radio.js.map +1 -1
  645. package/fesm2015/ng-nest-ui-rate.js +15 -15
  646. package/fesm2015/ng-nest-ui-rate.js.map +1 -1
  647. package/fesm2015/ng-nest-ui-result.js +10 -10
  648. package/fesm2015/ng-nest-ui-ripple.js +10 -10
  649. package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
  650. package/fesm2015/ng-nest-ui-select.js +37 -22
  651. package/fesm2015/ng-nest-ui-select.js.map +1 -1
  652. package/fesm2015/ng-nest-ui-skeleton.js +12 -11
  653. package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
  654. package/fesm2015/ng-nest-ui-slider-select.js +10 -10
  655. package/fesm2015/ng-nest-ui-slider.js +17 -18
  656. package/fesm2015/ng-nest-ui-slider.js.map +1 -1
  657. package/fesm2015/ng-nest-ui-statistic.js +22 -20
  658. package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
  659. package/fesm2015/ng-nest-ui-steps.js +19 -14
  660. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  661. package/fesm2015/ng-nest-ui-switch.js +10 -10
  662. package/fesm2015/ng-nest-ui-table.js +43 -40
  663. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  664. package/fesm2015/ng-nest-ui-tabs.js +24 -23
  665. package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
  666. package/fesm2015/ng-nest-ui-tag.js +22 -11
  667. package/fesm2015/ng-nest-ui-tag.js.map +1 -1
  668. package/fesm2015/ng-nest-ui-text-retract.js +12 -11
  669. package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
  670. package/fesm2015/ng-nest-ui-textarea.js +12 -21
  671. package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
  672. package/fesm2015/ng-nest-ui-theme.js +11 -11
  673. package/fesm2015/ng-nest-ui-theme.js.map +1 -1
  674. package/fesm2015/ng-nest-ui-time-ago.js +7 -7
  675. package/fesm2015/ng-nest-ui-time-picker.js +73 -36
  676. package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
  677. package/fesm2015/ng-nest-ui-time-range.js +7 -7
  678. package/fesm2015/ng-nest-ui-timeline.js +13 -12
  679. package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
  680. package/fesm2015/ng-nest-ui-tooltip.js +16 -15
  681. package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
  682. package/fesm2015/ng-nest-ui-transfer.js +13 -12
  683. package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
  684. package/fesm2015/ng-nest-ui-tree-file.js +10 -10
  685. package/fesm2015/ng-nest-ui-tree.js +24 -23
  686. package/fesm2015/ng-nest-ui-tree.js.map +1 -1
  687. package/fesm2015/ng-nest-ui-typography.js +10 -10
  688. package/fesm2015/ng-nest-ui-upload.js +17 -16
  689. package/fesm2015/ng-nest-ui-upload.js.map +1 -1
  690. package/find/find.component.d.ts +1 -1
  691. package/find/find.property.d.ts +22 -2
  692. package/form/control.component.d.ts +1 -1
  693. package/form/form.component.d.ts +1 -1
  694. package/form/form.property.d.ts +6 -6
  695. package/i18n/languages/ar_EG.d.ts +8 -0
  696. package/i18n/languages/bg_BG.d.ts +8 -0
  697. package/i18n/languages/ca_ES.d.ts +8 -0
  698. package/i18n/languages/cs_CZ.d.ts +8 -0
  699. package/i18n/languages/da_DK.d.ts +8 -0
  700. package/i18n/languages/de_DE.d.ts +8 -0
  701. package/i18n/languages/el_GR.d.ts +8 -0
  702. package/i18n/languages/en_GB.d.ts +8 -0
  703. package/i18n/languages/en_US.d.ts +5 -0
  704. package/i18n/languages/es_ES.d.ts +8 -0
  705. package/i18n/languages/et_EE.d.ts +8 -0
  706. package/i18n/languages/fa_IR.d.ts +8 -0
  707. package/i18n/languages/fi_FI.d.ts +8 -0
  708. package/i18n/languages/fr_BE.d.ts +8 -0
  709. package/i18n/languages/fr_FR.d.ts +8 -0
  710. package/i18n/languages/he_IL.d.ts +8 -0
  711. package/i18n/languages/hi_IN.d.ts +8 -0
  712. package/i18n/languages/hr_HR.d.ts +8 -0
  713. package/i18n/languages/hu_HU.d.ts +8 -0
  714. package/i18n/languages/hy_AM.d.ts +8 -0
  715. package/i18n/languages/id_ID.d.ts +8 -0
  716. package/i18n/languages/is_IS.d.ts +8 -0
  717. package/i18n/languages/it_IT.d.ts +8 -0
  718. package/i18n/languages/ja_JP.d.ts +8 -0
  719. package/i18n/languages/ka_GE.d.ts +8 -0
  720. package/i18n/languages/kn_IN.d.ts +8 -0
  721. package/i18n/languages/ko_KR.d.ts +8 -0
  722. package/i18n/languages/ku_IQ.d.ts +8 -0
  723. package/i18n/languages/lv_LV.d.ts +8 -0
  724. package/i18n/languages/mn_MN.d.ts +8 -0
  725. package/i18n/languages/ms_MY.d.ts +8 -0
  726. package/i18n/languages/nb_NO.d.ts +8 -0
  727. package/i18n/languages/ne_NP.d.ts +8 -0
  728. package/i18n/languages/nl_BE.d.ts +8 -0
  729. package/i18n/languages/nl_NL.d.ts +8 -0
  730. package/i18n/languages/pl_PL.d.ts +8 -0
  731. package/i18n/languages/pt_BR.d.ts +8 -0
  732. package/i18n/languages/pt_PT.d.ts +8 -0
  733. package/i18n/languages/ro_RO.d.ts +8 -0
  734. package/i18n/languages/ru_RU.d.ts +8 -0
  735. package/i18n/languages/sk_SK.d.ts +8 -0
  736. package/i18n/languages/sl_SI.d.ts +8 -0
  737. package/i18n/languages/sr_RS.d.ts +8 -0
  738. package/i18n/languages/sv_SE.d.ts +8 -0
  739. package/i18n/languages/ta_IN.d.ts +8 -0
  740. package/i18n/languages/th_TH.d.ts +8 -0
  741. package/i18n/languages/tr_TR.d.ts +8 -0
  742. package/i18n/languages/uk_UA.d.ts +8 -0
  743. package/i18n/languages/vi_VN.d.ts +8 -0
  744. package/i18n/languages/zh_CN.d.ts +4 -0
  745. package/i18n/languages/zh_TW.d.ts +7 -0
  746. package/inner/inner.component.d.ts +1 -1
  747. package/input/input-group.component.d.ts +2 -4
  748. package/input/input.component.d.ts +3 -1
  749. package/input/input.property.d.ts +13 -1
  750. package/input-number/input-number.component.d.ts +3 -0
  751. package/input-number/input-number.module.d.ts +4 -3
  752. package/input-number/input-number.property.d.ts +12 -2
  753. package/list/list.component.d.ts +2 -2
  754. package/menu/menu.component.d.ts +1 -1
  755. package/message/message.component.d.ts +1 -1
  756. package/message-box/message-box.component.d.ts +2 -1
  757. package/notification/notification.component.d.ts +1 -1
  758. package/package.json +1 -1
  759. package/pagination/pagination.component.d.ts +5 -1
  760. package/pagination/pagination.module.d.ts +7 -3
  761. package/pagination/pagination.property.d.ts +49 -3
  762. package/radio/radio.component.d.ts +1 -1
  763. package/rate/rate.component.d.ts +5 -5
  764. package/select/select-portal.component.d.ts +3 -3
  765. package/select/select.component.d.ts +1 -1
  766. package/select/select.property.d.ts +12 -2
  767. package/slider/slider.component.d.ts +1 -1
  768. package/steps/steps.component.d.ts +1 -1
  769. package/steps/steps.module.d.ts +2 -1
  770. package/steps/steps.property.d.ts +7 -2
  771. package/table/table-body.component.d.ts +1 -1
  772. package/table/table-head.component.d.ts +1 -1
  773. package/table/table.component.d.ts +1 -1
  774. package/table/table.property.d.ts +10 -0
  775. package/tag/tag.component.d.ts +2 -1
  776. package/tag/tag.property.d.ts +6 -1
  777. package/textarea/textarea.property.d.ts +1 -6
  778. package/theme/theme.component.d.ts +1 -1
  779. package/time-picker/time-picker-frame.component.d.ts +4 -0
  780. package/time-picker/time-picker-portal.component.d.ts +3 -3
  781. package/time-picker/time-picker.component.d.ts +5 -3
  782. package/time-picker/time-picker.property.d.ts +12 -2
  783. package/timeline/timeline.component.d.ts +1 -1
  784. package/transfer/transfer.component.d.ts +1 -1
  785. package/tree/tree-node.component.d.ts +1 -1
  786. package/tree/tree.component.d.ts +1 -1
  787. package/upload/upload.component.d.ts +3 -3
@@ -14,12 +14,12 @@ const X_CONFIG_NAME = 'empty';
14
14
  */
15
15
  export class XEmptyProperty {
16
16
  }
17
- /** @nocollapse */ XEmptyProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyProperty, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- /** @nocollapse */ XEmptyProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XEmptyProperty, selector: "ng-component", inputs: { img: "img", content: "content" }, ngImport: i0, template: '', isInline: true });
17
+ /** @nocollapse */ XEmptyProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyProperty, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ /** @nocollapse */ XEmptyProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XEmptyProperty, selector: "ng-component", inputs: { img: "img", content: "content" }, ngImport: i0, template: '', isInline: true });
19
19
  __decorate([
20
20
  XWithConfig(X_CONFIG_NAME)
21
21
  ], XEmptyProperty.prototype, "content", void 0);
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyProperty, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyProperty, decorators: [{
23
23
  type: Component,
24
24
  args: [{ template: '' }]
25
25
  }], propDecorators: { img: [{
@@ -8,9 +8,9 @@ export class XExamplesComponent {
8
8
  this.renderer.addClass(this.elementRef.nativeElement, XExamplesPrefix);
9
9
  }
10
10
  }
11
- /** @nocollapse */ XExamplesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12
- /** @nocollapse */ XExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XExamplesComponent, selector: "x-examples", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-examples{margin:0;padding:0;display:block}.x-examples .x-examples-html{padding:1rem;margin:1rem 0;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;position:relative}.x-examples .x-examples-tools{position:absolute;bottom:-.875rem;left:0;display:flex;width:100%;justify-content:center}.x-examples .x-examples-tools .x-buttons{background-color:var(--x-background);padding:0 .25rem}.x-examples .x-examples-code{padding:1rem 0}.x-examples .x-examples-code>x-tabs>.x-tabs{border-radius:.125rem}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight{border-top:0}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight>pre{background-color:initial}.x-examples .x-examples-info{padding:1rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;background-color:var(--x-background-a100)}.x-examples .x-examples-info>p{margin:.25rem 0 0}.x-examples .x-examples-info>p:first-of-type{margin-top:0}.x-examples .x-examples-info>ul{margin:.25rem 0}.x-examples .x-examples-info>ul>li{list-style-type:square;margin-left:1.25rem;line-height:1.75rem}.x-examples>x-tabs>.x-tabs{width:100%}.x-examples>x-tabs>.x-tabs>.x-tabs-list{border:none}.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list{border:none;background:#0000000d}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight{border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list{padding:0}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider>.x-slider-scroll>ul{min-width:6rem}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesComponent, decorators: [{
11
+ /** @nocollapse */ XExamplesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12
+ /** @nocollapse */ XExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XExamplesComponent, selector: "x-examples", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-examples{margin:0;padding:0;display:block}.x-examples .x-examples-html{padding:1rem;margin:1rem 0;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;position:relative}.x-examples .x-examples-tools{position:absolute;bottom:-.875rem;left:0;display:flex;width:100%;justify-content:center}.x-examples .x-examples-tools .x-buttons{background-color:var(--x-background);padding:0 .25rem}.x-examples .x-examples-code{padding:1rem 0}.x-examples .x-examples-code>x-tabs>.x-tabs{border-radius:.125rem}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight{border-top:0}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight>pre{background-color:transparent}.x-examples .x-examples-info{padding:1rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;background-color:var(--x-background-a100)}.x-examples .x-examples-info>p{margin:.25rem 0 0}.x-examples .x-examples-info>p:first-of-type{margin-top:0}.x-examples .x-examples-info>ul{margin:.25rem 0}.x-examples .x-examples-info>ul>li{list-style-type:square;margin-left:1.25rem;line-height:1.75rem}.x-examples>x-tabs>.x-tabs{width:100%}.x-examples>x-tabs>.x-tabs>.x-tabs-list{border:none}.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list{border:none;background:rgba(0,0,0,.05)}.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list{padding:0}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider>.x-slider-scroll>ul{min-width:6rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{
16
16
  selector: `${XExamplesPrefix}`,
@@ -4,10 +4,10 @@ import { XExamplesComponent } from './examples.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class XExamplesModule {
6
6
  }
7
- /** @nocollapse */ XExamplesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- /** @nocollapse */ XExamplesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, declarations: [XExamplesComponent], imports: [CommonModule], exports: [XExamplesComponent] });
9
- /** @nocollapse */ XExamplesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, imports: [[CommonModule]] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, decorators: [{
7
+ /** @nocollapse */ XExamplesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ /** @nocollapse */ XExamplesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, declarations: [XExamplesComponent], imports: [CommonModule], exports: [XExamplesComponent] });
9
+ /** @nocollapse */ XExamplesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, imports: [[CommonModule]] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [XExamplesComponent],
@@ -1,6 +1,6 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild } from '@angular/core';
2
2
  import { XFindProperty, XFindPrefix } from './find.property';
3
- import { XClearClass, XResize, XIsUndefined, XIsChange } from '@ng-nest/ui/core';
3
+ import { XClearClass, XResize, XIsUndefined, XIsChange, XIsEmpty } from '@ng-nest/ui/core';
4
4
  import { debounceTime, takeUntil } from 'rxjs/operators';
5
5
  import { Subject, Observable } from 'rxjs';
6
6
  import { XValueAccessor } from '@ng-nest/ui/base-form';
@@ -67,7 +67,9 @@ export class XFindComponent extends XFindProperty {
67
67
  this.cdr.detectChanges();
68
68
  }
69
69
  ngOnChanges(simples) {
70
- XIsChange(simples.tableData) && this.setTableCheckedRow();
70
+ const { tableData, labelAlign, size } = simples;
71
+ XIsChange(tableData) && this.setTableCheckedRow();
72
+ XIsChange(labelAlign, size) && this.setClassMap();
71
73
  }
72
74
  ngOnInit() {
73
75
  this.setFlex(this.find.nativeElement, this.renderer, this.justify, this.align, this.direction);
@@ -84,8 +86,9 @@ export class XFindComponent extends XFindProperty {
84
86
  (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
85
87
  }
86
88
  setClassMap() {
87
- XClearClass(this.labelMap);
89
+ XClearClass(this.labelMap, this.classMap);
88
90
  this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;
91
+ this.classMap[`x-find-${this.size}`] = !XIsEmpty(this.size);
89
92
  }
90
93
  setSubscribe() {
91
94
  var _a, _b;
@@ -191,7 +194,7 @@ export class XFindComponent extends XFindProperty {
191
194
  if (this.hasTable) {
192
195
  let it = (_a = this.tableCom) === null || _a === void 0 ? void 0 : _a.tableData.find((x) => item.id === x.id);
193
196
  if (it) {
194
- it.$checked = false;
197
+ it['$checked'] = false;
195
198
  (_b = this.tableCom) === null || _b === void 0 ? void 0 : _b.bodyChange();
196
199
  }
197
200
  }
@@ -232,7 +235,7 @@ export class XFindComponent extends XFindProperty {
232
235
  rowMultiple(data) {
233
236
  if (typeof this.temp === 'undefined')
234
237
  this.temp = [];
235
- if (data.$checked) {
238
+ if (data['$checked']) {
236
239
  this.temp = [...this.temp, data];
237
240
  }
238
241
  else {
@@ -283,7 +286,7 @@ export class XFindComponent extends XFindProperty {
283
286
  treeCheckboxChange(node) {
284
287
  this.treeMultiple(node);
285
288
  }
286
- trackByItem(index, item) {
289
+ trackByItem(_index, item) {
287
290
  return item.id;
288
291
  }
289
292
  formControlChanges() {
@@ -319,9 +322,9 @@ export class XFindComponent extends XFindProperty {
319
322
  this.cdr.detectChanges();
320
323
  }
321
324
  }
322
- /** @nocollapse */ XFindComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
323
- /** @nocollapse */ XFindComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XFindComponent, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button #buttonCom icon=\"fto-search\" [disabled]=\"disabled\" (click)=\"showModal()\"></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag *ngFor=\"let item of value; index as i; trackBy: trackByItem\" closable [disabled]=\"disabled\" (close)=\"tagClose(i)\">{{\r\n item[columnLabel]\r\n }}</x-tag>\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag *ngIf=\"value\" closable [disabled]=\"disabled\" (close)=\"tagClose()\">{{ value[columnLabel] }}</x-tag>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div class=\"x-find-dialog-tree\" *ngIf=\"hasTree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input [label]=\"search.label\" direction=\"row\" (xKeydown)=\"searchKeyDown($event);\" [(ngModel)]=\"search.value\"></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{search.button || '\u67E5\u8BE2'}}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div *ngIf=\"multiple\" class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n <x-empty *ngIf=\"getEmpty\" content=\"\u8BF7\u9009\u62E9\u6570\u636E\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag *ngFor=\"let item of temp; index as i; trackBy: trackByItem\" closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:auto;max-height:none;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}"], components: [{ type: i2.XButtonComponent, selector: "x-button" }, { type: i3.XTagComponent, selector: "x-tag" }, { type: i4.XDialogComponent, selector: "x-dialog" }, { type: i5.XTreeComponent, selector: "x-tree" }, { type: i6.XInputComponent, selector: "x-input" }, { type: i7.XTableComponent, selector: "x-table" }, { type: i8.XEmptyComponent, selector: "x-empty" }, { type: i9.XIconComponent, selector: "x-icon" }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindComponent, decorators: [{
325
+ /** @nocollapse */ XFindComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
326
+ /** @nocollapse */ XFindComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XFindComponent, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button #buttonCom icon=\"fto-search\" [onlyIcon]=\"!bordered\" [size]=\"size\" [disabled]=\"disabled\" (click)=\"showModal()\"></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag *ngIf=\"value\" closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div class=\"x-find-dialog-tree\" *ngIf=\"hasTree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input [label]=\"search.label\" direction=\"row\" (xKeydown)=\"searchKeyDown($event)\" [(ngModel)]=\"search.value\"></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div *ngIf=\"multiple\" class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n <x-empty *ngIf=\"getEmpty\" content=\"\u8BF7\u9009\u62E9\u6570\u636E\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag *ngFor=\"let item of temp; index as i; trackBy: trackByItem\" closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column{align-items:inherit}.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"], components: [{ type: i2.XButtonComponent, selector: "x-button" }, { type: i3.XTagComponent, selector: "x-tag" }, { type: i4.XDialogComponent, selector: "x-dialog" }, { type: i5.XTreeComponent, selector: "x-tree" }, { type: i6.XInputComponent, selector: "x-input" }, { type: i7.XTableComponent, selector: "x-table" }, { type: i8.XEmptyComponent, selector: "x-empty" }, { type: i9.XIconComponent, selector: "x-icon" }], directives: [{ type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindComponent, decorators: [{
325
328
  type: Component,
326
329
  args: [{
327
330
  selector: `${XFindPrefix}`,
@@ -353,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
353
356
  type: ViewChild,
354
357
  args: ['treeRef']
355
358
  }] } });
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBSWpHLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBVXZELE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQW9FL0MsWUFBbUIsUUFBbUIsRUFBVSxHQUFzQixFQUFTLGFBQTZCO1FBQzFHLEtBQUssRUFBRSxDQUFDO1FBRFMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBVjVHLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFFTCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVV6QyxDQUFDO0lBOURELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQ1csUUFBUSxDQUFDLEtBQWlCO1FBQ25DLElB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QUFDLFdBQVc7Z0JBT1gsUUFBUTtzQkFEbEIsU0FBUzt1QkFBQyxVQUFVO2dCQWFWLE9BQU87c0JBRGpCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRmluZFByb3BlcnR5LCBYRmluZFByZWZpeCB9IGZyb20gJy4vZmluZC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhDbGVhckNsYXNzLCBYUmVzaXplLCBYSXNVbmRlZmluZWQsIFhJc0NoYW5nZSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQ29tcG9uZW50LCBYVGFibGVSb3cgfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kaWFsb2cnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFRyZWVOb2RlLCBYVHJlZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEZpbmRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWEZpbmRDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEZpbmRDb21wb25lbnQgZXh0ZW5kcyBYRmluZFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaW5kJywgeyBzdGF0aWM6IHRydWUgfSkgZmluZCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nQ29tJykgZGlhbG9nQ29tITogWERpYWxvZ0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0YWJsZUNvbScpIHRhYmxlQ29tITogWFRhYmxlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWVDb20nKSB0cmVlQ29tITogWFRyZWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYnV0dG9uQ29tJykgYnV0dG9uQ29tITogWEJ1dHRvbkNvbXBvbmVudDtcclxuXHJcbiAgcHJpdmF0ZSBfdGFibGVSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHB1YmxpYyBnZXQgdGFibGVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlUmVmJylcclxuICBwdWJsaWMgc2V0IHRhYmxlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90YWJsZVJlZiA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5zZXRTdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyZWVSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHB1YmxpYyBnZXQgdHJlZVJlZigpOiBFbGVtZW50UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl90cmVlUmVmO1xyXG4gIH1cclxuICBAVmlld0NoaWxkKCd0cmVlUmVmJylcclxuICBwdWJsaWMgc2V0IHRyZWVSZWYodmFsdWU6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuX3RyZWVSZWYgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0RW1wdHkoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMudGVtcCB8fCB0aGlzLnRlbXAubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVDb2x1bW5zPy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWUoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAoQXJyYXkuaXNBcnJheSh0aGlzLnRyZWVEYXRhKSAmJiB0aGlzLnRyZWVEYXRhLmxlbmd0aCA+IDApIHx8IHRoaXMudHJlZURhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbiB8fCB0aGlzLnRyZWVEYXRhIGluc3RhbmNlb2YgT2JzZXJ2YWJsZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlVGFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZU11bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5tdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNTZWFyY2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2ggJiYgdGhpcy5oYXNUYWJsZTtcclxuICB9XHJcblxyXG4gIHRlbXA6IGFueTtcclxuICBoZWlnaHQgPSAxMDA7XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBYSXNDaGFuZ2Uoc2ltcGxlcy50YWJsZURhdGEpICYmIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmZpbmQubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldE11bHRpcGxlKCk7XHJcbiAgICB0aGlzLnNldFdpZHRoKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmxhYmVsTWFwKTtcclxuICAgIHRoaXMubGFiZWxNYXBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbn1gXSA9IHRoaXMubGFiZWxBbGlnbiA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldFN1YnNjcmliZSgpIHtcclxuICAgIGxldCByZXNpemVSZWY6IEVsZW1lbnRbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmID0gW3RoaXMudGFibGVSZWY/Lm5hdGl2ZUVsZW1lbnRdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmLnB1c2godGhpcy50cmVlUmVmPy5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICBYUmVzaXplKC4uLnJlc2l6ZVJlZilcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVSZWYpIHtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy50YWJsZVJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnRyZWVSZWY/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TXVsdGlwbGUoKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZUNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSkge1xyXG4gICAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW3sgaWQ6ICckY2hlY2tlZCcsIGxhYmVsOiAn6YCJ5oupJywgcm93Q2hlY2tlZDogdHJ1ZSwgdHlwZTogJ2NoZWNrYm94Jywgd2lkdGg6IDYwIH0sIC4uLnRoaXMudGFibGVDb2x1bW5zXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGgoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuZGlhbG9nV2lkdGgpKSB7XHJcbiAgICAgIGlmICgodGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHx8IHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzUwcmVtJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMzByZW0nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMjByZW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TW9kYWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuZGlhbG9nVmlzaWJsZSk7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudGVtcCA9ICh0aGlzLnZhbHVlIGFzIEFycmF5PGFueT4pLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG4gICAgICAgIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICAgICAgdGhpcy5zZXRUcmVlQ2hlY2tlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IHRoaXMudmFsdWUuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAgPSB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFRhYmxlQ2hlY2tlZFJvdygpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCBYSXNVbmRlZmluZWQodGhpcy50ZW1wKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaWRzID0gKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrZWRSb3cgPSB7XHJcbiAgICAgIC4uLnRoaXMudGFibGVDaGVja2VkUm93LFxyXG4gICAgICAkY2hlY2tlZDogaWRzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0VHJlZUNoZWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlTXVsdGlwbGUpIHRoaXMudHJlZUNoZWNrZWQgPSB0aGlzLnRlbXAubWFwKCh4OiBhbnkpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc3VyZSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRlbXA7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbCgpIHtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRpYWxvZ0Nsb3NlRG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlbXAgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGVtcENsb3NlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy50ZW1wLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRhYmxlQ29tPy50YWJsZURhdGEuZmluZCgoeCkgPT4gaXRlbS5pZCA9PT0geC5pZCk7XHJcbiAgICAgIGlmIChpdCkge1xyXG4gICAgICAgIGl0LiRjaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbT8uYm9keUNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRyZWVDb20/LnRyZWVEYXRhLmZpbmQoKHgpID0+IGl0ZW0uaWQgPT09IHguaWQpO1xyXG4gICAgICBpZiAoaXQpIHtcclxuICAgICAgICBpdC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgaXQuY2hhbmdlICYmIGl0LmNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbT8uY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhZ0Nsb3NlKGluZGV4OiBudW1iZXIgPSAtMSkge1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5yb3dNdWx0aXBsZShkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IGRhdGE7XHJcbiAgICAgIHRoaXMuc3VyZSgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd011bHRpcGxlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIGlmIChkYXRhLiRjaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IFsuLi50aGlzLnRlbXAsIGRhdGFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wLnNwbGljZShcclxuICAgICAgICAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gZGF0YS5pZCksXHJcbiAgICAgICAgMVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZU11bHRpcGxlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIC8vIG5vZGUuJGNoZWNrZWQgPSAhbm9kZS4kY2hlY2tlZDtcclxuICAgIGlmIChub2RlLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy50ZW1wID0gWy4uLnRoaXMudGVtcCwgbm9kZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAuc3BsaWNlKFxyXG4gICAgICAgICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBub2RlLmlkKSxcclxuICAgICAgICAxXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlQWN0aXZhdGVkQ2xpY2sobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIC8vIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVtcCA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy50cmVlVGFibGVDb25uZWN0KSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZVF1ZXJ5KSB0aGlzLnRhYmxlUXVlcnkgPSB7fTtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlUXVlcnkuZmlsdGVyKSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gW107XHJcbiAgICAgIGxldCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy50cmVlVGFibGVDb25uZWN0KTtcclxuICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgZmllbGQudmFsdWUgPSBub2RlLmlkO1xyXG4gICAgICAgIGZpZWxkLm9wZXJhdGlvbiA9ICc9JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gWy4uLnRoaXMudGFibGVRdWVyeS5maWx0ZXIsIHsgZmllbGQ6IHRoaXMudHJlZVRhYmxlQ29ubmVjdCwgdmFsdWU6IG5vZGUuaWQsIG9wZXJhdGlvbjogJz0nIH1dO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWVBY3RpdmF0ZWRDaGFuZ2UuZW1pdChub2RlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVDaGVja2JveENoYW5nZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIHRoaXMubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICB0aGlzLnRyZWVDb20/LnNldERhdGEoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5zZWFyY2hDbGljaygpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoLnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2hDbGljaygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNTZWFyY2gpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVRdWVyeSA9IHRoaXMudGFibGVRdWVyeSB8fCBbXTtcclxuICAgIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyIHx8IFtdO1xyXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyLmZpbmQoKHgpID0+IHguZmllbGQgPT09IHRoaXMuc2VhcmNoLmZpZWxkKTtcclxuXHJcbiAgICBpZiAoZmllbGQpIHtcclxuICAgICAgZmllbGQudmFsdWUgPSB0aGlzLnNlYXJjaC52YWx1ZSB8fCAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSBbLi4udGhpcy50YWJsZVF1ZXJ5Py5maWx0ZXIsIHRoaXMuc2VhcmNoXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlQ29tLmNoYW5nZSgxKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNmaW5kXHJcbiAgY2xhc3M9XCJ4LWZpbmRcIlxyXG4gIFtjbGFzcy54LWZsZXhdPVwianVzdGlmeSB8fCBhbGlnbiB8fCBkaXJlY3Rpb25cIlxyXG4gIFtjbGFzcy54LWNoZWNrZWRdPVwidmFsdWVcIlxyXG4gIFtjbGFzcy54LWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MueC1yZXF1aXJlZF09XCJyZXF1aXJlZElzRW1wdHlcIlxyXG4gIFtjbGFzcy54LWludmFsaWRdPVwiaW52YWxpZFwiXHJcbj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1yb3dcIj5cclxuICAgIDx4LWJ1dHRvbiAjYnV0dG9uQ29tIGljb249XCJmdG8tc2VhcmNoXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cInNob3dNb2RhbCgpXCI+PC94LWJ1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtdGFnc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGU7IGVsc2Ugc2luZ2xlVHBsXCI+XHJcbiAgICAgICAgPHgtdGFnICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIGNsb3NhYmxlIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbG9zZSk9XCJ0YWdDbG9zZShpKVwiPnt7XHJcbiAgICAgICAgICBpdGVtW2NvbHVtbkxhYmVsXVxyXG4gICAgICAgIH19PC94LXRhZz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlVHBsPlxyXG4gICAgICAgIDx4LXRhZyAqbmdJZj1cInZhbHVlXCIgY2xvc2FibGUgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsb3NlKT1cInRhZ0Nsb3NlKClcIj57eyB2YWx1ZVtjb2x1bW5MYWJlbF0gfX08L3gtdGFnPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHgtZGlhbG9nXHJcbiAgI2RpYWxvZ0NvbVxyXG4gIFt0aXRsZV09XCJkaWFsb2dUaXRsZVwiXHJcbiAgW3dpZHRoXT1cImRpYWxvZ1dpZHRoXCJcclxuICBbaGVpZ2h0XT1cImRpYWxvZ0hlaWdodFwiXHJcbiAgW2J1dHRvbnNDZW50ZXJdPVwiZGlhbG9nQnV0dG9uc0NlbnRlclwiXHJcbiAgWyh2aXNpYmxlKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJkaWFsb2dWaXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgKGNsb3NlRG9uZSk9XCJkaWFsb2dDbG9zZURvbmUoKVwiXHJcbiAgKGNhbmNlbCk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjbG9zZSk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjb25maXJtKT1cInN1cmUoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZ1wiIFtjbGFzcy54LWZpbmQtZGlhbG9nLXRyZWUtdGFibGVdPVwiaGFzVGFibGUgJiYgaGFzVHJlZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdHJlZVwiICpuZ0lmPVwiaGFzVHJlZVwiICN0cmVlUmVmIFtzdHlsZS5oZWlnaHQucHhdPVwiaGFzVHJlZVRhYmxlICYmIG11bHRpcGxlICYmIGhlaWdodFwiPlxyXG4gICAgICA8eC10cmVlXHJcbiAgICAgICAgI3RyZWVDb21cclxuICAgICAgICBbZGF0YV09XCJ0cmVlRGF0YVwiXHJcbiAgICAgICAgbm9kZUhlaWdodD1cIjEuOFwiXHJcbiAgICAgICAgWyhtYW51YWwpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgICAgIFthY3RpdmF0ZWRJZF09XCJ0cmVlQWN0aXZhdGVkSWRcIlxyXG4gICAgICAgIFtleHBhbmRlZExldmVsXT1cInRyZWVFeHBhbmRlZExldmVsXCJcclxuICAgICAgICAoYWN0aXZhdGVkQ2hhbmdlKT1cInRyZWVBY3RpdmF0ZWRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICBbY2hlY2tib3hdPVwiaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgICBbY2hlY2tlZF09XCJ0cmVlQ2hlY2tlZFwiXHJcbiAgICAgICAgKGNoZWNrYm94Q2hhbmdlKT1cInRyZWVDaGVja2JveENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbbGV2ZWxDaGVja109XCIhaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgPjwveC10cmVlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10YWJsZVwiICpuZ0lmPVwiaGFzVGFibGVcIiAjdGFibGVSZWY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtc2VhcmNoXCIgKm5nSWY9XCJoYXNTZWFyY2hcIj5cclxuICAgICAgICA8eC1pbnB1dCBbbGFiZWxdPVwic2VhcmNoLmxhYmVsXCIgZGlyZWN0aW9uPVwicm93XCIgKHhLZXlkb3duKT1cInNlYXJjaEtleURvd24oJGV2ZW50KTtcIiBbKG5nTW9kZWwpXT1cInNlYXJjaC52YWx1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICA8eC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBwbGFpbiAoY2xpY2spPVwic2VhcmNoQ2xpY2soKVwiPnt7c2VhcmNoLmJ1dHRvbiB8fCAn5p+l6K+iJ319PC94LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx4LXRhYmxlXHJcbiAgICAgICAgI3RhYmxlQ29tXHJcbiAgICAgICAgW2RhdGFdPVwidGFibGVEYXRhXCJcclxuICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnNcIlxyXG4gICAgICAgIFsobWFudWFsKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAgICAgICBbKGluZGV4KV09XCJ0YWJsZUluZGV4XCJcclxuICAgICAgICBbKHNpemUpXT1cInRhYmxlU2l6ZVwiXHJcbiAgICAgICAgW3F1ZXJ5XT1cInRhYmxlUXVlcnlcIlxyXG4gICAgICAgIFt0b3RhbF09XCJ0YWJsZVRvdGFsXCJcclxuICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwiIW11bHRpcGxlXCJcclxuICAgICAgICBbY2hlY2tlZFJvd109XCJ0YWJsZUNoZWNrZWRSb3dcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cInRhYmxlTG9hZGluZ1wiXHJcbiAgICAgICAgKGluZGV4Q2hhbmdlKT1cInRhYmxlSW5kZXhDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc29ydENoYW5nZSk9XCJ0YWJsZVNvcnRDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICBbKGFjdGl2YXRlZFJvdyldPVwidGFibGVBY3RpdmF0ZWRSb3dcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwidGFibGVBY3RpdmF0ZWRSb3dDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW3Jvd0hlaWdodF09XCJ0YWJsZVJvd0hlaWdodFwiXHJcbiAgICAgICAgW2JvZHlIZWlnaHRdPVwidGFibGVCb2R5SGVpZ2h0XCJcclxuICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0YWJsZVZpcnR1YWxTY3JvbGxcIlxyXG4gICAgICAgIFttaW5CdWZmZXJQeF09XCJ0YWJsZU1pbkJ1ZmZlclB4XCJcclxuICAgICAgICBbbWF4QnVmZmVyUHhdPVwidGFibGVNYXhCdWZmZXJQeFwiXHJcbiAgICAgICAgW2FkYXB0aW9uSGVpZ2h0XT1cInRhYmxlQWRhcHRpb25IZWlnaHRcIlxyXG4gICAgICAgIFtkb2NQZXJjZW50XT1cInRhYmxlRG9jUGVyY2VudFwiXHJcbiAgICAgID48L3gtdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZVwiIGNsYXNzPVwieC1maW5kLWRpYWxvZy1jaGVja2VkXCIgW2NsYXNzLngtZmluZC1lbXB0eV09XCJnZXRFbXB0eVwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCI+XHJcbiAgICAgIDx4LWVtcHR5ICpuZ0lmPVwiZ2V0RW1wdHlcIiBjb250ZW50PVwi6K+36YCJ5oup5pWw5o2uXCI+PC94LWVtcHR5PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10YWdzXCI+XHJcbiAgICAgICAgPHgtdGFnICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRlbXA7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCIgY2xvc2FibGUgKGNsb3NlKT1cInRlbXBDbG9zZShpLCBpdGVtKVwiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgaXRlbVtjb2x1bW5MYWJlbF0gfX08L3NwYW4+XHJcbiAgICAgICAgPC94LXRhZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC94LWRpYWxvZz5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdHJlZUxhYmVsVHBsIGxldC1ub2RlPVwiJG5vZGVcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10cmVlLW5vZGVcIj5cclxuICAgIDxzcGFuPnt7IG5vZGUubGFiZWwgfX0gPC9zcGFuPlxyXG4gICAgPHgtaWNvbiB0eXBlPVwiZnRvLWNoZWNrXCIgKm5nSWY9XCJub2RlLiRjaGVja2VkXCI+PC94LWljb24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFrQixRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFvRS9DLFlBQW1CLFFBQW1CLEVBQVUsR0FBc0IsRUFBUyxhQUE2QjtRQUMxRyxLQUFLLEVBQUUsQ0FBQztRQURTLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQVY1RyxXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFVekMsQ0FBQztJQTlERCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUNXLFFBQVEsQ0FBQyxLQUFp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QUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsY0FBYyxnQkFBZ0IsQ0FBQztpQkFDNUM7NkpBRXNDLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDWCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0MsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNDLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBT1gsUUFBUTtzQkFEbEIsU0FBUzt1QkFBQyxVQUFVO2dCQWFWLE9BQU87c0JBRGpCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRmluZFByb3BlcnR5LCBYRmluZFByZWZpeCB9IGZyb20gJy4vZmluZC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhDbGVhckNsYXNzLCBYUmVzaXplLCBYSXNVbmRlZmluZWQsIFhJc0NoYW5nZSwgWENvbmZpZ1NlcnZpY2UsIFhJc0VtcHR5IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUNvbXBvbmVudCwgWFRhYmxlUm93IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGFibGUnO1xyXG5pbXBvcnQgeyBYRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvZGlhbG9nJztcclxuaW1wb3J0IHsgWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSwgWFRyZWVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90cmVlJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hGaW5kUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbmQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhGaW5kQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhGaW5kQ29tcG9uZW50IGV4dGVuZHMgWEZpbmRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZmluZCcsIHsgc3RhdGljOiB0cnVlIH0pIGZpbmQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ0NvbScpIGRpYWxvZ0NvbSE6IFhEaWFsb2dDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgndGFibGVDb20nKSB0YWJsZUNvbSE6IFhUYWJsZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0cmVlQ29tJykgdHJlZUNvbSE6IFhUcmVlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbkNvbScpIGJ1dHRvbkNvbSE6IFhCdXR0b25Db21wb25lbnQ7XHJcblxyXG4gIHByaXZhdGUgX3RhYmxlUmVmITogRWxlbWVudFJlZjtcclxuICBwdWJsaWMgZ2V0IHRhYmxlUmVmKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlUmVmO1xyXG4gIH1cclxuICBAVmlld0NoaWxkKCd0YWJsZVJlZicpXHJcbiAgcHVibGljIHNldCB0YWJsZVJlZih2YWx1ZTogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5fdGFibGVSZWYgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmVlUmVmITogRWxlbWVudFJlZjtcclxuICBwdWJsaWMgZ2V0IHRyZWVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZVJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndHJlZVJlZicpXHJcbiAgcHVibGljIHNldCB0cmVlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90cmVlUmVmID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnNldFN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEVtcHR5KCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnRlbXAgfHwgdGhpcy50ZW1wLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUYWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1ucz8ubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy50cmVlRGF0YSkgJiYgdGhpcy50cmVlRGF0YS5sZW5ndGggPiAwKSB8fCB0aGlzLnRyZWVEYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24gfHwgdGhpcy50cmVlRGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZVRhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzVGFibGUgJiYgdGhpcy5oYXNUcmVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWVNdWx0aXBsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1RyZWUgJiYgIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMubXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzU2VhcmNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoICYmIHRoaXMuaGFzVGFibGU7XHJcbiAgfVxyXG5cclxuICB0ZW1wOiBhbnk7XHJcbiAgaGVpZ2h0ID0gMTAwO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyB0YWJsZURhdGEsIGxhYmVsQWxpZ24sIHNpemUgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UodGFibGVEYXRhKSAmJiB0aGlzLnNldFRhYmxlQ2hlY2tlZFJvdygpO1xyXG4gICAgWElzQ2hhbmdlKGxhYmVsQWxpZ24sIHNpemUpICYmIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGbGV4KHRoaXMuZmluZC5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmp1c3RpZnksIHRoaXMuYWxpZ24sIHRoaXMuZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0TXVsdGlwbGUoKTtcclxuICAgIHRoaXMuc2V0V2lkdGgoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXAsIHRoaXMuY2xhc3NNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5jbGFzc01hcFtgeC1maW5kLSR7dGhpcy5zaXplfWBdID0gIVhJc0VtcHR5KHRoaXMuc2l6ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJzY3JpYmUoKSB7XHJcbiAgICBsZXQgcmVzaXplUmVmOiBFbGVtZW50W10gPSBbXTtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIHJlc2l6ZVJlZiA9IFt0aGlzLnRhYmxlUmVmPy5uYXRpdmVFbGVtZW50XTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmhhc1RyZWUgJiYgIXRoaXMuaGFzVHJlZVRhYmxlKSB7XHJcbiAgICAgIHJlc2l6ZVJlZi5wdXNoKHRoaXMudHJlZVJlZj8ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgWFJlc2l6ZSguLi5yZXNpemVSZWYpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSB4LnJlc2l6ZU9ic2VydmVyO1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlUmVmKSB7XHJcbiAgICAgICAgICB0aGlzLmhlaWdodCA9IHRoaXMudGFibGVSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy50cmVlUmVmPy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldE11bHRpcGxlKCkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICBpZiAoIXRoaXMudGFibGVDb2x1bW5zLmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCkpIHtcclxuICAgICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFt7IGlkOiAnJGNoZWNrZWQnLCBsYWJlbDogJ+mAieaLqScsIHJvd0NoZWNrZWQ6IHRydWUsIHR5cGU6ICdjaGVja2JveCcsIHdpZHRoOiA2MCB9LCAuLi50aGlzLnRhYmxlQ29sdW1uc107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFdpZHRoKCkge1xyXG4gICAgaWYgKFhJc1VuZGVmaW5lZCh0aGlzLmRpYWxvZ1dpZHRoKSkge1xyXG4gICAgICBpZiAoKHRoaXMuaGFzVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB8fCB0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dXaWR0aCA9ICc1MHJlbSc7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzMwcmVtJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzIwcmVtJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvd01vZGFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICB0aGlzLmRpYWxvZ1Zpc2libGVDaGFuZ2UuZW1pdCh0aGlzLmRpYWxvZ1Zpc2libGUpO1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLnRlbXAgPSAodGhpcy52YWx1ZSBhcyBBcnJheTxhbnk+KS5tYXAoKHgpID0+IE9iamVjdC5hc3NpZ24oe30sIHgpKTtcclxuICAgICAgICB0aGlzLnNldFRhYmxlQ2hlY2tlZFJvdygpO1xyXG4gICAgICAgIHRoaXMuc2V0VHJlZUNoZWNrZWQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRhYmxlQWN0aXZhdGVkUm93ID0gdGhpcy52YWx1ZTtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSB0aGlzLnZhbHVlLmlkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wID0gdGhpcy5tdWx0aXBsZSA/IFtdIDogbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIHRoaXMudGFibGVDb20udmlydHVhbEJvZHk/LnNjcm9sbFRvSW5kZXgoMCk7XHJcbiAgICAgIHRoaXMudGFibGVDb20udmlydHVhbEJvZHk/LmNoZWNrVmlld3BvcnRTaXplKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRUYWJsZUNoZWNrZWRSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgfHwgWElzVW5kZWZpbmVkKHRoaXMudGVtcCkpIHJldHVybjtcclxuICAgIGNvbnN0IGlkcyA9ICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikubWFwKCh4KSA9PiB4LmlkKTtcclxuICAgIHRoaXMudGFibGVDaGVja2VkUm93ID0ge1xyXG4gICAgICAuLi50aGlzLnRhYmxlQ2hlY2tlZFJvdyxcclxuICAgICAgJGNoZWNrZWQ6IGlkc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldFRyZWVDaGVja2VkKCkge1xyXG4gICAgaWYgKHRoaXMuaGFzVHJlZU11bHRpcGxlKSB0aGlzLnRyZWVDaGVja2VkID0gdGhpcy50ZW1wLm1hcCgoeDogYW55KSA9PiB4LmlkKTtcclxuICB9XHJcblxyXG4gIHN1cmUoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy50ZW1wO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlTW9kYWwoKSB7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkaWFsb2dDbG9zZURvbmUoKSB7XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbnVsbDtcclxuICAgICAgdGhpcy50ZW1wID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRlbXBDbG9zZShpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMudGVtcC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgbGV0IGl0ID0gdGhpcy50YWJsZUNvbT8udGFibGVEYXRhLmZpbmQoKHgpID0+IGl0ZW0uaWQgPT09IHguaWQpO1xyXG4gICAgICBpZiAoaXQpIHtcclxuICAgICAgICBpdFsnJGNoZWNrZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVDb20/LmJvZHlDaGFuZ2UoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgbGV0IGl0ID0gdGhpcy50cmVlQ29tPy50cmVlRGF0YS5maW5kKCh4KSA9PiBpdGVtLmlkID09PSB4LmlkKTtcclxuICAgICAgaWYgKGl0KSB7XHJcbiAgICAgICAgaXQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIGl0LmNoYW5nZSAmJiBpdC5jaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLnRyZWVDb20/LmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0YWdDbG9zZShpbmRleDogbnVtYmVyID0gLTEpIHtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLnRhYmxlQWN0aXZhdGVkUm93ID0gbnVsbDtcclxuICAgICAgaWYgKCF0aGlzLmhhc1RyZWVUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0YWJsZUFjdGl2YXRlZFJvd0NoYW5nZShkYXRhOiBYVGFibGVSb3cpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMucm93TXVsdGlwbGUoZGF0YSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAgPSBkYXRhO1xyXG4gICAgICB0aGlzLnN1cmUoKTtcclxuICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByb3dNdWx0aXBsZShkYXRhOiBYVGFibGVSb3cpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy50ZW1wID09PSAndW5kZWZpbmVkJykgdGhpcy50ZW1wID0gW107XHJcbiAgICBpZiAoZGF0YVsnJGNoZWNrZWQnXSkge1xyXG4gICAgICB0aGlzLnRlbXAgPSBbLi4udGhpcy50ZW1wLCBkYXRhXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcC5zcGxpY2UoXHJcbiAgICAgICAgKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IGRhdGEuaWQpLFxyXG4gICAgICAgIDFcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVNdWx0aXBsZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy50ZW1wID09PSAndW5kZWZpbmVkJykgdGhpcy50ZW1wID0gW107XHJcbiAgICAvLyBub2RlLiRjaGVja2VkID0gIW5vZGUuJGNoZWNrZWQ7XHJcbiAgICBpZiAobm9kZS5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IFsuLi50aGlzLnRlbXAsIG5vZGVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wLnNwbGljZShcclxuICAgICAgICAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gbm9kZS5pZCksXHJcbiAgICAgICAgMVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZUFjdGl2YXRlZENsaWNrKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKCF0aGlzLmhhc1RyZWVUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAvLyB0aGlzLnRyZWVNdWx0aXBsZShub2RlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRlbXAgPSBub2RlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMudHJlZVRhYmxlQ29ubmVjdCkge1xyXG4gICAgICBpZiAoIXRoaXMudGFibGVRdWVyeSkgdGhpcy50YWJsZVF1ZXJ5ID0ge307XHJcbiAgICAgIGlmICghdGhpcy50YWJsZVF1ZXJ5LmZpbHRlcikgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IFtdO1xyXG4gICAgICBsZXQgZmllbGQgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyLmZpbmQoKHgpID0+IHguZmllbGQgPT09IHRoaXMudHJlZVRhYmxlQ29ubmVjdCk7XHJcbiAgICAgIGlmIChmaWVsZCkge1xyXG4gICAgICAgIGZpZWxkLnZhbHVlID0gbm9kZS5pZDtcclxuICAgICAgICBmaWVsZC5vcGVyYXRpb24gPSAnPSc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IFsuLi50aGlzLnRhYmxlUXVlcnkuZmlsdGVyLCB7IGZpZWxkOiB0aGlzLnRyZWVUYWJsZUNvbm5lY3QsIHZhbHVlOiBub2RlLmlkLCBvcGVyYXRpb246ICc9JyB9XTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlQ29tLmNoYW5nZSgxKTtcclxuICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBub2RlLmlkO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmVlQWN0aXZhdGVkQ2hhbmdlLmVtaXQobm9kZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlQ2hlY2tib3hDaGFuZ2Uobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICB0aGlzLnRyZWVNdWx0aXBsZShub2RlKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgIHRoaXMudHJlZUNvbT8uc2V0RGF0YSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLnNlYXJjaENsaWNrKCk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcclxuICAgICAgdGhpcy5zZWFyY2gudmFsdWUgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlYXJjaENsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmhhc1NlYXJjaCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWJsZVF1ZXJ5ID0gdGhpcy50YWJsZVF1ZXJ5IHx8IFtdO1xyXG4gICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIgfHwgW107XHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy5zZWFyY2guZmllbGQpO1xyXG5cclxuICAgIGlmIChmaWVsZCkge1xyXG4gICAgICBmaWVsZC52YWx1ZSA9IHRoaXMuc2VhcmNoLnZhbHVlIHx8ICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IFsuLi50aGlzLnRhYmxlUXVlcnk/LmZpbHRlciwgdGhpcy5zZWFyY2hdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2ZpbmRcclxuICBjbGFzcz1cIngtZmluZFwiXHJcbiAgW2NsYXNzLngtZmxleF09XCJqdXN0aWZ5IHx8IGFsaWduIHx8IGRpcmVjdGlvblwiXHJcbiAgW2NsYXNzLngtY2hlY2tlZF09XCJ2YWx1ZVwiXHJcbiAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy54LXJlcXVpcmVkXT1cInJlcXVpcmVkSXNFbXB0eVwiXHJcbiAgW2NsYXNzLngtaW52YWxpZF09XCJpbnZhbGlkXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1yb3dcIj5cclxuICAgIDx4LWJ1dHRvbiAjYnV0dG9uQ29tIGljb249XCJmdG8tc2VhcmNoXCIgW29ubHlJY29uXT1cIiFib3JkZXJlZFwiIFtzaXplXT1cInNpemVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwic2hvd01vZGFsKClcIj48L3gtYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC10YWdzXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZTsgZWxzZSBzaW5nbGVUcGxcIj5cclxuICAgICAgICA8eC10YWdcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgICAgICBjbG9zYWJsZVxyXG4gICAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIChjbG9zZSk9XCJ0YWdDbG9zZShpKVwiXHJcbiAgICAgICAgICA+e3sgaXRlbVtjb2x1bW5MYWJlbF0gfX08L3gtdGFnXHJcbiAgICAgICAgPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVUcGw+XHJcbiAgICAgICAgPHgtdGFnICpuZ0lmPVwidmFsdWVcIiBjbG9zYWJsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIiBbc2l6ZV09XCJzaXplXCIgKGNsb3NlKT1cInRhZ0Nsb3NlKClcIj57e1xyXG4gICAgICAgICAgdmFsdWVbY29sdW1uTGFiZWxdXHJcbiAgICAgICAgfX08L3gtdGFnPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHgtZGlhbG9nXHJcbiAgI2RpYWxvZ0NvbVxyXG4gIFt0aXRsZV09XCJkaWFsb2dUaXRsZVwiXHJcbiAgW3dpZHRoXT1cImRpYWxvZ1dpZHRoXCJcclxuICBbaGVpZ2h0XT1cImRpYWxvZ0hlaWdodFwiXHJcbiAgW2J1dHRvbnNDZW50ZXJdPVwiZGlhbG9nQnV0dG9uc0NlbnRlclwiXHJcbiAgWyh2aXNpYmxlKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJkaWFsb2dWaXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgKGNsb3NlRG9uZSk9XCJkaWFsb2dDbG9zZURvbmUoKVwiXHJcbiAgKGNhbmNlbCk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjbG9zZSk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjb25maXJtKT1cInN1cmUoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZ1wiIFtjbGFzcy54LWZpbmQtZGlhbG9nLXRyZWUtdGFibGVdPVwiaGFzVGFibGUgJiYgaGFzVHJlZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdHJlZVwiICpuZ0lmPVwiaGFzVHJlZVwiICN0cmVlUmVmIFtzdHlsZS5oZWlnaHQucHhdPVwiaGFzVHJlZVRhYmxlICYmIG11bHRpcGxlICYmIGhlaWdodFwiPlxyXG4gICAgICA8eC10cmVlXHJcbiAgICAgICAgI3RyZWVDb21cclxuICAgICAgICBbZGF0YV09XCJ0cmVlRGF0YVwiXHJcbiAgICAgICAgbm9kZUhlaWdodD1cIjEuOFwiXHJcbiAgICAgICAgWyhtYW51YWwpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgICAgIFthY3RpdmF0ZWRJZF09XCJ0cmVlQWN0aXZhdGVkSWRcIlxyXG4gICAgICAgIFtleHBhbmRlZExldmVsXT1cInRyZWVFeHBhbmRlZExldmVsXCJcclxuICAgICAgICAoYWN0aXZhdGVkQ2hhbmdlKT1cInRyZWVBY3RpdmF0ZWRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICBbY2hlY2tib3hdPVwiaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgICBbY2hlY2tlZF09XCJ0cmVlQ2hlY2tlZFwiXHJcbiAgICAgICAgKGNoZWNrYm94Q2hhbmdlKT1cInRyZWVDaGVja2JveENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbbGV2ZWxDaGVja109XCIhaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgPjwveC10cmVlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10YWJsZVwiICpuZ0lmPVwiaGFzVGFibGVcIiAjdGFibGVSZWY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtc2VhcmNoXCIgKm5nSWY9XCJoYXNTZWFyY2hcIj5cclxuICAgICAgICA8eC1pbnB1dCBbbGFiZWxdPVwic2VhcmNoLmxhYmVsXCIgZGlyZWN0aW9uPVwicm93XCIgKHhLZXlkb3duKT1cInNlYXJjaEtleURvd24oJGV2ZW50KVwiIFsobmdNb2RlbCldPVwic2VhcmNoLnZhbHVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIHBsYWluIChjbGljayk9XCJzZWFyY2hDbGljaygpXCI+e3sgc2VhcmNoLmJ1dHRvbiB8fCAn5p+l6K+iJyB9fTwveC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8eC10YWJsZVxyXG4gICAgICAgICN0YWJsZUNvbVxyXG4gICAgICAgIFtkYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwidGFibGVDb2x1bW5zXCJcclxuICAgICAgICBbKG1hbnVhbCldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgICAgICAgWyhpbmRleCldPVwidGFibGVJbmRleFwiXHJcbiAgICAgICAgWyhzaXplKV09XCJ0YWJsZVNpemVcIlxyXG4gICAgICAgIFtxdWVyeV09XCJ0YWJsZVF1ZXJ5XCJcclxuICAgICAgICBbdG90YWxdPVwidGFibGVUb3RhbFwiXHJcbiAgICAgICAgW2FsbG93U2VsZWN0Um93XT1cIiFtdWx0aXBsZVwiXHJcbiAgICAgICAgW2NoZWNrZWRSb3ddPVwidGFibGVDaGVja2VkUm93XCJcclxuICAgICAgICBbbG9hZGluZ109XCJ0YWJsZUxvYWRpbmdcIlxyXG4gICAgICAgIChpbmRleENoYW5nZSk9XCJ0YWJsZUluZGV4Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNvcnRDaGFuZ2UpPVwidGFibGVTb3J0Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgWyhhY3RpdmF0ZWRSb3cpXT1cInRhYmxlQWN0aXZhdGVkUm93XCJcclxuICAgICAgICAoYWN0aXZhdGVkUm93Q2hhbmdlKT1cInRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtyb3dIZWlnaHRdPVwidGFibGVSb3dIZWlnaHRcIlxyXG4gICAgICAgIFtib2R5SGVpZ2h0XT1cInRhYmxlQm9keUhlaWdodFwiXHJcbiAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidGFibGVWaXJ0dWFsU2Nyb2xsXCJcclxuICAgICAgICBbbWluQnVmZmVyUHhdPVwidGFibGVNaW5CdWZmZXJQeFwiXHJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cInRhYmxlTWF4QnVmZmVyUHhcIlxyXG4gICAgICAgIFthZGFwdGlvbkhlaWdodF09XCJ0YWJsZUFkYXB0aW9uSGVpZ2h0XCJcclxuICAgICAgICBbZG9jUGVyY2VudF09XCJ0YWJsZURvY1BlcmNlbnRcIlxyXG4gICAgICA+PC94LXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwibXVsdGlwbGVcIiBjbGFzcz1cIngtZmluZC1kaWFsb2ctY2hlY2tlZFwiIFtjbGFzcy54LWZpbmQtZW1wdHldPVwiZ2V0RW1wdHlcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiPlxyXG4gICAgICA8eC1lbXB0eSAqbmdJZj1cImdldEVtcHR5XCIgY29udGVudD1cIuivt+mAieaLqeaVsOaNrlwiPjwveC1lbXB0eT5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdGFnc1wiPlxyXG4gICAgICAgIDx4LXRhZyAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0ZW1wOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIGNsb3NhYmxlIChjbG9zZSk9XCJ0ZW1wQ2xvc2UoaSwgaXRlbSlcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW1bY29sdW1uTGFiZWxdIH19PC9zcGFuPlxyXG4gICAgICAgIDwveC10YWc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwveC1kaWFsb2c+XHJcblxyXG48bmctdGVtcGxhdGUgI3RyZWVMYWJlbFRwbCBsZXQtbm9kZT1cIiRub2RlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdHJlZS1ub2RlXCI+XHJcbiAgICA8c3Bhbj57eyBub2RlLmxhYmVsIH19IDwvc3Bhbj5cclxuICAgIDx4LWljb24gdHlwZT1cImZ0by1jaGVja1wiICpuZ0lmPVwibm9kZS4kY2hlY2tlZFwiPjwveC1pY29uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -15,8 +15,8 @@ import { XInputModule } from '@ng-nest/ui/input';
15
15
  import * as i0 from "@angular/core";
16
16
  export class XFindModule {
17
17
  }
18
- /** @nocollapse */ XFindModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- /** @nocollapse */ XFindModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, declarations: [XFindComponent, XFindProperty], imports: [CommonModule,
18
+ /** @nocollapse */ XFindModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ /** @nocollapse */ XFindModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, declarations: [XFindComponent, XFindProperty], imports: [CommonModule,
20
20
  FormsModule,
21
21
  ReactiveFormsModule,
22
22
  XTagModule,
@@ -28,7 +28,7 @@ export class XFindModule {
28
28
  XEmptyModule,
29
29
  XInputModule,
30
30
  XBaseFormModule], exports: [XFindComponent] });
31
- /** @nocollapse */ XFindModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, imports: [[
31
+ /** @nocollapse */ XFindModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, imports: [[
32
32
  CommonModule,
33
33
  FormsModule,
34
34
  ReactiveFormsModule,
@@ -42,7 +42,7 @@ export class XFindModule {
42
42
  XInputModule,
43
43
  XBaseFormModule
44
44
  ]] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  declarations: [XFindComponent, XFindProperty],
@@ -108,8 +108,15 @@ export class XFindProperty extends XControlValueAccessor {
108
108
  this.treeChecked = [];
109
109
  }
110
110
  }
111
- /** @nocollapse */ XFindProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
112
- /** @nocollapse */ XFindProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XFindProperty, selector: "ng-component", inputs: { multiple: "multiple", columnLabel: "columnLabel", dialogTitle: "dialogTitle", dialogWidth: "dialogWidth", dialogHeight: "dialogHeight", dialogVisible: "dialogVisible", dialogButtonsCenter: "dialogButtonsCenter", tableData: "tableData", tableIndex: "tableIndex", tableSize: "tableSize", tableQuery: "tableQuery", tableTotal: "tableTotal", tableColumns: "tableColumns", tableActivatedRow: "tableActivatedRow", tableCheckedRow: "tableCheckedRow", tableLoading: "tableLoading", tableVirtualScroll: "tableVirtualScroll", tableBodyHeight: "tableBodyHeight", tableMinBufferPx: "tableMinBufferPx", tableMaxBufferPx: "tableMaxBufferPx", tableAdaptionHeight: "tableAdaptionHeight", tableDocPercent: "tableDocPercent", tableRowHeight: "tableRowHeight", treeData: "treeData", treeActivatedId: "treeActivatedId", treeExpandedLevel: "treeExpandedLevel", treeChecked: "treeChecked", treeCheckbox: "treeCheckbox", treeTableConnect: "treeTableConnect", search: "search" }, outputs: { dialogVisibleChange: "dialogVisibleChange", tableIndexChange: "tableIndexChange", tableSizeChange: "tableSizeChange", tableSortChange: "tableSortChange", tableRowEmit: "tableRowEmit", treeActivatedChange: "treeActivatedChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
111
+ /** @nocollapse */ XFindProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
112
+ /** @nocollapse */ XFindProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XFindProperty, selector: "ng-component", inputs: { size: "size", bordered: "bordered", multiple: "multiple", columnLabel: "columnLabel", dialogTitle: "dialogTitle", dialogWidth: "dialogWidth", dialogHeight: "dialogHeight", dialogVisible: "dialogVisible", dialogButtonsCenter: "dialogButtonsCenter", tableData: "tableData", tableIndex: "tableIndex", tableSize: "tableSize", tableQuery: "tableQuery", tableTotal: "tableTotal", tableColumns: "tableColumns", tableActivatedRow: "tableActivatedRow", tableCheckedRow: "tableCheckedRow", tableLoading: "tableLoading", tableVirtualScroll: "tableVirtualScroll", tableBodyHeight: "tableBodyHeight", tableMinBufferPx: "tableMinBufferPx", tableMaxBufferPx: "tableMaxBufferPx", tableAdaptionHeight: "tableAdaptionHeight", tableDocPercent: "tableDocPercent", tableRowHeight: "tableRowHeight", treeData: "treeData", treeActivatedId: "treeActivatedId", treeExpandedLevel: "treeExpandedLevel", treeChecked: "treeChecked", treeCheckbox: "treeCheckbox", treeTableConnect: "treeTableConnect", search: "search" }, outputs: { dialogVisibleChange: "dialogVisibleChange", tableIndexChange: "tableIndexChange", tableSizeChange: "tableSizeChange", tableSortChange: "tableSortChange", tableRowEmit: "tableRowEmit", treeActivatedChange: "treeActivatedChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
113
+ __decorate([
114
+ XWithConfig(X_CONFIG_NAME, 'medium')
115
+ ], XFindProperty.prototype, "size", void 0);
116
+ __decorate([
117
+ XInputBoolean(),
118
+ XWithConfig(X_CONFIG_NAME, true)
119
+ ], XFindProperty.prototype, "bordered", void 0);
113
120
  __decorate([
114
121
  XInputBoolean()
115
122
  ], XFindProperty.prototype, "multiple", void 0);
@@ -163,10 +170,14 @@ __decorate([
163
170
  __decorate([
164
171
  XInputBoolean()
165
172
  ], XFindProperty.prototype, "treeCheckbox", void 0);
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindProperty, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindProperty, decorators: [{
167
174
  type: Component,
168
175
  args: [{ template: '' }]
169
- }], propDecorators: { multiple: [{
176
+ }], propDecorators: { size: [{
177
+ type: Input
178
+ }], bordered: [{
179
+ type: Input
180
+ }], multiple: [{
170
181
  type: Input
171
182
  }], columnLabel: [{
172
183
  type: Input
@@ -239,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
239
250
  }], search: [{
240
251
  type: Input
241
252
  }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2ZpbmQvZmluZC5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBWSxZQUFZLEVBQVMsWUFBWSxFQUEwQixXQUFXLEVBQVcsTUFBTSxrQkFBa0IsQ0FBQztBQUM1SSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDOztBQUUzRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUNwQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFPN0I7O0dBRUc7QUFFSCxNQUFNLE9BQU8sYUFBYyxTQUFRLHFCQUFrQztJQURyRTs7UUFFRTs7O1dBR0c7UUFDdUIsYUFBUSxHQUFhLEtBQUssQ0FBQztRQXFCckQ7OztXQUdHO1FBQ3VCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQ3pEOzs7V0FHRztRQUNPLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFPNUQ7OztXQUdHO1FBQ00sY0FBUyxHQUFxQixFQUFFLENBQUM7UUFXMUM7OztXQUdHO1FBQ00sZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUNqQzs7O1dBR0c7UUFDTSxlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ2hDOzs7V0FHRztRQUNPLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEQ7OztXQUdHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZEOzs7V0FHRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN4RDs7O1dBR0c7UUFDTSxpQkFBWSxHQUFtQixFQUFFLENB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O3NCQUE5RSxLQUFLO2dCQUttQixRQUFRO3NCQUFoQyxLQUFLO2dCQUtJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFLRSxlQUFlO3NCQUF2QixLQUFLO2dCQUsyRCxpQkFBaUI7c0JBQWpGLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLb0IsWUFBWTtzQkFBckMsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWElucHV0Qm9vbGVhbiwgWEJvb2xlYW4sIFhEYXRhQ29udmVydCwgWERhdGEsIFhJbnB1dE51bWJlciwgWE51bWJlciwgWFNvcnQsIFhRdWVyeSwgWFdpdGhDb25maWcsIFhGaWx0ZXIgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQ29sdW1uLCBYVGFibGVSb3cgfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IsIFhGb3JtT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBGaW5kXHJcbiAqIEBzZWxlY3RvciB4LWZpbmRcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRmluZFByZWZpeCA9ICd4LWZpbmQnO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ2ZpbmQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBYRmluZFNlYXJjaE9wdGlvbiBleHRlbmRzIFhGaWx0ZXIge1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIGJ1dHRvbj86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIEZpbmQgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhGaW5kUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55IHwgYW55W10+IGltcGxlbWVudHMgWEZpbmRPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpJrpgIlcclxuICAgKiBAZW5fVVMgTXVsdGlwbGUgY2hvaWNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBtdWx0aXBsZTogWEJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5LitIGxhYmVsIOWQjeensOWtl+autVxyXG4gICAqIEBlbl9VUyBDaGVjayB0aGUgbGFiZWwgbmFtZSBmaWVsZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX05BTUUsICdsYWJlbCcpIGNvbHVtbkxhYmVsITogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYbmoIfpophcclxuICAgKiBAZW5fVVMgQnVsbGV0IHRpdGxlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9DT05GSUdfTkFNRSwgJ+afpeaJvumAieaLqScpIGRpYWxvZ1RpdGxlITogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYblrr3luqZcclxuICAgKiBAZW5fVVMgQnVsbGV0IGZyYW1lIHdpZHRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlhbG9nV2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhumrmOW6plxyXG4gICAqIEBlbl9VUyBIZWlnaHQgb2YgYnVsbGV0IGZyYW1lXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlhbG9nSGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYbmmL7npLrvvIzpmpDol49cclxuICAgKiBAZW5fVVMgQnVsbGV0IGJveCBkaXNwbGF5LCBoaWRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBkaWFsb2dWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhuaYvuekuu+8jOmakOiXj1xyXG4gICAqIEBlbl9VUyBCdWxsZXQgYm94IGRpc3BsYXksIGhpZGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgZGlhbG9nVmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oyJ6ZKu5bGF5LitXHJcbiAgICogQGVuX1VTIEJ1dHRvbiBjZW50ZXJlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSBkaWFsb2dCdXR0b25zQ2VudGVyPzogWEJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzooYzmlbDmja5cclxuICAgKiBAZW5fVVMgVGFibGUgcm93IGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZURhdGE6IFhEYXRhPFhUYWJsZVJvdz4gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86aG156CBXHJcbiAgICogQGVuX1VTIFRhYmxlIHBhZ2UgbnVtYmVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPG51bWJlcj4oWF9DT05GSUdfTkFNRSwgMSkgdGFibGVJbmRleCE6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5q+P6aG15pWw5o2u5p2h5pWwXHJcbiAgICogQGVuX1VTIE51bWJlciBvZiBkYXRhIGl0ZW1zIHBlciBwYWdlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPG51bWJlcj4oWF9DT05GSUdfTkFNRSwgMTApIHRhYmxlU2l6ZSE6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5q+P6aG15pWw5o2u5p2h5pWwXHJcbiAgICogQGVuX1VTIE51bWJlciBvZiBkYXRhIGl0ZW1zIHBlciBwYWdlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVRdWVyeTogWFF1ZXJ5ID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOaVsOaNruaAu+adoeaVsFxyXG4gICAqIEBlbl9VUyBUb3RhbCBudW1iZXIgb2YgdGFibGUgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhYmxlVG90YWw6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmhteeggeWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBQYWdlIG51bWJlciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdGFibGVJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmr4/pobXmmL7npLrmnaHmlbDlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2hvdyB0aGUgbnVtYmVyIG9mIGV2ZW50cyBvbiBlYWNoIHBhZ2VcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdGFibGVTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOkuW6j+eCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTb3J0IGNsaWNrIGV2ZW50c1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0YWJsZVNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhTb3J0W10+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOWIl+WPguaVsFxyXG4gICAqIEBlbl9VUyBUYWJsZSBjb2x1bW4gcGFyYW1ldGVyc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhYmxlQ29sdW1uczogWFRhYmxlQ29sdW1uW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBzZWxlY3RlZCByb3cgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhYmxlQWN0aXZhdGVkUm93PzogYW55O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzooYzngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgVGFibGUgcm93IGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHRhYmxlUm93RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzooYzngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgVGFibGUgcm93IGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVDaGVja2VkUm93OiB7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKblkK/nlKjliqDovb0gbG9hZGluZ1xyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGVuYWJsZSBsb2FkaW5nIGxvYWRpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHRhYmxlTG9hZGluZyE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzlvIDlkK/omZrmi5/mu5rliqhcclxuICAgKiBAZW5fVVMgVGFibGUgb3BlbnMgdmlydHVhbCBzY3JvbGxpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8Ym9vbGVhbj4oWF9DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgdGFibGVWaXJ0dWFsU2Nyb2xsITogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC8IGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIFRhYmxlIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgdGFibGVCb2R5SGVpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgVGhlIHRhYmxlIGV4Y2VlZHMgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIHZpc2libGUgd2luZG93IGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVNaW5CdWZmZXJQeDogbnVtYmVyID0gMTAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgVGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyIGZvciB0aGUgdGFibGUgcmVuZGVyaW5nLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZU1heEJ1ZmZlclB4OiBudW1iZXIgPSAyMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOiHqumAguW6lOmrmOW6pu+8jHRhYmxlIOmrmOW6puetieS6juWxj+W5lemrmOW6puWHj+aOieatpOWkhOiuvue9rueahOaVsOWAvFxyXG4gICAqIEBlbl9VUyBUYWJsZSBhZGFwdGl2ZSBoZWlnaHQsIHRhYmxlIGhlaWdodCBpcyBlcXVhbCB0byB0aGUgc2NyZWVuIGhlaWdodCBtaW51cyB0aGUgdmFsdWUgc2V0IGhlcmVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgdGFibGVBZGFwdGlvbkhlaWdodD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBUYWJsZSBkb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBmb3IgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSB0YWJsZURvY1BlcmNlbnQ6IFhOdW1iZXIgPSAxO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzooYzpq5jluqbvvIzljZXkvY0gcHhcclxuICAgKiBAZW5fVVMgVGFibGUgcm93IGhlaWdodCwgdW5pdCBweFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxudW1iZXI+KFhfQ09ORklHX05BTUUsIDQyKSBAWElucHV0TnVtYmVyKCkgdGFibGVSb3dIZWlnaHQhOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeiKgueCueaVsOaNrlxyXG4gICAqIEBlbl9VUyBUcmVlIG5vZGUgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSB0cmVlRGF0YTogWERhdGE8WFRyZWVOb2RlPiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvZPliY3ngrnlh7vpgInkuK3nmoToioLngrnlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgVGhlIGV2ZW50IG9mIHRoZSB0cmVlIGN1cnJlbnRseSBjbGlja2VkIG9uIHRoZSBzZWxlY3RlZCBub2RlIGNoYW5nZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0cmVlQWN0aXZhdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYVHJlZU5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeW9k+WJjea/gOa0u+eahOiKgueCuSBJZFxyXG4gICAqIEBlbl9VUyBJZCBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBub2RlIG9mIHRoZSB0cmVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHJlZUFjdGl2YXRlZElkOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkem7mOiupOWxleW8gOeahOWxgue6p1xyXG4gICAqIEBlbl9VUyBUaGUgbGV2ZWwgb2YgdGhlIHRyZWUgZXhwYW5kZWQgYnkgZGVmYXVsdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAwKSBAWElucHV0TnVtYmVyKCkgdHJlZUV4cGFuZGVkTGV2ZWwhOiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJEgY2hlY2tib3gg6YCJ5Lit55qE6IqC54K5XHJcbiAgICogQGVuX1VTIFRyZWUgY2hlY2tib3ggc2VsZWN0ZWQgbm9kZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRyZWVDaGVja2VkOiBhbnlbXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHmmL7npLrlpJrpgInmoYZcclxuICAgKiBAZW5fVVMgVHJlZSBkaXNwbGF5IGNoZWNrYm94XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSB0cmVlQ2hlY2tib3g/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5ZKM6KGo5qC85ZCM5pe25a2Y5Zyo55qE5pe25YCZ77yM5qCR6IqC54K5IGlkIOWvueW6lOihqOagvOeahOWxnuaAp++8jOeUqOadpeWBmuihqOagvOaVsOaNrui/h+a7pFxyXG4gICAqIEBlbl9VUyBXaGVuIHRoZSB0cmVlIGFuZCB0aGUgdGFibGUgZXhpc3QgYXQgdGhlIHNhbWUgdGltZSwgdGhlIHRyZWUgbm9kZSBpZCBjb3JyZXNwb25kcyB0byB0aGUgYXR0cmlidXRlIG9mIHRoZSB0YWJsZSwgd2hpY2ggaXMgdXNlZCB0byBmaWx0ZXIgdGhlIHRhYmxlIGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSB0cmVlVGFibGVDb25uZWN0OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruafpeivoui/h+a7pOihqOWNlVxyXG4gICAqIEBlbl9VUyBmb3JtIGZvciBkYXRhIGZpbHRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNlYXJjaCE6IFhGaW5kU2VhcmNoT3B0aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogRmluZCBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRmluZE9wdGlvbiBleHRlbmRzIFhGb3JtT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa6YCJXHJcbiAgICogQGVuX1VTIE11bHRpcGxlIHNlbGVjdFxyXG4gICAqL1xyXG4gIG11bHRpcGxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4rSBsYWJlbCDlkI3np7DlrZfmrrVcclxuICAgKiBAZW5fVVMgQ2hlY2sgdGhlIGxhYmVsIG5hbWUgZmllbGRcclxuICAgKi9cclxuICBjb2x1bW5MYWJlbD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5by55qGG5qCH6aKYXHJcbiAgICogQGVuX1VTIEJ1bGxldCB0aXRsZVxyXG4gICAqL1xyXG4gIGRpYWxvZ1RpdGxlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYblrr3luqZcclxuICAgKiBAZW5fVVMgQnVsbGV0IGZyYW1lIHdpZHRoXHJcbiAgICovXHJcbiAgZGlhbG9nV2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhumrmOW6plxyXG4gICAqIEBlbl9VUyBIZWlnaHQgb2YgYnVsbGV0IGZyYW1lXHJcbiAgICovXHJcbiAgZGlhbG9nSGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYbmmL7npLrvvIzpmpDol49cclxuICAgKiBAZW5fVVMgQnVsbGV0IGJveCBzaG93LCBoaWRlXHJcbiAgICovXHJcbiAgZGlhbG9nVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhuaYvuekuu+8jOmakOiXj1xyXG4gICAqIEBlbl9VUyBCdWxsZXQgYm94IHNob3csIGhpZGVcclxuICAgKi9cclxuICAvLyBkaWFsb2dWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjInpkq7lsYXkuK1cclxuICAgKiBAZW5fVVMgQnV0dG9uIGNlbnRlclxyXG4gICAqL1xyXG4gIGRpYWxvZ0J1dHRvbnNDZW50ZXI/OiBYQm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgZGF0YVxyXG4gICAqL1xyXG4gIHRhYmxlRGF0YT86IFhEYXRhPFhUYWJsZVJvdz47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteeggVxyXG4gICAqIEBlbl9VUyBUYWJsZSBwYWdlIG51bWJlclxyXG4gICAqL1xyXG4gIHRhYmxlSW5kZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOavj+mhteaVsOaNruadoeaVsFxyXG4gICAqIEBlbl9VUyBOdW1iZXIgb2YgZGF0YSBpdGVtcyBwZXIgcGFnZVxyXG4gICAqL1xyXG4gIHRhYmxlU2l6ZT86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85pWw5o2u5oC75p2h5pWwXHJcbiAgICogQGVuX1VTIFRvdGFsIG51bWJlciBvZiB0YWJsZSBkYXRhXHJcbiAgICovXHJcbiAgdGFibGVUb3RhbD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6aG156CB5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhZ2UgbnVtYmVyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIC8vIHRhYmxlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q+P6aG15pi+56S65p2h5pWw5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNob3cgdGhlIG51bWJlciBvZiBldmVudHMgb24gZWFjaCBwYWdlXHJcbiAgICovXHJcbiAgLy8gdGFibGVTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOkuW6j+eCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTb3J0IGNsaWNrIGV2ZW50c1xyXG4gICAqL1xyXG4gIC8vIHRhYmxlU29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFNvcnRbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85YiX5Y+C5pWwXHJcbiAgICogQGVuX1VTIFRhYmxlIGNvbHVtbiBwYXJhbWV0ZXJzXHJcbiAgICovXHJcbiAgdGFibGVDb2x1bW5zPzogWFRhYmxlQ29sdW1uW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgc2VsZWN0ZWQgcm93IGRhdGFcclxuICAgKi9cclxuICB0YWJsZUFjdGl2YXRlZFJvdz86IGFueTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86KGM54K55Ye75LqL5Lu2XHJcbiAgICogQGVuX1VTIFRhYmxlIHJvdyBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIC8vIHRhYmxlUm93RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzooYzngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgVGFibGUgcm93IGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgdGFibGVDaGVja2VkUm93PzogeyBbcHJvcGVydHk6IHN0cmluZ106IGFueVtdIH07XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWQr+eUqOWKoOi9vSBsb2FkaW5nXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZW5hYmxlIGxvYWRpbmdcclxuICAgKi9cclxuICB0YWJsZUxvYWRpbmc/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85byA5ZCv6Jma5ouf5rua5YqoXHJcbiAgICogQGVuX1VTIFRhYmxlIG9wZW5zIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgdGFibGVWaXJ0dWFsU2Nyb2xsPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC8IGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIFRhYmxlIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICB0YWJsZUJvZHlIZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOi2heWHuuWPr+inhueql+WPo+e8k+WGsuWMuueahOacgOWwj+WAvO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBUaGUgdGFibGUgZXhjZWVkcyB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICB0YWJsZU1pbkJ1ZmZlclB4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgVGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyIGZvciB0aGUgdGFibGUgcmVuZGVyaW5nLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICB0YWJsZU1heEJ1ZmZlclB4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzoh6rpgILlupTpq5jluqbvvIx0YWJsZSDpq5jluqbnrYnkuo7lsY/luZXpq5jluqblh4/mjonmraTlpITorr7nva7nmoTmlbDlgLxcclxuICAgKiBAZW5fVVMgVGFibGUgYWRhcHRpdmUgaGVpZ2h0LCB0YWJsZSBoZWlnaHQgaXMgZXF1YWwgdG8gdGhlIHNjcmVlbiBoZWlnaHQgbWludXMgdGhlIHZhbHVlIHNldCBoZXJlXHJcbiAgICovXHJcbiAgdGFibGVBZGFwdGlvbkhlaWdodD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBUYWJsZSBkb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBmb3IgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIHRhYmxlRG9jUGVyY2VudD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOmrmOW6pu+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgaGVpZ2h0LCB1bml0IHB4XHJcbiAgICovXHJcbiAgdGFibGVSb3dIZWlnaHQ/OiBYTnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR6IqC54K55pWw5o2uXHJcbiAgICogQGVuX1VTIFRyZWUgbm9kZSBkYXRhXHJcbiAgICovXHJcbiAgdHJlZURhdGE/OiBYRGF0YTxYVHJlZU5vZGU+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvZPliY3ngrnlh7vpgInkuK3nmoToioLngrnlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgVGhlIGV2ZW50IG9mIHRoZSB0cmVlIGN1cnJlbnRseSBjbGlja2VkIG9uIHRoZSBzZWxlY3RlZCBub2RlIGNoYW5nZVxyXG4gICAqL1xyXG4gIC8vIHRyZWVBY3RpdmF0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhUcmVlTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2T5YmN5r+A5rS755qE6IqC54K5IElkXHJcbiAgICogQGVuX1VTIElkIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIG5vZGUgb2YgdGhlIHRyZWVcclxuICAgKi9cclxuICB0cmVlQWN0aXZhdGVkSWQ/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkem7mOiupOWxleW8gOeahOWxgue6p1xyXG4gICAqIEBlbl9VUyBUaGUgbGV2ZWwgb2YgdGhlIHRyZWUgZXhwYW5kZWQgYnkgZGVmYXVsdFxyXG4gICAqL1xyXG4gIHRyZWVFeHBhbmRlZExldmVsPzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCRIGNoZWNrYm94IOmAieS4reeahOiKgueCuVxyXG4gICAqIEBlbl9VUyBUcmVlIGNoZWNrYm94IHNlbGVjdGVkIG5vZGVcclxuICAgKi9cclxuICB0cmVlQ2hlY2tlZD86IGFueVtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHmmL7npLrlpJrpgInmoYZcclxuICAgKiBAZW5fVVMgVHJlZSBkaXNwbGF5IGNoZWNrYm94XHJcbiAgICovXHJcbiAgdHJlZUNoZWNrYm94PzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeWSjOihqOagvOWQjOaXtuWtmOWcqOeahOaXtuWAme+8jOagkeiKgueCuSBpZCDlr7nlupTooajmoLznmoTlsZ7mgKfvvIznlKjmnaXlgZrooajmoLzmlbDmja7ov4fmu6RcclxuICAgKiBAZW5fVVMgV2hlbiB0aGUgdHJlZSBhbmQgdGhlIHRhYmxlIGV4aXN0IGF0IHRoZSBzYW1lIHRpbWUsIHRoZSB0cmVlIG5vZGUgaWQgY29ycmVzcG9uZHMgdG8gdGhlIGF0dHJpYnV0ZSBvZiB0aGUgdGFibGUsIHdoaWNoIGlzIHVzZWQgdG8gZmlsdGVyIHRoZSB0YWJsZSBkYXRhXHJcbiAgICovXHJcbiAgdHJlZVRhYmxlQ29ubmVjdD86IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruafpeivoui/h+a7pOihqOWNlVxyXG4gICAqIEBlbl9VUyBmb3JtIGZvciBkYXRhIGZpbHRlclxyXG4gICAqL1xyXG4gIHNlYXJjaD86IFhGaW5kU2VhcmNoT3B0aW9uO1xyXG59XHJcbiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2ZpbmQvZmluZC5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFFYixZQUFZLEVBRVosWUFBWSxFQUlaLFdBQVcsRUFHWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBQ3BDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQU83Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxhQUFjLFNBQVEscUJBQWtDO0lBRHJFOztRQVlFOzs7V0FHRztRQUN1QixhQUFRLEdBQWEsS0FBSyxDQUFDO1FBcUJyRDs7O1dBR0c7UUFDdUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDekQ7OztXQUdHO1FBQ08sd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU81RDs7O1dBR0c7UUFDTSxjQUFTLEdBQXFCLEVBQUUsQ0FBQztRQVcxQzs7O1dBR0c7UUFDTSxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ2pDOzs7V0FHRztRQUNNLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDaEM7OztXQUdHO1FBQ08scUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4RDs7O1dBR0c7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdkQ7OztXQUdHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3hEOzs7V0FHRztRQUNNLGlCQUFZLEdBQW1CLEVBQUUsQ0FB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QkFLZ0Usa0JBQWtCO3NCQUF2RixLQUFLO2dCQUttQixlQUFlO3NCQUF2QyxLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS21CLG1CQUFtQjtzQkFBM0MsS0FBSztnQkFLbUIsZUFBZTtzQkFBdkMsS0FBSztnQkFLMkQsY0FBYztzQkFBOUUsS0FBSztnQkFLbUIsUUFBUTtzQkFBaEMsS0FBSztnQkFLSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBS0UsZUFBZTtzQkFBdkIsS0FBSztnQkFLMkQsaUJBQWlCO3NCQUFqRixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS29CLFlBQVk7c0JBQXJDLEtBQUs7Z0JBS0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWElucHV0Qm9vbGVhbixcclxuICBYQm9vbGVhbixcclxuICBYRGF0YUNvbnZlcnQsXHJcbiAgWERhdGEsXHJcbiAgWElucHV0TnVtYmVyLFxyXG4gIFhOdW1iZXIsXHJcbiAgWFNvcnQsXHJcbiAgWFF1ZXJ5LFxyXG4gIFhXaXRoQ29uZmlnLFxyXG4gIFhGaWx0ZXIsXHJcbiAgWFNpemVcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQ29sdW1uLCBYVGFibGVSb3cgfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IsIFhGb3JtT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBGaW5kXHJcbiAqIEBzZWxlY3RvciB4LWZpbmRcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRmluZFByZWZpeCA9ICd4LWZpbmQnO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ2ZpbmQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBYRmluZFNlYXJjaE9wdGlvbiBleHRlbmRzIFhGaWx0ZXIge1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIGJ1dHRvbj86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIEZpbmQgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhGaW5kUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55IHwgYW55W10+IGltcGxlbWVudHMgWEZpbmRPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYU2l6ZT4oWF9DT05GSUdfTkFNRSwgJ21lZGl1bScpIHNpemUhOiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIGJvcmRlcmVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWkmumAiVxyXG4gICAqIEBlbl9VUyBNdWx0aXBsZSBjaG9pY2VcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG11bHRpcGxlOiBYQm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK0gbGFiZWwg5ZCN56ew5a2X5q61XHJcbiAgICogQGVuX1VTIENoZWNrIHRoZSBsYWJlbCBuYW1lIGZpZWxkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9DT05GSUdfTkFNRSwgJ2xhYmVsJykgY29sdW1uTGFiZWwhOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhuagh+mimFxyXG4gICAqIEBlbl9VUyBCdWxsZXQgdGl0bGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19OQU1FLCAn5p+l5om+6YCJ5oupJykgZGlhbG9nVGl0bGUhOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhuWuveW6plxyXG4gICAqIEBlbl9VUyBCdWxsZXQgZnJhbWUgd2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBkaWFsb2dXaWR0aD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5by55qGG6auY5bqmXHJcbiAgICogQGVuX1VTIEhlaWdodCBvZiBidWxsZXQgZnJhbWVcclxuICAgKi9cclxuICBASW5wdXQoKSBkaWFsb2dIZWlnaHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhuaYvuekuu+8jOmakOiXj1xyXG4gICAqIEBlbl9VUyBCdWxsZXQgYm94IGRpc3BsYXksIGhpZGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGRpYWxvZ1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5by55qGG5pi+56S677yM6ZqQ6JePXHJcbiAgICogQGVuX1VTIEJ1bGxldCBib3ggZGlzcGxheSwgaGlkZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBkaWFsb2dWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjInpkq7lsYXkuK1cclxuICAgKiBAZW5fVVMgQnV0dG9uIGNlbnRlcmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FKSBAWElucHV0Qm9vbGVhbigpIGRpYWxvZ0J1dHRvbnNDZW50ZXI/OiBYQm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhYmxlRGF0YTogWERhdGE8WFRhYmxlUm93PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzpobXnoIFcclxuICAgKiBAZW5fVVMgVGFibGUgcGFnZSBudW1iZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCAxKSB0YWJsZUluZGV4ITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmr4/pobXmlbDmja7mnaHmlbBcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGRhdGEgaXRlbXMgcGVyIHBhZ2VcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCAxMCkgdGFibGVTaXplITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmr4/pobXmlbDmja7mnaHmlbBcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGRhdGEgaXRlbXMgcGVyIHBhZ2VcclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZVF1ZXJ5OiBYUXVlcnkgPSB7fTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85pWw5o2u5oC75p2h5pWwXHJcbiAgICogQGVuX1VTIFRvdGFsIG51bWJlciBvZiB0YWJsZSBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVUb3RhbDogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g6aG156CB5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhZ2UgbnVtYmVyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0YWJsZUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOavj+mhteaYvuekuuadoeaVsOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTaG93IHRoZSBudW1iZXIgb2YgZXZlbnRzIG9uIGVhY2ggcGFnZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0YWJsZVNpemVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5bqP54K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNvcnQgY2xpY2sgZXZlbnRzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHRhYmxlU29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFNvcnRbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85YiX5Y+C5pWwXHJcbiAgICogQGVuX1VTIFRhYmxlIGNvbHVtbiBwYXJhbWV0ZXJzXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVDb2x1bW5zOiBYVGFibGVDb2x1bW5bXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlbDmja5cclxuICAgKiBAZW5fVVMgQ3VycmVudGx5IHNlbGVjdGVkIHJvdyBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGFibGVBY3RpdmF0ZWRSb3c/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdGFibGVSb3dFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZUNoZWNrZWRSb3c6IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnlbXSB9ID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWQr+eUqOWKoOi9vSBsb2FkaW5nXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZW5hYmxlIGxvYWRpbmcgbG9hZGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgdGFibGVMb2FkaW5nITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOW8gOWQr+iZmuaLn+a7muWKqFxyXG4gICAqIEBlbl9VUyBUYWJsZSBvcGVucyB2aXJ0dWFsIHNjcm9sbGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxib29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSB0YWJsZVZpcnR1YWxTY3JvbGwhOiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLwgYm9keSDmlbDmja7pq5jluqZcclxuICAgKiBAZW5fVVMgVGFibGUgYm9keSBkYXRhIGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSB0YWJsZUJvZHlIZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOi2heWHuuWPr+inhueql+WPo+e8k+WGsuWMuueahOacgOWwj+WAvO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBUaGUgdGFibGUgZXhjZWVkcyB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSB0YWJsZU1pbkJ1ZmZlclB4OiBudW1iZXIgPSAxMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOa4suafk+aWsOaVsOaNrue8k+WGsuWMuueahOWDj+e0oO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBUaGUgcGl4ZWxzIG9mIHRoZSBuZXcgZGF0YSBidWZmZXIgZm9yIHRoZSB0YWJsZSByZW5kZXJpbmcsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRhYmxlTWF4QnVmZmVyUHg6IG51bWJlciA9IDIwMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86Ieq6YCC5bqU6auY5bqm77yMdGFibGUg6auY5bqm562J5LqO5bGP5bmV6auY5bqm5YeP5o6J5q2k5aSE6K6+572u55qE5pWw5YC8XHJcbiAgICogQGVuX1VTIFRhYmxlIGFkYXB0aXZlIGhlaWdodCwgdGFibGUgaGVpZ2h0IGlzIGVxdWFsIHRvIHRoZSBzY3JlZW4gaGVpZ2h0IG1pbnVzIHRoZSB2YWx1ZSBzZXQgaGVyZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSB0YWJsZUFkYXB0aW9uSGVpZ2h0PzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85paH5qGj6auY5bqm55m+5YiG5q+U77yM5by556qX55m+5YiG5q+U6auY5bqm55So5YiwXHJcbiAgICogQGVuX1VTIFRhYmxlIGRvY3VtZW50IGhlaWdodCBwZXJjZW50YWdlLCB1c2VkIGZvciBwb3AtdXAgd2luZG93IHBlcmNlbnRhZ2UgaGVpZ2h0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIHRhYmxlRG9jUGVyY2VudDogWE51bWJlciA9IDE7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOmrmOW6pu+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgaGVpZ2h0LCB1bml0IHB4XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPG51bWJlcj4oWF9DT05GSUdfTkFNRSwgNDIpIEBYSW5wdXROdW1iZXIoKSB0YWJsZVJvd0hlaWdodCE6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR6IqC54K55pWw5o2uXHJcbiAgICogQGVuX1VTIFRyZWUgbm9kZSBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHRyZWVEYXRhOiBYRGF0YTxYVHJlZU5vZGU+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeW9k+WJjeeCueWHu+mAieS4reeahOiKgueCueWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBUaGUgZXZlbnQgb2YgdGhlIHRyZWUgY3VycmVudGx5IGNsaWNrZWQgb24gdGhlIHNlbGVjdGVkIG5vZGUgY2hhbmdlXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHRyZWVBY3RpdmF0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhUcmVlTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2T5YmN5r+A5rS755qE6IqC54K5IElkXHJcbiAgICogQGVuX1VTIElkIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIG5vZGUgb2YgdGhlIHRyZWVcclxuICAgKi9cclxuICBASW5wdXQoKSB0cmVlQWN0aXZhdGVkSWQ6IGFueTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR6buY6K6k5bGV5byA55qE5bGC57qnXHJcbiAgICogQGVuX1VTIFRoZSBsZXZlbCBvZiB0aGUgdHJlZSBleHBhbmRlZCBieSBkZWZhdWx0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIDApIEBYSW5wdXROdW1iZXIoKSB0cmVlRXhwYW5kZWRMZXZlbCE6IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkSBjaGVja2JveCDpgInkuK3nmoToioLngrlcclxuICAgKiBAZW5fVVMgVHJlZSBjaGVja2JveCBzZWxlY3RlZCBub2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHJlZUNoZWNrZWQ6IGFueVtdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeaYvuekuuWkmumAieahhlxyXG4gICAqIEBlbl9VUyBUcmVlIGRpc3BsYXkgY2hlY2tib3hcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHRyZWVDaGVja2JveD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlkozooajmoLzlkIzml7blrZjlnKjnmoTml7blgJnvvIzmoJHoioLngrkgaWQg5a+55bqU6KGo5qC855qE5bGe5oCn77yM55So5p2l5YGa6KGo5qC85pWw5o2u6L+H5rukXHJcbiAgICogQGVuX1VTIFdoZW4gdGhlIHRyZWUgYW5kIHRoZSB0YWJsZSBleGlzdCBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgdHJlZSBub2RlIGlkIGNvcnJlc3BvbmRzIHRvIHRoZSBhdHRyaWJ1dGUgb2YgdGhlIHRhYmxlLCB3aGljaCBpcyB1c2VkIHRvIGZpbHRlciB0aGUgdGFibGUgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRyZWVUYWJsZUNvbm5lY3Q6IGFueTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pWw5o2u5p+l6K+i6L+H5ruk6KGo5Y2VXHJcbiAgICogQGVuX1VTIGZvcm0gZm9yIGRhdGEgZmlsdGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2VhcmNoITogWEZpbmRTZWFyY2hPcHRpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGaW5kIE9wdGlvblxyXG4gKiBAdW5kb2N1bWVudCB0cnVlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhGaW5kT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIHNpemU/OiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgYm9yZGVyZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa6YCJXHJcbiAgICogQGVuX1VTIE11bHRpcGxlIHNlbGVjdFxyXG4gICAqL1xyXG4gIG11bHRpcGxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4rSBsYWJlbCDlkI3np7DlrZfmrrVcclxuICAgKiBAZW5fVVMgQ2hlY2sgdGhlIGxhYmVsIG5hbWUgZmllbGRcclxuICAgKi9cclxuICBjb2x1bW5MYWJlbD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5by55qGG5qCH6aKYXHJcbiAgICogQGVuX1VTIEJ1bGxldCB0aXRsZVxyXG4gICAqL1xyXG4gIGRpYWxvZ1RpdGxlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYblrr3luqZcclxuICAgKiBAZW5fVVMgQnVsbGV0IGZyYW1lIHdpZHRoXHJcbiAgICovXHJcbiAgZGlhbG9nV2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhumrmOW6plxyXG4gICAqIEBlbl9VUyBIZWlnaHQgb2YgYnVsbGV0IGZyYW1lXHJcbiAgICovXHJcbiAgZGlhbG9nSGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYbmmL7npLrvvIzpmpDol49cclxuICAgKiBAZW5fVVMgQnVsbGV0IGJveCBzaG93LCBoaWRlXHJcbiAgICovXHJcbiAgZGlhbG9nVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhuaYvuekuu+8jOmakOiXj1xyXG4gICAqIEBlbl9VUyBCdWxsZXQgYm94IHNob3csIGhpZGVcclxuICAgKi9cclxuICAvLyBkaWFsb2dWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjInpkq7lsYXkuK1cclxuICAgKiBAZW5fVVMgQnV0dG9uIGNlbnRlclxyXG4gICAqL1xyXG4gIGRpYWxvZ0J1dHRvbnNDZW50ZXI/OiBYQm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgZGF0YVxyXG4gICAqL1xyXG4gIHRhYmxlRGF0YT86IFhEYXRhPFhUYWJsZVJvdz47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteeggVxyXG4gICAqIEBlbl9VUyBUYWJsZSBwYWdlIG51bWJlclxyXG4gICAqL1xyXG4gIHRhYmxlSW5kZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOavj+mhteaVsOaNruadoeaVsFxyXG4gICAqIEBlbl9VUyBOdW1iZXIgb2YgZGF0YSBpdGVtcyBwZXIgcGFnZVxyXG4gICAqL1xyXG4gIHRhYmxlU2l6ZT86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85pWw5o2u5oC75p2h5pWwXHJcbiAgICogQGVuX1VTIFRvdGFsIG51bWJlciBvZiB0YWJsZSBkYXRhXHJcbiAgICovXHJcbiAgdGFibGVUb3RhbD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6aG156CB5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhZ2UgbnVtYmVyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIC8vIHRhYmxlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q+P6aG15pi+56S65p2h5pWw5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNob3cgdGhlIG51bWJlciBvZiBldmVudHMgb24gZWFjaCBwYWdlXHJcbiAgICovXHJcbiAgLy8gdGFibGVTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOkuW6j+eCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTb3J0IGNsaWNrIGV2ZW50c1xyXG4gICAqL1xyXG4gIC8vIHRhYmxlU29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFNvcnRbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85YiX5Y+C5pWwXHJcbiAgICogQGVuX1VTIFRhYmxlIGNvbHVtbiBwYXJhbWV0ZXJzXHJcbiAgICovXHJcbiAgdGFibGVDb2x1bW5zPzogWFRhYmxlQ29sdW1uW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgc2VsZWN0ZWQgcm93IGRhdGFcclxuICAgKi9cclxuICB0YWJsZUFjdGl2YXRlZFJvdz86IGFueTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86KGM54K55Ye75LqL5Lu2XHJcbiAgICogQGVuX1VTIFRhYmxlIHJvdyBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIC8vIHRhYmxlUm93RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzooYzngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgVGFibGUgcm93IGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgdGFibGVDaGVja2VkUm93PzogeyBbcHJvcGVydHk6IHN0cmluZ106IGFueVtdIH07XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWQr+eUqOWKoOi9vSBsb2FkaW5nXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZW5hYmxlIGxvYWRpbmdcclxuICAgKi9cclxuICB0YWJsZUxvYWRpbmc/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC85byA5ZCv6Jma5ouf5rua5YqoXHJcbiAgICogQGVuX1VTIFRhYmxlIG9wZW5zIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgdGFibGVWaXJ0dWFsU2Nyb2xsPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC8IGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIFRhYmxlIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICB0YWJsZUJvZHlIZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOi2heWHuuWPr+inhueql+WPo+e8k+WGsuWMuueahOacgOWwj+WAvO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBUaGUgdGFibGUgZXhjZWVkcyB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICB0YWJsZU1pbkJ1ZmZlclB4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgVGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyIGZvciB0aGUgdGFibGUgcmVuZGVyaW5nLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICB0YWJsZU1heEJ1ZmZlclB4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooajmoLzoh6rpgILlupTpq5jluqbvvIx0YWJsZSDpq5jluqbnrYnkuo7lsY/luZXpq5jluqblh4/mjonmraTlpITorr7nva7nmoTmlbDlgLxcclxuICAgKiBAZW5fVVMgVGFibGUgYWRhcHRpdmUgaGVpZ2h0LCB0YWJsZSBoZWlnaHQgaXMgZXF1YWwgdG8gdGhlIHNjcmVlbiBoZWlnaHQgbWludXMgdGhlIHZhbHVlIHNldCBoZXJlXHJcbiAgICovXHJcbiAgdGFibGVBZGFwdGlvbkhlaWdodD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBUYWJsZSBkb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBmb3IgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIHRhYmxlRG9jUGVyY2VudD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOihjOmrmOW6pu+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBUYWJsZSByb3cgaGVpZ2h0LCB1bml0IHB4XHJcbiAgICovXHJcbiAgdGFibGVSb3dIZWlnaHQ/OiBYTnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR6IqC54K55pWw5o2uXHJcbiAgICogQGVuX1VTIFRyZWUgbm9kZSBkYXRhXHJcbiAgICovXHJcbiAgdHJlZURhdGE/OiBYRGF0YTxYVHJlZU5vZGU+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvZPliY3ngrnlh7vpgInkuK3nmoToioLngrnlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgVGhlIGV2ZW50IG9mIHRoZSB0cmVlIGN1cnJlbnRseSBjbGlja2VkIG9uIHRoZSBzZWxlY3RlZCBub2RlIGNoYW5nZVxyXG4gICAqL1xyXG4gIC8vIHRyZWVBY3RpdmF0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhUcmVlTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2T5YmN5r+A5rS755qE6IqC54K5IElkXHJcbiAgICogQGVuX1VTIElkIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIG5vZGUgb2YgdGhlIHRyZWVcclxuICAgKi9cclxuICB0cmVlQWN0aXZhdGVkSWQ/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkem7mOiupOWxleW8gOeahOWxgue6p1xyXG4gICAqIEBlbl9VUyBUaGUgbGV2ZWwgb2YgdGhlIHRyZWUgZXhwYW5kZWQgYnkgZGVmYXVsdFxyXG4gICAqL1xyXG4gIHRyZWVFeHBhbmRlZExldmVsPzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCRIGNoZWNrYm94IOmAieS4reeahOiKgueCuVxyXG4gICAqIEBlbl9VUyBUcmVlIGNoZWNrYm94IHNlbGVjdGVkIG5vZGVcclxuICAgKi9cclxuICB0cmVlQ2hlY2tlZD86IGFueVtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHmmL7npLrlpJrpgInmoYZcclxuICAgKiBAZW5fVVMgVHJlZSBkaXNwbGF5IGNoZWNrYm94XHJcbiAgICovXHJcbiAgdHJlZUNoZWNrYm94PzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeWSjOihqOagvOWQjOaXtuWtmOWcqOeahOaXtuWAme+8jOagkeiKgueCuSBpZCDlr7nlupTooajmoLznmoTlsZ7mgKfvvIznlKjmnaXlgZrooajmoLzmlbDmja7ov4fmu6RcclxuICAgKiBAZW5fVVMgV2hlbiB0aGUgdHJlZSBhbmQgdGhlIHRhYmxlIGV4aXN0IGF0IHRoZSBzYW1lIHRpbWUsIHRoZSB0cmVlIG5vZGUgaWQgY29ycmVzcG9uZHMgdG8gdGhlIGF0dHJpYnV0ZSBvZiB0aGUgdGFibGUsIHdoaWNoIGlzIHVzZWQgdG8gZmlsdGVyIHRoZSB0YWJsZSBkYXRhXHJcbiAgICovXHJcbiAgdHJlZVRhYmxlQ29ubmVjdD86IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruafpeivoui/h+a7pOihqOWNlVxyXG4gICAqIEBlbl9VUyBmb3JtIGZvciBkYXRhIGZpbHRlclxyXG4gICAqL1xyXG4gIHNlYXJjaD86IFhGaW5kU2VhcmNoT3B0aW9uO1xyXG59XHJcbiJdfQ==