@ng-nest/ui 14.0.8 → 14.0.10

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 (1082) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +6 -3
  2. package/auto-complete/auto-complete.component.d.ts +3 -5
  3. package/base-form/base-form.component.d.ts +3 -1
  4. package/base-form/base-form.property.d.ts +9 -1
  5. package/core/config/config.d.ts +5 -0
  6. package/core/interfaces/layout.type.d.ts +7 -1
  7. package/core/util/check.d.ts +2 -0
  8. package/core/util/public-api.d.ts +1 -0
  9. package/dialog/dialog.property.d.ts +8 -0
  10. package/esm2020/anchor/anchor.component.mjs +2 -2
  11. package/esm2020/auto-complete/auto-complete-portal.component.mjs +10 -4
  12. package/esm2020/auto-complete/auto-complete.component.mjs +20 -21
  13. package/esm2020/base-form/base-form.component.mjs +13 -4
  14. package/esm2020/base-form/base-form.property.mjs +4 -2
  15. package/esm2020/core/config/config.mjs +1 -1
  16. package/esm2020/core/interfaces/identify.type.mjs +1 -1
  17. package/esm2020/core/interfaces/layout.type.mjs +1 -1
  18. package/esm2020/core/util/check.mjs +7 -0
  19. package/esm2020/core/util/public-api.mjs +2 -1
  20. package/esm2020/date-picker/picker-date.component.mjs +2 -5
  21. package/esm2020/dialog/dialog.property.mjs +1 -1
  22. package/esm2020/find/find.property.mjs +2 -2
  23. package/esm2020/form/control.component.mjs +13 -4
  24. package/esm2020/form/form.property.mjs +1 -1
  25. package/esm2020/highlight/highlight.component.mjs +29 -8
  26. package/esm2020/highlight/highlight.module.mjs +5 -4
  27. package/esm2020/highlight/highlight.property.mjs +9 -3
  28. package/esm2020/i18n/i18n.property.mjs +1 -1
  29. package/esm2020/i18n/languages/en_US.mjs +7 -1
  30. package/esm2020/i18n/languages/zh_CN.mjs +7 -1
  31. package/esm2020/i18n/languages/zh_TW.mjs +7 -1
  32. package/esm2020/icon/icon.property.mjs +1 -1
  33. package/esm2020/image/image-group.component.mjs +4 -1
  34. package/esm2020/image/image.component.mjs +6 -1
  35. package/esm2020/input/input.component.mjs +7 -4
  36. package/esm2020/input/input.property.mjs +1 -1
  37. package/esm2020/input-number/input-number.component.mjs +8 -2
  38. package/esm2020/input-number/input-number.property.mjs +4 -2
  39. package/esm2020/list/list-drop-group.directive.mjs +47 -0
  40. package/esm2020/list/list.component.mjs +35 -9
  41. package/esm2020/list/list.module.mjs +6 -5
  42. package/esm2020/list/list.property.mjs +1 -1
  43. package/esm2020/list/public-api.mjs +2 -1
  44. package/esm2020/message-box/message-box.component.mjs +24 -9
  45. package/esm2020/message-box/message-box.module.mjs +8 -4
  46. package/esm2020/message-box/message-box.property.mjs +1 -1
  47. package/esm2020/message-box/message-box.service.mjs +10 -3
  48. package/esm2020/resizable/resizable.directive.mjs +2 -2
  49. package/esm2020/slider-select/slider-select.component.mjs +4 -3
  50. package/esm2020/slider-select/slider-select.property.mjs +7 -2
  51. package/esm2020/table/table-body.component.mjs +5 -3
  52. package/esm2020/table/table.component.mjs +10 -6
  53. package/esm2020/table/table.property.mjs +21 -2
  54. package/esm2020/tabs/public-api.mjs +2 -1
  55. package/esm2020/tabs/tab-link.directive.mjs +44 -0
  56. package/esm2020/tabs/tab.component.mjs +12 -5
  57. package/esm2020/tabs/tabs.component.mjs +61 -13
  58. package/esm2020/tabs/tabs.module.mjs +19 -4
  59. package/esm2020/tabs/tabs.property.mjs +17 -2
  60. package/esm2020/transfer/transfer.component.mjs +354 -51
  61. package/esm2020/transfer/transfer.module.mjs +35 -4
  62. package/esm2020/transfer/transfer.property.mjs +41 -3
  63. package/esm2020/tree/tree-node.component.mjs +19 -10
  64. package/esm2020/tree/tree.component.mjs +22 -20
  65. package/esm2020/tree/tree.property.mjs +8 -2
  66. package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
  67. package/esm2020/tree-select/tree-select.component.mjs +2 -1
  68. package/esm2020/tree-select/tree-select.property.mjs +8 -2
  69. package/esm2020/upload/upload.component.mjs +22 -15
  70. package/esm2020/upload/upload.property.mjs +4 -2
  71. package/fesm2015/ng-nest-ui-anchor.mjs +2 -2
  72. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  73. package/fesm2015/ng-nest-ui-auto-complete.mjs +27 -22
  74. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  75. package/fesm2015/ng-nest-ui-base-form.mjs +16 -5
  76. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  77. package/fesm2015/ng-nest-ui-core.mjs +8 -1
  78. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  79. package/fesm2015/ng-nest-ui-date-picker.mjs +1 -4
  80. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  81. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  82. package/fesm2015/ng-nest-ui-find.mjs +1 -1
  83. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  84. package/fesm2015/ng-nest-ui-form.mjs +12 -4
  85. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  86. package/fesm2015/ng-nest-ui-highlight.mjs +42 -13
  87. package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
  88. package/fesm2015/ng-nest-ui-i18n.mjs +18 -0
  89. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  90. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  91. package/fesm2015/ng-nest-ui-image.mjs +8 -0
  92. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  93. package/fesm2015/ng-nest-ui-input-number.mjs +10 -2
  94. package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
  95. package/fesm2015/ng-nest-ui-input.mjs +6 -3
  96. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  97. package/fesm2015/ng-nest-ui-list.mjs +85 -14
  98. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  99. package/fesm2015/ng-nest-ui-message-box.mjs +39 -14
  100. package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
  101. package/fesm2015/ng-nest-ui-resizable.mjs +1 -1
  102. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  103. package/fesm2015/ng-nest-ui-slider-select.mjs +9 -3
  104. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  105. package/fesm2015/ng-nest-ui-table.mjs +33 -8
  106. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  107. package/fesm2015/ng-nest-ui-tabs.mjs +154 -23
  108. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  109. package/fesm2015/ng-nest-ui-transfer.mjs +433 -57
  110. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  111. package/fesm2015/ng-nest-ui-tree-select.mjs +10 -3
  112. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
  113. package/fesm2015/ng-nest-ui-tree.mjs +47 -30
  114. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  115. package/fesm2015/ng-nest-ui-upload.mjs +24 -15
  116. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  117. package/fesm2020/ng-nest-ui-anchor.mjs +2 -2
  118. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  119. package/fesm2020/ng-nest-ui-auto-complete.mjs +27 -22
  120. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  121. package/fesm2020/ng-nest-ui-base-form.mjs +16 -5
  122. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  123. package/fesm2020/ng-nest-ui-core.mjs +8 -1
  124. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  125. package/fesm2020/ng-nest-ui-date-picker.mjs +1 -4
  126. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  127. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  128. package/fesm2020/ng-nest-ui-find.mjs +1 -1
  129. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  130. package/fesm2020/ng-nest-ui-form.mjs +12 -4
  131. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  132. package/fesm2020/ng-nest-ui-highlight.mjs +40 -13
  133. package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
  134. package/fesm2020/ng-nest-ui-i18n.mjs +18 -0
  135. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  136. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  137. package/fesm2020/ng-nest-ui-image.mjs +8 -0
  138. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  139. package/fesm2020/ng-nest-ui-input-number.mjs +10 -2
  140. package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
  141. package/fesm2020/ng-nest-ui-input.mjs +6 -3
  142. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  143. package/fesm2020/ng-nest-ui-list.mjs +82 -13
  144. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  145. package/fesm2020/ng-nest-ui-message-box.mjs +38 -13
  146. package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
  147. package/fesm2020/ng-nest-ui-resizable.mjs +1 -1
  148. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  149. package/fesm2020/ng-nest-ui-slider-select.mjs +9 -3
  150. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  151. package/fesm2020/ng-nest-ui-table.mjs +33 -8
  152. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  153. package/fesm2020/ng-nest-ui-tabs.mjs +147 -23
  154. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  155. package/fesm2020/ng-nest-ui-transfer.mjs +427 -55
  156. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  157. package/fesm2020/ng-nest-ui-tree-select.mjs +10 -3
  158. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
  159. package/fesm2020/ng-nest-ui-tree.mjs +46 -29
  160. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  161. package/fesm2020/ng-nest-ui-upload.mjs +24 -15
  162. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  163. package/find/find.property.d.ts +1 -1
  164. package/form/form.property.d.ts +10 -0
  165. package/highlight/highlight.component.d.ts +4 -1
  166. package/highlight/highlight.module.d.ts +2 -1
  167. package/highlight/highlight.property.d.ts +7 -2
  168. package/i18n/i18n.property.d.ts +7 -0
  169. package/i18n/languages/en_US.d.ts +6 -0
  170. package/i18n/languages/zh_CN.d.ts +6 -0
  171. package/i18n/languages/zh_TW.d.ts +6 -0
  172. package/icon/icon.property.d.ts +1 -1
  173. package/image/image-group.component.d.ts +1 -0
  174. package/image/image.component.d.ts +1 -0
  175. package/input/input.property.d.ts +7 -2
  176. package/input-number/input-number.property.d.ts +12 -1
  177. package/list/list-drop-group.directive.d.ts +15 -0
  178. package/list/list.component.d.ts +7 -3
  179. package/list/list.module.d.ts +15 -14
  180. package/list/list.property.d.ts +3 -1
  181. package/list/public-api.d.ts +1 -0
  182. package/message-box/message-box.component.d.ts +4 -2
  183. package/message-box/message-box.module.d.ts +2 -1
  184. package/message-box/message-box.property.d.ts +18 -4
  185. package/package.json +1 -1
  186. package/slider-select/slider-select.component.d.ts +1 -0
  187. package/slider-select/slider-select.property.d.ts +6 -1
  188. package/table/table.property.d.ts +18 -1
  189. package/tabs/public-api.d.ts +1 -0
  190. package/tabs/tab-link.directive.d.ts +17 -0
  191. package/tabs/tab.component.d.ts +4 -1
  192. package/tabs/tabs.component.d.ts +9 -2
  193. package/tabs/tabs.module.d.ts +7 -6
  194. package/tabs/tabs.property.d.ts +11 -1
  195. package/transfer/transfer.component.d.ts +29 -4
  196. package/transfer/transfer.module.d.ts +3 -1
  197. package/transfer/transfer.property.d.ts +85 -6
  198. package/tree/tree.property.d.ts +6 -1
  199. package/tree-select/tree-select-portal.component.d.ts +1 -0
  200. package/tree-select/tree-select.property.d.ts +6 -1
  201. package/upload/upload.component.d.ts +1 -1
  202. package/upload/upload.property.d.ts +13 -1
  203. package/affix/examples/en_US/default/README.md +0 -4
  204. package/affix/examples/en_US/default/default/README.md +0 -6
  205. package/affix/examples/en_US/default/scope/README.md +0 -6
  206. package/affix/examples/zh_CN/default/README.md +0 -4
  207. package/affix/examples/zh_CN/default/default/README.md +0 -6
  208. package/affix/examples/zh_CN/default/scope/README.md +0 -6
  209. package/alert/examples/en_US/default/README.md +0 -4
  210. package/alert/examples/en_US/default/custom/README.md +0 -9
  211. package/alert/examples/en_US/default/default/README.md +0 -6
  212. package/alert/examples/en_US/default/description/README.md +0 -6
  213. package/alert/examples/en_US/default/effect/README.md +0 -6
  214. package/alert/examples/en_US/default/icon/README.md +0 -6
  215. package/alert/examples/zh_CN/default/README.md +0 -4
  216. package/alert/examples/zh_CN/default/custom/README.md +0 -9
  217. package/alert/examples/zh_CN/default/default/README.md +0 -6
  218. package/alert/examples/zh_CN/default/description/README.md +0 -6
  219. package/alert/examples/zh_CN/default/effect/README.md +0 -6
  220. package/alert/examples/zh_CN/default/icon/README.md +0 -6
  221. package/anchor/examples/en_US/default/README.md +0 -4
  222. package/anchor/examples/en_US/default/default/README.md +0 -6
  223. package/anchor/examples/zh_CN/default/README.md +0 -4
  224. package/anchor/examples/zh_CN/default/default/README.md +0 -6
  225. package/auto-complete/examples/en_US/default/README.md +0 -4
  226. package/auto-complete/examples/en_US/default/bordered/README.md +0 -6
  227. package/auto-complete/examples/en_US/default/custom/README.md +0 -6
  228. package/auto-complete/examples/en_US/default/default/README.md +0 -6
  229. package/auto-complete/examples/en_US/default/disabled/README.md +0 -6
  230. package/auto-complete/examples/en_US/default/label/README.md +0 -7
  231. package/auto-complete/examples/en_US/default/required/README.md +0 -6
  232. package/auto-complete/examples/en_US/default/size/README.md +0 -6
  233. package/auto-complete/examples/zh_CN/default/README.md +0 -4
  234. package/auto-complete/examples/zh_CN/default/bordered/README.md +0 -6
  235. package/auto-complete/examples/zh_CN/default/custom/README.md +0 -6
  236. package/auto-complete/examples/zh_CN/default/default/README.md +0 -6
  237. package/auto-complete/examples/zh_CN/default/disabled/README.md +0 -6
  238. package/auto-complete/examples/zh_CN/default/label/README.md +0 -7
  239. package/auto-complete/examples/zh_CN/default/required/README.md +0 -6
  240. package/auto-complete/examples/zh_CN/default/size/README.md +0 -6
  241. package/avatar/examples/en_US/default/README.md +0 -4
  242. package/avatar/examples/en_US/default/badge/README.md +0 -6
  243. package/avatar/examples/en_US/default/default/README.md +0 -7
  244. package/avatar/examples/en_US/default/display/README.md +0 -6
  245. package/avatar/examples/en_US/default/fallback/README.md +0 -6
  246. package/avatar/examples/en_US/default/fit/README.md +0 -6
  247. package/avatar/examples/en_US/default/group/README.md +0 -6
  248. package/avatar/examples/en_US/default/label/README.md +0 -6
  249. package/avatar/examples/en_US/default/response/README.md +0 -6
  250. package/avatar/examples/zh_CN/default/README.md +0 -4
  251. package/avatar/examples/zh_CN/default/badge/README.md +0 -6
  252. package/avatar/examples/zh_CN/default/default/README.md +0 -7
  253. package/avatar/examples/zh_CN/default/display/README.md +0 -6
  254. package/avatar/examples/zh_CN/default/fallback/README.md +0 -6
  255. package/avatar/examples/zh_CN/default/fit/README.md +0 -6
  256. package/avatar/examples/zh_CN/default/group/README.md +0 -6
  257. package/avatar/examples/zh_CN/default/label/README.md +0 -6
  258. package/avatar/examples/zh_CN/default/response/README.md +0 -6
  259. package/back-top/examples/en_US/default/README.md +0 -4
  260. package/back-top/examples/en_US/default/custom/README.md +0 -6
  261. package/back-top/examples/en_US/default/default/README.md +0 -6
  262. package/back-top/examples/en_US/default/target/README.md +0 -6
  263. package/back-top/examples/zh_CN/default/README.md +0 -4
  264. package/back-top/examples/zh_CN/default/custom/README.md +0 -6
  265. package/back-top/examples/zh_CN/default/default/README.md +0 -6
  266. package/back-top/examples/zh_CN/default/target/README.md +0 -6
  267. package/badge/examples/en_US/default/README.md +0 -4
  268. package/badge/examples/en_US/default/animation/README.md +0 -4
  269. package/badge/examples/en_US/default/color/README.md +0 -6
  270. package/badge/examples/en_US/default/custom/README.md +0 -7
  271. package/badge/examples/en_US/default/default/README.md +0 -7
  272. package/badge/examples/en_US/default/dot/README.md +0 -7
  273. package/badge/examples/en_US/default/max/README.md +0 -6
  274. package/badge/examples/en_US/default/offset/README.md +0 -6
  275. package/badge/examples/en_US/default/standalone/README.md +0 -6
  276. package/badge/examples/zh_CN/default/README.md +0 -4
  277. package/badge/examples/zh_CN/default/animation/README.md +0 -4
  278. package/badge/examples/zh_CN/default/color/README.md +0 -6
  279. package/badge/examples/zh_CN/default/custom/README.md +0 -7
  280. package/badge/examples/zh_CN/default/default/README.md +0 -7
  281. package/badge/examples/zh_CN/default/dot/README.md +0 -7
  282. package/badge/examples/zh_CN/default/max/README.md +0 -6
  283. package/badge/examples/zh_CN/default/offset/README.md +0 -6
  284. package/badge/examples/zh_CN/default/standalone/README.md +0 -6
  285. package/border/examples/en_US/default/README.md +0 -4
  286. package/border/examples/en_US/default/default/README.md +0 -6
  287. package/border/examples/en_US/default/radius/README.md +0 -6
  288. package/border/examples/en_US/default/shadow/README.md +0 -6
  289. package/border/examples/zh_CN/default/README.md +0 -4
  290. package/border/examples/zh_CN/default/default/README.md +0 -6
  291. package/border/examples/zh_CN/default/radius/README.md +0 -6
  292. package/border/examples/zh_CN/default/shadow/README.md +0 -6
  293. package/button/examples/en_US/default/README.md +0 -4
  294. package/button/examples/en_US/default/default/README.md +0 -8
  295. package/button/examples/en_US/default/disabled/README.md +0 -8
  296. package/button/examples/en_US/default/group/README.md +0 -10
  297. package/button/examples/en_US/default/icon/README.md +0 -9
  298. package/button/examples/en_US/default/loading/README.md +0 -8
  299. package/button/examples/en_US/default/size/README.md +0 -8
  300. package/button/examples/en_US/default/text/README.md +0 -6
  301. package/button/examples/zh_CN/default/README.md +0 -4
  302. package/button/examples/zh_CN/default/default/README.md +0 -8
  303. package/button/examples/zh_CN/default/disabled/README.md +0 -8
  304. package/button/examples/zh_CN/default/group/README.md +0 -10
  305. package/button/examples/zh_CN/default/icon/README.md +0 -9
  306. package/button/examples/zh_CN/default/loading/README.md +0 -8
  307. package/button/examples/zh_CN/default/size/README.md +0 -8
  308. package/button/examples/zh_CN/default/text/README.md +0 -6
  309. package/calendar/examples/en_US/default/README.md +0 -4
  310. package/calendar/examples/en_US/default/card/README.md +0 -6
  311. package/calendar/examples/en_US/default/default/README.md +0 -6
  312. package/calendar/examples/en_US/default/header/README.md +0 -6
  313. package/calendar/examples/zh_CN/default/README.md +0 -4
  314. package/calendar/examples/zh_CN/default/card/README.md +0 -6
  315. package/calendar/examples/zh_CN/default/default/README.md +0 -6
  316. package/calendar/examples/zh_CN/default/header/README.md +0 -6
  317. package/card/examples/en_US/default/README.md +0 -4
  318. package/card/examples/en_US/default/default/README.md +0 -6
  319. package/card/examples/en_US/default/header/README.md +0 -6
  320. package/card/examples/en_US/default/img/README.md +0 -6
  321. package/card/examples/en_US/default/shadow/README.md +0 -7
  322. package/card/examples/zh_CN/default/README.md +0 -4
  323. package/card/examples/zh_CN/default/default/README.md +0 -6
  324. package/card/examples/zh_CN/default/header/README.md +0 -6
  325. package/card/examples/zh_CN/default/img/README.md +0 -6
  326. package/card/examples/zh_CN/default/shadow/README.md +0 -7
  327. package/carousel/examples/en_US/default/README.md +0 -4
  328. package/carousel/examples/en_US/default/arrow/README.md +0 -7
  329. package/carousel/examples/en_US/default/card/README.md +0 -7
  330. package/carousel/examples/en_US/default/default/README.md +0 -7
  331. package/carousel/examples/en_US/default/direction/README.md +0 -6
  332. package/carousel/examples/zh_CN/default/README.md +0 -4
  333. package/carousel/examples/zh_CN/default/arrow/README.md +0 -7
  334. package/carousel/examples/zh_CN/default/card/README.md +0 -7
  335. package/carousel/examples/zh_CN/default/default/README.md +0 -7
  336. package/carousel/examples/zh_CN/default/direction/README.md +0 -6
  337. package/cascade/examples/en_US/default/README.md +0 -4
  338. package/cascade/examples/en_US/default/bordered/README.md +0 -6
  339. package/cascade/examples/en_US/default/default/README.md +0 -7
  340. package/cascade/examples/en_US/default/disabled/README.md +0 -6
  341. package/cascade/examples/en_US/default/hover/README.md +0 -7
  342. package/cascade/examples/en_US/default/label/README.md +0 -7
  343. package/cascade/examples/en_US/default/required/README.md +0 -6
  344. package/cascade/examples/en_US/default/size/README.md +0 -6
  345. package/cascade/examples/zh_CN/default/README.md +0 -4
  346. package/cascade/examples/zh_CN/default/bordered/README.md +0 -6
  347. package/cascade/examples/zh_CN/default/default/README.md +0 -7
  348. package/cascade/examples/zh_CN/default/disabled/README.md +0 -6
  349. package/cascade/examples/zh_CN/default/hover/README.md +0 -7
  350. package/cascade/examples/zh_CN/default/label/README.md +0 -7
  351. package/cascade/examples/zh_CN/default/required/README.md +0 -6
  352. package/cascade/examples/zh_CN/default/size/README.md +0 -6
  353. package/checkbox/examples/en_US/default/README.md +0 -4
  354. package/checkbox/examples/en_US/default/async/README.md +0 -6
  355. package/checkbox/examples/en_US/default/button/README.md +0 -6
  356. package/checkbox/examples/en_US/default/check-all/README.md +0 -6
  357. package/checkbox/examples/en_US/default/default/README.md +0 -9
  358. package/checkbox/examples/en_US/default/disabled/README.md +0 -9
  359. package/checkbox/examples/en_US/default/icon/README.md +0 -6
  360. package/checkbox/examples/zh_CN/default/README.md +0 -4
  361. package/checkbox/examples/zh_CN/default/async/README.md +0 -6
  362. package/checkbox/examples/zh_CN/default/button/README.md +0 -6
  363. package/checkbox/examples/zh_CN/default/check-all/README.md +0 -6
  364. package/checkbox/examples/zh_CN/default/default/README.md +0 -9
  365. package/checkbox/examples/zh_CN/default/disabled/README.md +0 -9
  366. package/checkbox/examples/zh_CN/default/icon/README.md +0 -6
  367. package/collapse/examples/en_US/default/README.md +0 -4
  368. package/collapse/examples/en_US/default/accordion/README.md +0 -7
  369. package/collapse/examples/en_US/default/arrow/README.md +0 -6
  370. package/collapse/examples/en_US/default/border/README.md +0 -6
  371. package/collapse/examples/en_US/default/custom/README.md +0 -6
  372. package/collapse/examples/en_US/default/default/README.md +0 -6
  373. package/collapse/examples/en_US/default/disabled/README.md +0 -6
  374. package/collapse/examples/en_US/default/ghost/README.md +0 -6
  375. package/collapse/examples/en_US/default/icon/README.md +0 -6
  376. package/collapse/examples/zh_CN/default/README.md +0 -4
  377. package/collapse/examples/zh_CN/default/accordion/README.md +0 -7
  378. package/collapse/examples/zh_CN/default/arrow/README.md +0 -6
  379. package/collapse/examples/zh_CN/default/border/README.md +0 -6
  380. package/collapse/examples/zh_CN/default/custom/README.md +0 -6
  381. package/collapse/examples/zh_CN/default/default/README.md +0 -6
  382. package/collapse/examples/zh_CN/default/disabled/README.md +0 -6
  383. package/collapse/examples/zh_CN/default/ghost/README.md +0 -6
  384. package/collapse/examples/zh_CN/default/icon/README.md +0 -6
  385. package/color/examples/en_US/default/README.md +0 -4
  386. package/color/examples/en_US/default/assist/README.md +0 -6
  387. package/color/examples/en_US/default/default/README.md +0 -8
  388. package/color/examples/en_US/default/neutral/README.md +0 -6
  389. package/color/examples/zh_CN/default/README.md +0 -4
  390. package/color/examples/zh_CN/default/assist/README.md +0 -6
  391. package/color/examples/zh_CN/default/default/README.md +0 -8
  392. package/color/examples/zh_CN/default/neutral/README.md +0 -6
  393. package/color-picker/examples/en_US/default/README.md +0 -4
  394. package/color-picker/examples/en_US/default/bordered/README.md +0 -6
  395. package/color-picker/examples/en_US/default/default/README.md +0 -6
  396. package/color-picker/examples/en_US/default/disabled/README.md +0 -6
  397. package/color-picker/examples/en_US/default/label/README.md +0 -7
  398. package/color-picker/examples/en_US/default/required/README.md +0 -6
  399. package/color-picker/examples/en_US/default/size/README.md +0 -6
  400. package/color-picker/examples/zh_CN/default/README.md +0 -4
  401. package/color-picker/examples/zh_CN/default/bordered/README.md +0 -6
  402. package/color-picker/examples/zh_CN/default/default/README.md +0 -6
  403. package/color-picker/examples/zh_CN/default/disabled/README.md +0 -6
  404. package/color-picker/examples/zh_CN/default/label/README.md +0 -7
  405. package/color-picker/examples/zh_CN/default/required/README.md +0 -6
  406. package/color-picker/examples/zh_CN/default/size/README.md +0 -6
  407. package/comment/examples/en_US/default/README.md +0 -4
  408. package/comment/examples/en_US/default/default/README.md +0 -6
  409. package/comment/examples/zh_CN/default/README.md +0 -4
  410. package/comment/examples/zh_CN/default/default/README.md +0 -6
  411. package/container/examples/en_US/default/README.md +0 -4
  412. package/container/examples/en_US/default/default/README.md +0 -10
  413. package/container/examples/zh_CN/default/README.md +0 -4
  414. package/container/examples/zh_CN/default/default/README.md +0 -10
  415. package/crumb/examples/en_US/default/README.md +0 -4
  416. package/crumb/examples/en_US/default/custom/README.md +0 -6
  417. package/crumb/examples/en_US/default/default/README.md +0 -6
  418. package/crumb/examples/en_US/default/icon/README.md +0 -6
  419. package/crumb/examples/en_US/default/separator/README.md +0 -6
  420. package/crumb/examples/zh_CN/default/README.md +0 -4
  421. package/crumb/examples/zh_CN/default/custom/README.md +0 -6
  422. package/crumb/examples/zh_CN/default/default/README.md +0 -6
  423. package/crumb/examples/zh_CN/default/icon/README.md +0 -6
  424. package/crumb/examples/zh_CN/default/separator/README.md +0 -6
  425. package/date-picker/examples/en_US/default/README.md +0 -4
  426. package/date-picker/examples/en_US/default/bordered/README.md +0 -6
  427. package/date-picker/examples/en_US/default/default/README.md +0 -6
  428. package/date-picker/examples/en_US/default/disabled/README.md +0 -6
  429. package/date-picker/examples/en_US/default/label/README.md +0 -7
  430. package/date-picker/examples/en_US/default/required/README.md +0 -6
  431. package/date-picker/examples/en_US/default/size/README.md +0 -6
  432. package/date-picker/examples/en_US/default/time/README.md +0 -6
  433. package/date-picker/examples/en_US/default/today/README.md +0 -6
  434. package/date-picker/examples/en_US/default/year-month/README.md +0 -6
  435. package/date-picker/examples/zh_CN/default/README.md +0 -4
  436. package/date-picker/examples/zh_CN/default/bordered/README.md +0 -6
  437. package/date-picker/examples/zh_CN/default/default/README.md +0 -6
  438. package/date-picker/examples/zh_CN/default/disabled/README.md +0 -6
  439. package/date-picker/examples/zh_CN/default/label/README.md +0 -7
  440. package/date-picker/examples/zh_CN/default/required/README.md +0 -6
  441. package/date-picker/examples/zh_CN/default/size/README.md +0 -6
  442. package/date-picker/examples/zh_CN/default/time/README.md +0 -6
  443. package/date-picker/examples/zh_CN/default/today/README.md +0 -6
  444. package/date-picker/examples/zh_CN/default/year-month/README.md +0 -6
  445. package/description/examples/en_US/default/README.md +0 -4
  446. package/description/examples/en_US/default/border/README.md +0 -6
  447. package/description/examples/en_US/default/default/README.md +0 -6
  448. package/description/examples/en_US/default/size/README.md +0 -6
  449. package/description/examples/en_US/default/split/README.md +0 -8
  450. package/description/examples/en_US/default/vertical/README.md +0 -4
  451. package/description/examples/zh_CN/default/README.md +0 -4
  452. package/description/examples/zh_CN/default/border/README.md +0 -6
  453. package/description/examples/zh_CN/default/default/README.md +0 -6
  454. package/description/examples/zh_CN/default/size/README.md +0 -6
  455. package/description/examples/zh_CN/default/split/README.md +0 -8
  456. package/description/examples/zh_CN/default/vertical/README.md +0 -4
  457. package/dialog/examples/en_US/default/README.md +0 -4
  458. package/dialog/examples/en_US/default/container/README.md +0 -6
  459. package/dialog/examples/en_US/default/custom/README.md +0 -6
  460. package/dialog/examples/en_US/default/default/README.md +0 -6
  461. package/dialog/examples/en_US/default/draggable/README.md +0 -6
  462. package/dialog/examples/en_US/default/resizable/README.md +0 -6
  463. package/dialog/examples/en_US/default/service/README.md +0 -6
  464. package/dialog/examples/zh_CN/default/README.md +0 -4
  465. package/dialog/examples/zh_CN/default/container/README.md +0 -6
  466. package/dialog/examples/zh_CN/default/custom/README.md +0 -6
  467. package/dialog/examples/zh_CN/default/default/README.md +0 -6
  468. package/dialog/examples/zh_CN/default/draggable/README.md +0 -6
  469. package/dialog/examples/zh_CN/default/resizable/README.md +0 -6
  470. package/dialog/examples/zh_CN/default/service/README.md +0 -6
  471. package/drawer/examples/en_US/default/README.md +0 -4
  472. package/drawer/examples/en_US/default/container/README.md +0 -6
  473. package/drawer/examples/en_US/default/custom/README.md +0 -6
  474. package/drawer/examples/en_US/default/default/README.md +0 -6
  475. package/drawer/examples/en_US/default/multiple/README.md +0 -6
  476. package/drawer/examples/en_US/default/service/README.md +0 -6
  477. package/drawer/examples/en_US/default/title/README.md +0 -6
  478. package/drawer/examples/zh_CN/default/README.md +0 -4
  479. package/drawer/examples/zh_CN/default/container/README.md +0 -6
  480. package/drawer/examples/zh_CN/default/custom/README.md +0 -6
  481. package/drawer/examples/zh_CN/default/default/README.md +0 -6
  482. package/drawer/examples/zh_CN/default/multiple/README.md +0 -6
  483. package/drawer/examples/zh_CN/default/service/README.md +0 -6
  484. package/drawer/examples/zh_CN/default/title/README.md +0 -6
  485. package/dropdown/examples/en_US/default/README.md +0 -4
  486. package/dropdown/examples/en_US/default/default/README.md +0 -6
  487. package/dropdown/examples/en_US/default/multistage/README.md +0 -6
  488. package/dropdown/examples/en_US/default/prop/README.md +0 -6
  489. package/dropdown/examples/en_US/default/trigger/README.md +0 -6
  490. package/dropdown/examples/zh_CN/default/README.md +0 -4
  491. package/dropdown/examples/zh_CN/default/default/README.md +0 -6
  492. package/dropdown/examples/zh_CN/default/multistage/README.md +0 -6
  493. package/dropdown/examples/zh_CN/default/prop/README.md +0 -6
  494. package/dropdown/examples/zh_CN/default/trigger/README.md +0 -6
  495. package/empty/examples/en_US/default/README.md +0 -4
  496. package/empty/examples/en_US/default/custom/README.md +0 -6
  497. package/empty/examples/en_US/default/default/README.md +0 -6
  498. package/empty/examples/zh_CN/default/README.md +0 -4
  499. package/empty/examples/zh_CN/default/custom/README.md +0 -6
  500. package/empty/examples/zh_CN/default/default/README.md +0 -6
  501. package/find/examples/en_US/default/README.md +0 -4
  502. package/find/examples/en_US/default/bordered/README.md +0 -6
  503. package/find/examples/en_US/default/default/README.md +0 -10
  504. package/find/examples/en_US/default/disabled/README.md +0 -6
  505. package/find/examples/en_US/default/label/README.md +0 -7
  506. package/find/examples/en_US/default/size/README.md +0 -6
  507. package/find/examples/en_US/default/tree/README.md +0 -6
  508. package/find/examples/en_US/default/tree-table/README.md +0 -5
  509. package/find/examples/zh_CN/default/README.md +0 -4
  510. package/find/examples/zh_CN/default/bordered/README.md +0 -6
  511. package/find/examples/zh_CN/default/default/README.md +0 -10
  512. package/find/examples/zh_CN/default/disabled/README.md +0 -6
  513. package/find/examples/zh_CN/default/label/README.md +0 -7
  514. package/find/examples/zh_CN/default/size/README.md +0 -6
  515. package/find/examples/zh_CN/default/tree/README.md +0 -6
  516. package/find/examples/zh_CN/default/tree-table/README.md +0 -5
  517. package/form/examples/en_US/default/README.md +0 -4
  518. package/form/examples/en_US/default/default/README.md +0 -6
  519. package/form/examples/en_US/default/form-vaild/README.md +0 -8
  520. package/form/examples/en_US/default/label-row/README.md +0 -5
  521. package/form/examples/en_US/default/title/README.md +0 -4
  522. package/form/examples/zh_CN/default/README.md +0 -4
  523. package/form/examples/zh_CN/default/default/README.md +0 -6
  524. package/form/examples/zh_CN/default/form-vaild/README.md +0 -8
  525. package/form/examples/zh_CN/default/label-row/README.md +0 -5
  526. package/form/examples/zh_CN/default/title/README.md +0 -4
  527. package/highlight/examples/en_US/default/README.md +0 -4
  528. package/highlight/examples/en_US/default/html/README.md +0 -6
  529. package/highlight/examples/en_US/default/scss/README.md +0 -6
  530. package/highlight/examples/en_US/default/typescript/README.md +0 -6
  531. package/highlight/examples/zh_CN/default/README.md +0 -4
  532. package/highlight/examples/zh_CN/default/html/README.md +0 -6
  533. package/highlight/examples/zh_CN/default/scss/README.md +0 -6
  534. package/highlight/examples/zh_CN/default/typescript/README.md +0 -6
  535. package/icon/examples/en_US/default/README.md +0 -4
  536. package/icon/examples/en_US/default/ant-design/README.md +0 -12
  537. package/icon/examples/en_US/default/eva/README.md +0 -11
  538. package/icon/examples/en_US/default/feather/README.md +0 -8
  539. package/icon/examples/en_US/default/font-awesome/README.md +0 -10
  540. package/icon/examples/en_US/default/material-design/README.md +0 -11
  541. package/icon/examples/zh_CN/default/README.md +0 -4
  542. package/icon/examples/zh_CN/default/ant-design/README.md +0 -12
  543. package/icon/examples/zh_CN/default/eva/README.md +0 -11
  544. package/icon/examples/zh_CN/default/feather/README.md +0 -8
  545. package/icon/examples/zh_CN/default/font-awesome/README.md +0 -10
  546. package/icon/examples/zh_CN/default/material-design/README.md +0 -11
  547. package/image/examples/en_US/default/README.md +0 -4
  548. package/image/examples/en_US/default/default/README.md +0 -6
  549. package/image/examples/en_US/default/fallback/README.md +0 -6
  550. package/image/examples/en_US/default/group/README.md +0 -6
  551. package/image/examples/en_US/default/placeholder/README.md +0 -6
  552. package/image/examples/zh_CN/default/README.md +0 -4
  553. package/image/examples/zh_CN/default/default/README.md +0 -6
  554. package/image/examples/zh_CN/default/fallback/README.md +0 -6
  555. package/image/examples/zh_CN/default/group/README.md +0 -6
  556. package/image/examples/zh_CN/default/placeholder/README.md +0 -6
  557. package/input/examples/en_US/default/README.md +0 -4
  558. package/input/examples/en_US/default/bordered/README.md +0 -6
  559. package/input/examples/en_US/default/clear/README.md +0 -6
  560. package/input/examples/en_US/default/default/README.md +0 -6
  561. package/input/examples/en_US/default/disabled/README.md +0 -6
  562. package/input/examples/en_US/default/focus/README.md +0 -6
  563. package/input/examples/en_US/default/group/README.md +0 -6
  564. package/input/examples/en_US/default/icon/README.md +0 -7
  565. package/input/examples/en_US/default/label/README.md +0 -7
  566. package/input/examples/en_US/default/length/README.md +0 -6
  567. package/input/examples/en_US/default/perpost/README.md +0 -6
  568. package/input/examples/en_US/default/required/README.md +0 -6
  569. package/input/examples/en_US/default/size/README.md +0 -6
  570. package/input/examples/zh_CN/default/README.md +0 -4
  571. package/input/examples/zh_CN/default/bordered/README.md +0 -6
  572. package/input/examples/zh_CN/default/clear/README.md +0 -6
  573. package/input/examples/zh_CN/default/default/README.md +0 -6
  574. package/input/examples/zh_CN/default/disabled/README.md +0 -6
  575. package/input/examples/zh_CN/default/focus/README.md +0 -6
  576. package/input/examples/zh_CN/default/group/README.md +0 -6
  577. package/input/examples/zh_CN/default/icon/README.md +0 -7
  578. package/input/examples/zh_CN/default/label/README.md +0 -7
  579. package/input/examples/zh_CN/default/length/README.md +0 -6
  580. package/input/examples/zh_CN/default/perpost/README.md +0 -6
  581. package/input/examples/zh_CN/default/required/README.md +0 -6
  582. package/input/examples/zh_CN/default/size/README.md +0 -6
  583. package/input-number/examples/en_US/default/README.md +0 -4
  584. package/input-number/examples/en_US/default/bordered/README.md +0 -6
  585. package/input-number/examples/en_US/default/default/README.md +0 -6
  586. package/input-number/examples/en_US/default/disabled/README.md +0 -6
  587. package/input-number/examples/en_US/default/label/README.md +0 -7
  588. package/input-number/examples/en_US/default/limit/README.md +0 -6
  589. package/input-number/examples/en_US/default/precision/README.md +0 -7
  590. package/input-number/examples/en_US/default/required/README.md +0 -6
  591. package/input-number/examples/en_US/default/size/README.md +0 -6
  592. package/input-number/examples/zh_CN/default/README.md +0 -4
  593. package/input-number/examples/zh_CN/default/bordered/README.md +0 -6
  594. package/input-number/examples/zh_CN/default/default/README.md +0 -6
  595. package/input-number/examples/zh_CN/default/disabled/README.md +0 -6
  596. package/input-number/examples/zh_CN/default/label/README.md +0 -7
  597. package/input-number/examples/zh_CN/default/limit/README.md +0 -6
  598. package/input-number/examples/zh_CN/default/precision/README.md +0 -7
  599. package/input-number/examples/zh_CN/default/required/README.md +0 -6
  600. package/input-number/examples/zh_CN/default/size/README.md +0 -6
  601. package/layout/examples/en_US/default/README.md +0 -4
  602. package/layout/examples/en_US/default/blend/README.md +0 -6
  603. package/layout/examples/en_US/default/default/README.md +0 -10
  604. package/layout/examples/en_US/default/flex/README.md +0 -10
  605. package/layout/examples/en_US/default/hidden/README.md +0 -20
  606. package/layout/examples/en_US/default/layout/README.md +0 -6
  607. package/layout/examples/en_US/default/offset/README.md +0 -8
  608. package/layout/examples/en_US/default/space/README.md +0 -9
  609. package/layout/examples/zh_CN/default/README.md +0 -4
  610. package/layout/examples/zh_CN/default/blend/README.md +0 -6
  611. package/layout/examples/zh_CN/default/default/README.md +0 -10
  612. package/layout/examples/zh_CN/default/flex/README.md +0 -10
  613. package/layout/examples/zh_CN/default/hidden/README.md +0 -20
  614. package/layout/examples/zh_CN/default/layout/README.md +0 -6
  615. package/layout/examples/zh_CN/default/offset/README.md +0 -8
  616. package/layout/examples/zh_CN/default/space/README.md +0 -9
  617. package/link/examples/en_US/default/README.md +0 -4
  618. package/link/examples/en_US/default/default/README.md +0 -6
  619. package/link/examples/en_US/default/disabled/README.md +0 -8
  620. package/link/examples/en_US/default/icon/README.md +0 -6
  621. package/link/examples/en_US/default/underline/README.md +0 -6
  622. package/link/examples/zh_CN/default/README.md +0 -4
  623. package/link/examples/zh_CN/default/default/README.md +0 -6
  624. package/link/examples/zh_CN/default/disabled/README.md +0 -8
  625. package/link/examples/zh_CN/default/icon/README.md +0 -6
  626. package/link/examples/zh_CN/default/underline/README.md +0 -6
  627. package/list/examples/en_US/default/README.md +0 -4
  628. package/list/examples/en_US/default/default/README.md +0 -7
  629. package/list/examples/en_US/default/load-more/README.md +0 -8
  630. package/list/examples/en_US/default/scroll/README.md +0 -8
  631. package/list/examples/en_US/default/size/README.md +0 -6
  632. package/list/examples/zh_CN/default/README.md +0 -4
  633. package/list/examples/zh_CN/default/default/README.md +0 -7
  634. package/list/examples/zh_CN/default/load-more/README.md +0 -8
  635. package/list/examples/zh_CN/default/scroll/README.md +0 -8
  636. package/list/examples/zh_CN/default/size/README.md +0 -6
  637. package/loading/examples/en_US/default/README.md +0 -4
  638. package/loading/examples/en_US/default/custom/README.md +0 -6
  639. package/loading/examples/en_US/default/default/README.md +0 -6
  640. package/loading/examples/en_US/default/full-screen/README.md +0 -6
  641. package/loading/examples/zh_CN/default/README.md +0 -4
  642. package/loading/examples/zh_CN/default/custom/README.md +0 -6
  643. package/loading/examples/zh_CN/default/default/README.md +0 -6
  644. package/loading/examples/zh_CN/default/full-screen/README.md +0 -6
  645. package/menu/examples/en_US/default/README.md +0 -4
  646. package/menu/examples/en_US/default/default/README.md +0 -6
  647. package/menu/examples/en_US/default/icon/README.md +0 -6
  648. package/menu/examples/en_US/default/layout/README.md +0 -6
  649. package/menu/examples/en_US/default/leaf/README.md +0 -6
  650. package/menu/examples/en_US/default/size/README.md +0 -6
  651. package/menu/examples/zh_CN/default/README.md +0 -4
  652. package/menu/examples/zh_CN/default/default/README.md +0 -6
  653. package/menu/examples/zh_CN/default/icon/README.md +0 -6
  654. package/menu/examples/zh_CN/default/layout/README.md +0 -6
  655. package/menu/examples/zh_CN/default/leaf/README.md +0 -6
  656. package/menu/examples/zh_CN/default/size/README.md +0 -6
  657. package/message/examples/en_US/default/README.md +0 -4
  658. package/message/examples/en_US/default/close/README.md +0 -6
  659. package/message/examples/en_US/default/default/README.md +0 -6
  660. package/message/examples/en_US/default/loading/README.md +0 -6
  661. package/message/examples/en_US/default/single/README.md +0 -6
  662. package/message/examples/en_US/default/type/README.md +0 -6
  663. package/message/examples/zh_CN/default/README.md +0 -4
  664. package/message/examples/zh_CN/default/close/README.md +0 -6
  665. package/message/examples/zh_CN/default/default/README.md +0 -6
  666. package/message/examples/zh_CN/default/loading/README.md +0 -6
  667. package/message/examples/zh_CN/default/single/README.md +0 -6
  668. package/message/examples/zh_CN/default/type/README.md +0 -6
  669. package/message-box/examples/en_US/default/README.md +0 -4
  670. package/message-box/examples/en_US/default/confirm/README.md +0 -6
  671. package/message-box/examples/en_US/default/custom/README.md +0 -6
  672. package/message-box/examples/en_US/default/default/README.md +0 -6
  673. package/message-box/examples/en_US/default/prompt/README.md +0 -6
  674. package/message-box/examples/zh_CN/default/README.md +0 -4
  675. package/message-box/examples/zh_CN/default/confirm/README.md +0 -6
  676. package/message-box/examples/zh_CN/default/custom/README.md +0 -6
  677. package/message-box/examples/zh_CN/default/default/README.md +0 -6
  678. package/message-box/examples/zh_CN/default/prompt/README.md +0 -6
  679. package/notification/examples/en_US/default/README.md +0 -4
  680. package/notification/examples/en_US/default/default/README.md +0 -6
  681. package/notification/examples/en_US/default/type/README.md +0 -7
  682. package/notification/examples/zh_CN/default/README.md +0 -4
  683. package/notification/examples/zh_CN/default/default/README.md +0 -6
  684. package/notification/examples/zh_CN/default/type/README.md +0 -7
  685. package/outlet/examples/en_US/default/README.md +0 -4
  686. package/outlet/examples/en_US/default/default/README.md +0 -6
  687. package/outlet/examples/zh_CN/default/README.md +0 -4
  688. package/outlet/examples/zh_CN/default/default/README.md +0 -6
  689. package/page-header/examples/en_US/default/README.md +0 -4
  690. package/page-header/examples/en_US/default/default/README.md +0 -6
  691. package/page-header/examples/zh_CN/default/README.md +0 -4
  692. package/page-header/examples/zh_CN/default/default/README.md +0 -6
  693. package/pagination/examples/en_US/default/README.md +0 -4
  694. package/pagination/examples/en_US/default/default/README.md +0 -6
  695. package/pagination/examples/en_US/default/style/README.md +0 -8
  696. package/pagination/examples/zh_CN/default/README.md +0 -4
  697. package/pagination/examples/zh_CN/default/default/README.md +0 -6
  698. package/pagination/examples/zh_CN/default/style/README.md +0 -10
  699. package/popconfirm/examples/en_US/default/README.md +0 -4
  700. package/popconfirm/examples/en_US/default/async-close/README.md +0 -6
  701. package/popconfirm/examples/en_US/default/condition/README.md +0 -6
  702. package/popconfirm/examples/en_US/default/default/README.md +0 -6
  703. package/popconfirm/examples/zh_CN/default/README.md +0 -4
  704. package/popconfirm/examples/zh_CN/default/async-close/README.md +0 -6
  705. package/popconfirm/examples/zh_CN/default/condition/README.md +0 -6
  706. package/popconfirm/examples/zh_CN/default/default/README.md +0 -6
  707. package/popover/examples/en_US/default/README.md +0 -4
  708. package/popover/examples/en_US/default/default/README.md +0 -6
  709. package/popover/examples/zh_CN/default/README.md +0 -4
  710. package/popover/examples/zh_CN/default/default/README.md +0 -6
  711. package/progress/examples/en_US/default/README.md +0 -4
  712. package/progress/examples/en_US/default/circle/README.md +0 -6
  713. package/progress/examples/en_US/default/color/README.md +0 -6
  714. package/progress/examples/en_US/default/dashboard/README.md +0 -6
  715. package/progress/examples/en_US/default/default/README.md +0 -6
  716. package/progress/examples/en_US/default/format/README.md +0 -6
  717. package/progress/examples/en_US/default/gradient/README.md +0 -6
  718. package/progress/examples/en_US/default/inside/README.md +0 -6
  719. package/progress/examples/en_US/default/steps/README.md +0 -6
  720. package/progress/examples/en_US/default/subsection/README.md +0 -6
  721. package/progress/examples/zh_CN/default/README.md +0 -4
  722. package/progress/examples/zh_CN/default/circle/README.md +0 -6
  723. package/progress/examples/zh_CN/default/color/README.md +0 -6
  724. package/progress/examples/zh_CN/default/dashboard/README.md +0 -6
  725. package/progress/examples/zh_CN/default/default/README.md +0 -6
  726. package/progress/examples/zh_CN/default/format/README.md +0 -6
  727. package/progress/examples/zh_CN/default/gradient/README.md +0 -6
  728. package/progress/examples/zh_CN/default/inside/README.md +0 -6
  729. package/progress/examples/zh_CN/default/steps/README.md +0 -6
  730. package/progress/examples/zh_CN/default/subsection/README.md +0 -6
  731. package/radio/examples/en_US/default/README.md +0 -4
  732. package/radio/examples/en_US/default/async/README.md +0 -6
  733. package/radio/examples/en_US/default/button/README.md +0 -6
  734. package/radio/examples/en_US/default/default/README.md +0 -9
  735. package/radio/examples/en_US/default/disabled/README.md +0 -9
  736. package/radio/examples/en_US/default/icon/README.md +0 -6
  737. package/radio/examples/zh_CN/default/README.md +0 -4
  738. package/radio/examples/zh_CN/default/async/README.md +0 -6
  739. package/radio/examples/zh_CN/default/button/README.md +0 -6
  740. package/radio/examples/zh_CN/default/default/README.md +0 -9
  741. package/radio/examples/zh_CN/default/disabled/README.md +0 -9
  742. package/radio/examples/zh_CN/default/icon/README.md +0 -6
  743. package/rate/examples/en_US/default/README.md +0 -4
  744. package/rate/examples/en_US/default/color/README.md +0 -6
  745. package/rate/examples/en_US/default/custom/README.md +0 -6
  746. package/rate/examples/en_US/default/default/README.md +0 -6
  747. package/rate/examples/en_US/default/disabled/README.md +0 -8
  748. package/rate/examples/en_US/default/half/README.md +0 -6
  749. package/rate/examples/zh_CN/default/README.md +0 -4
  750. package/rate/examples/zh_CN/default/color/README.md +0 -6
  751. package/rate/examples/zh_CN/default/custom/README.md +0 -6
  752. package/rate/examples/zh_CN/default/default/README.md +0 -6
  753. package/rate/examples/zh_CN/default/disabled/README.md +0 -8
  754. package/rate/examples/zh_CN/default/half/README.md +0 -6
  755. package/result/examples/en_US/default/README.md +0 -4
  756. package/result/examples/en_US/default/error/README.md +0 -4
  757. package/result/examples/en_US/default/icon/README.md +0 -4
  758. package/result/examples/en_US/default/img/README.md +0 -4
  759. package/result/examples/en_US/default/info/README.md +0 -4
  760. package/result/examples/en_US/default/result403/README.md +0 -4
  761. package/result/examples/en_US/default/result404/README.md +0 -4
  762. package/result/examples/en_US/default/result500/README.md +0 -4
  763. package/result/examples/en_US/default/success/README.md +0 -4
  764. package/result/examples/en_US/default/warning/README.md +0 -4
  765. package/result/examples/zh_CN/default/README.md +0 -4
  766. package/result/examples/zh_CN/default/error/README.md +0 -4
  767. package/result/examples/zh_CN/default/icon/README.md +0 -4
  768. package/result/examples/zh_CN/default/img/README.md +0 -4
  769. package/result/examples/zh_CN/default/info/README.md +0 -4
  770. package/result/examples/zh_CN/default/result403/README.md +0 -4
  771. package/result/examples/zh_CN/default/result404/README.md +0 -4
  772. package/result/examples/zh_CN/default/result500/README.md +0 -4
  773. package/result/examples/zh_CN/default/success/README.md +0 -4
  774. package/result/examples/zh_CN/default/warning/README.md +0 -4
  775. package/select/examples/en_US/default/README.md +0 -4
  776. package/select/examples/en_US/default/async/README.md +0 -7
  777. package/select/examples/en_US/default/bordered/README.md +0 -6
  778. package/select/examples/en_US/default/custom/README.md +0 -6
  779. package/select/examples/en_US/default/default/README.md +0 -6
  780. package/select/examples/en_US/default/disabled/README.md +0 -6
  781. package/select/examples/en_US/default/label/README.md +0 -7
  782. package/select/examples/en_US/default/multiple/README.md +0 -6
  783. package/select/examples/en_US/default/required/README.md +0 -6
  784. package/select/examples/en_US/default/search/README.md +0 -6
  785. package/select/examples/en_US/default/size/README.md +0 -6
  786. package/select/examples/zh_CN/default/README.md +0 -4
  787. package/select/examples/zh_CN/default/async/README.md +0 -7
  788. package/select/examples/zh_CN/default/bordered/README.md +0 -6
  789. package/select/examples/zh_CN/default/custom/README.md +0 -6
  790. package/select/examples/zh_CN/default/default/README.md +0 -6
  791. package/select/examples/zh_CN/default/disabled/README.md +0 -6
  792. package/select/examples/zh_CN/default/label/README.md +0 -7
  793. package/select/examples/zh_CN/default/multiple/README.md +0 -6
  794. package/select/examples/zh_CN/default/required/README.md +0 -6
  795. package/select/examples/zh_CN/default/search/README.md +0 -6
  796. package/select/examples/zh_CN/default/size/README.md +0 -6
  797. package/skeleton/examples/en_US/default/README.md +0 -4
  798. package/skeleton/examples/en_US/default/active/README.md +0 -6
  799. package/skeleton/examples/en_US/default/complex/README.md +0 -6
  800. package/skeleton/examples/en_US/default/default/README.md +0 -6
  801. package/skeleton/examples/en_US/default/list/README.md +0 -6
  802. package/skeleton/examples/en_US/default/loading/README.md +0 -6
  803. package/skeleton/examples/en_US/default/table/README.md +0 -6
  804. package/skeleton/examples/zh_CN/default/README.md +0 -4
  805. package/skeleton/examples/zh_CN/default/active/README.md +0 -6
  806. package/skeleton/examples/zh_CN/default/complex/README.md +0 -6
  807. package/skeleton/examples/zh_CN/default/default/README.md +0 -6
  808. package/skeleton/examples/zh_CN/default/list/README.md +0 -6
  809. package/skeleton/examples/zh_CN/default/loading/README.md +0 -6
  810. package/skeleton/examples/zh_CN/default/table/README.md +0 -6
  811. package/slider/examples/en_US/default/README.md +0 -4
  812. package/slider/examples/en_US/default/activated/README.md +0 -6
  813. package/slider/examples/en_US/default/custom/README.md +0 -6
  814. package/slider/examples/en_US/default/default/README.md +0 -6
  815. package/slider/examples/en_US/default/expand/README.md +0 -7
  816. package/slider/examples/en_US/default/scroll/README.md +0 -6
  817. package/slider/examples/en_US/default/size/README.md +0 -6
  818. package/slider/examples/zh_CN/default/README.md +0 -4
  819. package/slider/examples/zh_CN/default/activated/README.md +0 -6
  820. package/slider/examples/zh_CN/default/custom/README.md +0 -6
  821. package/slider/examples/zh_CN/default/default/README.md +0 -6
  822. package/slider/examples/zh_CN/default/expand/README.md +0 -7
  823. package/slider/examples/zh_CN/default/scroll/README.md +0 -6
  824. package/slider/examples/zh_CN/default/size/README.md +0 -6
  825. package/slider-select/examples/en_US/default/README.md +0 -4
  826. package/slider-select/examples/en_US/default/default/README.md +0 -6
  827. package/slider-select/examples/en_US/default/disabled/README.md +0 -6
  828. package/slider-select/examples/en_US/default/label/README.md +0 -7
  829. package/slider-select/examples/en_US/default/limit/README.md +0 -6
  830. package/slider-select/examples/en_US/default/precision/README.md +0 -7
  831. package/slider-select/examples/zh_CN/default/README.md +0 -4
  832. package/slider-select/examples/zh_CN/default/default/README.md +0 -6
  833. package/slider-select/examples/zh_CN/default/disabled/README.md +0 -6
  834. package/slider-select/examples/zh_CN/default/label/README.md +0 -7
  835. package/slider-select/examples/zh_CN/default/limit/README.md +0 -6
  836. package/slider-select/examples/zh_CN/default/precision/README.md +0 -7
  837. package/statistic/examples/en_US/default/README.md +0 -4
  838. package/statistic/examples/en_US/default/default/README.md +0 -6
  839. package/statistic/examples/en_US/default/down/README.md +0 -6
  840. package/statistic/examples/en_US/default/prefix/README.md +0 -7
  841. package/statistic/examples/zh_CN/default/README.md +0 -4
  842. package/statistic/examples/zh_CN/default/default/README.md +0 -6
  843. package/statistic/examples/zh_CN/default/down/README.md +0 -6
  844. package/statistic/examples/zh_CN/default/prefix/README.md +0 -7
  845. package/steps/examples/en_US/default/README.md +0 -4
  846. package/steps/examples/en_US/default/custom/README.md +0 -6
  847. package/steps/examples/en_US/default/default/README.md +0 -6
  848. package/steps/examples/en_US/default/description/README.md +0 -6
  849. package/steps/examples/en_US/default/icon/README.md +0 -6
  850. package/steps/examples/en_US/default/index/README.md +0 -6
  851. package/steps/examples/en_US/default/layout/README.md +0 -6
  852. package/steps/examples/en_US/default/node-status/README.md +0 -6
  853. package/steps/examples/en_US/default/status/README.md +0 -6
  854. package/steps/examples/en_US/default/tabs/README.md +0 -6
  855. package/steps/examples/zh_CN/default/README.md +0 -4
  856. package/steps/examples/zh_CN/default/custom/README.md +0 -6
  857. package/steps/examples/zh_CN/default/default/README.md +0 -6
  858. package/steps/examples/zh_CN/default/description/README.md +0 -6
  859. package/steps/examples/zh_CN/default/icon/README.md +0 -6
  860. package/steps/examples/zh_CN/default/index/README.md +0 -6
  861. package/steps/examples/zh_CN/default/layout/README.md +0 -6
  862. package/steps/examples/zh_CN/default/node-status/README.md +0 -6
  863. package/steps/examples/zh_CN/default/status/README.md +0 -6
  864. package/steps/examples/zh_CN/default/tabs/README.md +0 -6
  865. package/switch/examples/en_US/default/README.md +0 -4
  866. package/switch/examples/en_US/default/default/README.md +0 -6
  867. package/switch/examples/en_US/default/disabled/README.md +0 -6
  868. package/switch/examples/en_US/default/label/README.md +0 -7
  869. package/switch/examples/zh_CN/default/README.md +0 -4
  870. package/switch/examples/zh_CN/default/default/README.md +0 -6
  871. package/switch/examples/zh_CN/default/disabled/README.md +0 -6
  872. package/switch/examples/zh_CN/default/label/README.md +0 -7
  873. package/table/examples/en_US/default/README.md +0 -4
  874. package/table/examples/en_US/default/adaption/README.md +0 -6
  875. package/table/examples/en_US/default/bordered/README.md +0 -6
  876. package/table/examples/en_US/default/checkbox/README.md +0 -7
  877. package/table/examples/en_US/default/config/README.md +0 -6
  878. package/table/examples/en_US/default/custom/README.md +0 -10
  879. package/table/examples/en_US/default/default/README.md +0 -7
  880. package/table/examples/en_US/default/drag-width/README.md +0 -6
  881. package/table/examples/en_US/default/edit/README.md +0 -7
  882. package/table/examples/en_US/default/expand/README.md +0 -8
  883. package/table/examples/en_US/default/fix/README.md +0 -6
  884. package/table/examples/en_US/default/head/README.md +0 -6
  885. package/table/examples/en_US/default/header/README.md +0 -6
  886. package/table/examples/en_US/default/row-size/README.md +0 -6
  887. package/table/examples/en_US/default/rowclass/README.md +0 -6
  888. package/table/examples/en_US/default/scroll/README.md +0 -7
  889. package/table/examples/en_US/default/search/README.md +0 -6
  890. package/table/examples/zh_CN/default/README.md +0 -4
  891. package/table/examples/zh_CN/default/adaption/README.md +0 -6
  892. package/table/examples/zh_CN/default/bordered/README.md +0 -6
  893. package/table/examples/zh_CN/default/checkbox/README.md +0 -8
  894. package/table/examples/zh_CN/default/config/README.md +0 -6
  895. package/table/examples/zh_CN/default/custom/README.md +0 -10
  896. package/table/examples/zh_CN/default/default/README.md +0 -7
  897. package/table/examples/zh_CN/default/drag-width/README.md +0 -6
  898. package/table/examples/zh_CN/default/edit/README.md +0 -7
  899. package/table/examples/zh_CN/default/expand/README.md +0 -8
  900. package/table/examples/zh_CN/default/fix/README.md +0 -6
  901. package/table/examples/zh_CN/default/head/README.md +0 -6
  902. package/table/examples/zh_CN/default/header/README.md +0 -6
  903. package/table/examples/zh_CN/default/row-size/README.md +0 -6
  904. package/table/examples/zh_CN/default/rowclass/README.md +0 -6
  905. package/table/examples/zh_CN/default/scroll/README.md +0 -7
  906. package/table/examples/zh_CN/default/search/README.md +0 -6
  907. package/tabs/examples/en_US/default/README.md +0 -4
  908. package/tabs/examples/en_US/default/action/README.md +0 -6
  909. package/tabs/examples/en_US/default/card/README.md +0 -6
  910. package/tabs/examples/en_US/default/custom/README.md +0 -6
  911. package/tabs/examples/en_US/default/default/README.md +0 -6
  912. package/tabs/examples/en_US/default/expand/README.md +0 -6
  913. package/tabs/examples/en_US/default/layout/README.md +0 -6
  914. package/tabs/examples/en_US/default/tag/README.md +0 -6
  915. package/tabs/examples/zh_CN/default/README.md +0 -4
  916. package/tabs/examples/zh_CN/default/action/README.md +0 -6
  917. package/tabs/examples/zh_CN/default/card/README.md +0 -6
  918. package/tabs/examples/zh_CN/default/custom/README.md +0 -6
  919. package/tabs/examples/zh_CN/default/default/README.md +0 -6
  920. package/tabs/examples/zh_CN/default/expand/README.md +0 -6
  921. package/tabs/examples/zh_CN/default/layout/README.md +0 -6
  922. package/tabs/examples/zh_CN/default/tag/README.md +0 -6
  923. package/tag/examples/en_US/default/README.md +0 -4
  924. package/tag/examples/en_US/default/bordered/README.md +0 -6
  925. package/tag/examples/en_US/default/checked/README.md +0 -6
  926. package/tag/examples/en_US/default/close/README.md +0 -6
  927. package/tag/examples/en_US/default/color/README.md +0 -6
  928. package/tag/examples/en_US/default/default/README.md +0 -6
  929. package/tag/examples/en_US/default/size/README.md +0 -6
  930. package/tag/examples/zh_CN/default/README.md +0 -4
  931. package/tag/examples/zh_CN/default/bordered/README.md +0 -6
  932. package/tag/examples/zh_CN/default/checked/README.md +0 -6
  933. package/tag/examples/zh_CN/default/close/README.md +0 -6
  934. package/tag/examples/zh_CN/default/color/README.md +0 -6
  935. package/tag/examples/zh_CN/default/default/README.md +0 -6
  936. package/tag/examples/zh_CN/default/size/README.md +0 -6
  937. package/text-retract/examples/en_US/default/README.md +0 -4
  938. package/text-retract/examples/en_US/default/default/README.md +0 -6
  939. package/text-retract/examples/zh_CN/default/README.md +0 -4
  940. package/text-retract/examples/zh_CN/default/default/README.md +0 -6
  941. package/textarea/examples/en_US/default/README.md +0 -4
  942. package/textarea/examples/en_US/default/clear/README.md +0 -6
  943. package/textarea/examples/en_US/default/default/README.md +0 -6
  944. package/textarea/examples/en_US/default/disabled/README.md +0 -6
  945. package/textarea/examples/en_US/default/icon/README.md +0 -7
  946. package/textarea/examples/en_US/default/label/README.md +0 -7
  947. package/textarea/examples/en_US/default/length/README.md +0 -6
  948. package/textarea/examples/en_US/default/required/README.md +0 -6
  949. package/textarea/examples/zh_CN/default/README.md +0 -4
  950. package/textarea/examples/zh_CN/default/clear/README.md +0 -6
  951. package/textarea/examples/zh_CN/default/default/README.md +0 -6
  952. package/textarea/examples/zh_CN/default/disabled/README.md +0 -6
  953. package/textarea/examples/zh_CN/default/icon/README.md +0 -7
  954. package/textarea/examples/zh_CN/default/label/README.md +0 -7
  955. package/textarea/examples/zh_CN/default/length/README.md +0 -6
  956. package/textarea/examples/zh_CN/default/required/README.md +0 -6
  957. package/theme/examples/en_US/default/README.md +0 -4
  958. package/theme/examples/en_US/default/default/README.md +0 -8
  959. package/theme/examples/zh_CN/default/README.md +0 -4
  960. package/theme/examples/zh_CN/default/default/README.md +0 -8
  961. package/time-ago/examples/en_US/default/README.md +0 -4
  962. package/time-ago/examples/en_US/default/default/README.md +0 -4
  963. package/time-ago/examples/zh_CN/default/README.md +0 -4
  964. package/time-ago/examples/zh_CN/default/default/README.md +0 -4
  965. package/time-picker/examples/en_US/default/README.md +0 -4
  966. package/time-picker/examples/en_US/default/bordered/README.md +0 -6
  967. package/time-picker/examples/en_US/default/default/README.md +0 -7
  968. package/time-picker/examples/en_US/default/disabled/README.md +0 -6
  969. package/time-picker/examples/en_US/default/hour-minute/README.md +0 -6
  970. package/time-picker/examples/en_US/default/label/README.md +0 -7
  971. package/time-picker/examples/en_US/default/required/README.md +0 -6
  972. package/time-picker/examples/en_US/default/size/README.md +0 -6
  973. package/time-picker/examples/zh_CN/default/README.md +0 -4
  974. package/time-picker/examples/zh_CN/default/bordered/README.md +0 -6
  975. package/time-picker/examples/zh_CN/default/default/README.md +0 -7
  976. package/time-picker/examples/zh_CN/default/disabled/README.md +0 -6
  977. package/time-picker/examples/zh_CN/default/hour-minute/README.md +0 -6
  978. package/time-picker/examples/zh_CN/default/label/README.md +0 -7
  979. package/time-picker/examples/zh_CN/default/required/README.md +0 -6
  980. package/time-picker/examples/zh_CN/default/size/README.md +0 -6
  981. package/time-range/examples/en_US/default/README.md +0 -4
  982. package/time-range/examples/en_US/default/default/README.md +0 -6
  983. package/time-range/examples/zh_CN/default/README.md +0 -4
  984. package/time-range/examples/zh_CN/default/default/README.md +0 -6
  985. package/timeline/examples/en_US/default/README.md +0 -4
  986. package/timeline/examples/en_US/default/color/README.md +0 -6
  987. package/timeline/examples/en_US/default/custom/README.md +0 -6
  988. package/timeline/examples/en_US/default/default/README.md +0 -6
  989. package/timeline/examples/en_US/default/icon/README.md +0 -6
  990. package/timeline/examples/en_US/default/loading/README.md +0 -6
  991. package/timeline/examples/en_US/default/mode/README.md +0 -6
  992. package/timeline/examples/en_US/default/size/README.md +0 -6
  993. package/timeline/examples/en_US/default/type/README.md +0 -6
  994. package/timeline/examples/zh_CN/default/README.md +0 -4
  995. package/timeline/examples/zh_CN/default/color/README.md +0 -6
  996. package/timeline/examples/zh_CN/default/custom/README.md +0 -6
  997. package/timeline/examples/zh_CN/default/default/README.md +0 -6
  998. package/timeline/examples/zh_CN/default/icon/README.md +0 -6
  999. package/timeline/examples/zh_CN/default/loading/README.md +0 -6
  1000. package/timeline/examples/zh_CN/default/mode/README.md +0 -6
  1001. package/timeline/examples/zh_CN/default/size/README.md +0 -6
  1002. package/timeline/examples/zh_CN/default/type/README.md +0 -6
  1003. package/tooltip/examples/en_US/default/README.md +0 -4
  1004. package/tooltip/examples/en_US/default/default/README.md +0 -6
  1005. package/tooltip/examples/zh_CN/default/README.md +0 -4
  1006. package/tooltip/examples/zh_CN/default/default/README.md +0 -6
  1007. package/transfer/examples/en_US/default/README.md +0 -4
  1008. package/transfer/examples/en_US/default/custom/README.md +0 -6
  1009. package/transfer/examples/en_US/default/default/README.md +0 -6
  1010. package/transfer/examples/en_US/default/drag/README.md +0 -6
  1011. package/transfer/examples/zh_CN/default/README.md +0 -4
  1012. package/transfer/examples/zh_CN/default/custom/README.md +0 -6
  1013. package/transfer/examples/zh_CN/default/default/README.md +0 -6
  1014. package/transfer/examples/zh_CN/default/drag/README.md +0 -6
  1015. package/tree/examples/en_US/default/README.md +0 -4
  1016. package/tree/examples/en_US/default/checkbox/README.md +0 -6
  1017. package/tree/examples/en_US/default/control/README.md +0 -6
  1018. package/tree/examples/en_US/default/custom/README.md +0 -6
  1019. package/tree/examples/en_US/default/default/README.md +0 -4
  1020. package/tree/examples/en_US/default/height/README.md +0 -7
  1021. package/tree/examples/en_US/default/lazy/README.md +0 -6
  1022. package/tree/examples/en_US/default/open/README.md +0 -6
  1023. package/tree/examples/en_US/default/status/README.md +0 -6
  1024. package/tree/examples/en_US/default/virtual-scroll/README.md +0 -7
  1025. package/tree/examples/zh_CN/default/README.md +0 -4
  1026. package/tree/examples/zh_CN/default/checkbox/README.md +0 -6
  1027. package/tree/examples/zh_CN/default/control/README.md +0 -6
  1028. package/tree/examples/zh_CN/default/custom/README.md +0 -6
  1029. package/tree/examples/zh_CN/default/default/README.md +0 -4
  1030. package/tree/examples/zh_CN/default/height/README.md +0 -7
  1031. package/tree/examples/zh_CN/default/lazy/README.md +0 -6
  1032. package/tree/examples/zh_CN/default/open/README.md +0 -6
  1033. package/tree/examples/zh_CN/default/status/README.md +0 -6
  1034. package/tree/examples/zh_CN/default/virtual-scroll/README.md +0 -7
  1035. package/tree-file/examples/en_US/default/README.md +0 -4
  1036. package/tree-file/examples/en_US/default/default/README.md +0 -6
  1037. package/tree-file/examples/zh_CN/default/README.md +0 -4
  1038. package/tree-file/examples/zh_CN/default/default/README.md +0 -6
  1039. package/tree-select/examples/en_US/default/README.md +0 -4
  1040. package/tree-select/examples/en_US/default/async/README.md +0 -6
  1041. package/tree-select/examples/en_US/default/bordered/README.md +0 -6
  1042. package/tree-select/examples/en_US/default/custom/README.md +0 -6
  1043. package/tree-select/examples/en_US/default/default/README.md +0 -6
  1044. package/tree-select/examples/en_US/default/disabled/README.md +0 -6
  1045. package/tree-select/examples/en_US/default/label/README.md +0 -6
  1046. package/tree-select/examples/en_US/default/multiple/README.md +0 -6
  1047. package/tree-select/examples/en_US/default/path/README.md +0 -6
  1048. package/tree-select/examples/en_US/default/required/README.md +0 -6
  1049. package/tree-select/examples/en_US/default/scroll/README.md +0 -6
  1050. package/tree-select/examples/en_US/default/search/README.md +0 -7
  1051. package/tree-select/examples/en_US/default/size/README.md +0 -6
  1052. package/tree-select/examples/zh_CN/default/README.md +0 -4
  1053. package/tree-select/examples/zh_CN/default/async/README.md +0 -6
  1054. package/tree-select/examples/zh_CN/default/bordered/README.md +0 -6
  1055. package/tree-select/examples/zh_CN/default/custom/README.md +0 -6
  1056. package/tree-select/examples/zh_CN/default/default/README.md +0 -6
  1057. package/tree-select/examples/zh_CN/default/disabled/README.md +0 -6
  1058. package/tree-select/examples/zh_CN/default/label/README.md +0 -6
  1059. package/tree-select/examples/zh_CN/default/multiple/README.md +0 -6
  1060. package/tree-select/examples/zh_CN/default/path/README.md +0 -6
  1061. package/tree-select/examples/zh_CN/default/required/README.md +0 -6
  1062. package/tree-select/examples/zh_CN/default/scroll/README.md +0 -6
  1063. package/tree-select/examples/zh_CN/default/search/README.md +0 -7
  1064. package/tree-select/examples/zh_CN/default/size/README.md +0 -6
  1065. package/typography/examples/en_US/default/README.md +0 -4
  1066. package/typography/examples/en_US/default/default/README.md +0 -6
  1067. package/typography/examples/en_US/default/line-height/README.md +0 -6
  1068. package/typography/examples/en_US/default/size/README.md +0 -6
  1069. package/typography/examples/zh_CN/default/README.md +0 -4
  1070. package/typography/examples/zh_CN/default/default/README.md +0 -6
  1071. package/typography/examples/zh_CN/default/line-height/README.md +0 -6
  1072. package/typography/examples/zh_CN/default/size/README.md +0 -6
  1073. package/upload/examples/en_US/default/README.md +0 -4
  1074. package/upload/examples/en_US/default/custom/README.md +0 -6
  1075. package/upload/examples/en_US/default/default/README.md +0 -8
  1076. package/upload/examples/en_US/default/disabled/README.md +0 -9
  1077. package/upload/examples/en_US/default/img/README.md +0 -6
  1078. package/upload/examples/zh_CN/default/README.md +0 -4
  1079. package/upload/examples/zh_CN/default/custom/README.md +0 -6
  1080. package/upload/examples/zh_CN/default/default/README.md +0 -8
  1081. package/upload/examples/zh_CN/default/disabled/README.md +0 -9
  1082. package/upload/examples/zh_CN/default/img/README.md +0 -6
@@ -1,6 +1,6 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ViewChildren } from '@angular/core';
2
2
  import { XTreePrefix, XTreeProperty } from './tree.property';
3
- import { XIsObservable, XIsEmpty, XIsFunction, XIsUndefined, XIsChange, XSetData, XResize } from '@ng-nest/ui/core';
3
+ import { XIsEmpty, XIsFunction, XIsUndefined, XIsChange, XSetData, XResize } from '@ng-nest/ui/core';
4
4
  import { debounceTime, map, Subject, takeUntil } from 'rxjs';
5
5
  import { XTreeNodeComponent } from './tree-node.component';
6
6
  import * as i0 from "@angular/core";
@@ -29,8 +29,8 @@ export class XTreeComponent extends XTreeProperty {
29
29
  ngOnChanges(changes) {
30
30
  const { expandedAll, data, activatedId, checked, manual } = changes;
31
31
  XIsChange(data) && this.setData();
32
- XIsChange(expandedAll) && this.setExpandedAll();
33
32
  XIsChange(activatedId) && this.setActivatedNode(this.treeData);
33
+ XIsChange(expandedAll) && this.setExpandedAll();
34
34
  XIsChange(checked) && this.setCheckedKeys(this.checked);
35
35
  XIsChange(manual) && this.setManual();
36
36
  }
@@ -55,17 +55,14 @@ export class XTreeComponent extends XTreeProperty {
55
55
  if (typeof this.data === 'undefined')
56
56
  return;
57
57
  this.dataIsFunc = false;
58
- if (XIsObservable(this.data)) {
59
- XSetData(this.data, this._unSubject).subscribe((x) => {
60
- this.setDataChange(x);
61
- });
62
- }
63
- else if (XIsFunction(this.data)) {
58
+ if (XIsFunction(this.data)) {
64
59
  this.dataIsFunc = true;
65
60
  this.getDataByFunc();
66
61
  }
67
62
  else {
68
- this.setDataChange(this.data);
63
+ XSetData(this.data, this._unSubject).subscribe((x) => {
64
+ this.setDataChange(x);
65
+ });
69
66
  }
70
67
  }
71
68
  setVirtualScrollHeight() {
@@ -88,7 +85,8 @@ export class XTreeComponent extends XTreeProperty {
88
85
  });
89
86
  }
90
87
  setDataChange(value) {
91
- !XIsEmpty(this.activatedId) && this.setActivatedNode(value);
88
+ if (XIsEmpty(this.checked))
89
+ this.checked = [];
92
90
  const getChildren = (node, level) => {
93
91
  node.level = level;
94
92
  node.open = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.indexOf(node.id) >= 0 || node.open;
@@ -104,8 +102,8 @@ export class XTreeComponent extends XTreeProperty {
104
102
  }
105
103
  }
106
104
  if (XIsUndefined(node.leaf))
107
- node.leaf = node.children?.length > 0;
108
- if (node.leaf)
105
+ node.leaf = node.children?.length === 0;
106
+ if (!node.leaf)
109
107
  node.children?.map((y) => getChildren(y, level + 1));
110
108
  return node;
111
109
  };
@@ -166,7 +164,7 @@ export class XTreeComponent extends XTreeProperty {
166
164
  setChildren(x.children, clear);
167
165
  });
168
166
  };
169
- setChildren(this.nodes, keys.length === 0);
167
+ setChildren(this.nodes, XIsEmpty(keys));
170
168
  this.cdr.detectChanges();
171
169
  }
172
170
  setExpandedAll() {
@@ -197,10 +195,11 @@ export class XTreeComponent extends XTreeProperty {
197
195
  }
198
196
  setExpanded() {
199
197
  for (let item of this.nodes) {
200
- if (item.open) {
198
+ if (item.open && item.children) {
201
199
  let index = this.nodes.indexOf(item);
202
200
  this.nodes.splice(index + 1, 0, ...item.children);
203
201
  }
202
+ item.change && item.change();
204
203
  }
205
204
  this.nodes = [...this.nodes];
206
205
  }
@@ -276,6 +275,9 @@ export class XTreeComponent extends XTreeProperty {
276
275
  if (before) {
277
276
  before.change && before.change();
278
277
  }
278
+ if (!XIsEmpty(nodes)) {
279
+ this.setDataChange(nodes);
280
+ }
279
281
  }
280
282
  setParentOpen(nodes, node) {
281
283
  const getParent = (child) => {
@@ -353,7 +355,7 @@ export class XTreeComponent extends XTreeProperty {
353
355
  this.treeData.push(node);
354
356
  this.setActivatedNode(this.treeData);
355
357
  parent.open = true;
356
- parent.leaf = true;
358
+ parent.leaf = false;
357
359
  parent.children = [...parent.children, node];
358
360
  this.virtualToggle(parent);
359
361
  this.cdr.detectChanges();
@@ -397,8 +399,8 @@ export class XTreeComponent extends XTreeProperty {
397
399
  if (!parent.children)
398
400
  parent.children = [];
399
401
  parent.children.splice(parent.children.indexOf(node), 1);
400
- parent.leaf = parent.children.length > 0;
401
- if (!parent.leaf) {
402
+ parent.leaf = parent.children.length === 0;
403
+ if (parent.leaf) {
402
404
  this.setActivatedId(parent);
403
405
  }
404
406
  let index = this.nodes.indexOf(node);
@@ -433,10 +435,10 @@ export class XTreeComponent extends XTreeProperty {
433
435
  }
434
436
  }
435
437
  /** @nocollapse */ XTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
436
- /** @nocollapse */ XTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeComponent, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }, { propertyName: "_nodeComponents", predicate: XTreeNodeComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
438
+ /** @nocollapse */ XTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeComponent, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }, { propertyName: "_nodeComponents", predicate: XTreeNodeComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
437
439
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeComponent, decorators: [{
438
440
  type: Component,
439
- args: [{ selector: `${XTreePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"] }]
441
+ args: [{ selector: `${XTreePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}\n"] }]
440
442
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { tree: [{
441
443
  type: ViewChild,
442
444
  args: ['tree', { static: true }]
@@ -447,4 +449,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
447
449
  type: ViewChildren,
448
450
  args: [XTreeNodeComponent]
449
451
  }] } });
450
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixTQUFTLEVBSVQsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFrQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwSSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUzNELE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQWlCL0MsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFidEMsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBZ0IsRUFBRSxDQUFDO1FBRS9CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdB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QUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFlLEVBQUUsT0FBa0I7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBZTtRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBamJVLGNBQWM7a0hBQWQsY0FBYyw0UUFJWCxrQkFBa0IsNEZDOUJsQyx1dkNBc0NBOzJGRFphLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsR0FBRyxXQUFXLEVBQUUsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHVixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1QsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUdiLGVBQWU7c0JBRHpCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVQcmVmaXgsIFhUcmVlTm9kZSwgWFRyZWVQcm9wZXJ0eSB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc09ic2VydmFibGUsIFhJc0VtcHR5LCBYSXNGdW5jdGlvbiwgWElzVW5kZWZpbmVkLCBYSXNDaGFuZ2UsIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSwgWFJlc2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtbm9kZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmVlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQm9keScpIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIG5vZGVDb21wb25lbnRzITogUXVlcnlMaXN0PFhUcmVlTm9kZUNvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbihYVHJlZU5vZGVDb21wb25lbnQpXHJcbiAgcHVibGljIHNldCBfbm9kZUNvbXBvbmVudHModmFsdWU6IFF1ZXJ5TGlzdDxYVHJlZU5vZGVDb21wb25lbnQ+KSB7XHJcbiAgICB0aGlzLm5vZGVDb21wb25lbnRzID0gdmFsdWU7XHJcbiAgfVxyXG4gIG5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gIHZpcnR1YWxOb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICBhY3RpdmF0ZWROb2RlITogWFRyZWVOb2RlO1xyXG4gIGRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICBnZXR0aW5nID0gZmFsc2U7XHJcbiAgdHJlZURhdGE6IFhUcmVlTm9kZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZXhwYW5kZWRBbGwsIGRhdGEsIGFjdGl2YXRlZElkLCBjaGVja2VkLCBtYW51YWwgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBYSXNDaGFuZ2UoZXhwYW5kZWRBbGwpICYmIHRoaXMuc2V0RXhwYW5kZWRBbGwoKTtcclxuICAgIFhJc0NoYW5nZShhY3RpdmF0ZWRJZCkgJiYgdGhpcy5zZXRBY3RpdmF0ZWROb2RlKHRoaXMudHJlZURhdGEpO1xyXG4gICAgWElzQ2hhbmdlKGNoZWNrZWQpICYmIHRoaXMuc2V0Q2hlY2tlZEtleXModGhpcy5jaGVja2VkKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsU2Nyb2xsICYmIHRoaXMuaGVpZ2h0QWRhcHRpb24pIHtcclxuICAgICAgdGhpcy5zZXRWaXJ0dWFsU2Nyb2xsSGVpZ2h0KCk7XHJcbiAgICAgIFhSZXNpemUodGhpcy5oZWlnaHRBZGFwdGlvbiBhcyBIVE1MRWxlbWVudClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldFZpcnR1YWxTY3JvbGxIZWlnaHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2NvcmxsVG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgIGlmIChYSXNPYnNlcnZhYmxlKHRoaXMuZGF0YSkpIHtcclxuICAgICAgWFNldERhdGE8WFRyZWVOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoWElzRnVuY3Rpb24odGhpcy5kYXRhKSkge1xyXG4gICAgICB0aGlzLmRhdGFJc0Z1bmMgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YUNoYW5nZSh0aGlzLmRhdGEgYXMgWFRyZWVOb2RlW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWaXJ0dWFsU2Nyb2xsSGVpZ2h0KCkge1xyXG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsSGVpZ2h0ID0gKHRoaXMuaGVpZ2h0QWRhcHRpb24gYXMgSFRNTEVsZW1lbnQpLmNsaWVudEhlaWdodDtcclxuICAgIHRoaXMubWluQnVmZmVyUHggPSB0aGlzLnZpcnR1YWxTY3JvbGxIZWlnaHQ7XHJcbiAgICB0aGlzLm1heEJ1ZmZlclB4ID0gdGhpcy52aXJ0dWFsU2Nyb2xsSGVpZ2h0ICogMS4yO1xyXG4gICAgdGhpcy52aXJ0dWFsQm9keVsnX3Njcm9sbFN0cmF0ZWd5J11bJ19taW5CdWZmZXJQeCddID0gdGhpcy5taW5CdWZmZXJQeDtcclxuICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWF4QnVmZmVyUHgnXSA9IHRoaXMubWF4QnVmZmVyUHg7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE1hbnVhbCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGFJc0Z1bmMpIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhQnlGdW5jKCkge1xyXG4gICAgaWYgKCF0aGlzLm1hbnVhbCkgcmV0dXJuO1xyXG4gICAgWFNldERhdGE8WFRyZWVOb2RlPigodGhpcy5kYXRhIGFzIEZ1bmN0aW9uKSgpLCB0aGlzLl91blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnNldERhdGFDaGFuZ2UoeCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YUNoYW5nZSh2YWx1ZTogWFRyZWVOb2RlW10pIHtcclxuICAgICFYSXNFbXB0eSh0aGlzLmFjdGl2YXRlZElkKSAmJiB0aGlzLnNldEFjdGl2YXRlZE5vZGUodmFsdWUpO1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRyZW4gPSAobm9kZTogWFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIG5vZGUubGV2ZWwgPSBsZXZlbDtcclxuICAgICAgbm9kZS5vcGVuID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKSB8fCBsZXZlbCA8PSB0aGlzLmV4cGFuZGVkTGV2ZWwgfHwgdGhpcy5leHBhbmRlZC5pbmRleE9mKG5vZGUuaWQpID49IDAgfHwgbm9kZS5vcGVuO1xyXG4gICAgICBub2RlLmNoZWNrZWQgPSB0aGlzLmNoZWNrZWQuaW5kZXhPZihub2RlLmlkKSA+PSAwO1xyXG4gICAgICBub2RlLmNoaWxkcmVuTG9hZGVkID0gbm9kZS5vcGVuO1xyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHZhbHVlLmZpbHRlcigoeSkgPT4geS5waWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmxldmVsQ2hlY2sgJiYgbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoZWNrZWQpIHtcclxuICAgICAgICAgIGZvciAobGV0IG5kIG9mIG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgbmQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZC5wdXNoKG5kLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmxlYWYpKSBub2RlLmxlYWYgPSAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoIGFzIG51bWJlcikgPiAwO1xyXG4gICAgICBpZiAobm9kZS5sZWFmKSBub2RlLmNoaWxkcmVuPy5tYXAoKHkpID0+IGdldENoaWxkcmVuKHksIGxldmVsICsgMSkpO1xyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRyZWVEYXRhID0gdmFsdWU7XHJcbiAgICB0aGlzLm5vZGVzID0gdmFsdWUuZmlsdGVyKCh4KSA9PiBYSXNFbXB0eSh4LnBpZCkpLm1hcCgoeCkgPT4gZ2V0Q2hpbGRyZW4oeCwgMCkpO1xyXG4gICAgZm9yIChsZXQgaXRlbSBvZiB2YWx1ZSkge1xyXG4gICAgICBpZiAoaXRlbS5vcGVuKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJlbnRPcGVuKHZhbHVlLCBpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRFeHBhbmRlZCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2NvcmxsVG9wKCkge1xyXG4gICAgaWYgKCF0aGlzLnNjcm9sbEVsZW1lbnQgfHwgIXRoaXMuYWN0aXZhdGVkTm9kZSkgcmV0dXJuO1xyXG4gICAgbGV0IGlueCA9IHRoaXMubm9kZXMuaW5kZXhPZih0aGlzLmFjdGl2YXRlZE5vZGUpO1xyXG4gICAgbGV0IGNvbSA9IHRoaXMubm9kZUNvbXBvbmVudHMuZ2V0KGlueCk7XHJcbiAgICBpZiAoIWNvbSkgcmV0dXJuO1xyXG4gICAgbGV0IGVsZSA9IGNvbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBsZXQgc2Nyb2xsRWxlID0gdGhpcy5zY3JvbGxFbGVtZW50O1xyXG4gICAgbGV0IG1pbiA9IHNjcm9sbEVsZS5zY3JvbGxUb3A7XHJcbiAgICBsZXQgbWF4ID0gc2Nyb2xsRWxlLnNjcm9sbFRvcCArIHNjcm9sbEVsZS5jbGllbnRIZWlnaHQ7XHJcbiAgICBpZiAoZWxlLm9mZnNldFRvcCArIGVsZS5jbGllbnRIZWlnaHQgPiBtYXgpIHtcclxuICAgICAgbGV0IHNjcm9sbFRvcCA9IGVsZS5vZmZzZXRUb3AgKyBlbGUuY2xpZW50SGVpZ2h0IC0gc2Nyb2xsRWxlLmNsaWVudEhlaWdodDtcclxuICAgICAgc2Nyb2xsRWxlLnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcclxuICAgIH1cclxuICAgIGlmIChlbGUub2Zmc2V0VG9wIDwgbWluKSB7XHJcbiAgICAgIHNjcm9sbEVsZS5zY3JvbGxUb3AgPSBlbGUub2Zmc2V0VG9wO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tlZE5vZGVzKCk6IFhUcmVlTm9kZVtdIHtcclxuICAgIGxldCByZXN1bHQ6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlczogWFRyZWVOb2RlW10pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KG5vZGVzKSkgcmV0dXJuO1xyXG4gICAgICBub2Rlcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgICAgaWYgKHguY2hlY2tlZCAmJiAhcmVzdWx0LmluY2x1ZGVzKHgpKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCB4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZ2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIGdldENoaWxkcmVuKHRoaXMubm9kZXMpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGdldENoZWNrZWRLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tlZE5vZGVzKCkubWFwKCh4KSA9PiB4LmlkKTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWRLZXlzKGtleXM6IGFueVtdID0gW10pIHtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSwgY2xlYXIgPSBmYWxzZSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmNoZWNrZWQgPSAhY2xlYXIgJiYga2V5cy5pbmNsdWRlcyh4LmlkKTtcclxuICAgICAgICB4LmNoYW5nZSAmJiB4LmNoYW5nZSh0cnVlKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdLCBjbGVhcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHNldENoaWxkcmVuKHRoaXMubm9kZXMsIGtleXMubGVuZ3RoID09PSAwKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldEV4cGFuZGVkQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuZXhwYW5kZWRBbGwgJiYgdGhpcy50cmVlRGF0YS5sZW5ndGggPT09IHRoaXMubm9kZXMubGVuZ3RoKSByZXR1cm47XHJcbiAgICBjb25zdCBzZXRDaGlsZHJlbiA9IChub2RlczogWFRyZWVOb2RlW10pID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KG5vZGVzKSkgcmV0dXJuO1xyXG4gICAgICBub2Rlcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgICAgeC5vcGVuID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKTtcclxuICAgICAgICB4LmNoYW5nZSAmJiB4LmNoYW5nZSgpO1xyXG4gICAgICAgIHNldENoaWxkcmVuKHguY2hpbGRyZW4gYXMgWFRyZWVOb2RlW10pO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICBzZXRDaGlsZHJlbih0aGlzLm5vZGVzKTtcclxuXHJcbiAgICBpZiAodGhpcy5leHBhbmRlZEFsbCA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5ub2RlcyA9IHRoaXMudHJlZURhdGEuZmlsdGVyKCh4KSA9PiBYSXNFbXB0eSh4LnBpZCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudmlydHVhbE5vZGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudmlydHVhbE5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy52aXJ0dWFsTm9kZXNdO1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMudmlydHVhbE5vZGVzKSB7XHJcbiAgICAgICAgdGhpcy5zZXRWaXJ0dWFsRXhwYW5kZWRBbGwoaXRlbSwgdGhpcy5leHBhbmRlZEFsbCBhcyBib29sZWFuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWQoKSB7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubm9kZXMpIHtcclxuICAgICAgaWYgKGl0ZW0ub3Blbikge1xyXG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMubm9kZXMuaW5kZXhPZihpdGVtKTtcclxuICAgICAgICB0aGlzLm5vZGVzLnNwbGljZShpbmRleCArIDEsIDAsIC4uLihpdGVtLmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgfVxyXG5cclxuICBzZXRWaXJ0dWFsRXhwYW5kZWRBbGwoaXRlbTogWFRyZWVOb2RlLCBleHBhbmRlZEFsbDogYm9vbGVhbikge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5ub2Rlcy5pbmRleE9mKGl0ZW0pO1xyXG4gICAgaWYgKGV4cGFuZGVkQWxsKSB7XHJcbiAgICAgIGxldCBhZGROb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgICAgY29uc3QgZ2V0Tm9kZXMgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgYWRkTm9kZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICBnZXROb2RlcyhjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBnZXROb2RlcyhpdGVtKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5hZGROb2Rlcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gIH1cclxuXHJcbiAgdmlydHVhbFRvZ2dsZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGxldCBpbmRleCA9IHRoaXMubm9kZXMuaW5kZXhPZihub2RlKTtcclxuICAgIGlmIChub2RlLm9wZW4pIHtcclxuICAgICAgbGV0IGFkZE5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gICAgICBjb25zdCBnZXROb2RlcyA9IChuZDogWFRyZWVOb2RlKSA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgbmQuY2hpbGRyZW4hKSB7XHJcbiAgICAgICAgICBhZGROb2Rlcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIGNoaWxkLm9wZW4gJiYgZ2V0Tm9kZXMoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgZ2V0Tm9kZXMobm9kZSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uYWRkTm9kZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGRlbENvdW50ID0gMDtcclxuICAgICAgY29uc3QgZ2V0Q291bnQgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGRlbENvdW50ICs9IG5kLmNoaWxkcmVuIS5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgbmQuY2hpbGRyZW4hKSB7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldENvdW50KGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldENvdW50KG5vZGUpO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZShpbmRleCArIDEsIGRlbENvdW50KTtcclxuICAgIH1cclxuICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmF0ZWROb2RlKG5vZGVzOiBYVHJlZU5vZGVbXSkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMuYWN0aXZhdGVkSWQpICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IFtdO1xyXG4gICAgfVxyXG4gICAgbGV0IGJlZm9yZSA9IHRoaXMuYWN0aXZhdGVkTm9kZTtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2YXRlZElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgaWRzID0gdGhpcy5vYmplY3RBcnJheSA/IHRoaXMuYWN0aXZhdGVkSWQubWFwKCh4OiBYVHJlZU5vZGUpID0+IHguaWQpIDogdGhpcy5hY3RpdmF0ZWRJZDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlkcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IG5vZGUgPSBub2Rlcy5maW5kKCh4KSA9PiB4LmlkID09PSBpZHNbaV0pIGFzIFhUcmVlTm9kZTtcclxuICAgICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGFyZW50T3Blbihub2Rlcywgbm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChpID09PSBpZHMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkTm9kZSA9IG5vZGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgYWN0aXZhdGVkSWQgPSB0aGlzLmFjdGl2YXRlZElkO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZE5vZGUgPSBub2Rlcy5maW5kKCh4KSA9PiB4LmlkID09IGFjdGl2YXRlZElkKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgICB0aGlzLnNldFBhcmVudE9wZW4obm9kZXMsIHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYmVmb3JlKSB7XHJcbiAgICAgIGJlZm9yZS5jaGFuZ2UgJiYgYmVmb3JlLmNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGFyZW50T3Blbihub2RlczogWFRyZWVOb2RlW10sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKGNoaWxkOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkLnBpZCkpIHJldHVybjtcclxuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gY2hpbGQucGlkKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIGlmICghdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhwYXJlbnQuaWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICAgIGdldFBhcmVudChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGdldFBhcmVudChub2RlKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmVudENoZWNrKG5vZGVzOiBYVHJlZU5vZGVbXSwgbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBjb25zdCBnZXRQYXJlbnQgPSAoY2hpbGQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkoY2hpbGQucGlkKSkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBub2Rlcy5maW5kKCh4KSA9PiB4LmlkID09PSBjaGlsZC5waWQpIGFzIFhUcmVlTm9kZTtcclxuICAgICAgaWYgKCFYSXNFbXB0eShwYXJlbnQpKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkLmluY2x1ZGVzKHBhcmVudC5pZCkpIHtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBbLi4udGhpcy5leHBhbmRlZCwgcGFyZW50LmlkXTtcclxuICAgICAgICAgIHBhcmVudC5vcGVuID0gdHJ1ZTtcclxuICAgICAgICAgIHBhcmVudC5jaGFuZ2UgJiYgcGFyZW50LmNoYW5nZSgpO1xyXG4gICAgICAgICAgZ2V0UGFyZW50KHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgZ2V0UGFyZW50KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25Ub2dnbGUoZXZlbnQ6IEV2ZW50LCBub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIG5vZGUub3BlbiA9ICFub2RlLm9wZW47XHJcbiAgICBpZiAodGhpcy5sYXp5ICYmICFub2RlLmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGF6eURhdGEobm9kZSwgKCkgPT4gdGhpcy52aXJ0dWFsVG9nZ2xlKG5vZGUpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlydHVhbFRvZ2dsZShub2RlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldExhenlEYXRhKG5vZGU6IFhUcmVlTm9kZSwgY2FsbEJhY2s/OiAoKSA9PiB2b2lkKSB7XHJcbiAgICBub2RlLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICAgICh0aGlzLmRhdGEgYXMgKHBpZD86IGFueSkgPT4gT2JzZXJ2YWJsZTxYVHJlZU5vZGVbXT4pKG5vZGUuaWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT5cclxuICAgICAgICAgIHgubWFwKCh5KSA9PiB7XHJcbiAgICAgICAgICAgIHkubGV2ZWwgPSAobm9kZS5sZXZlbCBhcyBudW1iZXIpICsgMTtcclxuICAgICAgICAgICAgeS5jaGVja2VkID0gbm9kZS5jaGVja2VkO1xyXG4gICAgICAgICAgICByZXR1cm4geTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuID0geDtcclxuICAgICAgICBub2RlLmNoaWxkcmVuTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBub2RlLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkTm9kZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoKHgpID0+IHguaWQgPT09IG5vZGUucGlkKTtcclxuICAgIGNvbnN0IF9hZGROb2RlID0gKCkgPT4ge1xyXG4gICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgaWYgKCFwYXJlbnQuY2hpbGRyZW4pIHBhcmVudC5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBbLi4udGhpcy5leHBhbmRlZCwgcGFyZW50LmlkXTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZElkKG5vZGUpO1xyXG4gICAgICAgIG5vZGUubGV2ZWwgPSBOdW1iZXIocGFyZW50LmxldmVsKSArIDE7XHJcbiAgICAgICAgbm9kZS5waWQgPSBwYXJlbnQuaWQ7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YS5wdXNoKG5vZGUpO1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgcGFyZW50LmxlYWYgPSB0cnVlO1xyXG4gICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IFsuLi5wYXJlbnQuY2hpbGRyZW4sIG5vZGVdO1xyXG4gICAgICAgIHRoaXMudmlydHVhbFRvZ2dsZShwYXJlbnQpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgfSBlbHNlIGlmIChYSXNFbXB0eShub2RlLnBpZCkpIHtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZElkKG5vZGUpO1xyXG4gICAgICAgIG5vZGUubGV2ZWwgPSAwO1xyXG4gICAgICAgIHRoaXMudHJlZURhdGEgPSBbLi4udGhpcy50cmVlRGF0YSwgbm9kZV07XHJcbiAgICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzLCBub2RlXTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy50cmVlRGF0YSk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubGF6eSAmJiBwYXJlbnQgJiYgIXBhcmVudC5jaGlsZHJlbkxvYWRlZCkge1xyXG4gICAgICB0aGlzLmdldExhenlEYXRhKHBhcmVudCwgKCkgPT4ge1xyXG4gICAgICAgIF9hZGROb2RlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgX2FkZE5vZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEFjdGl2YXRlZElkKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgaWYgKHRoaXMub2JqZWN0QXJyYXkpIHtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlZElkID0gW25vZGVdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSBbbm9kZS5pZF07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSBub2RlLmlkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmF0ZWRJZENoYW5nZS5lbWl0KHRoaXMuYWN0aXZhdGVkSWQpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTm9kZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoKHgpID0+IHguaWQgPT09IG5vZGUucGlkKTtcclxuICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgaWYgKCFwYXJlbnQuY2hpbGRyZW4pIHBhcmVudC5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKG5vZGUpLCAxKTtcclxuICAgICAgcGFyZW50LmxlYWYgPSBwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID4gMDtcclxuICAgICAgaWYgKCFwYXJlbnQubGVhZikge1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkSWQocGFyZW50KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICAgIGxldCBhaW5kZXggPSBpbmRleCAtIDE7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCAmJiB0aGlzLm5vZGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBhaW5kZXggPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBhY3RpdmF0ZWROb2RlID0gdGhpcy5ub2Rlc1thaW5kZXhdO1xyXG4gICAgICB0aGlzLnNldEFjdGl2YXRlZElkKGFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICB0aGlzLnNldEFjdGl2YXRlZE5vZGUodGhpcy5ub2Rlcyk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICAgICAgaWYgKGFjdGl2YXRlZE5vZGUpIHtcclxuICAgICAgICBhY3RpdmF0ZWROb2RlLmNoYW5nZSAmJiBhY3RpdmF0ZWROb2RlLmNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KG5vZGUucGlkKSkge1xyXG4gICAgICB0aGlzLnRyZWVEYXRhLnNwbGljZSh0aGlzLnRyZWVEYXRhLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZSh0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSksIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb2RlKG5vZGU6IFhUcmVlTm9kZSwgbm93Tm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKG5vZGUsIG5vd05vZGUpO1xyXG4gICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVHJlZU5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmVlIGNsYXNzPVwieC10cmVlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF2aXJ0dWFsU2Nyb2xsOyBlbHNlIHZpcnR1YWxTY3JvbGxUcGxcIj5cclxuICAgIDx4LXRyZWUtbm9kZVxyXG4gICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2RlczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbbm9kZV09XCJub2RlXCJcclxuICAgICAgW2xhenldPVwibGF6eVwiXHJcbiAgICAgIFtsYXp5RGF0YV09XCJkYXRhXCJcclxuICAgICAgW25vZGVIZWlnaHRdPVwibm9kZUhlaWdodFwiXHJcbiAgICAgIFtub2RlTm93cmFwXT1cIm5vZGVOb3dyYXBcIlxyXG4gICAgICBbbm9kZUFsaWduSXRlbXNdPVwibm9kZUFsaWduSXRlbXNcIlxyXG4gICAgICBbdHJlZV09XCJ0aGlzXCJcclxuICAgID48L3gtdHJlZS1ub2RlPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdmlydHVhbFNjcm9sbFRwbD5cclxuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XHJcbiAgICAjdmlydHVhbEJvZHlcclxuICAgIFtpdGVtU2l6ZV09XCJpdGVtU2l6ZVwiXHJcbiAgICBbbWluQnVmZmVyUHhdPVwibWluQnVmZmVyUHhcIlxyXG4gICAgW21heEJ1ZmZlclB4XT1cIm1heEJ1ZmZlclB4XCJcclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwidmlydHVhbFNjcm9sbEhlaWdodFwiXHJcbiAgPlxyXG4gICAgPHgtdHJlZS1ub2RlXHJcbiAgICAgICpjZGtWaXJ0dWFsRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXM7IHRlbXBsYXRlQ2FjaGVTaXplOiAwOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgIFtub2RlXT1cIm5vZGVcIlxyXG4gICAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgICAgW2xhenlEYXRhXT1cImRhdGFcIlxyXG4gICAgICBbbm9kZUhlaWdodF09XCJub2RlSGVpZ2h0XCJcclxuICAgICAgW25vZGVOb3dyYXBdPVwibm9kZU5vd3JhcFwiXHJcbiAgICAgIFtub2RlQWxpZ25JdGVtc109XCJub2RlQWxpZ25JdGVtc1wiXHJcbiAgICAgIFt0cmVlXT1cInRoaXNcIlxyXG4gICAgPjwveC10cmVlLW5vZGU+XHJcbiAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIOaPkOWJjeWKoOi9vWxvYWRpbmfnmoTlm77moIctLT5cclxuPHgtaWNvbiAqbmdJZj1cImxhenlcIiBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIiB0eXBlPVwiZnRvLWxvYWRlclwiPjwveC1pY29uPlxyXG4iXX0=
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBSWpCLHVCQUF1QixFQUN2QixTQUFTLEVBSVQsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWtCLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFTM0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBaUIvQyxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWJ0QyxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFnQixFQUFFLENBQUM7UUFFL0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBZ0IsRUFBRSxD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Q0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFlLEVBQUUsT0FBa0I7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBZTtRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBcGJVLGNBQWM7a0hBQWQsY0FBYyw0UUFJWCxrQkFBa0IsNEZDOUJsQyw2eENBc0NBOzJGRFphLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsR0FBRyxXQUFXLEVBQUUsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFHVixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1QsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUdiLGVBQWU7c0JBRHpCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVQcmVmaXgsIFhUcmVlTm9kZSwgWFRyZWVQcm9wZXJ0eSB9IGZyb20gJy4vdHJlZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNGdW5jdGlvbiwgWElzVW5kZWZpbmVkLCBYSXNDaGFuZ2UsIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSwgWFJlc2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtbm9kZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmVlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZUNvbXBvbmVudCBleHRlbmRzIFhUcmVlUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd2aXJ0dWFsQm9keScpIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIG5vZGVDb21wb25lbnRzITogUXVlcnlMaXN0PFhUcmVlTm9kZUNvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbihYVHJlZU5vZGVDb21wb25lbnQpXHJcbiAgcHVibGljIHNldCBfbm9kZUNvbXBvbmVudHModmFsdWU6IFF1ZXJ5TGlzdDxYVHJlZU5vZGVDb21wb25lbnQ+KSB7XHJcbiAgICB0aGlzLm5vZGVDb21wb25lbnRzID0gdmFsdWU7XHJcbiAgfVxyXG4gIG5vZGVzOiBYVHJlZU5vZGVbXSA9IFtdO1xyXG4gIHZpcnR1YWxOb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICBhY3RpdmF0ZWROb2RlITogWFRyZWVOb2RlO1xyXG4gIGRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICBnZXR0aW5nID0gZmFsc2U7XHJcbiAgdHJlZURhdGE6IFhUcmVlTm9kZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZXhwYW5kZWRBbGwsIGRhdGEsIGFjdGl2YXRlZElkLCBjaGVja2VkLCBtYW51YWwgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBYSXNDaGFuZ2UoYWN0aXZhdGVkSWQpICYmIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgIFhJc0NoYW5nZShleHBhbmRlZEFsbCkgJiYgdGhpcy5zZXRFeHBhbmRlZEFsbCgpO1xyXG4gICAgWElzQ2hhbmdlKGNoZWNrZWQpICYmIHRoaXMuc2V0Q2hlY2tlZEtleXModGhpcy5jaGVja2VkKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy52aXJ0dWFsU2Nyb2xsICYmIHRoaXMuaGVpZ2h0QWRhcHRpb24pIHtcclxuICAgICAgdGhpcy5zZXRWaXJ0dWFsU2Nyb2xsSGVpZ2h0KCk7XHJcbiAgICAgIFhSZXNpemUodGhpcy5oZWlnaHRBZGFwdGlvbiBhcyBIVE1MRWxlbWVudClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldFZpcnR1YWxTY3JvbGxIZWlnaHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2NvcmxsVG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgWFNldERhdGE8WFRyZWVOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmlydHVhbFNjcm9sbEhlaWdodCgpIHtcclxuICAgIHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCA9ICh0aGlzLmhlaWdodEFkYXB0aW9uIGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XHJcbiAgICB0aGlzLm1pbkJ1ZmZlclB4ID0gdGhpcy52aXJ0dWFsU2Nyb2xsSGVpZ2h0O1xyXG4gICAgdGhpcy5tYXhCdWZmZXJQeCA9IHRoaXMudmlydHVhbFNjcm9sbEhlaWdodCAqIDEuMjtcclxuICAgIHRoaXMudmlydHVhbEJvZHlbJ19zY3JvbGxTdHJhdGVneSddWydfbWluQnVmZmVyUHgnXSA9IHRoaXMubWluQnVmZmVyUHg7XHJcbiAgICB0aGlzLnZpcnR1YWxCb2R5Wydfc2Nyb2xsU3RyYXRlZ3knXVsnX21heEJ1ZmZlclB4J10gPSB0aGlzLm1heEJ1ZmZlclB4O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNYW51YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhSXNGdW5jKSB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0YUJ5RnVuYygpIHtcclxuICAgIGlmICghdGhpcy5tYW51YWwpIHJldHVybjtcclxuICAgIFhTZXREYXRhPFhUcmVlTm9kZT4oKHRoaXMuZGF0YSBhcyBGdW5jdGlvbikoKSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5zZXREYXRhQ2hhbmdlKHgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGFDaGFuZ2UodmFsdWU6IFhUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5jaGVja2VkKSkgdGhpcy5jaGVja2VkID0gW107XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpIHx8IGxldmVsIDw9IHRoaXMuZXhwYW5kZWRMZXZlbCB8fCB0aGlzLmV4cGFuZGVkLmluZGV4T2Yobm9kZS5pZCkgPj0gMCB8fCBub2RlLm9wZW47XHJcbiAgICAgIG5vZGUuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZC5pbmRleE9mKG5vZGUuaWQpID49IDA7XHJcbiAgICAgIG5vZGUuY2hpbGRyZW5Mb2FkZWQgPSBub2RlLm9wZW47XHJcbiAgICAgIGlmIChYSXNVbmRlZmluZWQobm9kZS5jaGlsZHJlbikpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuID0gdmFsdWUuZmlsdGVyKCh5KSA9PiB5LnBpZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgaWYgKHRoaXMubGV2ZWxDaGVjayAmJiBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hlY2tlZCkge1xyXG4gICAgICAgICAgZm9yIChsZXQgbmQgb2Ygbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICBuZC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkLnB1c2gobmQuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUubGVhZikpIG5vZGUubGVhZiA9IChub2RlLmNoaWxkcmVuPy5sZW5ndGggYXMgbnVtYmVyKSA9PT0gMDtcclxuICAgICAgaWYgKCFub2RlLmxlYWYpIG5vZGUuY2hpbGRyZW4/Lm1hcCgoeSkgPT4gZ2V0Q2hpbGRyZW4oeSwgbGV2ZWwgKyAxKSk7XHJcbiAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfTtcclxuICAgIHRoaXMudHJlZURhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMubm9kZXMgPSB2YWx1ZS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSkubWFwKCh4KSA9PiBnZXRDaGlsZHJlbih4LCAwKSk7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHZhbHVlKSB7XHJcbiAgICAgIGlmIChpdGVtLm9wZW4pIHtcclxuICAgICAgICB0aGlzLnNldFBhcmVudE9wZW4odmFsdWUsIGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEV4cGFuZGVkKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTY29ybGxUb3AoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2Nyb2xsRWxlbWVudCB8fCAhdGhpcy5hY3RpdmF0ZWROb2RlKSByZXR1cm47XHJcbiAgICBsZXQgaW54ID0gdGhpcy5ub2Rlcy5pbmRleE9mKHRoaXMuYWN0aXZhdGVkTm9kZSk7XHJcbiAgICBsZXQgY29tID0gdGhpcy5ub2RlQ29tcG9uZW50cy5nZXQoaW54KTtcclxuICAgIGlmICghY29tKSByZXR1cm47XHJcbiAgICBsZXQgZWxlID0gY29tLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGxldCBzY3JvbGxFbGUgPSB0aGlzLnNjcm9sbEVsZW1lbnQ7XHJcbiAgICBsZXQgbWluID0gc2Nyb2xsRWxlLnNjcm9sbFRvcDtcclxuICAgIGxldCBtYXggPSBzY3JvbGxFbGUuc2Nyb2xsVG9wICsgc2Nyb2xsRWxlLmNsaWVudEhlaWdodDtcclxuICAgIGlmIChlbGUub2Zmc2V0VG9wICsgZWxlLmNsaWVudEhlaWdodCA+IG1heCkge1xyXG4gICAgICBsZXQgc2Nyb2xsVG9wID0gZWxlLm9mZnNldFRvcCArIGVsZS5jbGllbnRIZWlnaHQgLSBzY3JvbGxFbGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBzY3JvbGxFbGUuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZS5vZmZzZXRUb3AgPCBtaW4pIHtcclxuICAgICAgc2Nyb2xsRWxlLnNjcm9sbFRvcCA9IGVsZS5vZmZzZXRUb3A7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2VkTm9kZXMoKTogWFRyZWVOb2RlW10ge1xyXG4gICAgbGV0IHJlc3VsdDogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgIGNvbnN0IGdldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICBpZiAoeC5jaGVja2VkICYmICFyZXN1bHQuaW5jbHVkZXMoeCkpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIHhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBnZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUcmVlTm9kZVtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgZ2V0Q2hpbGRyZW4odGhpcy5ub2Rlcyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tlZEtleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja2VkTm9kZXMoKS5tYXAoKHgpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZEtleXMoa2V5czogYW55W10gPSBbXSkge1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAobm9kZXM6IFhUcmVlTm9kZVtdLCBjbGVhciA9IGZhbHNlKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShub2RlcykpIHJldHVybjtcclxuICAgICAgbm9kZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIHguY2hlY2tlZCA9ICFjbGVhciAmJiBrZXlzLmluY2x1ZGVzKHguaWQpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKHRydWUpO1xyXG4gICAgICAgIHNldENoaWxkcmVuKHguY2hpbGRyZW4gYXMgWFRyZWVOb2RlW10sIGNsZWFyKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy5ub2RlcywgWElzRW1wdHkoa2V5cykpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWRBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5leHBhbmRlZEFsbCAmJiB0aGlzLnRyZWVEYXRhLmxlbmd0aCA9PT0gdGhpcy5ub2Rlcy5sZW5ndGgpIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVHJlZU5vZGVbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4Lm9wZW4gPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgICAgc2V0Q2hpbGRyZW4oeC5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHNldENoaWxkcmVuKHRoaXMubm9kZXMpO1xyXG5cclxuICAgIGlmICh0aGlzLmV4cGFuZGVkQWxsID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLm5vZGVzID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy52aXJ0dWFsTm9kZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy52aXJ0dWFsTm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLnZpcnR1YWxOb2Rlc107XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy52aXJ0dWFsTm9kZXMpIHtcclxuICAgICAgICB0aGlzLnNldFZpcnR1YWxFeHBhbmRlZEFsbChpdGVtLCB0aGlzLmV4cGFuZGVkQWxsIGFzIGJvb2xlYW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZCgpIHtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5ub2Rlcykge1xyXG4gICAgICBpZiAoaXRlbS5vcGVuICYmIGl0ZW0uY2hpbGRyZW4pIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2YoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi4oaXRlbS5jaGlsZHJlbiBhcyBYVHJlZU5vZGVbXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW0uY2hhbmdlICYmIGl0ZW0uY2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gIH1cclxuXHJcbiAgc2V0VmlydHVhbEV4cGFuZGVkQWxsKGl0ZW06IFhUcmVlTm9kZSwgZXhwYW5kZWRBbGw6IGJvb2xlYW4pIHtcclxuICAgIGxldCBpbmRleCA9IHRoaXMubm9kZXMuaW5kZXhPZihpdGVtKTtcclxuICAgIGlmIChleHBhbmRlZEFsbCkge1xyXG4gICAgICBsZXQgYWRkTm9kZXM6IFhUcmVlTm9kZVtdID0gW107XHJcbiAgICAgIGNvbnN0IGdldE5vZGVzID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBmb3IgKGxldCBjaGlsZCBvZiBuZC5jaGlsZHJlbiEpIHtcclxuICAgICAgICAgIGFkZE5vZGVzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgZ2V0Tm9kZXMoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgZ2V0Tm9kZXMoaXRlbSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4uYWRkTm9kZXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlcyA9IFsuLi50aGlzLm5vZGVzXTtcclxuICB9XHJcblxyXG4gIHZpcnR1YWxUb2dnbGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICBpZiAobm9kZS5vcGVuKSB7XHJcbiAgICAgIGxldCBhZGROb2RlczogWFRyZWVOb2RlW10gPSBbXTtcclxuICAgICAgY29uc3QgZ2V0Tm9kZXMgPSAobmQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgYWRkTm9kZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICBjaGlsZC5vcGVuICYmIGdldE5vZGVzKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGdldE5vZGVzKG5vZGUpO1xyXG4gICAgICB0aGlzLm5vZGVzLnNwbGljZShpbmRleCArIDEsIDAsIC4uLmFkZE5vZGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkZWxDb3VudCA9IDA7XHJcbiAgICAgIGNvbnN0IGdldENvdW50ID0gKG5kOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgICBkZWxDb3VudCArPSBuZC5jaGlsZHJlbiEubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5kLmNoaWxkcmVuISkge1xyXG4gICAgICAgICAgY2hpbGQub3BlbiAmJiBnZXRDb3VudChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBnZXRDb3VudChub2RlKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXggKyAxLCBkZWxDb3VudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGVkTm9kZShub2RlczogWFRyZWVOb2RlW10pIHtcclxuICAgIGlmIChYSXNFbXB0eSh0aGlzLmFjdGl2YXRlZElkKSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSBbXTtcclxuICAgIH1cclxuICAgIGxldCBiZWZvcmUgPSB0aGlzLmFjdGl2YXRlZE5vZGU7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmF0ZWRJZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IGlkcyA9IHRoaXMub2JqZWN0QXJyYXkgPyB0aGlzLmFjdGl2YXRlZElkLm1hcCgoeDogWFRyZWVOb2RlKSA9PiB4LmlkKSA6IHRoaXMuYWN0aXZhdGVkSWQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBub2RlID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gaWRzW2ldKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgICAgICBpZiAobm9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcmVudE9wZW4obm9kZXMsIG5vZGUpO1xyXG4gICAgICAgICAgICBpZiAoaSA9PT0gaWRzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlZE5vZGUgPSBub2RlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmF0ZWROb2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGFjdGl2YXRlZElkID0gdGhpcy5hY3RpdmF0ZWRJZDtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWROb2RlID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PSBhY3RpdmF0ZWRJZCkgYXMgWFRyZWVOb2RlO1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmF0ZWROb2RlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJlbnRPcGVuKG5vZGVzLCB0aGlzLmFjdGl2YXRlZE5vZGUpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmF0ZWROb2RlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGJlZm9yZSkge1xyXG4gICAgICBiZWZvcmUuY2hhbmdlICYmIGJlZm9yZS5jaGFuZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVhJc0VtcHR5KG5vZGVzKSkge1xyXG4gICAgICB0aGlzLnNldERhdGFDaGFuZ2Uobm9kZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGFyZW50T3Blbihub2RlczogWFRyZWVOb2RlW10sIG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgY29uc3QgZ2V0UGFyZW50ID0gKGNoaWxkOiBYVHJlZU5vZGUpID0+IHtcclxuICAgICAgaWYgKFhJc0VtcHR5KGNoaWxkLnBpZCkpIHJldHVybjtcclxuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZXMuZmluZCgoeCkgPT4geC5pZCA9PT0gY2hpbGQucGlkKSBhcyBYVHJlZU5vZGU7XHJcbiAgICAgIGlmICghWElzRW1wdHkocGFyZW50KSkge1xyXG4gICAgICAgIGlmICghdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhwYXJlbnQuaWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gWy4uLnRoaXMuZXhwYW5kZWQsIHBhcmVudC5pZF07XHJcbiAgICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgICAgICAgIGdldFBhcmVudChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGdldFBhcmVudChub2RlKTtcclxuICB9XHJcblxyXG4gIHNldFBhcmVudENoZWNrKG5vZGVzOiBYVHJlZU5vZGVbXSwgbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBjb25zdCBnZXRQYXJlbnQgPSAoY2hpbGQ6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkoY2hpbGQucGlkKSkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBub2Rlcy5maW5kKCh4KSA9PiB4LmlkID09PSBjaGlsZC5waWQpIGFzIFhUcmVlTm9kZTtcclxuICAgICAgaWYgKCFYSXNFbXB0eShwYXJlbnQpKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkLmluY2x1ZGVzKHBhcmVudC5pZCkpIHtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBbLi4udGhpcy5leHBhbmRlZCwgcGFyZW50LmlkXTtcclxuICAgICAgICAgIHBhcmVudC5vcGVuID0gdHJ1ZTtcclxuICAgICAgICAgIHBhcmVudC5jaGFuZ2UgJiYgcGFyZW50LmNoYW5nZSgpO1xyXG4gICAgICAgICAgZ2V0UGFyZW50KHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgZ2V0UGFyZW50KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25Ub2dnbGUoZXZlbnQ6IEV2ZW50LCBub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIG5vZGUub3BlbiA9ICFub2RlLm9wZW47XHJcbiAgICBpZiAodGhpcy5sYXp5ICYmICFub2RlLmNoaWxkcmVuTG9hZGVkKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGF6eURhdGEobm9kZSwgKCkgPT4gdGhpcy52aXJ0dWFsVG9nZ2xlKG5vZGUpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlydHVhbFRvZ2dsZShub2RlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldExhenlEYXRhKG5vZGU6IFhUcmVlTm9kZSwgY2FsbEJhY2s/OiAoKSA9PiB2b2lkKSB7XHJcbiAgICBub2RlLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICAgICh0aGlzLmRhdGEgYXMgKHBpZD86IGFueSkgPT4gT2JzZXJ2YWJsZTxYVHJlZU5vZGVbXT4pKG5vZGUuaWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT5cclxuICAgICAgICAgIHgubWFwKCh5KSA9PiB7XHJcbiAgICAgICAgICAgIHkubGV2ZWwgPSAobm9kZS5sZXZlbCBhcyBudW1iZXIpICsgMTtcclxuICAgICAgICAgICAgeS5jaGVja2VkID0gbm9kZS5jaGVja2VkO1xyXG4gICAgICAgICAgICByZXR1cm4geTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuID0geDtcclxuICAgICAgICBub2RlLmNoaWxkcmVuTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBub2RlLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgbm9kZS5jaGFuZ2UgJiYgbm9kZS5jaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkTm9kZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGxldCBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoKHgpID0+IHguaWQgPT09IG5vZGUucGlkKTtcclxuICAgIGNvbnN0IF9hZGROb2RlID0gKCkgPT4ge1xyXG4gICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgaWYgKCFwYXJlbnQuY2hpbGRyZW4pIHBhcmVudC5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBbLi4udGhpcy5leHBhbmRlZCwgcGFyZW50LmlkXTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZElkKG5vZGUpO1xyXG4gICAgICAgIG5vZGUubGV2ZWwgPSBOdW1iZXIocGFyZW50LmxldmVsKSArIDE7XHJcbiAgICAgICAgbm9kZS5waWQgPSBwYXJlbnQuaWQ7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YS5wdXNoKG5vZGUpO1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLnRyZWVEYXRhKTtcclxuICAgICAgICBwYXJlbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgcGFyZW50LmxlYWYgPSBmYWxzZTtcclxuICAgICAgICBwYXJlbnQuY2hpbGRyZW4gPSBbLi4ucGFyZW50LmNoaWxkcmVuLCBub2RlXTtcclxuICAgICAgICB0aGlzLnZpcnR1YWxUb2dnbGUocGFyZW50KTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcGFyZW50LmNoYW5nZSAmJiBwYXJlbnQuY2hhbmdlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzRW1wdHkobm9kZS5waWQpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWRJZChub2RlKTtcclxuICAgICAgICBub2RlLmxldmVsID0gMDtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhID0gWy4uLnRoaXMudHJlZURhdGEsIG5vZGVdO1xyXG4gICAgICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlcywgbm9kZV07XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWROb2RlKHRoaXMudHJlZURhdGEpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmxhenkgJiYgcGFyZW50ICYmICFwYXJlbnQuY2hpbGRyZW5Mb2FkZWQpIHtcclxuICAgICAgdGhpcy5nZXRMYXp5RGF0YShwYXJlbnQsICgpID0+IHtcclxuICAgICAgICBfYWRkTm9kZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9hZGROb2RlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmF0ZWRJZChub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIGlmICh0aGlzLm9iamVjdEFycmF5KSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IFtub2RlXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFjdGl2YXRlZElkID0gW25vZGUuaWRdO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZElkID0gbm9kZS5pZDtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZhdGVkSWRDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2YXRlZElkKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZU5vZGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKCh4KSA9PiB4LmlkID09PSBub2RlLnBpZCk7XHJcbiAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSBwYXJlbnQuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShwYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHBhcmVudC5sZWFmID0gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcclxuICAgICAgaWYgKHBhcmVudC5sZWFmKSB7XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmF0ZWRJZChwYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMubm9kZXMuaW5kZXhPZihub2RlKTtcclxuICAgICAgbGV0IGFpbmRleCA9IGluZGV4IC0gMTtcclxuICAgICAgaWYgKGluZGV4ID09PSAwICYmIHRoaXMubm9kZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGFpbmRleCA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGFjdGl2YXRlZE5vZGUgPSB0aGlzLm5vZGVzW2FpbmRleF07XHJcbiAgICAgIHRoaXMuc2V0QWN0aXZhdGVkSWQoYWN0aXZhdGVkTm9kZSk7XHJcbiAgICAgIHRoaXMuc2V0QWN0aXZhdGVkTm9kZSh0aGlzLm5vZGVzKTtcclxuICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLm5vZGVzID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICBpZiAoYWN0aXZhdGVkTm9kZSkge1xyXG4gICAgICAgIGFjdGl2YXRlZE5vZGUuY2hhbmdlICYmIGFjdGl2YXRlZE5vZGUuY2hhbmdlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBwYXJlbnQuY2hhbmdlICYmIHBhcmVudC5jaGFuZ2UoKTtcclxuICAgIH0gZWxzZSBpZiAoWElzRW1wdHkobm9kZS5waWQpKSB7XHJcbiAgICAgIHRoaXMudHJlZURhdGEuc3BsaWNlKHRoaXMudHJlZURhdGEuaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHRoaXMubm9kZXMuc3BsaWNlKHRoaXMubm9kZXMuaW5kZXhPZihub2RlKSwgMSk7XHJcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU5vZGUobm9kZTogWFRyZWVOb2RlLCBub3dOb2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIE9iamVjdC5hc3NpZ24obm9kZSwgbm93Tm9kZSk7XHJcbiAgICBub2RlLmNoYW5nZSAmJiBub2RlLmNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IFhUcmVlTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3RyZWUgY2xhc3M9XCJ4LXRyZWVcIiBbY2xhc3MueC10cmVlLW9ubHktbGVhZl09XCJvbmx5TGVhZlwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdmlydHVhbFNjcm9sbDsgZWxzZSB2aXJ0dWFsU2Nyb2xsVHBsXCI+XHJcbiAgICA8eC10cmVlLW5vZGVcclxuICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgW25vZGVdPVwibm9kZVwiXHJcbiAgICAgIFtsYXp5XT1cImxhenlcIlxyXG4gICAgICBbbGF6eURhdGFdPVwiZGF0YVwiXHJcbiAgICAgIFtub2RlSGVpZ2h0XT1cIm5vZGVIZWlnaHRcIlxyXG4gICAgICBbbm9kZU5vd3JhcF09XCJub2RlTm93cmFwXCJcclxuICAgICAgW25vZGVBbGlnbkl0ZW1zXT1cIm5vZGVBbGlnbkl0ZW1zXCJcclxuICAgICAgW3RyZWVdPVwidGhpc1wiXHJcbiAgICA+PC94LXRyZWUtbm9kZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3ZpcnR1YWxTY3JvbGxUcGw+XHJcbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxyXG4gICAgI3ZpcnR1YWxCb2R5XHJcbiAgICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxyXG4gICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcclxuICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInZpcnR1YWxTY3JvbGxIZWlnaHRcIlxyXG4gID5cclxuICAgIDx4LXRyZWUtbm9kZVxyXG4gICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBub2RlIG9mIG5vZGVzOyB0ZW1wbGF0ZUNhY2hlU2l6ZTogMDsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBbbm9kZV09XCJub2RlXCJcclxuICAgICAgW2xhenldPVwibGF6eVwiXHJcbiAgICAgIFtsYXp5RGF0YV09XCJkYXRhXCJcclxuICAgICAgW25vZGVIZWlnaHRdPVwibm9kZUhlaWdodFwiXHJcbiAgICAgIFtub2RlTm93cmFwXT1cIm5vZGVOb3dyYXBcIlxyXG4gICAgICBbbm9kZUFsaWduSXRlbXNdPVwibm9kZUFsaWduSXRlbXNcIlxyXG4gICAgICBbdHJlZV09XCJ0aGlzXCJcclxuICAgID48L3gtdHJlZS1ub2RlPlxyXG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSDmj5DliY3liqDovb1sb2FkaW5n55qE5Zu+5qCHLS0+XHJcbjx4LWljb24gKm5nSWY9XCJsYXp5XCIgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCIgdHlwZT1cImZ0by1sb2FkZXJcIj48L3gtaWNvbj5cclxuIl19
@@ -93,7 +93,7 @@ export class XTreeProperty extends XProperty {
93
93
  }
94
94
  }
95
95
  /** @nocollapse */ XTreeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
96
- /** @nocollapse */ XTreeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeProperty, selector: "ng-component", inputs: { data: "data", checkbox: "checkbox", lazy: "lazy", activatedId: "activatedId", expanded: "expanded", checked: "checked", expandedAll: "expandedAll", expandedLevel: "expandedLevel", nodeOpen: "nodeOpen", spacing: "spacing", labelTpl: "labelTpl", nodeHeight: "nodeHeight", allowManyActivated: "allowManyActivated", manual: "manual", levelCheck: "levelCheck", nodeNowrap: "nodeNowrap", nodeAlignItems: "nodeAlignItems", actions: "actions", scrollElement: "scrollElement", virtualScroll: "virtualScroll", virtualScrollHeight: "virtualScrollHeight", heightAdaption: "heightAdaption", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", multiple: "multiple", objectArray: "objectArray", keywordText: "keywordText", caseSensitive: "caseSensitive" }, outputs: { activatedChange: "activatedChange", checkboxChange: "checkboxChange", manualChange: "manualChange", nodeClick: "nodeClick", activatedIdChange: "activatedIdChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
96
+ /** @nocollapse */ XTreeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeProperty, selector: "ng-component", inputs: { data: "data", checkbox: "checkbox", lazy: "lazy", activatedId: "activatedId", expanded: "expanded", checked: "checked", expandedAll: "expandedAll", expandedLevel: "expandedLevel", nodeOpen: "nodeOpen", spacing: "spacing", labelTpl: "labelTpl", nodeHeight: "nodeHeight", allowManyActivated: "allowManyActivated", manual: "manual", levelCheck: "levelCheck", nodeNowrap: "nodeNowrap", nodeAlignItems: "nodeAlignItems", actions: "actions", scrollElement: "scrollElement", virtualScroll: "virtualScroll", virtualScrollHeight: "virtualScrollHeight", heightAdaption: "heightAdaption", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", multiple: "multiple", objectArray: "objectArray", keywordText: "keywordText", caseSensitive: "caseSensitive", onlyLeaf: "onlyLeaf" }, outputs: { activatedChange: "activatedChange", checkboxChange: "checkboxChange", manualChange: "manualChange", nodeClick: "nodeClick", activatedIdChange: "activatedIdChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
97
97
  __decorate([
98
98
  XDataConvert()
99
99
  ], XTreeProperty.prototype, "data", void 0);
@@ -157,6 +157,10 @@ __decorate([
157
157
  XInputBoolean(),
158
158
  XWithConfig(X_CONFIG_NAME, true)
159
159
  ], XTreeProperty.prototype, "caseSensitive", void 0);
160
+ __decorate([
161
+ XInputBoolean(),
162
+ XWithConfig(X_CONFIG_NAME, false)
163
+ ], XTreeProperty.prototype, "onlyLeaf", void 0);
160
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeProperty, decorators: [{
161
165
  type: Component,
162
166
  args: [{ template: '' }]
@@ -222,6 +226,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
222
226
  type: Input
223
227
  }], caseSensitive: [{
224
228
  type: Input
229
+ }], onlyLeaf: [{
230
+ type: Input
225
231
  }], manualChange: [{
226
232
  type: Output
227
233
  }], nodeClick: [{
@@ -292,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
292
298
  }], virtualScroll: [{
293
299
  type: Input
294
300
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixTQUFTLEVBRVQsYUFBYSxFQUliLFlBQVksRUFFWixXQUFXLEVBRVosTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFlLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDOztBQUVoRzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUNwQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFFN0I7O0dBRUc7QUFFSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFNBQVM7SUFENUM7O1FBRUU7OztXQUdHO1FBQ3NCLFNBQUksR0FBcUIsRUFBRSxDQUFDO1FBZ0JyRDs7O1dBR0c7UUFDTSxhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzlCOzs7V0FHRztRQUNNLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFNN0I7OztXQUdHO1FBQ3NCLGtCQUFhLEdBQVksQ0FBQyxDQUFDLENBQUM7UUEwQnJEOzs7V0FHRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUMxRDs7O1dBR0c7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDekQ7OztXQUdHO1FBQ3VCLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDakQ7OztXQUdHO1FBQ3VCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFDdEQ7OztXQUdHO1FBQ3VCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFNdEQ7OztXQUdHO1FBQ00sWUFBTyxHQUFrQixFQUFFLENBQUM7UUEwQnJDOzs7V0FHRztRQUNNLGdCQUFXLEdBQVcsR0FBRyxDQUFDO1FBQ25DOzs7V0FH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S0csU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxpQkFBaUI7c0JBQTFCLE1BQU07O0FBNkVUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDO0FBRTdDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFNBQVM7SUFEaEQ7O1FBRUU7OztXQUdHO1FBQ00sU0FBSSxHQUFjLEVBQUUsQ0FBQztRQVc5Qjs7O1dBR0c7UUFDc0IsZUFBVSxHQUFZLENBQUMsQ0FBQztRQU1qRDs7O1dBR0c7UUFDTSxtQkFBYyxHQUFXLFFBQVEsQ0FBQztLQVc1Qzs7aUlBekNZLGlCQUFpQjtxSEFBakIsaUJBQWlCLCtRQURQLEVBQUU7QUFnQkc7SUFBaEIsYUFBYSxFQUFFOytDQUFpQjtBQUtqQjtJQUFmLFlBQVksRUFBRTtxREFBeUI7QUFLdkI7SUFBaEIsYUFBYSxFQUFFO3FEQUF1QjtBQWV0QjtJQUFoQixhQUFhLEVBQUU7d0RBQTBCOzJGQXhDeEMsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLb0IsSUFBSTtzQkFBN0IsS0FBSztnQkFLbUIsVUFBVTtzQkFBbEMsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS29CLGFBQWE7c0JBQXRDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhEYXRhQ29udmVydCxcclxuICBYUHJvcGVydHksXHJcbiAgWERhdGEsXHJcbiAgWElucHV0Qm9vbGVhbixcclxuICBYUGFyZW50SWRlbnRpdHlQcm9wZXJ0eSxcclxuICBYTnVtYmVyLFxyXG4gIFhCb29sZWFuLFxyXG4gIFhJbnB1dE51bWJlcixcclxuICBYSWRlbnRpdHlQcm9wZXJ0eSxcclxuICBYV2l0aENvbmZpZyxcclxuICBYQWxpZ25cclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIFRlbXBsYXRlUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogVHJlZVxyXG4gKiBAc2VsZWN0b3IgeC10cmVlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRyZWVQcmVmaXggPSAneC10cmVlJztcclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICd0cmVlJztcclxuXHJcbi8qKlxyXG4gKiBUcmVlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55pWw5o2uXHJcbiAgICogQGVuX1VTIE5vZGUgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBkYXRhOiBYRGF0YTxYVHJlZU5vZGU+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWkmumAieahhlxyXG4gICAqIEBlbl9VUyBTaG93IGNoZWNrYm94XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBjaGVja2JveD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlkK/mh5LliqDovb3oioLngrnvvIxkYXRhIOW/hemhu+iuvue9ruaIkOWHveaVsOexu+Wei1xyXG4gICAqIEBlbl9VUyBPcGVuIGxhenkgbG9hZGluZyBub2RlLCBkYXRhIG11c3QgYmUgc2V0IHRvIGZ1bmN0aW9uIHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhenk/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN5r+A5rS755qE6IqC54K5IElkLCDlvZMgbXVsdGlwbGUg5Li6IHRydWUg5pe277yM5YC85Li65pWw57uE77yI6buY6K6k5pivIElkIOaVsOe7hO+8jG9iamVjdEFycmF5IOS4uiB0cnVl77yM5a+56LGh5pWw57uE77yJXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBhY3RpdmUgbm9kZSBJZC4gV2hlbiBNdWx0aXBsZSBpcyB0cnVlLCB0aGUgdmFsdWUgaXMgdGhlIElkIGFycmF5XHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aXZhdGVkSWQ6IGFueTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV5byA55qE6IqC54K5XHJcbiAgICogQGVuX1VTIEV4cGFuZGVkIG5vZGVcclxuICAgKi9cclxuICBASW5wdXQoKSBleHBhbmRlZDogYW55W10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg6YCJ5Lit55qE6IqC54K5XHJcbiAgICogQGVuX1VTIENoZWNrYm94IHNlbGVjdGVkIG5vZGVcclxuICAgKi9cclxuICBASW5wdXQoKSBjaGVja2VkOiBhbnlbXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXlvIDmiYDmnInoioLngrlcclxuICAgKiBAZW5fVVMgRXhwYW5kIGFsbCBub2Rlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgZXhwYW5kZWRBbGw/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6buY6K6k5bGV5byA55qE5bGC57qnXHJcbiAgICogQGVuX1VTIERlZmF1bHQgZXhwYW5kZWQgbGV2ZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgZXhwYW5kZWRMZXZlbDogWE51bWJlciA9IC0xO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDngrnlh7voioLngrnlsLHop6blj5HlsZXlvIAv5pS26LW355qE5pON5L2c77yM6K+356Gu5L+d6IqC54K55LiK5rKh5pyJ5YW25a6D5pON5L2c77yIY2hlY2tib3jjgIHoh6rlrprkuYnnmoTmk43kvZzmjInpkq7vvIlcclxuICAgKiBAZW5fVVMgQ2xpY2sgdGhlIG5vZGUgdG8gdHJpZ2dlciB0aGUgZXhwYW5kL2NvbGxhcHNlIG9wZXJhdGlvbiwgcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IHRoZXJlIGFyZSBubyBvdGhlciBvcGVyYXRpb25zIG9uIHRoZSBub2RlIChjaGVja2JveCwgY3VzdG9tIG9wZXJhdGlvbiBidXR0b24pXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBub2RlT3Blbj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXkvY3pl7Tot53vvIzov5nkuKrkuI7lsYLnuqfnmoTkuZjnp6/nrpflh7roioLngrnnmoTlt6bovrnot53vvIzljZXkvY0gcmVtXHJcbiAgICogQGVuX1VTIFVuaXQgc3BhY2luZywgdGhlIHByb2R1Y3Qgb2YgdGhpcyBhbmQgdGhlIGxldmVsIGNhbGN1bGF0ZXMgdGhlIGxlZnQgbWFyZ2luIG9mIHRoZSBub2RlLCB0aGUgdW5pdCBpcyByZW1cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgMC44NzUpIEBYSW5wdXROdW1iZXIoKSBzcGFjaW5nPzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH562+6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIExhYmVsIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsVHBsPzogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeahOmrmOW6pu+8jOWNleS9jSByZW0sIOm7mOiupCAwIOaYr+iHqumAguW6lOmrmOW6plxyXG4gICAqIEBlbl9VUyBUaGUgaGVpZ2h0IG9mIHRoZSBub2RlIGluIHJlbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAwKSBAWElucHV0TnVtYmVyKCkgbm9kZUhlaWdodCE6IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWFgeiuuOWkmuasoeeCueWHu+S4gOS4quiKgueCueinpuWPkeWkmuasoeS6i+S7tlxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGFsbG93IG11bHRpcGxlIGNsaWNrcyBvbiBhIG5vZGUgdG8gdHJpZ2dlciBtdWx0aXBsZSBldmVudHNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGFsbG93TWFueUFjdGl2YXRlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3ngrnlh7vpgInkuK3nmoToioLngrnlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgVGhlIGV2ZW50IG9mIHRoZSBjdXJyZW50bHkgY2xpY2tlZCBub2RlIGNoYW5nZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhY3RpdmF0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhUcmVlTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5L2/55SoIGNoZWNrZWRib3gg6YCJ5Lit5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFVzZSBjaGVja2VkYm94IHRvIHNlbGVjdCBjaGFuZ2VkIGV2ZW50c1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjaGVja2JveENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFRyZWVOb2RlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpoLmnpwgZGF0YSDmmK/lh73mlbDnsbvlnovvvIzlj6/ku6XpgJrov4fmraTlj4LmlbDmjqfliLbor7fmsYLvvIzluLjnlKjkuo7lvLnmoYbkuK3nmoTooajmoLzvvIzlvLnlh7rlkI7lho3or7fmsYJcclxuICAgKiBAZW5fVVMgSWYgZGF0YSBpcyBhIGZ1bmN0aW9uIHR5cGUsIHlvdSBjYW4gdXNlIHRoaXMgcGFyYW1ldGVyIHRvIGNvbnRyb2wgdGhlIHJlcXVlc3QsIHdoaWNoIGlzIG9mdGVuIHVzZWQgaW4gdGhlIGZvcm0gaW4gdGhlIHBvcC11cCBib3gsIGFuZCB0aGVuIHJlcXVlc3QgaXQgYWZ0ZXIgaXQgcG9wcyB1cFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbWFudWFsOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg54q25oCB5pS55Y+Y6Kem5Y+R5bGC57qn5qOA5p+lXHJcbiAgICogQGVuX1VTIENoZWNrYm94IHN0YXR1cyBjaGFuZ2VzIHRyaWdnZXIgbGV2ZWwgY2hlY2tzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsZXZlbENoZWNrOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueWGheWuueS4jeaNouihjOaYvuekuuecgeeVpeWPt1xyXG4gICAqIEBlbl9VUyBTaG93IGVsbGlwc2lzIHdpdGhvdXQgd3JhcHBpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG5vZGVOb3dyYXA6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55Z6C55u05a+56b2Q5pa55byPXHJcbiAgICogQGVuX1VTIFNob3cgZWxsaXBzaXMgd2l0aG91dCB3cmFwcGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQWxpZ24+KFhfQ09ORklHX05BTUUsICdjZW50ZXInKSBub2RlQWxpZ25JdGVtcyE6IFhBbGlnbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR6IqC54K55pON5L2c5oyJ6ZKuXHJcbiAgICogQGVuX1VTIFRyZWUgbm9kZSBvcGVyYXRpb24gYnV0dG9uc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IFhUcmVlQWN0aW9uW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5rua5Yqo5Yy65Z+f5YWD57SgXHJcbiAgICogQGVuX1VTIFJvbGxpbmcgYXJlYSBlbGVtZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgc2Nyb2xsRWxlbWVudD86IEhUTUxFbGVtZW50O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlkK/omZrmi5/mu5rliqhcclxuICAgKiBAZW5fVVMgVHVybiBvbiB2aXJ0dWFsIHNjcm9sbGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSB2aXJ0dWFsU2Nyb2xsITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa7muWKqOWMuuWfn+mrmOW6pu+8jOW8gOWQr+iZmuaLn+a7muWKqOeahOaXtuWAmeeUn+aViFxyXG4gICAqIEBlbl9VUyBSb2xsaW5nIGFyZWEgaGVpZ2h0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPG51bWJlcj4oWF9DT05GSUdfTkFNRSwgNDAwKSBAWElucHV0TnVtYmVyKCkgdmlydHVhbFNjcm9sbEhlaWdodCE6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Jma5ouf5rua5Yqo6auY5bqm6Ieq6YCC5bqU5oyH5a6a5YWD57SgXHJcbiAgICogQGVuX1VTIHZpcnR1YWwgcm9sbGluZyBoZWlnaHQgZm9sbG93cyB0aGUgc3BlY2lmaWVkIG9iamVjdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGhlaWdodEFkYXB0aW9uITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBIVE1MRWxlbWVudDtcclxuICAvKipcclxuICAgKiBAemhfQ04gaXRlbVNpemXvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbDvvIzlvIDlkK/omZrmi5/mu5rliqjmiY3nlJ/mlYhcclxuICAgKiBAZW5fVVMgaXRlbVNpemXvvIxjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCAyNikgQFhJbnB1dE51bWJlcigpIGl0ZW1TaXplITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbDvvIzlvIDlkK/omZrmi5/mu5rliqjmiY3nlJ/mlYhcclxuICAgKiBAZW5fVVMgRXhjZWVkIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2aXNpYmxlIHdpbmRvdyBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1pbkJ1ZmZlclB4OiBudW1iZXIgPSAxMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4suafk+aWsOaVsOaNrue8k+WGsuWMuueahOWDj+e0oO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsO+8jOW8gOWQr+iZmuaLn+a7muWKqOaJjeeUn+aViFxyXG4gICAqIEBlbl9VUyBSZW5kZXIgdGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhCdWZmZXJQeDogbnVtYmVyID0gMjAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpJrpgInlip/og73vvIzlvZPliY3mv4DmtLvnmoToioLngrnlj6/ku6XmmK/lpJrkuKpcclxuICAgKiBAZW5fVVMgTXVsdGlwbGUgY2hvaWNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBtdWx0aXBsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPlvIDlkK/lpJrpgInnmoTml7blgJnvvIxhY3RpdmF0ZWRJZCDnmoTlgLzkuLrlr7nosaHmlbDnu4RcclxuICAgKiBAZW5fVVMgV2hlbiBtdWx0aXBsZSBzZWxlY3Rpb24gaXMgZW5hYmxlZCwgdGhlIHZhbHVlIG9mIGFjdGl2YXRlZElkIGlzIGFuIGFycmF5IG9mIG9iamVjdHNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG9iamVjdEFycmF5PzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFs+mUruWtl+mrmOS6ru+8jOmSiOWvueS4i+aLieagkeaQnOe0olxyXG4gICAqIEBlbl9VUyBLZXl3b3JkIGhpZ2hsaWdodGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGtleXdvcmRUZXh0ITogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWMuemFjeWFs+mUruWtl+WMuuWIhuWkp+Wwj+WGme+8jOmSiOWvueS4i+aLieagkeaQnOe0olxyXG4gICAqIEBlbl9VUyBDYXNlLXNlbnNpdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBjYXNlU2Vuc2l0aXZlITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWPguaVsOaOp+WItuivt+axguaUueWPmOS6i+S7tlxyXG4gICAqIEBlbl9VUyBQYXJhbWV0ZXIgY29udHJvbCByZXF1ZXN0IGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtYW51YWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WFRyZWVOb2RlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhY3RpdmF0ZWRJZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIFRyZWUg5pWw5o2u5a+56LGhXHJcbiAqIEBlbl9VUyBUcmVlIGRhdGEgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUcmVlTm9kZSBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFhUcmVlTm9kZT4ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmv4DmtLvnmoRcclxuICAgKiBAZW5fVVMgYWN0aXZlXHJcbiAgICovXHJcbiAgYWN0aXZhdGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qOA5p+l5pu05pawXHJcbiAgICogQGVuX1VTIENoZWNrIGZvciB1cGRhdGVzXHJcbiAgICovXHJcbiAgY2hhbmdlPzogRnVuY3Rpb247XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOaYr+WQpumAieS4rVxyXG4gICAqIEBlbl9VUyB3aGV0aGVyIGNoZWNrYm94IGlzIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgY2hlY2tlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqGNoZWNrYm94XHJcbiAgICogQGVuX1VTIERpc2FibGUgY2hlY2tib3hcclxuICAgKi9cclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOWtkOiKgueCueaYr+WQpuaciemAieS4reeahOeKtuaAgVxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRoZSBjaGlsZCBub2RlIG9mIGNoZWNrYm94IGlzIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCuemrmOW6pu+8jOS8mOWFiOe6p+mrmOS6jiB0cmVlIOWPguaVsO+8jOWNleS9jSByZW1cclxuICAgKiBAZW5fVVMgTm9kZSBoZWlnaHQgaW4gcmVtLCBoaWdoZXN0IHByaW9yaXR5XHJcbiAgICovXHJcbiAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnlhoXlrrnkuI3mjaLooYzmmL7npLrnnIHnlaXlj7fvvIzkvJjlhYjnuqfpq5jkuo4gdHJlZSDlj4LmlbBcclxuICAgKiBAZW5fVVMgU2hvdyBlbGxpcHNpcyB3aXRob3V0IHdyYXBwaW5nLCBoaWdoZXN0IHByaW9yaXR5XHJcbiAgICovXHJcbiAgbm93cmFwPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55Z6C55u05a+56b2Q5pa55byP77yM5LyY5YWI57qn6auY5LqOIHRyZWUg5Y+C5pWwXHJcbiAgICogQGVuX1VTIFNob3cgZWxsaXBzaXMgd2l0aG91dCB3cmFwcGluZywgaGlnaGVzdCBwcmlvcml0eVxyXG4gICAqL1xyXG4gIGFsaWduSXRlbXM/OiBYQWxpZ247XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueaHkuWKoOi9veS4rVxyXG4gICAqIEBlbl9VUyBOb2RlIGxhenkgbG9hZGluZ1xyXG4gICAqL1xyXG4gIGxvYWRpbmc/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiBUcmVlIOiKgueCueaTjeS9nFxyXG4gKiBAZW5fVVMgVHJlZSBub2RlIG9wZXJhdGlvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVHJlZUFjdGlvbiBleHRlbmRzIFhJZGVudGl0eVByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pON5L2cXHJcbiAgICogQGVuX1VTIE9wZXJhdGluZ1xyXG4gICAqL1xyXG4gIGhhbmRsZXI/OiBGdW5jdGlvbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCHXHJcbiAgICogQGVuX1VTIEljb25cclxuICAgKi9cclxuICBpY29uPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogVHJlZU5vZGVcclxuICogQHNlbGVjdG9yIHgtdHJlZS1ub2RlXHJcbiAqIEBkZWNvcmF0b3IgZGlyZWN0aXZlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRyZWVOb2RlUHJlZml4ID0gJ3gtdHJlZS1ub2RlJztcclxuXHJcbi8qKlxyXG4gKiBUcmVlTm9kZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRyZWVOb2RlUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnmlbDmja5cclxuICAgKiBAZW5fVVMgTm9kZSBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgbm9kZTogWFRyZWVOb2RlID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxgue6p1xyXG4gICAqIEBlbl9VUyBMZXZlbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxldmVsPzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oeS5Yqg6L295a2Q6IqC54K5XHJcbiAgICogQGVuX1VTIExhenkgbG9hZGluZyBvZiBjaGlsZCBub2Rlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGF6eT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnnmoTpq5jluqbvvIzljZXkvY0gcmVtXHJcbiAgICogQGVuX1VTIFRoZSBoZWlnaHQgb2YgdGhlIG5vZGUgaW4gcmVtXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIG5vZGVIZWlnaHQ6IFhOdW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnlhoXlrrnkuI3mjaLooYzmmL7npLrnnIHnlaXlj7dcclxuICAgKiBAZW5fVVMgU2hvdyBlbGxpcHNpcyB3aXRob3V0IHdyYXBwaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBub2RlTm93cmFwPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueWeguebtOWvuem9kOaWueW8j1xyXG4gICAqIEBlbl9VUyBTaG93IGVsbGlwc2lzIHdpdGhvdXQgd3JhcHBpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBub2RlQWxpZ25JdGVtczogWEFsaWduID0gJ2NlbnRlcic7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaHkuWKoOi9veWHveaVsFxyXG4gICAqIEBlbl9VUyBMYXp5IGxvYWRpbmcgZnVuY3Rpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBsYXp5RGF0YSE6IFhEYXRhPFhUcmVlTm9kZVtdPjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH6K6w5Li66Jma5ouf5rua5Yqo55qE6IqC54K5XHJcbiAgICogQGVuX1VTIE1hcmsgYXMgYSBub2RlIG9mIHZpcnR1YWwgcm9sbGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgdmlydHVhbFNjcm9sbD86IFhCb29sZWFuO1xyXG59XHJcbiJdfQ==
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUvdHJlZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixTQUFTLEVBRVQsYUFBYSxFQUliLFlBQVksRUFFWixXQUFXLEVBRVosTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFlLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDOztBQUVoRzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUNwQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFFN0I7O0dBRUc7QUFFSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFNBQVM7SUFENUM7O1FBRUU7OztXQUdHO1FBQ3NCLFNBQUksR0FBcUIsRUFBRSxDQUFDO1FBZ0JyRDs7O1dBR0c7UUFDTSxhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzlCOzs7V0FHRztRQUNNLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFNN0I7OztXQUdHO1FBQ3NCLGtCQUFhLEdBQVksQ0FBQyxDQUFDLENBQUM7UUEwQnJEOzs7V0FHRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUMxRDs7O1dBR0c7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDekQ7OztXQUdHO1FBQ3VCLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDakQ7OztXQUdHO1FBQ3VCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFDdEQ7OztXQUdHO1FBQ3VCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFNdEQ7OztXQUdHO1FBQ00sWUFBTyxHQUFrQixFQUFFLENBQUM7UUEwQnJDOzs7V0FHRztRQUNNLGdCQUFXLEdBQVcsR0FBRyxDQUFDO1FBQ25DOzs7V0FH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VztzQkFBbkIsS0FBSztnQkFLZ0UsYUFBYTtzQkFBbEYsS0FBSztnQkFLaUUsUUFBUTtzQkFBOUUsS0FBSztnQkFLSSxZQUFZO3NCQUFyQixNQUFNO2dCQUtHLFNBQVM7c0JBQWxCLE1BQU07Z0JBS0csaUJBQWlCO3NCQUExQixNQUFNOztBQTZFVDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQUU3Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxTQUFTO0lBRGhEOztRQUVFOzs7V0FHRztRQUNNLFNBQUksR0FBYyxFQUFFLENBQUM7UUFXOUI7OztXQUdHO1FBQ3NCLGVBQVUsR0FBWSxDQUFDLENBQUM7UUFNakQ7OztXQUdHO1FBQ00sbUJBQWMsR0FBVyxRQUFRLENBQUM7S0FXNUM7O2lJQXpDWSxpQkFBaUI7cUhBQWpCLGlCQUFpQiwrUUFEUCxFQUFFO0FBZ0JHO0lBQWhCLGFBQWEsRUFBRTsrQ0FBaUI7QUFLakI7SUFBZixZQUFZLEVBQUU7cURBQXlCO0FBS3ZCO0lBQWhCLGFBQWEsRUFBRTtxREFBdUI7QUFldEI7SUFBaEIsYUFBYSxFQUFFO3dEQUEwQjsyRkF4Q3hDLGlCQUFpQjtrQkFEN0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS29CLElBQUk7c0JBQTdCLEtBQUs7Z0JBS21CLFVBQVU7c0JBQWxDLEtBQUs7Z0JBS29CLFVBQVU7c0JBQW5DLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtvQixhQUFhO3NCQUF0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBYRGF0YUNvbnZlcnQsXHJcbiAgWFByb3BlcnR5LFxyXG4gIFhEYXRhLFxyXG4gIFhJbnB1dEJvb2xlYW4sXHJcbiAgWFBhcmVudElkZW50aXR5UHJvcGVydHksXHJcbiAgWE51bWJlcixcclxuICBYQm9vbGVhbixcclxuICBYSW5wdXROdW1iZXIsXHJcbiAgWElkZW50aXR5UHJvcGVydHksXHJcbiAgWFdpdGhDb25maWcsXHJcbiAgWEFsaWduXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBUZW1wbGF0ZVJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRyZWVcclxuICogQHNlbGVjdG9yIHgtdHJlZVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUcmVlUHJlZml4ID0gJ3gtdHJlZSc7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAndHJlZSc7XHJcblxyXG4vKipcclxuICogVHJlZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRyZWVQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueaVsOaNrlxyXG4gICAqIEBlbl9VUyBOb2RlIGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBAWERhdGFDb252ZXJ0KCkgZGF0YTogWERhdGE8WFRyZWVOb2RlPiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrlpJrpgInmoYZcclxuICAgKiBAZW5fVVMgU2hvdyBjaGVja2JveFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgY2hlY2tib3g/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5ZCv5oeS5Yqg6L296IqC54K577yMZGF0YSDlv4Xpobvorr7nva7miJDlh73mlbDnsbvlnotcclxuICAgKiBAZW5fVVMgT3BlbiBsYXp5IGxvYWRpbmcgbm9kZSwgZGF0YSBtdXN0IGJlIHNldCB0byBmdW5jdGlvbiB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXp5PzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjea/gOa0u+eahOiKgueCuSBJZCwg5b2TIG11bHRpcGxlIOS4uiB0cnVlIOaXtu+8jOWAvOS4uuaVsOe7hO+8iOm7mOiupOaYryBJZCDmlbDnu4TvvIxvYmplY3RBcnJheSDkuLogdHJ1Ze+8jOWvueixoeaVsOe7hO+8iVxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgYWN0aXZlIG5vZGUgSWQuIFdoZW4gTXVsdGlwbGUgaXMgdHJ1ZSwgdGhlIHZhbHVlIGlzIHRoZSBJZCBhcnJheVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGl2YXRlZElkOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleW8gOeahOiKgueCuVxyXG4gICAqIEBlbl9VUyBFeHBhbmRlZCBub2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZXhwYW5kZWQ6IGFueVtdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOmAieS4reeahOiKgueCuVxyXG4gICAqIEBlbl9VUyBDaGVja2JveCBzZWxlY3RlZCBub2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2hlY2tlZDogYW55W10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICogQGVuX1VTIEV4cGFuZCBhbGwgbm9kZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGV4cGFuZGVkQWxsPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOm7mOiupOWxleW8gOeahOWxgue6p1xyXG4gICAqIEBlbl9VUyBEZWZhdWx0IGV4cGFuZGVkIGxldmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGV4cGFuZGVkTGV2ZWw6IFhOdW1iZXIgPSAtMTtcclxuICAvKipcclxuICAgKiBAemhfQ04g54K55Ye76IqC54K55bCx6Kem5Y+R5bGV5byAL+aUtui1t+eahOaTjeS9nO+8jOivt+ehruS/neiKgueCueS4iuayoeacieWFtuWug+aTjeS9nO+8iGNoZWNrYm9444CB6Ieq5a6a5LmJ55qE5pON5L2c5oyJ6ZKu77yJXHJcbiAgICogQGVuX1VTIENsaWNrIHRoZSBub2RlIHRvIHRyaWdnZXIgdGhlIGV4cGFuZC9jb2xsYXBzZSBvcGVyYXRpb24sIHBsZWFzZSBtYWtlIHN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gb3RoZXIgb3BlcmF0aW9ucyBvbiB0aGUgbm9kZSAoY2hlY2tib3gsIGN1c3RvbSBvcGVyYXRpb24gYnV0dG9uKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbm9kZU9wZW4/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5L2N6Ze06Led77yM6L+Z5Liq5LiO5bGC57qn55qE5LmY56ev566X5Ye66IqC54K555qE5bem6L656Led77yM5Y2V5L2NIHJlbVxyXG4gICAqIEBlbl9VUyBVbml0IHNwYWNpbmcsIHRoZSBwcm9kdWN0IG9mIHRoaXMgYW5kIHRoZSBsZXZlbCBjYWxjdWxhdGVzIHRoZSBsZWZ0IG1hcmdpbiBvZiB0aGUgbm9kZSwgdGhlIHVuaXQgaXMgcmVtXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIDAuODc1KSBAWElucHV0TnVtYmVyKCkgc3BhY2luZz86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+etvuiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBMYWJlbCBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBsYWJlbFRwbD86IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnnmoTpq5jluqbvvIzljZXkvY0gcmVtLCDpu5jorqQgMCDmmK/oh6rpgILlupTpq5jluqZcclxuICAgKiBAZW5fVVMgVGhlIGhlaWdodCBvZiB0aGUgbm9kZSBpbiByZW1cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgMCkgQFhJbnB1dE51bWJlcigpIG5vZGVIZWlnaHQhOiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKblhYHorrjlpJrmrKHngrnlh7vkuIDkuKroioLngrnop6blj5HlpJrmrKHkuovku7ZcclxuICAgKiBAZW5fVVMgV2hldGhlciB0byBhbGxvdyBtdWx0aXBsZSBjbGlja3Mgb24gYSBub2RlIHRvIHRyaWdnZXIgbXVsdGlwbGUgZXZlbnRzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBhbGxvd01hbnlBY3RpdmF0ZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN54K55Ye76YCJ5Lit55qE6IqC54K55Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFRoZSBldmVudCBvZiB0aGUgY3VycmVudGx5IGNsaWNrZWQgbm9kZSBjaGFuZ2VcclxuICAgKi9cclxuICBAT3V0cHV0KCkgYWN0aXZhdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYVHJlZU5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS9v+eUqCBjaGVja2VkYm94IOmAieS4reWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBVc2UgY2hlY2tlZGJveCB0byBzZWxlY3QgY2hhbmdlZCBldmVudHNcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY2hlY2tib3hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhUcmVlTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aaC5p6cIGRhdGEg5piv5Ye95pWw57G75Z6L77yM5Y+v5Lul6YCa6L+H5q2k5Y+C5pWw5o6n5Yi26K+35rGC77yM5bi455So5LqO5by55qGG5Lit55qE6KGo5qC877yM5by55Ye65ZCO5YaN6K+35rGCXHJcbiAgICogQGVuX1VTIElmIGRhdGEgaXMgYSBmdW5jdGlvbiB0eXBlLCB5b3UgY2FuIHVzZSB0aGlzIHBhcmFtZXRlciB0byBjb250cm9sIHRoZSByZXF1ZXN0LCB3aGljaCBpcyBvZnRlbiB1c2VkIGluIHRoZSBmb3JtIGluIHRoZSBwb3AtdXAgYm94LCBhbmQgdGhlbiByZXF1ZXN0IGl0IGFmdGVyIGl0IHBvcHMgdXBcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG1hbnVhbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOeKtuaAgeaUueWPmOinpuWPkeWxgue6p+ajgOafpVxyXG4gICAqIEBlbl9VUyBDaGVja2JveCBzdGF0dXMgY2hhbmdlcyB0cmlnZ2VyIGxldmVsIGNoZWNrc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGV2ZWxDaGVjazogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnlhoXlrrnkuI3mjaLooYzmmL7npLrnnIHnlaXlj7dcclxuICAgKiBAZW5fVVMgU2hvdyBlbGxpcHNpcyB3aXRob3V0IHdyYXBwaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBub2RlTm93cmFwOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueWeguebtOWvuem9kOaWueW8j1xyXG4gICAqIEBlbl9VUyBTaG93IGVsbGlwc2lzIHdpdGhvdXQgd3JhcHBpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEFsaWduPihYX0NPTkZJR19OQU1FLCAnY2VudGVyJykgbm9kZUFsaWduSXRlbXMhOiBYQWxpZ247XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeiKgueCueaTjeS9nOaMiemSrlxyXG4gICAqIEBlbl9VUyBUcmVlIG5vZGUgb3BlcmF0aW9uIGJ1dHRvbnNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zOiBYVHJlZUFjdGlvbltdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa7muWKqOWMuuWfn+WFg+e0oFxyXG4gICAqIEBlbl9VUyBSb2xsaW5nIGFyZWEgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNjcm9sbEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5ZCv6Jma5ouf5rua5YqoXHJcbiAgICogQGVuX1VTIFR1cm4gb24gdmlydHVhbCBzY3JvbGxpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUpIEBYSW5wdXRCb29sZWFuKCkgdmlydHVhbFNjcm9sbCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmu5rliqjljLrln5/pq5jluqbvvIzlvIDlkK/omZrmi5/mu5rliqjnmoTml7blgJnnlJ/mlYhcclxuICAgKiBAZW5fVVMgUm9sbGluZyBhcmVhIGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxudW1iZXI+KFhfQ09ORklHX05BTUUsIDQwMCkgQFhJbnB1dE51bWJlcigpIHZpcnR1YWxTY3JvbGxIZWlnaHQhOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiZmuaLn+a7muWKqOmrmOW6puiHqumAguW6lOaMh+WumuWFg+e0oFxyXG4gICAqIEBlbl9VUyB2aXJ0dWFsIHJvbGxpbmcgaGVpZ2h0IGZvbGxvd3MgdGhlIHNwZWNpZmllZCBvYmplY3RcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWlnaHRBZGFwdGlvbiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgSFRNTEVsZW1lbnQ7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGl0ZW1TaXpl77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWw77yM5byA5ZCv6Jma5ouf5rua5Yqo5omN55Sf5pWIXHJcbiAgICogQGVuX1VTIGl0ZW1TaXpl77yMY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPG51bWJlcj4oWF9DT05GSUdfTkFNRSwgMjYpIEBYSW5wdXROdW1iZXIoKSBpdGVtU2l6ZSE6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6LaF5Ye65Y+v6KeG56qX5Y+j57yT5Yay5Yy655qE5pyA5bCP5YC877yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWw77yM5byA5ZCv6Jma5ouf5rua5Yqo5omN55Sf5pWIXHJcbiAgICogQGVuX1VTIEV4Y2VlZCB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBtaW5CdWZmZXJQeDogbnVtYmVyID0gMTAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbDvvIzlvIDlkK/omZrmi5/mu5rliqjmiY3nlJ/mlYhcclxuICAgKiBAZW5fVVMgUmVuZGVyIHRoZSBwaXhlbHMgb2YgdGhlIG5ldyBkYXRhIGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWF4QnVmZmVyUHg6IG51bWJlciA9IDIwMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa6YCJ5Yqf6IO977yM5b2T5YmN5r+A5rS755qE6IqC54K55Y+v5Lul5piv5aSa5LiqXHJcbiAgICogQGVuX1VTIE11bHRpcGxlIGNob2ljZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbXVsdGlwbGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5byA5ZCv5aSa6YCJ55qE5pe25YCZ77yMYWN0aXZhdGVkSWQg55qE5YC85Li65a+56LGh5pWw57uEXHJcbiAgICogQGVuX1VTIFdoZW4gbXVsdGlwbGUgc2VsZWN0aW9uIGlzIGVuYWJsZWQsIHRoZSB2YWx1ZSBvZiBhY3RpdmF0ZWRJZCBpcyBhbiBhcnJheSBvZiBvYmplY3RzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBvYmplY3RBcnJheT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhbPplK7lrZfpq5jkuq7vvIzpkojlr7nkuIvmi4nmoJHmkJzntKJcclxuICAgKiBAZW5fVVMgS2V5d29yZCBoaWdobGlnaHRpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBrZXl3b3JkVGV4dCE6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljLnphY3lhbPplK7lrZfljLrliIblpKflsI/lhpnvvIzpkojlr7nkuIvmi4nmoJHmkJzntKJcclxuICAgKiBAZW5fVVMgQ2FzZS1zZW5zaXRpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgY2FzZVNlbnNpdGl2ZSE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlj6rog73pgInmi6nlj7blrZDoioLngrlcclxuICAgKiBAZW5fVVMgT25seSBsZWFmIG5vZGVzIGNhbiBiZSBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgb25seUxlYWYhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+C5pWw5o6n5Yi26K+35rGC5pS55Y+Y5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhcmFtZXRlciBjb250cm9sIHJlcXVlc3QgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1hbnVhbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye75LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbm9kZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxYVHJlZU5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGFjdGl2YXRlZElkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04gVHJlZSDmlbDmja7lr7nosaFcclxuICogQGVuX1VTIFRyZWUgZGF0YSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRyZWVOb2RlIGV4dGVuZHMgWFBhcmVudElkZW50aXR5UHJvcGVydHk8WFRyZWVOb2RlPiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa/gOa0u+eahFxyXG4gICAqIEBlbl9VUyBhY3RpdmVcclxuICAgKi9cclxuICBhY3RpdmF0ZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmo4Dmn6Xmm7TmlrBcclxuICAgKiBAZW5fVVMgQ2hlY2sgZm9yIHVwZGF0ZXNcclxuICAgKi9cclxuICBjaGFuZ2U/OiBGdW5jdGlvbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5piv5ZCm6YCJ5LitXHJcbiAgICogQGVuX1VTIHdoZXRoZXIgY2hlY2tib3ggaXMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBjaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55SoY2hlY2tib3hcclxuICAgKiBAZW5fVVMgRGlzYWJsZSBjaGVja2JveFxyXG4gICAqL1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5a2Q6IqC54K55piv5ZCm5pyJ6YCJ5Lit55qE54q25oCBXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdGhlIGNoaWxkIG5vZGUgb2YgY2hlY2tib3ggaXMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K56auY5bqm77yM5LyY5YWI57qn6auY5LqOIHRyZWUg5Y+C5pWw77yM5Y2V5L2NIHJlbVxyXG4gICAqIEBlbl9VUyBOb2RlIGhlaWdodCBpbiByZW0sIGhpZ2hlc3QgcHJpb3JpdHlcclxuICAgKi9cclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueWGheWuueS4jeaNouihjOaYvuekuuecgeeVpeWPt++8jOS8mOWFiOe6p+mrmOS6jiB0cmVlIOWPguaVsFxyXG4gICAqIEBlbl9VUyBTaG93IGVsbGlwc2lzIHdpdGhvdXQgd3JhcHBpbmcsIGhpZ2hlc3QgcHJpb3JpdHlcclxuICAgKi9cclxuICBub3dyYXA/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnlnoLnm7Tlr7npvZDmlrnlvI/vvIzkvJjlhYjnuqfpq5jkuo4gdHJlZSDlj4LmlbBcclxuICAgKiBAZW5fVVMgU2hvdyBlbGxpcHNpcyB3aXRob3V0IHdyYXBwaW5nLCBoaWdoZXN0IHByaW9yaXR5XHJcbiAgICovXHJcbiAgYWxpZ25JdGVtcz86IFhBbGlnbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55oeS5Yqg6L295LitXHJcbiAgICogQGVuX1VTIE5vZGUgbGF6eSBsb2FkaW5nXHJcbiAgICovXHJcbiAgbG9hZGluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIFRyZWUg6IqC54K55pON5L2cXHJcbiAqIEBlbl9VUyBUcmVlIG5vZGUgb3BlcmF0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUcmVlQWN0aW9uIGV4dGVuZHMgWElkZW50aXR5UHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmk43kvZxcclxuICAgKiBAZW5fVVMgT3BlcmF0aW5nXHJcbiAgICovXHJcbiAgaGFuZGxlcj86IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm77moIdcclxuICAgKiBAZW5fVVMgSWNvblxyXG4gICAqL1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUcmVlTm9kZVxyXG4gKiBAc2VsZWN0b3IgeC10cmVlLW5vZGVcclxuICogQGRlY29yYXRvciBkaXJlY3RpdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVHJlZU5vZGVQcmVmaXggPSAneC10cmVlLW5vZGUnO1xyXG5cclxuLyoqXHJcbiAqIFRyZWVOb2RlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZU5vZGVQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueaVsOaNrlxyXG4gICAqIEBlbl9VUyBOb2RlIGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBub2RlOiBYVHJlZU5vZGUgPSB7fTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGC57qnXHJcbiAgICogQGVuX1VTIExldmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgbGV2ZWw/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmh5LliqDovb3lrZDoioLngrlcclxuICAgKiBAZW5fVVMgTGF6eSBsb2FkaW5nIG9mIGNoaWxkIG5vZGVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXp5PzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeahOmrmOW6pu+8jOWNleS9jSByZW1cclxuICAgKiBAZW5fVVMgVGhlIGhlaWdodCBvZiB0aGUgbm9kZSBpbiByZW1cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgbm9kZUhlaWdodDogWE51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueWGheWuueS4jeaNouihjOaYvuekuuecgeeVpeWPt1xyXG4gICAqIEBlbl9VUyBTaG93IGVsbGlwc2lzIHdpdGhvdXQgd3JhcHBpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG5vZGVOb3dyYXA/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55Z6C55u05a+56b2Q5pa55byPXHJcbiAgICogQGVuX1VTIFNob3cgZWxsaXBzaXMgd2l0aG91dCB3cmFwcGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG5vZGVBbGlnbkl0ZW1zOiBYQWxpZ24gPSAnY2VudGVyJztcclxuICAvKipcclxuICAgKiBAemhfQ04g5oeS5Yqg6L295Ye95pWwXHJcbiAgICogQGVuX1VTIExhenkgbG9hZGluZyBmdW5jdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxhenlEYXRhITogWERhdGE8WFRyZWVOb2RlW10+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIforrDkuLromZrmi5/mu5rliqjnmoToioLngrlcclxuICAgKiBAZW5fVVMgTWFyayBhcyBhIG5vZGUgb2YgdmlydHVhbCByb2xsaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSB2aXJ0dWFsU2Nyb2xsPzogWEJvb2xlYW47XHJcbn1cclxuIl19
@@ -90,10 +90,10 @@ export class XTreeSelectPortalComponent {
90
90
  }
91
91
  }
92
92
  /** @nocollapse */ XTreeSelectPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeSelectPortalComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
93
- /** @nocollapse */ XTreeSelectPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeSelectPortalComponent, selector: "x-tree-select-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true }], ngImport: i0, template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <!-- <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray\"\r\n [multiple]=\"multiple\"\r\n [selectAll]=\"selectAll\"\r\n [selectAllText]=\"getSelectAllText\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [size]=\"size\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n ></x-list> -->\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n ></x-tree>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc((calc(var(--x-font-size) + .875rem) * 6) + (var(--x-border-width) * 7))}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XTreeComponent, selector: "x-tree" }, { kind: "component", type: i4.XEmptyComponent, selector: "x-empty" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
93
+ /** @nocollapse */ XTreeSelectPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeSelectPortalComponent, selector: "x-tree-select-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true }], ngImport: i0, template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <!-- <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray\"\r\n [multiple]=\"multiple\"\r\n [selectAll]=\"selectAll\"\r\n [selectAllText]=\"getSelectAllText\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [size]=\"size\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n ></x-list> -->\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n [onlyLeaf]=\"onlyLeaf\"\r\n [nodeOpen]=\"onlyLeaf\"\r\n ></x-tree>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc((calc(var(--x-font-size) + .875rem) * 6) + (var(--x-border-width) * 7))}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XTreeComponent, selector: "x-tree" }, { kind: "component", type: i4.XEmptyComponent, selector: "x-empty" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeSelectPortalComponent, decorators: [{
95
95
  type: Component,
96
- args: [{ selector: `${XTreeSelectPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <!-- <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray\"\r\n [multiple]=\"multiple\"\r\n [selectAll]=\"selectAll\"\r\n [selectAllText]=\"getSelectAllText\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [size]=\"size\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n ></x-list> -->\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n ></x-tree>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc((calc(var(--x-font-size) + .875rem) * 6) + (var(--x-border-width) * 7))}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"] }]
96
+ args: [{ selector: `${XTreeSelectPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div\r\n #treeSelectPortal\r\n class=\"x-tree-select-portal\"\r\n (click)=\"inputCom.inputFocus(); stopPropagation($event)\"\r\n [style.maxHeight]=\"portalMaxHeight\"\r\n>\r\n <!-- <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (onSelectAll)=\"onSelectAll($event)\"\r\n checked\r\n [objectArray]=\"objectArray\"\r\n [multiple]=\"multiple\"\r\n [selectAll]=\"selectAll\"\r\n [selectAllText]=\"getSelectAllText\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [size]=\"size\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n ></x-list> -->\r\n <x-tree\r\n #tree\r\n [data]=\"data\"\r\n [labelTpl]=\"nodeTpl\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [scrollElement]=\"search ? scrollNull : treeSelectPortal\"\r\n [heightAdaption]=\"treeSelectPortal\"\r\n [expandedLevel]=\"expandedLevel\"\r\n [(activatedId)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [multiple]=\"multiple\"\r\n [allowManyActivated]=\"multiple\"\r\n [objectArray]=\"objectArray\"\r\n [keywordText]=\"keywordText\"\r\n [caseSensitive]=\"caseSensitive\"\r\n [onlyLeaf]=\"onlyLeaf\"\r\n [nodeOpen]=\"onlyLeaf\"\r\n ></x-tree>\r\n <x-empty *ngIf=\"isEmpty\"></x-empty>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-tree-select-portal{width:100%}.x-tree-select-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);width:100%;border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);position:relative;display:flex;flex-direction:column;background-color:var(--x-background);overflow:hidden auto;max-height:calc((calc(var(--x-font-size) + .875rem) * 6) + (var(--x-border-width) * 7))}.x-tree-select-portal x-tree{width:100%}.x-tree-select-portal x-empty{margin:1rem;display:block}\n"] }]
97
97
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.XI18nService }]; }, propDecorators: { placement: [{
98
98
  type: HostBinding,
99
99
  args: ['@x-connect-base-animation']
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
107
107
  type: ViewChild,
108
108
  args: ['tree']
109
109
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBRVosU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQVkscUJBQXFCLEVBQUUsUUFBUSxFQUE2QixNQUFNLGtCQUFrQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWFoRCxNQUFNLE9BQU8sMEJBQTBCO0lBcURyQyxZQUFtQixRQUFtQixFQUFTLEdBQXNCLEVBQVMsSUFBa0I7UUFBN0UsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYztRQXRCaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUVyQixXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUM3QixXQUFN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XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVTZWxlY3ROb2RlLCBYVHJlZVNlbGVjdFBvcnRhbFByZWZpeCB9IGZyb20gJy4vdHJlZS1zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWEJvb2xlYW4sIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWElzRW1wdHksIFhQb3NpdGlvblRvcEJvdHRvbSwgWFNpemUgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyZWVTZWxlY3QgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFRyZWVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90cmVlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVHJlZVNlbGVjdFBvcnRhbFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlU2VsZWN0UG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlITogWFRyZWVDb21wb25lbnQ7XHJcbiAgLy8gQFZpZXdDaGlsZCgnbGlzdCcpIGxpc3QhOiBYTGlzdENvbXBvbmVudDtcclxuICBnZXQgaXNFbXB0eSgpIHtcclxuICAgIHJldHVybiBYSXNFbXB0eSh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGF0YSE6IFhUcmVlU2VsZWN0Tm9kZVtdO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgaW5wdXRDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgZGF0YUNoYW5nZSE6IEJlaGF2aW9yU3ViamVjdDxYVHJlZVNlbGVjdE5vZGVbXT47XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgYWN0aXZlQ2hhbmdlITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGNsb3NlU3ViamVjdCE6IFN1YmplY3Q8dm9pZD47XHJcbiAga2V5ZG93blN1YmplY3QhOiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+O1xyXG4gIHNlYXJjaFN1YmplY3QhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIHNlbGVjdEFsbEVtaXQhOiBGdW5jdGlvbjtcclxuICBtdWx0aXBsZSE6IFhCb29sZWFuO1xyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vZGVUcGwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvYmplY3RBcnJheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFjdGl2ZTogbnVtYmVyID0gLTE7XHJcbiAgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcbiAgcG9ydGFsTWF4SGVpZ2h0ID0gJyc7XHJcbiAgc2VsZWN0QWxsVGV4dCE6IHN0cmluZztcclxuICBsb2NhbGU6IFhJMThuVHJlZVNlbGVjdCA9IHt9O1xyXG4gIHNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNjcm9sbE51bGwgPSB1bmRlZmluZWQ7XHJcbiAgdmlydHVhbFNjcm9sbCE6IFhCb29sZWFuO1xyXG4gIHNpemUhOiBYU2l6ZTtcclxuICBleHBhbmRlZExldmVsITogbnVtYmVyO1xyXG4gIGtleXdvcmRUZXh0ITogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGdldCBnZXRTZWxlY3RBbGxUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0QWxsVGV4dCB8fCB0aGlzLmxvY2FsZS5zZWxlY3RBbGxUZXh0O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgaTE4bjogWEkxOG5TZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMucGxhY2VtZW50ID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgLy8gdGhpcy50cmVlLnNldFVuQWN0aXZlKHRoaXMuYWN0aXZlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5rZXlkb3duU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKF94KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMudHJlZS5rZXlkb3duKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmtleXdvcmRUZXh0ID0geDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHgudHJlZVNlbGVjdCBhcyBYSTE4blRyZWVTZWxlY3QpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbm9kZUNsaWNrKG5vZGU6IFhUcmVlU2VsZWN0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdChub2RlLCB0aGlzLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQobm9kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChfaXNTZWxlY3RBbGw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubm9kZUVtaXQobnVsbCwgdGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkFjdGl2ZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5hY3RpdmUgPSBudW07XHJcbiAgfVxyXG5cclxuICAvLyBvblRhYk91dCgpIHtcclxuICAvLyAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICN0cmVlU2VsZWN0UG9ydGFsXHJcbiAgY2xhc3M9XCJ4LXRyZWUtc2VsZWN0LXBvcnRhbFwiXHJcbiAgKGNsaWNrKT1cImlucHV0Q29tLmlucHV0Rm9jdXMoKTsgc3RvcFByb3BhZ2F0aW9uKCRldmVudClcIlxyXG4gIFtzdHlsZS5tYXhIZWlnaHRdPVwicG9ydGFsTWF4SGVpZ2h0XCJcclxuPlxyXG4gIDwhLS0gPHgtbGlzdFxyXG4gICAgI2xpc3RcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAobm9kZUNsaWNrKT1cIm5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgIChrZXlNYW5hZ2VyQ2hhbmdlKT1cIm9uQWN0aXZlKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJUYWJPdXQpPVwib25UYWJPdXQoKVwiXHJcbiAgICAob25TZWxlY3RBbGwpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICBjaGVja2VkXHJcbiAgICBbb2JqZWN0QXJyYXldPVwib2JqZWN0QXJyYXlcIlxyXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICAgIFtzZWxlY3RBbGxdPVwic2VsZWN0QWxsXCJcclxuICAgIFtzZWxlY3RBbGxUZXh0XT1cImdldFNlbGVjdEFsbFRleHRcIlxyXG4gICAgW25vZGVUcGxdPVwibm9kZVRwbFwiXHJcbiAgICBbc2Nyb2xsRWxlbWVudF09XCJzZWFyY2ggPyBzY3JvbGxOdWxsIDogdHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgW2hlaWdodEFkYXB0aW9uXT1cInRyZWVTZWxlY3RQb3J0YWxcIlxyXG4gID48L3gtbGlzdD4gLS0+XHJcbiAgPHgtdHJlZVxyXG4gICAgI3RyZWVcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2xhYmVsVHBsXT1cIm5vZGVUcGxcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbFwiXHJcbiAgICBbc2Nyb2xsRWxlbWVudF09XCJzZWFyY2ggPyBzY3JvbGxOdWxsIDogdHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwidHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbZXhwYW5kZWRMZXZlbF09XCJleHBhbmRlZExldmVsXCJcclxuICAgIFsoYWN0aXZhdGVkSWQpXT1cInZhbHVlXCJcclxuICAgIChub2RlQ2xpY2spPVwibm9kZUNsaWNrKCRldmVudClcIlxyXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICAgIFthbGxvd01hbnlBY3RpdmF0ZWRdPVwibXVsdGlwbGVcIlxyXG4gICAgW29iamVjdEFycmF5XT1cIm9iamVjdEFycmF5XCJcclxuICAgIFtrZXl3b3JkVGV4dF09XCJrZXl3b3JkVGV4dFwiXHJcbiAgICBbY2FzZVNlbnNpdGl2ZV09XCJjYXNlU2Vuc2l0aXZlXCJcclxuICA+PC94LXRyZWU+XHJcbiAgPHgtZW1wdHkgKm5nSWY9XCJpc0VtcHR5XCI+PC94LWVtcHR5PlxyXG48L2Rpdj5cclxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBRVosU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQVkscUJBQXFCLEVBQUUsUUFBUSxFQUE2QixNQUFNLGtCQUFrQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWFoRCxNQUFNLE9BQU8sMEJBQTBCO0lBc0RyQyxZQUFtQixRQUFtQixFQUFTLEdBQXNCLEVBQVMsSUFBa0I7UUFBN0UsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYztRQXZCaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUVyQixXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUM3QixXQUFN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XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVTZWxlY3ROb2RlLCBYVHJlZVNlbGVjdFBvcnRhbFByZWZpeCB9IGZyb20gJy4vdHJlZS1zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWEJvb2xlYW4sIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWElzRW1wdHksIFhQb3NpdGlvblRvcEJvdHRvbSwgWFNpemUgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyZWVTZWxlY3QgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFRyZWVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90cmVlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVHJlZVNlbGVjdFBvcnRhbFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmVlU2VsZWN0UG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlITogWFRyZWVDb21wb25lbnQ7XHJcbiAgLy8gQFZpZXdDaGlsZCgnbGlzdCcpIGxpc3QhOiBYTGlzdENvbXBvbmVudDtcclxuICBnZXQgaXNFbXB0eSgpIHtcclxuICAgIHJldHVybiBYSXNFbXB0eSh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGF0YSE6IFhUcmVlU2VsZWN0Tm9kZVtdO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgaW5wdXRDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgZGF0YUNoYW5nZSE6IEJlaGF2aW9yU3ViamVjdDxYVHJlZVNlbGVjdE5vZGVbXT47XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgYWN0aXZlQ2hhbmdlITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGNsb3NlU3ViamVjdCE6IFN1YmplY3Q8dm9pZD47XHJcbiAga2V5ZG93blN1YmplY3QhOiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+O1xyXG4gIHNlYXJjaFN1YmplY3QhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIHNlbGVjdEFsbEVtaXQhOiBGdW5jdGlvbjtcclxuICBtdWx0aXBsZSE6IFhCb29sZWFuO1xyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vZGVUcGwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvYmplY3RBcnJheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFjdGl2ZTogbnVtYmVyID0gLTE7XHJcbiAgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcbiAgcG9ydGFsTWF4SGVpZ2h0ID0gJyc7XHJcbiAgc2VsZWN0QWxsVGV4dCE6IHN0cmluZztcclxuICBsb2NhbGU6IFhJMThuVHJlZVNlbGVjdCA9IHt9O1xyXG4gIHNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNjcm9sbE51bGwgPSB1bmRlZmluZWQ7XHJcbiAgdmlydHVhbFNjcm9sbCE6IFhCb29sZWFuO1xyXG4gIHNpemUhOiBYU2l6ZTtcclxuICBvbmx5TGVhZiE6IFhCb29sZWFuO1xyXG4gIGV4cGFuZGVkTGV2ZWwhOiBudW1iZXI7XHJcbiAga2V5d29yZFRleHQhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGdldFNlbGVjdEFsbFRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RBbGxUZXh0IHx8IHRoaXMubG9jYWxlLnNlbGVjdEFsbFRleHQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5wbGFjZW1lbnQgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5kYXRhID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnRyZWUuc2V0VW5BY3RpdmUodGhpcy5hY3RpdmUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoX3gpID0+IHtcclxuICAgICAgLy8gdGhpcy50cmVlLmtleWRvd24oeCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMua2V5d29yZFRleHQgPSB4O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC50cmVlU2VsZWN0IGFzIFhJMThuVHJlZVNlbGVjdCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBub2RlQ2xpY2sobm9kZTogWFRyZWVTZWxlY3ROb2RlKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KG5vZGUsIHRoaXMudmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdChub2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWxsKF9pc1NlbGVjdEFsbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5ub2RlRW1pdChudWxsLCB0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQWN0aXZlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFjdGl2ZSA9IG51bTtcclxuICB9XHJcblxyXG4gIC8vIG9uVGFiT3V0KCkge1xyXG4gIC8vICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gIC8vIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI3RyZWVTZWxlY3RQb3J0YWxcclxuICBjbGFzcz1cIngtdHJlZS1zZWxlY3QtcG9ydGFsXCJcclxuICAoY2xpY2spPVwiaW5wdXRDb20uaW5wdXRGb2N1cygpOyBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiXHJcbiAgW3N0eWxlLm1heEhlaWdodF09XCJwb3J0YWxNYXhIZWlnaHRcIlxyXG4+XHJcbiAgPCEtLSA8eC1saXN0XHJcbiAgICAjbGlzdFxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIChub2RlQ2xpY2spPVwibm9kZUNsaWNrKCRldmVudClcIlxyXG4gICAgKGtleU1hbmFnZXJDaGFuZ2UpPVwib25BY3RpdmUoJGV2ZW50KVwiXHJcbiAgICAoa2V5TWFuYWdlclRhYk91dCk9XCJvblRhYk91dCgpXCJcclxuICAgIChvblNlbGVjdEFsbCk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIGNoZWNrZWRcclxuICAgIFtvYmplY3RBcnJheV09XCJvYmplY3RBcnJheVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgW3NlbGVjdEFsbF09XCJzZWxlY3RBbGxcIlxyXG4gICAgW3NlbGVjdEFsbFRleHRdPVwiZ2V0U2VsZWN0QWxsVGV4dFwiXHJcbiAgICBbbm9kZVRwbF09XCJub2RlVHBsXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCA/IHNjcm9sbE51bGwgOiB0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwidHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgPjwveC1saXN0PiAtLT5cclxuICA8eC10cmVlXHJcbiAgICAjdHJlZVxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbbGFiZWxUcGxdPVwibm9kZVRwbFwiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCA/IHNjcm9sbE51bGwgOiB0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFtoZWlnaHRBZGFwdGlvbl09XCJ0cmVlU2VsZWN0UG9ydGFsXCJcclxuICAgIFtleHBhbmRlZExldmVsXT1cImV4cGFuZGVkTGV2ZWxcIlxyXG4gICAgWyhhY3RpdmF0ZWRJZCldPVwidmFsdWVcIlxyXG4gICAgKG5vZGVDbGljayk9XCJub2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgW2FsbG93TWFueUFjdGl2YXRlZF09XCJtdWx0aXBsZVwiXHJcbiAgICBbb2JqZWN0QXJyYXldPVwib2JqZWN0QXJyYXlcIlxyXG4gICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0XCJcclxuICAgIFtjYXNlU2Vuc2l0aXZlXT1cImNhc2VTZW5zaXRpdmVcIlxyXG4gICAgW29ubHlMZWFmXT1cIm9ubHlMZWFmXCJcclxuICAgIFtub2RlT3Blbl09XCJvbmx5TGVhZlwiXHJcbiAgPjwveC10cmVlPlxyXG4gIDx4LWVtcHR5ICpuZ0lmPVwiaXNFbXB0eVwiPjwveC1lbXB0eT5cclxuPC9kaXY+XHJcbiJdfQ==