@ng-nest/ui 14.0.8 → 14.0.9

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 (1044) 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/auto-complete/auto-complete-portal.component.mjs +11 -4
  11. package/esm2020/auto-complete/auto-complete.component.mjs +20 -21
  12. package/esm2020/base-form/base-form.component.mjs +13 -4
  13. package/esm2020/base-form/base-form.property.mjs +4 -2
  14. package/esm2020/core/config/config.mjs +1 -1
  15. package/esm2020/core/functions/property.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/dialog/dialog.property.mjs +1 -1
  21. package/esm2020/find/find.property.mjs +2 -2
  22. package/esm2020/form/control.component.mjs +13 -4
  23. package/esm2020/form/form.property.mjs +1 -1
  24. package/esm2020/i18n/i18n.property.mjs +1 -1
  25. package/esm2020/i18n/languages/en_US.mjs +7 -1
  26. package/esm2020/i18n/languages/zh_CN.mjs +7 -1
  27. package/esm2020/i18n/languages/zh_TW.mjs +7 -1
  28. package/esm2020/icon/icon.property.mjs +1 -1
  29. package/esm2020/image/image-group.component.mjs +4 -1
  30. package/esm2020/image/image.component.mjs +6 -1
  31. package/esm2020/input/input.component.mjs +7 -4
  32. package/esm2020/input/input.property.mjs +1 -1
  33. package/esm2020/input-number/input-number.component.mjs +8 -2
  34. package/esm2020/input-number/input-number.property.mjs +4 -2
  35. package/esm2020/list/list-drop-group.directive.mjs +47 -0
  36. package/esm2020/list/list.component.mjs +37 -9
  37. package/esm2020/list/list.module.mjs +6 -5
  38. package/esm2020/list/list.property.mjs +1 -1
  39. package/esm2020/list/public-api.mjs +2 -1
  40. package/esm2020/message-box/message-box.component.mjs +24 -9
  41. package/esm2020/message-box/message-box.module.mjs +8 -4
  42. package/esm2020/message-box/message-box.property.mjs +1 -1
  43. package/esm2020/message-box/message-box.service.mjs +10 -3
  44. package/esm2020/resizable/resizable.directive.mjs +2 -2
  45. package/esm2020/slider-select/slider-select.component.mjs +6 -3
  46. package/esm2020/slider-select/slider-select.property.mjs +7 -2
  47. package/esm2020/table/table-body.component.mjs +5 -3
  48. package/esm2020/table/table.component.mjs +10 -6
  49. package/esm2020/table/table.property.mjs +21 -2
  50. package/esm2020/transfer/transfer.component.mjs +354 -51
  51. package/esm2020/transfer/transfer.module.mjs +35 -4
  52. package/esm2020/transfer/transfer.property.mjs +41 -3
  53. package/esm2020/tree/tree-node.component.mjs +19 -10
  54. package/esm2020/tree/tree.component.mjs +21 -19
  55. package/esm2020/tree/tree.property.mjs +8 -2
  56. package/esm2020/tree-select/tree-select-portal.component.mjs +4 -3
  57. package/esm2020/tree-select/tree-select.component.mjs +2 -1
  58. package/esm2020/tree-select/tree-select.property.mjs +8 -2
  59. package/esm2020/upload/upload.component.mjs +3 -3
  60. package/fesm2015/ng-nest-ui-auto-complete.mjs +28 -22
  61. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  62. package/fesm2015/ng-nest-ui-base-form.mjs +16 -5
  63. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  64. package/fesm2015/ng-nest-ui-core.mjs +8 -1
  65. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  66. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  67. package/fesm2015/ng-nest-ui-find.mjs +1 -1
  68. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  69. package/fesm2015/ng-nest-ui-form.mjs +12 -4
  70. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  71. package/fesm2015/ng-nest-ui-i18n.mjs +18 -0
  72. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  73. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  74. package/fesm2015/ng-nest-ui-image.mjs +8 -0
  75. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  76. package/fesm2015/ng-nest-ui-input-number.mjs +10 -2
  77. package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
  78. package/fesm2015/ng-nest-ui-input.mjs +6 -3
  79. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  80. package/fesm2015/ng-nest-ui-list.mjs +87 -14
  81. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  82. package/fesm2015/ng-nest-ui-message-box.mjs +39 -14
  83. package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
  84. package/fesm2015/ng-nest-ui-resizable.mjs +1 -1
  85. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  86. package/fesm2015/ng-nest-ui-slider-select.mjs +11 -3
  87. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  88. package/fesm2015/ng-nest-ui-table.mjs +33 -8
  89. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  90. package/fesm2015/ng-nest-ui-transfer.mjs +433 -57
  91. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  92. package/fesm2015/ng-nest-ui-tree-select.mjs +11 -3
  93. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
  94. package/fesm2015/ng-nest-ui-tree.mjs +46 -29
  95. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  96. package/fesm2015/ng-nest-ui-upload.mjs +2 -2
  97. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  98. package/fesm2020/ng-nest-ui-auto-complete.mjs +28 -22
  99. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  100. package/fesm2020/ng-nest-ui-base-form.mjs +16 -5
  101. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  102. package/fesm2020/ng-nest-ui-core.mjs +8 -1
  103. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  104. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  105. package/fesm2020/ng-nest-ui-find.mjs +1 -1
  106. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  107. package/fesm2020/ng-nest-ui-form.mjs +12 -4
  108. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  109. package/fesm2020/ng-nest-ui-i18n.mjs +18 -0
  110. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  111. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  112. package/fesm2020/ng-nest-ui-image.mjs +8 -0
  113. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  114. package/fesm2020/ng-nest-ui-input-number.mjs +10 -2
  115. package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
  116. package/fesm2020/ng-nest-ui-input.mjs +6 -3
  117. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  118. package/fesm2020/ng-nest-ui-list.mjs +84 -13
  119. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  120. package/fesm2020/ng-nest-ui-message-box.mjs +38 -13
  121. package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
  122. package/fesm2020/ng-nest-ui-resizable.mjs +1 -1
  123. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  124. package/fesm2020/ng-nest-ui-slider-select.mjs +11 -3
  125. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  126. package/fesm2020/ng-nest-ui-table.mjs +33 -8
  127. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  128. package/fesm2020/ng-nest-ui-transfer.mjs +427 -55
  129. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  130. package/fesm2020/ng-nest-ui-tree-select.mjs +11 -3
  131. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
  132. package/fesm2020/ng-nest-ui-tree.mjs +45 -28
  133. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  134. package/fesm2020/ng-nest-ui-upload.mjs +2 -2
  135. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  136. package/find/find.property.d.ts +1 -1
  137. package/form/form.property.d.ts +10 -0
  138. package/i18n/i18n.property.d.ts +7 -0
  139. package/i18n/languages/en_US.d.ts +6 -0
  140. package/i18n/languages/zh_CN.d.ts +6 -0
  141. package/i18n/languages/zh_TW.d.ts +6 -0
  142. package/icon/icon.property.d.ts +1 -1
  143. package/image/image-group.component.d.ts +1 -0
  144. package/image/image.component.d.ts +1 -0
  145. package/input/input.property.d.ts +7 -2
  146. package/input-number/input-number.property.d.ts +12 -1
  147. package/list/list-drop-group.directive.d.ts +15 -0
  148. package/list/list.component.d.ts +7 -3
  149. package/list/list.module.d.ts +15 -14
  150. package/list/list.property.d.ts +3 -1
  151. package/list/public-api.d.ts +1 -0
  152. package/message-box/message-box.component.d.ts +4 -2
  153. package/message-box/message-box.module.d.ts +2 -1
  154. package/message-box/message-box.property.d.ts +18 -4
  155. package/package.json +1 -1
  156. package/slider-select/slider-select.component.d.ts +1 -0
  157. package/slider-select/slider-select.property.d.ts +6 -1
  158. package/table/table.property.d.ts +18 -1
  159. package/transfer/transfer.component.d.ts +29 -4
  160. package/transfer/transfer.module.d.ts +3 -1
  161. package/transfer/transfer.property.d.ts +85 -6
  162. package/tree/tree.property.d.ts +6 -1
  163. package/tree-select/tree-select-portal.component.d.ts +1 -0
  164. package/tree-select/tree-select.property.d.ts +6 -1
  165. package/affix/examples/en_US/default/README.md +0 -4
  166. package/affix/examples/en_US/default/default/README.md +0 -6
  167. package/affix/examples/en_US/default/scope/README.md +0 -6
  168. package/affix/examples/zh_CN/default/README.md +0 -4
  169. package/affix/examples/zh_CN/default/default/README.md +0 -6
  170. package/affix/examples/zh_CN/default/scope/README.md +0 -6
  171. package/alert/examples/en_US/default/README.md +0 -4
  172. package/alert/examples/en_US/default/custom/README.md +0 -9
  173. package/alert/examples/en_US/default/default/README.md +0 -6
  174. package/alert/examples/en_US/default/description/README.md +0 -6
  175. package/alert/examples/en_US/default/effect/README.md +0 -6
  176. package/alert/examples/en_US/default/icon/README.md +0 -6
  177. package/alert/examples/zh_CN/default/README.md +0 -4
  178. package/alert/examples/zh_CN/default/custom/README.md +0 -9
  179. package/alert/examples/zh_CN/default/default/README.md +0 -6
  180. package/alert/examples/zh_CN/default/description/README.md +0 -6
  181. package/alert/examples/zh_CN/default/effect/README.md +0 -6
  182. package/alert/examples/zh_CN/default/icon/README.md +0 -6
  183. package/anchor/examples/en_US/default/README.md +0 -4
  184. package/anchor/examples/en_US/default/default/README.md +0 -6
  185. package/anchor/examples/zh_CN/default/README.md +0 -4
  186. package/anchor/examples/zh_CN/default/default/README.md +0 -6
  187. package/auto-complete/examples/en_US/default/README.md +0 -4
  188. package/auto-complete/examples/en_US/default/bordered/README.md +0 -6
  189. package/auto-complete/examples/en_US/default/custom/README.md +0 -6
  190. package/auto-complete/examples/en_US/default/default/README.md +0 -6
  191. package/auto-complete/examples/en_US/default/disabled/README.md +0 -6
  192. package/auto-complete/examples/en_US/default/label/README.md +0 -7
  193. package/auto-complete/examples/en_US/default/required/README.md +0 -6
  194. package/auto-complete/examples/en_US/default/size/README.md +0 -6
  195. package/auto-complete/examples/zh_CN/default/README.md +0 -4
  196. package/auto-complete/examples/zh_CN/default/bordered/README.md +0 -6
  197. package/auto-complete/examples/zh_CN/default/custom/README.md +0 -6
  198. package/auto-complete/examples/zh_CN/default/default/README.md +0 -6
  199. package/auto-complete/examples/zh_CN/default/disabled/README.md +0 -6
  200. package/auto-complete/examples/zh_CN/default/label/README.md +0 -7
  201. package/auto-complete/examples/zh_CN/default/required/README.md +0 -6
  202. package/auto-complete/examples/zh_CN/default/size/README.md +0 -6
  203. package/avatar/examples/en_US/default/README.md +0 -4
  204. package/avatar/examples/en_US/default/badge/README.md +0 -6
  205. package/avatar/examples/en_US/default/default/README.md +0 -7
  206. package/avatar/examples/en_US/default/display/README.md +0 -6
  207. package/avatar/examples/en_US/default/fallback/README.md +0 -6
  208. package/avatar/examples/en_US/default/fit/README.md +0 -6
  209. package/avatar/examples/en_US/default/group/README.md +0 -6
  210. package/avatar/examples/en_US/default/label/README.md +0 -6
  211. package/avatar/examples/en_US/default/response/README.md +0 -6
  212. package/avatar/examples/zh_CN/default/README.md +0 -4
  213. package/avatar/examples/zh_CN/default/badge/README.md +0 -6
  214. package/avatar/examples/zh_CN/default/default/README.md +0 -7
  215. package/avatar/examples/zh_CN/default/display/README.md +0 -6
  216. package/avatar/examples/zh_CN/default/fallback/README.md +0 -6
  217. package/avatar/examples/zh_CN/default/fit/README.md +0 -6
  218. package/avatar/examples/zh_CN/default/group/README.md +0 -6
  219. package/avatar/examples/zh_CN/default/label/README.md +0 -6
  220. package/avatar/examples/zh_CN/default/response/README.md +0 -6
  221. package/back-top/examples/en_US/default/README.md +0 -4
  222. package/back-top/examples/en_US/default/custom/README.md +0 -6
  223. package/back-top/examples/en_US/default/default/README.md +0 -6
  224. package/back-top/examples/en_US/default/target/README.md +0 -6
  225. package/back-top/examples/zh_CN/default/README.md +0 -4
  226. package/back-top/examples/zh_CN/default/custom/README.md +0 -6
  227. package/back-top/examples/zh_CN/default/default/README.md +0 -6
  228. package/back-top/examples/zh_CN/default/target/README.md +0 -6
  229. package/badge/examples/en_US/default/README.md +0 -4
  230. package/badge/examples/en_US/default/animation/README.md +0 -4
  231. package/badge/examples/en_US/default/color/README.md +0 -6
  232. package/badge/examples/en_US/default/custom/README.md +0 -7
  233. package/badge/examples/en_US/default/default/README.md +0 -7
  234. package/badge/examples/en_US/default/dot/README.md +0 -7
  235. package/badge/examples/en_US/default/max/README.md +0 -6
  236. package/badge/examples/en_US/default/offset/README.md +0 -6
  237. package/badge/examples/en_US/default/standalone/README.md +0 -6
  238. package/badge/examples/zh_CN/default/README.md +0 -4
  239. package/badge/examples/zh_CN/default/animation/README.md +0 -4
  240. package/badge/examples/zh_CN/default/color/README.md +0 -6
  241. package/badge/examples/zh_CN/default/custom/README.md +0 -7
  242. package/badge/examples/zh_CN/default/default/README.md +0 -7
  243. package/badge/examples/zh_CN/default/dot/README.md +0 -7
  244. package/badge/examples/zh_CN/default/max/README.md +0 -6
  245. package/badge/examples/zh_CN/default/offset/README.md +0 -6
  246. package/badge/examples/zh_CN/default/standalone/README.md +0 -6
  247. package/border/examples/en_US/default/README.md +0 -4
  248. package/border/examples/en_US/default/default/README.md +0 -6
  249. package/border/examples/en_US/default/radius/README.md +0 -6
  250. package/border/examples/en_US/default/shadow/README.md +0 -6
  251. package/border/examples/zh_CN/default/README.md +0 -4
  252. package/border/examples/zh_CN/default/default/README.md +0 -6
  253. package/border/examples/zh_CN/default/radius/README.md +0 -6
  254. package/border/examples/zh_CN/default/shadow/README.md +0 -6
  255. package/button/examples/en_US/default/README.md +0 -4
  256. package/button/examples/en_US/default/default/README.md +0 -8
  257. package/button/examples/en_US/default/disabled/README.md +0 -8
  258. package/button/examples/en_US/default/group/README.md +0 -10
  259. package/button/examples/en_US/default/icon/README.md +0 -9
  260. package/button/examples/en_US/default/loading/README.md +0 -8
  261. package/button/examples/en_US/default/size/README.md +0 -8
  262. package/button/examples/en_US/default/text/README.md +0 -6
  263. package/button/examples/zh_CN/default/README.md +0 -4
  264. package/button/examples/zh_CN/default/default/README.md +0 -8
  265. package/button/examples/zh_CN/default/disabled/README.md +0 -8
  266. package/button/examples/zh_CN/default/group/README.md +0 -10
  267. package/button/examples/zh_CN/default/icon/README.md +0 -9
  268. package/button/examples/zh_CN/default/loading/README.md +0 -8
  269. package/button/examples/zh_CN/default/size/README.md +0 -8
  270. package/button/examples/zh_CN/default/text/README.md +0 -6
  271. package/calendar/examples/en_US/default/README.md +0 -4
  272. package/calendar/examples/en_US/default/card/README.md +0 -6
  273. package/calendar/examples/en_US/default/default/README.md +0 -6
  274. package/calendar/examples/en_US/default/header/README.md +0 -6
  275. package/calendar/examples/zh_CN/default/README.md +0 -4
  276. package/calendar/examples/zh_CN/default/card/README.md +0 -6
  277. package/calendar/examples/zh_CN/default/default/README.md +0 -6
  278. package/calendar/examples/zh_CN/default/header/README.md +0 -6
  279. package/card/examples/en_US/default/README.md +0 -4
  280. package/card/examples/en_US/default/default/README.md +0 -6
  281. package/card/examples/en_US/default/header/README.md +0 -6
  282. package/card/examples/en_US/default/img/README.md +0 -6
  283. package/card/examples/en_US/default/shadow/README.md +0 -7
  284. package/card/examples/zh_CN/default/README.md +0 -4
  285. package/card/examples/zh_CN/default/default/README.md +0 -6
  286. package/card/examples/zh_CN/default/header/README.md +0 -6
  287. package/card/examples/zh_CN/default/img/README.md +0 -6
  288. package/card/examples/zh_CN/default/shadow/README.md +0 -7
  289. package/carousel/examples/en_US/default/README.md +0 -4
  290. package/carousel/examples/en_US/default/arrow/README.md +0 -7
  291. package/carousel/examples/en_US/default/card/README.md +0 -7
  292. package/carousel/examples/en_US/default/default/README.md +0 -7
  293. package/carousel/examples/en_US/default/direction/README.md +0 -6
  294. package/carousel/examples/zh_CN/default/README.md +0 -4
  295. package/carousel/examples/zh_CN/default/arrow/README.md +0 -7
  296. package/carousel/examples/zh_CN/default/card/README.md +0 -7
  297. package/carousel/examples/zh_CN/default/default/README.md +0 -7
  298. package/carousel/examples/zh_CN/default/direction/README.md +0 -6
  299. package/cascade/examples/en_US/default/README.md +0 -4
  300. package/cascade/examples/en_US/default/bordered/README.md +0 -6
  301. package/cascade/examples/en_US/default/default/README.md +0 -7
  302. package/cascade/examples/en_US/default/disabled/README.md +0 -6
  303. package/cascade/examples/en_US/default/hover/README.md +0 -7
  304. package/cascade/examples/en_US/default/label/README.md +0 -7
  305. package/cascade/examples/en_US/default/required/README.md +0 -6
  306. package/cascade/examples/en_US/default/size/README.md +0 -6
  307. package/cascade/examples/zh_CN/default/README.md +0 -4
  308. package/cascade/examples/zh_CN/default/bordered/README.md +0 -6
  309. package/cascade/examples/zh_CN/default/default/README.md +0 -7
  310. package/cascade/examples/zh_CN/default/disabled/README.md +0 -6
  311. package/cascade/examples/zh_CN/default/hover/README.md +0 -7
  312. package/cascade/examples/zh_CN/default/label/README.md +0 -7
  313. package/cascade/examples/zh_CN/default/required/README.md +0 -6
  314. package/cascade/examples/zh_CN/default/size/README.md +0 -6
  315. package/checkbox/examples/en_US/default/README.md +0 -4
  316. package/checkbox/examples/en_US/default/async/README.md +0 -6
  317. package/checkbox/examples/en_US/default/button/README.md +0 -6
  318. package/checkbox/examples/en_US/default/check-all/README.md +0 -6
  319. package/checkbox/examples/en_US/default/default/README.md +0 -9
  320. package/checkbox/examples/en_US/default/disabled/README.md +0 -9
  321. package/checkbox/examples/en_US/default/icon/README.md +0 -6
  322. package/checkbox/examples/zh_CN/default/README.md +0 -4
  323. package/checkbox/examples/zh_CN/default/async/README.md +0 -6
  324. package/checkbox/examples/zh_CN/default/button/README.md +0 -6
  325. package/checkbox/examples/zh_CN/default/check-all/README.md +0 -6
  326. package/checkbox/examples/zh_CN/default/default/README.md +0 -9
  327. package/checkbox/examples/zh_CN/default/disabled/README.md +0 -9
  328. package/checkbox/examples/zh_CN/default/icon/README.md +0 -6
  329. package/collapse/examples/en_US/default/README.md +0 -4
  330. package/collapse/examples/en_US/default/accordion/README.md +0 -7
  331. package/collapse/examples/en_US/default/arrow/README.md +0 -6
  332. package/collapse/examples/en_US/default/border/README.md +0 -6
  333. package/collapse/examples/en_US/default/custom/README.md +0 -6
  334. package/collapse/examples/en_US/default/default/README.md +0 -6
  335. package/collapse/examples/en_US/default/disabled/README.md +0 -6
  336. package/collapse/examples/en_US/default/ghost/README.md +0 -6
  337. package/collapse/examples/en_US/default/icon/README.md +0 -6
  338. package/collapse/examples/zh_CN/default/README.md +0 -4
  339. package/collapse/examples/zh_CN/default/accordion/README.md +0 -7
  340. package/collapse/examples/zh_CN/default/arrow/README.md +0 -6
  341. package/collapse/examples/zh_CN/default/border/README.md +0 -6
  342. package/collapse/examples/zh_CN/default/custom/README.md +0 -6
  343. package/collapse/examples/zh_CN/default/default/README.md +0 -6
  344. package/collapse/examples/zh_CN/default/disabled/README.md +0 -6
  345. package/collapse/examples/zh_CN/default/ghost/README.md +0 -6
  346. package/collapse/examples/zh_CN/default/icon/README.md +0 -6
  347. package/color/examples/en_US/default/README.md +0 -4
  348. package/color/examples/en_US/default/assist/README.md +0 -6
  349. package/color/examples/en_US/default/default/README.md +0 -8
  350. package/color/examples/en_US/default/neutral/README.md +0 -6
  351. package/color/examples/zh_CN/default/README.md +0 -4
  352. package/color/examples/zh_CN/default/assist/README.md +0 -6
  353. package/color/examples/zh_CN/default/default/README.md +0 -8
  354. package/color/examples/zh_CN/default/neutral/README.md +0 -6
  355. package/color-picker/examples/en_US/default/README.md +0 -4
  356. package/color-picker/examples/en_US/default/bordered/README.md +0 -6
  357. package/color-picker/examples/en_US/default/default/README.md +0 -6
  358. package/color-picker/examples/en_US/default/disabled/README.md +0 -6
  359. package/color-picker/examples/en_US/default/label/README.md +0 -7
  360. package/color-picker/examples/en_US/default/required/README.md +0 -6
  361. package/color-picker/examples/en_US/default/size/README.md +0 -6
  362. package/color-picker/examples/zh_CN/default/README.md +0 -4
  363. package/color-picker/examples/zh_CN/default/bordered/README.md +0 -6
  364. package/color-picker/examples/zh_CN/default/default/README.md +0 -6
  365. package/color-picker/examples/zh_CN/default/disabled/README.md +0 -6
  366. package/color-picker/examples/zh_CN/default/label/README.md +0 -7
  367. package/color-picker/examples/zh_CN/default/required/README.md +0 -6
  368. package/color-picker/examples/zh_CN/default/size/README.md +0 -6
  369. package/comment/examples/en_US/default/README.md +0 -4
  370. package/comment/examples/en_US/default/default/README.md +0 -6
  371. package/comment/examples/zh_CN/default/README.md +0 -4
  372. package/comment/examples/zh_CN/default/default/README.md +0 -6
  373. package/container/examples/en_US/default/README.md +0 -4
  374. package/container/examples/en_US/default/default/README.md +0 -10
  375. package/container/examples/zh_CN/default/README.md +0 -4
  376. package/container/examples/zh_CN/default/default/README.md +0 -10
  377. package/crumb/examples/en_US/default/README.md +0 -4
  378. package/crumb/examples/en_US/default/custom/README.md +0 -6
  379. package/crumb/examples/en_US/default/default/README.md +0 -6
  380. package/crumb/examples/en_US/default/icon/README.md +0 -6
  381. package/crumb/examples/en_US/default/separator/README.md +0 -6
  382. package/crumb/examples/zh_CN/default/README.md +0 -4
  383. package/crumb/examples/zh_CN/default/custom/README.md +0 -6
  384. package/crumb/examples/zh_CN/default/default/README.md +0 -6
  385. package/crumb/examples/zh_CN/default/icon/README.md +0 -6
  386. package/crumb/examples/zh_CN/default/separator/README.md +0 -6
  387. package/date-picker/examples/en_US/default/README.md +0 -4
  388. package/date-picker/examples/en_US/default/bordered/README.md +0 -6
  389. package/date-picker/examples/en_US/default/default/README.md +0 -6
  390. package/date-picker/examples/en_US/default/disabled/README.md +0 -6
  391. package/date-picker/examples/en_US/default/label/README.md +0 -7
  392. package/date-picker/examples/en_US/default/required/README.md +0 -6
  393. package/date-picker/examples/en_US/default/size/README.md +0 -6
  394. package/date-picker/examples/en_US/default/time/README.md +0 -6
  395. package/date-picker/examples/en_US/default/today/README.md +0 -6
  396. package/date-picker/examples/en_US/default/year-month/README.md +0 -6
  397. package/date-picker/examples/zh_CN/default/README.md +0 -4
  398. package/date-picker/examples/zh_CN/default/bordered/README.md +0 -6
  399. package/date-picker/examples/zh_CN/default/default/README.md +0 -6
  400. package/date-picker/examples/zh_CN/default/disabled/README.md +0 -6
  401. package/date-picker/examples/zh_CN/default/label/README.md +0 -7
  402. package/date-picker/examples/zh_CN/default/required/README.md +0 -6
  403. package/date-picker/examples/zh_CN/default/size/README.md +0 -6
  404. package/date-picker/examples/zh_CN/default/time/README.md +0 -6
  405. package/date-picker/examples/zh_CN/default/today/README.md +0 -6
  406. package/date-picker/examples/zh_CN/default/year-month/README.md +0 -6
  407. package/description/examples/en_US/default/README.md +0 -4
  408. package/description/examples/en_US/default/border/README.md +0 -6
  409. package/description/examples/en_US/default/default/README.md +0 -6
  410. package/description/examples/en_US/default/size/README.md +0 -6
  411. package/description/examples/en_US/default/split/README.md +0 -8
  412. package/description/examples/en_US/default/vertical/README.md +0 -4
  413. package/description/examples/zh_CN/default/README.md +0 -4
  414. package/description/examples/zh_CN/default/border/README.md +0 -6
  415. package/description/examples/zh_CN/default/default/README.md +0 -6
  416. package/description/examples/zh_CN/default/size/README.md +0 -6
  417. package/description/examples/zh_CN/default/split/README.md +0 -8
  418. package/description/examples/zh_CN/default/vertical/README.md +0 -4
  419. package/dialog/examples/en_US/default/README.md +0 -4
  420. package/dialog/examples/en_US/default/container/README.md +0 -6
  421. package/dialog/examples/en_US/default/custom/README.md +0 -6
  422. package/dialog/examples/en_US/default/default/README.md +0 -6
  423. package/dialog/examples/en_US/default/draggable/README.md +0 -6
  424. package/dialog/examples/en_US/default/resizable/README.md +0 -6
  425. package/dialog/examples/en_US/default/service/README.md +0 -6
  426. package/dialog/examples/zh_CN/default/README.md +0 -4
  427. package/dialog/examples/zh_CN/default/container/README.md +0 -6
  428. package/dialog/examples/zh_CN/default/custom/README.md +0 -6
  429. package/dialog/examples/zh_CN/default/default/README.md +0 -6
  430. package/dialog/examples/zh_CN/default/draggable/README.md +0 -6
  431. package/dialog/examples/zh_CN/default/resizable/README.md +0 -6
  432. package/dialog/examples/zh_CN/default/service/README.md +0 -6
  433. package/drawer/examples/en_US/default/README.md +0 -4
  434. package/drawer/examples/en_US/default/container/README.md +0 -6
  435. package/drawer/examples/en_US/default/custom/README.md +0 -6
  436. package/drawer/examples/en_US/default/default/README.md +0 -6
  437. package/drawer/examples/en_US/default/multiple/README.md +0 -6
  438. package/drawer/examples/en_US/default/service/README.md +0 -6
  439. package/drawer/examples/en_US/default/title/README.md +0 -6
  440. package/drawer/examples/zh_CN/default/README.md +0 -4
  441. package/drawer/examples/zh_CN/default/container/README.md +0 -6
  442. package/drawer/examples/zh_CN/default/custom/README.md +0 -6
  443. package/drawer/examples/zh_CN/default/default/README.md +0 -6
  444. package/drawer/examples/zh_CN/default/multiple/README.md +0 -6
  445. package/drawer/examples/zh_CN/default/service/README.md +0 -6
  446. package/drawer/examples/zh_CN/default/title/README.md +0 -6
  447. package/dropdown/examples/en_US/default/README.md +0 -4
  448. package/dropdown/examples/en_US/default/default/README.md +0 -6
  449. package/dropdown/examples/en_US/default/multistage/README.md +0 -6
  450. package/dropdown/examples/en_US/default/prop/README.md +0 -6
  451. package/dropdown/examples/en_US/default/trigger/README.md +0 -6
  452. package/dropdown/examples/zh_CN/default/README.md +0 -4
  453. package/dropdown/examples/zh_CN/default/default/README.md +0 -6
  454. package/dropdown/examples/zh_CN/default/multistage/README.md +0 -6
  455. package/dropdown/examples/zh_CN/default/prop/README.md +0 -6
  456. package/dropdown/examples/zh_CN/default/trigger/README.md +0 -6
  457. package/empty/examples/en_US/default/README.md +0 -4
  458. package/empty/examples/en_US/default/custom/README.md +0 -6
  459. package/empty/examples/en_US/default/default/README.md +0 -6
  460. package/empty/examples/zh_CN/default/README.md +0 -4
  461. package/empty/examples/zh_CN/default/custom/README.md +0 -6
  462. package/empty/examples/zh_CN/default/default/README.md +0 -6
  463. package/find/examples/en_US/default/README.md +0 -4
  464. package/find/examples/en_US/default/bordered/README.md +0 -6
  465. package/find/examples/en_US/default/default/README.md +0 -10
  466. package/find/examples/en_US/default/disabled/README.md +0 -6
  467. package/find/examples/en_US/default/label/README.md +0 -7
  468. package/find/examples/en_US/default/size/README.md +0 -6
  469. package/find/examples/en_US/default/tree/README.md +0 -6
  470. package/find/examples/en_US/default/tree-table/README.md +0 -5
  471. package/find/examples/zh_CN/default/README.md +0 -4
  472. package/find/examples/zh_CN/default/bordered/README.md +0 -6
  473. package/find/examples/zh_CN/default/default/README.md +0 -10
  474. package/find/examples/zh_CN/default/disabled/README.md +0 -6
  475. package/find/examples/zh_CN/default/label/README.md +0 -7
  476. package/find/examples/zh_CN/default/size/README.md +0 -6
  477. package/find/examples/zh_CN/default/tree/README.md +0 -6
  478. package/find/examples/zh_CN/default/tree-table/README.md +0 -5
  479. package/form/examples/en_US/default/README.md +0 -4
  480. package/form/examples/en_US/default/default/README.md +0 -6
  481. package/form/examples/en_US/default/form-vaild/README.md +0 -8
  482. package/form/examples/en_US/default/label-row/README.md +0 -5
  483. package/form/examples/en_US/default/title/README.md +0 -4
  484. package/form/examples/zh_CN/default/README.md +0 -4
  485. package/form/examples/zh_CN/default/default/README.md +0 -6
  486. package/form/examples/zh_CN/default/form-vaild/README.md +0 -8
  487. package/form/examples/zh_CN/default/label-row/README.md +0 -5
  488. package/form/examples/zh_CN/default/title/README.md +0 -4
  489. package/highlight/examples/en_US/default/README.md +0 -4
  490. package/highlight/examples/en_US/default/html/README.md +0 -6
  491. package/highlight/examples/en_US/default/scss/README.md +0 -6
  492. package/highlight/examples/en_US/default/typescript/README.md +0 -6
  493. package/highlight/examples/zh_CN/default/README.md +0 -4
  494. package/highlight/examples/zh_CN/default/html/README.md +0 -6
  495. package/highlight/examples/zh_CN/default/scss/README.md +0 -6
  496. package/highlight/examples/zh_CN/default/typescript/README.md +0 -6
  497. package/icon/examples/en_US/default/README.md +0 -4
  498. package/icon/examples/en_US/default/ant-design/README.md +0 -12
  499. package/icon/examples/en_US/default/eva/README.md +0 -11
  500. package/icon/examples/en_US/default/feather/README.md +0 -8
  501. package/icon/examples/en_US/default/font-awesome/README.md +0 -10
  502. package/icon/examples/en_US/default/material-design/README.md +0 -11
  503. package/icon/examples/zh_CN/default/README.md +0 -4
  504. package/icon/examples/zh_CN/default/ant-design/README.md +0 -12
  505. package/icon/examples/zh_CN/default/eva/README.md +0 -11
  506. package/icon/examples/zh_CN/default/feather/README.md +0 -8
  507. package/icon/examples/zh_CN/default/font-awesome/README.md +0 -10
  508. package/icon/examples/zh_CN/default/material-design/README.md +0 -11
  509. package/image/examples/en_US/default/README.md +0 -4
  510. package/image/examples/en_US/default/default/README.md +0 -6
  511. package/image/examples/en_US/default/fallback/README.md +0 -6
  512. package/image/examples/en_US/default/group/README.md +0 -6
  513. package/image/examples/en_US/default/placeholder/README.md +0 -6
  514. package/image/examples/zh_CN/default/README.md +0 -4
  515. package/image/examples/zh_CN/default/default/README.md +0 -6
  516. package/image/examples/zh_CN/default/fallback/README.md +0 -6
  517. package/image/examples/zh_CN/default/group/README.md +0 -6
  518. package/image/examples/zh_CN/default/placeholder/README.md +0 -6
  519. package/input/examples/en_US/default/README.md +0 -4
  520. package/input/examples/en_US/default/bordered/README.md +0 -6
  521. package/input/examples/en_US/default/clear/README.md +0 -6
  522. package/input/examples/en_US/default/default/README.md +0 -6
  523. package/input/examples/en_US/default/disabled/README.md +0 -6
  524. package/input/examples/en_US/default/focus/README.md +0 -6
  525. package/input/examples/en_US/default/group/README.md +0 -6
  526. package/input/examples/en_US/default/icon/README.md +0 -7
  527. package/input/examples/en_US/default/label/README.md +0 -7
  528. package/input/examples/en_US/default/length/README.md +0 -6
  529. package/input/examples/en_US/default/perpost/README.md +0 -6
  530. package/input/examples/en_US/default/required/README.md +0 -6
  531. package/input/examples/en_US/default/size/README.md +0 -6
  532. package/input/examples/zh_CN/default/README.md +0 -4
  533. package/input/examples/zh_CN/default/bordered/README.md +0 -6
  534. package/input/examples/zh_CN/default/clear/README.md +0 -6
  535. package/input/examples/zh_CN/default/default/README.md +0 -6
  536. package/input/examples/zh_CN/default/disabled/README.md +0 -6
  537. package/input/examples/zh_CN/default/focus/README.md +0 -6
  538. package/input/examples/zh_CN/default/group/README.md +0 -6
  539. package/input/examples/zh_CN/default/icon/README.md +0 -7
  540. package/input/examples/zh_CN/default/label/README.md +0 -7
  541. package/input/examples/zh_CN/default/length/README.md +0 -6
  542. package/input/examples/zh_CN/default/perpost/README.md +0 -6
  543. package/input/examples/zh_CN/default/required/README.md +0 -6
  544. package/input/examples/zh_CN/default/size/README.md +0 -6
  545. package/input-number/examples/en_US/default/README.md +0 -4
  546. package/input-number/examples/en_US/default/bordered/README.md +0 -6
  547. package/input-number/examples/en_US/default/default/README.md +0 -6
  548. package/input-number/examples/en_US/default/disabled/README.md +0 -6
  549. package/input-number/examples/en_US/default/label/README.md +0 -7
  550. package/input-number/examples/en_US/default/limit/README.md +0 -6
  551. package/input-number/examples/en_US/default/precision/README.md +0 -7
  552. package/input-number/examples/en_US/default/required/README.md +0 -6
  553. package/input-number/examples/en_US/default/size/README.md +0 -6
  554. package/input-number/examples/zh_CN/default/README.md +0 -4
  555. package/input-number/examples/zh_CN/default/bordered/README.md +0 -6
  556. package/input-number/examples/zh_CN/default/default/README.md +0 -6
  557. package/input-number/examples/zh_CN/default/disabled/README.md +0 -6
  558. package/input-number/examples/zh_CN/default/label/README.md +0 -7
  559. package/input-number/examples/zh_CN/default/limit/README.md +0 -6
  560. package/input-number/examples/zh_CN/default/precision/README.md +0 -7
  561. package/input-number/examples/zh_CN/default/required/README.md +0 -6
  562. package/input-number/examples/zh_CN/default/size/README.md +0 -6
  563. package/layout/examples/en_US/default/README.md +0 -4
  564. package/layout/examples/en_US/default/blend/README.md +0 -6
  565. package/layout/examples/en_US/default/default/README.md +0 -10
  566. package/layout/examples/en_US/default/flex/README.md +0 -10
  567. package/layout/examples/en_US/default/hidden/README.md +0 -20
  568. package/layout/examples/en_US/default/layout/README.md +0 -6
  569. package/layout/examples/en_US/default/offset/README.md +0 -8
  570. package/layout/examples/en_US/default/space/README.md +0 -9
  571. package/layout/examples/zh_CN/default/README.md +0 -4
  572. package/layout/examples/zh_CN/default/blend/README.md +0 -6
  573. package/layout/examples/zh_CN/default/default/README.md +0 -10
  574. package/layout/examples/zh_CN/default/flex/README.md +0 -10
  575. package/layout/examples/zh_CN/default/hidden/README.md +0 -20
  576. package/layout/examples/zh_CN/default/layout/README.md +0 -6
  577. package/layout/examples/zh_CN/default/offset/README.md +0 -8
  578. package/layout/examples/zh_CN/default/space/README.md +0 -9
  579. package/link/examples/en_US/default/README.md +0 -4
  580. package/link/examples/en_US/default/default/README.md +0 -6
  581. package/link/examples/en_US/default/disabled/README.md +0 -8
  582. package/link/examples/en_US/default/icon/README.md +0 -6
  583. package/link/examples/en_US/default/underline/README.md +0 -6
  584. package/link/examples/zh_CN/default/README.md +0 -4
  585. package/link/examples/zh_CN/default/default/README.md +0 -6
  586. package/link/examples/zh_CN/default/disabled/README.md +0 -8
  587. package/link/examples/zh_CN/default/icon/README.md +0 -6
  588. package/link/examples/zh_CN/default/underline/README.md +0 -6
  589. package/list/examples/en_US/default/README.md +0 -4
  590. package/list/examples/en_US/default/default/README.md +0 -7
  591. package/list/examples/en_US/default/load-more/README.md +0 -8
  592. package/list/examples/en_US/default/scroll/README.md +0 -8
  593. package/list/examples/en_US/default/size/README.md +0 -6
  594. package/list/examples/zh_CN/default/README.md +0 -4
  595. package/list/examples/zh_CN/default/default/README.md +0 -7
  596. package/list/examples/zh_CN/default/load-more/README.md +0 -8
  597. package/list/examples/zh_CN/default/scroll/README.md +0 -8
  598. package/list/examples/zh_CN/default/size/README.md +0 -6
  599. package/loading/examples/en_US/default/README.md +0 -4
  600. package/loading/examples/en_US/default/custom/README.md +0 -6
  601. package/loading/examples/en_US/default/default/README.md +0 -6
  602. package/loading/examples/en_US/default/full-screen/README.md +0 -6
  603. package/loading/examples/zh_CN/default/README.md +0 -4
  604. package/loading/examples/zh_CN/default/custom/README.md +0 -6
  605. package/loading/examples/zh_CN/default/default/README.md +0 -6
  606. package/loading/examples/zh_CN/default/full-screen/README.md +0 -6
  607. package/menu/examples/en_US/default/README.md +0 -4
  608. package/menu/examples/en_US/default/default/README.md +0 -6
  609. package/menu/examples/en_US/default/icon/README.md +0 -6
  610. package/menu/examples/en_US/default/layout/README.md +0 -6
  611. package/menu/examples/en_US/default/leaf/README.md +0 -6
  612. package/menu/examples/en_US/default/size/README.md +0 -6
  613. package/menu/examples/zh_CN/default/README.md +0 -4
  614. package/menu/examples/zh_CN/default/default/README.md +0 -6
  615. package/menu/examples/zh_CN/default/icon/README.md +0 -6
  616. package/menu/examples/zh_CN/default/layout/README.md +0 -6
  617. package/menu/examples/zh_CN/default/leaf/README.md +0 -6
  618. package/menu/examples/zh_CN/default/size/README.md +0 -6
  619. package/message/examples/en_US/default/README.md +0 -4
  620. package/message/examples/en_US/default/close/README.md +0 -6
  621. package/message/examples/en_US/default/default/README.md +0 -6
  622. package/message/examples/en_US/default/loading/README.md +0 -6
  623. package/message/examples/en_US/default/single/README.md +0 -6
  624. package/message/examples/en_US/default/type/README.md +0 -6
  625. package/message/examples/zh_CN/default/README.md +0 -4
  626. package/message/examples/zh_CN/default/close/README.md +0 -6
  627. package/message/examples/zh_CN/default/default/README.md +0 -6
  628. package/message/examples/zh_CN/default/loading/README.md +0 -6
  629. package/message/examples/zh_CN/default/single/README.md +0 -6
  630. package/message/examples/zh_CN/default/type/README.md +0 -6
  631. package/message-box/examples/en_US/default/README.md +0 -4
  632. package/message-box/examples/en_US/default/confirm/README.md +0 -6
  633. package/message-box/examples/en_US/default/custom/README.md +0 -6
  634. package/message-box/examples/en_US/default/default/README.md +0 -6
  635. package/message-box/examples/en_US/default/prompt/README.md +0 -6
  636. package/message-box/examples/zh_CN/default/README.md +0 -4
  637. package/message-box/examples/zh_CN/default/confirm/README.md +0 -6
  638. package/message-box/examples/zh_CN/default/custom/README.md +0 -6
  639. package/message-box/examples/zh_CN/default/default/README.md +0 -6
  640. package/message-box/examples/zh_CN/default/prompt/README.md +0 -6
  641. package/notification/examples/en_US/default/README.md +0 -4
  642. package/notification/examples/en_US/default/default/README.md +0 -6
  643. package/notification/examples/en_US/default/type/README.md +0 -7
  644. package/notification/examples/zh_CN/default/README.md +0 -4
  645. package/notification/examples/zh_CN/default/default/README.md +0 -6
  646. package/notification/examples/zh_CN/default/type/README.md +0 -7
  647. package/outlet/examples/en_US/default/README.md +0 -4
  648. package/outlet/examples/en_US/default/default/README.md +0 -6
  649. package/outlet/examples/zh_CN/default/README.md +0 -4
  650. package/outlet/examples/zh_CN/default/default/README.md +0 -6
  651. package/page-header/examples/en_US/default/README.md +0 -4
  652. package/page-header/examples/en_US/default/default/README.md +0 -6
  653. package/page-header/examples/zh_CN/default/README.md +0 -4
  654. package/page-header/examples/zh_CN/default/default/README.md +0 -6
  655. package/pagination/examples/en_US/default/README.md +0 -4
  656. package/pagination/examples/en_US/default/default/README.md +0 -6
  657. package/pagination/examples/en_US/default/style/README.md +0 -8
  658. package/pagination/examples/zh_CN/default/README.md +0 -4
  659. package/pagination/examples/zh_CN/default/default/README.md +0 -6
  660. package/pagination/examples/zh_CN/default/style/README.md +0 -10
  661. package/popconfirm/examples/en_US/default/README.md +0 -4
  662. package/popconfirm/examples/en_US/default/async-close/README.md +0 -6
  663. package/popconfirm/examples/en_US/default/condition/README.md +0 -6
  664. package/popconfirm/examples/en_US/default/default/README.md +0 -6
  665. package/popconfirm/examples/zh_CN/default/README.md +0 -4
  666. package/popconfirm/examples/zh_CN/default/async-close/README.md +0 -6
  667. package/popconfirm/examples/zh_CN/default/condition/README.md +0 -6
  668. package/popconfirm/examples/zh_CN/default/default/README.md +0 -6
  669. package/popover/examples/en_US/default/README.md +0 -4
  670. package/popover/examples/en_US/default/default/README.md +0 -6
  671. package/popover/examples/zh_CN/default/README.md +0 -4
  672. package/popover/examples/zh_CN/default/default/README.md +0 -6
  673. package/progress/examples/en_US/default/README.md +0 -4
  674. package/progress/examples/en_US/default/circle/README.md +0 -6
  675. package/progress/examples/en_US/default/color/README.md +0 -6
  676. package/progress/examples/en_US/default/dashboard/README.md +0 -6
  677. package/progress/examples/en_US/default/default/README.md +0 -6
  678. package/progress/examples/en_US/default/format/README.md +0 -6
  679. package/progress/examples/en_US/default/gradient/README.md +0 -6
  680. package/progress/examples/en_US/default/inside/README.md +0 -6
  681. package/progress/examples/en_US/default/steps/README.md +0 -6
  682. package/progress/examples/en_US/default/subsection/README.md +0 -6
  683. package/progress/examples/zh_CN/default/README.md +0 -4
  684. package/progress/examples/zh_CN/default/circle/README.md +0 -6
  685. package/progress/examples/zh_CN/default/color/README.md +0 -6
  686. package/progress/examples/zh_CN/default/dashboard/README.md +0 -6
  687. package/progress/examples/zh_CN/default/default/README.md +0 -6
  688. package/progress/examples/zh_CN/default/format/README.md +0 -6
  689. package/progress/examples/zh_CN/default/gradient/README.md +0 -6
  690. package/progress/examples/zh_CN/default/inside/README.md +0 -6
  691. package/progress/examples/zh_CN/default/steps/README.md +0 -6
  692. package/progress/examples/zh_CN/default/subsection/README.md +0 -6
  693. package/radio/examples/en_US/default/README.md +0 -4
  694. package/radio/examples/en_US/default/async/README.md +0 -6
  695. package/radio/examples/en_US/default/button/README.md +0 -6
  696. package/radio/examples/en_US/default/default/README.md +0 -9
  697. package/radio/examples/en_US/default/disabled/README.md +0 -9
  698. package/radio/examples/en_US/default/icon/README.md +0 -6
  699. package/radio/examples/zh_CN/default/README.md +0 -4
  700. package/radio/examples/zh_CN/default/async/README.md +0 -6
  701. package/radio/examples/zh_CN/default/button/README.md +0 -6
  702. package/radio/examples/zh_CN/default/default/README.md +0 -9
  703. package/radio/examples/zh_CN/default/disabled/README.md +0 -9
  704. package/radio/examples/zh_CN/default/icon/README.md +0 -6
  705. package/rate/examples/en_US/default/README.md +0 -4
  706. package/rate/examples/en_US/default/color/README.md +0 -6
  707. package/rate/examples/en_US/default/custom/README.md +0 -6
  708. package/rate/examples/en_US/default/default/README.md +0 -6
  709. package/rate/examples/en_US/default/disabled/README.md +0 -8
  710. package/rate/examples/en_US/default/half/README.md +0 -6
  711. package/rate/examples/zh_CN/default/README.md +0 -4
  712. package/rate/examples/zh_CN/default/color/README.md +0 -6
  713. package/rate/examples/zh_CN/default/custom/README.md +0 -6
  714. package/rate/examples/zh_CN/default/default/README.md +0 -6
  715. package/rate/examples/zh_CN/default/disabled/README.md +0 -8
  716. package/rate/examples/zh_CN/default/half/README.md +0 -6
  717. package/result/examples/en_US/default/README.md +0 -4
  718. package/result/examples/en_US/default/error/README.md +0 -4
  719. package/result/examples/en_US/default/icon/README.md +0 -4
  720. package/result/examples/en_US/default/img/README.md +0 -4
  721. package/result/examples/en_US/default/info/README.md +0 -4
  722. package/result/examples/en_US/default/result403/README.md +0 -4
  723. package/result/examples/en_US/default/result404/README.md +0 -4
  724. package/result/examples/en_US/default/result500/README.md +0 -4
  725. package/result/examples/en_US/default/success/README.md +0 -4
  726. package/result/examples/en_US/default/warning/README.md +0 -4
  727. package/result/examples/zh_CN/default/README.md +0 -4
  728. package/result/examples/zh_CN/default/error/README.md +0 -4
  729. package/result/examples/zh_CN/default/icon/README.md +0 -4
  730. package/result/examples/zh_CN/default/img/README.md +0 -4
  731. package/result/examples/zh_CN/default/info/README.md +0 -4
  732. package/result/examples/zh_CN/default/result403/README.md +0 -4
  733. package/result/examples/zh_CN/default/result404/README.md +0 -4
  734. package/result/examples/zh_CN/default/result500/README.md +0 -4
  735. package/result/examples/zh_CN/default/success/README.md +0 -4
  736. package/result/examples/zh_CN/default/warning/README.md +0 -4
  737. package/select/examples/en_US/default/README.md +0 -4
  738. package/select/examples/en_US/default/async/README.md +0 -7
  739. package/select/examples/en_US/default/bordered/README.md +0 -6
  740. package/select/examples/en_US/default/custom/README.md +0 -6
  741. package/select/examples/en_US/default/default/README.md +0 -6
  742. package/select/examples/en_US/default/disabled/README.md +0 -6
  743. package/select/examples/en_US/default/label/README.md +0 -7
  744. package/select/examples/en_US/default/multiple/README.md +0 -6
  745. package/select/examples/en_US/default/required/README.md +0 -6
  746. package/select/examples/en_US/default/search/README.md +0 -6
  747. package/select/examples/en_US/default/size/README.md +0 -6
  748. package/select/examples/zh_CN/default/README.md +0 -4
  749. package/select/examples/zh_CN/default/async/README.md +0 -7
  750. package/select/examples/zh_CN/default/bordered/README.md +0 -6
  751. package/select/examples/zh_CN/default/custom/README.md +0 -6
  752. package/select/examples/zh_CN/default/default/README.md +0 -6
  753. package/select/examples/zh_CN/default/disabled/README.md +0 -6
  754. package/select/examples/zh_CN/default/label/README.md +0 -7
  755. package/select/examples/zh_CN/default/multiple/README.md +0 -6
  756. package/select/examples/zh_CN/default/required/README.md +0 -6
  757. package/select/examples/zh_CN/default/search/README.md +0 -6
  758. package/select/examples/zh_CN/default/size/README.md +0 -6
  759. package/skeleton/examples/en_US/default/README.md +0 -4
  760. package/skeleton/examples/en_US/default/active/README.md +0 -6
  761. package/skeleton/examples/en_US/default/complex/README.md +0 -6
  762. package/skeleton/examples/en_US/default/default/README.md +0 -6
  763. package/skeleton/examples/en_US/default/list/README.md +0 -6
  764. package/skeleton/examples/en_US/default/loading/README.md +0 -6
  765. package/skeleton/examples/en_US/default/table/README.md +0 -6
  766. package/skeleton/examples/zh_CN/default/README.md +0 -4
  767. package/skeleton/examples/zh_CN/default/active/README.md +0 -6
  768. package/skeleton/examples/zh_CN/default/complex/README.md +0 -6
  769. package/skeleton/examples/zh_CN/default/default/README.md +0 -6
  770. package/skeleton/examples/zh_CN/default/list/README.md +0 -6
  771. package/skeleton/examples/zh_CN/default/loading/README.md +0 -6
  772. package/skeleton/examples/zh_CN/default/table/README.md +0 -6
  773. package/slider/examples/en_US/default/README.md +0 -4
  774. package/slider/examples/en_US/default/activated/README.md +0 -6
  775. package/slider/examples/en_US/default/custom/README.md +0 -6
  776. package/slider/examples/en_US/default/default/README.md +0 -6
  777. package/slider/examples/en_US/default/expand/README.md +0 -7
  778. package/slider/examples/en_US/default/scroll/README.md +0 -6
  779. package/slider/examples/en_US/default/size/README.md +0 -6
  780. package/slider/examples/zh_CN/default/README.md +0 -4
  781. package/slider/examples/zh_CN/default/activated/README.md +0 -6
  782. package/slider/examples/zh_CN/default/custom/README.md +0 -6
  783. package/slider/examples/zh_CN/default/default/README.md +0 -6
  784. package/slider/examples/zh_CN/default/expand/README.md +0 -7
  785. package/slider/examples/zh_CN/default/scroll/README.md +0 -6
  786. package/slider/examples/zh_CN/default/size/README.md +0 -6
  787. package/slider-select/examples/en_US/default/README.md +0 -4
  788. package/slider-select/examples/en_US/default/default/README.md +0 -6
  789. package/slider-select/examples/en_US/default/disabled/README.md +0 -6
  790. package/slider-select/examples/en_US/default/label/README.md +0 -7
  791. package/slider-select/examples/en_US/default/limit/README.md +0 -6
  792. package/slider-select/examples/en_US/default/precision/README.md +0 -7
  793. package/slider-select/examples/zh_CN/default/README.md +0 -4
  794. package/slider-select/examples/zh_CN/default/default/README.md +0 -6
  795. package/slider-select/examples/zh_CN/default/disabled/README.md +0 -6
  796. package/slider-select/examples/zh_CN/default/label/README.md +0 -7
  797. package/slider-select/examples/zh_CN/default/limit/README.md +0 -6
  798. package/slider-select/examples/zh_CN/default/precision/README.md +0 -7
  799. package/statistic/examples/en_US/default/README.md +0 -4
  800. package/statistic/examples/en_US/default/default/README.md +0 -6
  801. package/statistic/examples/en_US/default/down/README.md +0 -6
  802. package/statistic/examples/en_US/default/prefix/README.md +0 -7
  803. package/statistic/examples/zh_CN/default/README.md +0 -4
  804. package/statistic/examples/zh_CN/default/default/README.md +0 -6
  805. package/statistic/examples/zh_CN/default/down/README.md +0 -6
  806. package/statistic/examples/zh_CN/default/prefix/README.md +0 -7
  807. package/steps/examples/en_US/default/README.md +0 -4
  808. package/steps/examples/en_US/default/custom/README.md +0 -6
  809. package/steps/examples/en_US/default/default/README.md +0 -6
  810. package/steps/examples/en_US/default/description/README.md +0 -6
  811. package/steps/examples/en_US/default/icon/README.md +0 -6
  812. package/steps/examples/en_US/default/index/README.md +0 -6
  813. package/steps/examples/en_US/default/layout/README.md +0 -6
  814. package/steps/examples/en_US/default/node-status/README.md +0 -6
  815. package/steps/examples/en_US/default/status/README.md +0 -6
  816. package/steps/examples/en_US/default/tabs/README.md +0 -6
  817. package/steps/examples/zh_CN/default/README.md +0 -4
  818. package/steps/examples/zh_CN/default/custom/README.md +0 -6
  819. package/steps/examples/zh_CN/default/default/README.md +0 -6
  820. package/steps/examples/zh_CN/default/description/README.md +0 -6
  821. package/steps/examples/zh_CN/default/icon/README.md +0 -6
  822. package/steps/examples/zh_CN/default/index/README.md +0 -6
  823. package/steps/examples/zh_CN/default/layout/README.md +0 -6
  824. package/steps/examples/zh_CN/default/node-status/README.md +0 -6
  825. package/steps/examples/zh_CN/default/status/README.md +0 -6
  826. package/steps/examples/zh_CN/default/tabs/README.md +0 -6
  827. package/switch/examples/en_US/default/README.md +0 -4
  828. package/switch/examples/en_US/default/default/README.md +0 -6
  829. package/switch/examples/en_US/default/disabled/README.md +0 -6
  830. package/switch/examples/en_US/default/label/README.md +0 -7
  831. package/switch/examples/zh_CN/default/README.md +0 -4
  832. package/switch/examples/zh_CN/default/default/README.md +0 -6
  833. package/switch/examples/zh_CN/default/disabled/README.md +0 -6
  834. package/switch/examples/zh_CN/default/label/README.md +0 -7
  835. package/table/examples/en_US/default/README.md +0 -4
  836. package/table/examples/en_US/default/adaption/README.md +0 -6
  837. package/table/examples/en_US/default/bordered/README.md +0 -6
  838. package/table/examples/en_US/default/checkbox/README.md +0 -7
  839. package/table/examples/en_US/default/config/README.md +0 -6
  840. package/table/examples/en_US/default/custom/README.md +0 -10
  841. package/table/examples/en_US/default/default/README.md +0 -7
  842. package/table/examples/en_US/default/drag-width/README.md +0 -6
  843. package/table/examples/en_US/default/edit/README.md +0 -7
  844. package/table/examples/en_US/default/expand/README.md +0 -8
  845. package/table/examples/en_US/default/fix/README.md +0 -6
  846. package/table/examples/en_US/default/head/README.md +0 -6
  847. package/table/examples/en_US/default/header/README.md +0 -6
  848. package/table/examples/en_US/default/row-size/README.md +0 -6
  849. package/table/examples/en_US/default/rowclass/README.md +0 -6
  850. package/table/examples/en_US/default/scroll/README.md +0 -7
  851. package/table/examples/en_US/default/search/README.md +0 -6
  852. package/table/examples/zh_CN/default/README.md +0 -4
  853. package/table/examples/zh_CN/default/adaption/README.md +0 -6
  854. package/table/examples/zh_CN/default/bordered/README.md +0 -6
  855. package/table/examples/zh_CN/default/checkbox/README.md +0 -8
  856. package/table/examples/zh_CN/default/config/README.md +0 -6
  857. package/table/examples/zh_CN/default/custom/README.md +0 -10
  858. package/table/examples/zh_CN/default/default/README.md +0 -7
  859. package/table/examples/zh_CN/default/drag-width/README.md +0 -6
  860. package/table/examples/zh_CN/default/edit/README.md +0 -7
  861. package/table/examples/zh_CN/default/expand/README.md +0 -8
  862. package/table/examples/zh_CN/default/fix/README.md +0 -6
  863. package/table/examples/zh_CN/default/head/README.md +0 -6
  864. package/table/examples/zh_CN/default/header/README.md +0 -6
  865. package/table/examples/zh_CN/default/row-size/README.md +0 -6
  866. package/table/examples/zh_CN/default/rowclass/README.md +0 -6
  867. package/table/examples/zh_CN/default/scroll/README.md +0 -7
  868. package/table/examples/zh_CN/default/search/README.md +0 -6
  869. package/tabs/examples/en_US/default/README.md +0 -4
  870. package/tabs/examples/en_US/default/action/README.md +0 -6
  871. package/tabs/examples/en_US/default/card/README.md +0 -6
  872. package/tabs/examples/en_US/default/custom/README.md +0 -6
  873. package/tabs/examples/en_US/default/default/README.md +0 -6
  874. package/tabs/examples/en_US/default/expand/README.md +0 -6
  875. package/tabs/examples/en_US/default/layout/README.md +0 -6
  876. package/tabs/examples/en_US/default/tag/README.md +0 -6
  877. package/tabs/examples/zh_CN/default/README.md +0 -4
  878. package/tabs/examples/zh_CN/default/action/README.md +0 -6
  879. package/tabs/examples/zh_CN/default/card/README.md +0 -6
  880. package/tabs/examples/zh_CN/default/custom/README.md +0 -6
  881. package/tabs/examples/zh_CN/default/default/README.md +0 -6
  882. package/tabs/examples/zh_CN/default/expand/README.md +0 -6
  883. package/tabs/examples/zh_CN/default/layout/README.md +0 -6
  884. package/tabs/examples/zh_CN/default/tag/README.md +0 -6
  885. package/tag/examples/en_US/default/README.md +0 -4
  886. package/tag/examples/en_US/default/bordered/README.md +0 -6
  887. package/tag/examples/en_US/default/checked/README.md +0 -6
  888. package/tag/examples/en_US/default/close/README.md +0 -6
  889. package/tag/examples/en_US/default/color/README.md +0 -6
  890. package/tag/examples/en_US/default/default/README.md +0 -6
  891. package/tag/examples/en_US/default/size/README.md +0 -6
  892. package/tag/examples/zh_CN/default/README.md +0 -4
  893. package/tag/examples/zh_CN/default/bordered/README.md +0 -6
  894. package/tag/examples/zh_CN/default/checked/README.md +0 -6
  895. package/tag/examples/zh_CN/default/close/README.md +0 -6
  896. package/tag/examples/zh_CN/default/color/README.md +0 -6
  897. package/tag/examples/zh_CN/default/default/README.md +0 -6
  898. package/tag/examples/zh_CN/default/size/README.md +0 -6
  899. package/text-retract/examples/en_US/default/README.md +0 -4
  900. package/text-retract/examples/en_US/default/default/README.md +0 -6
  901. package/text-retract/examples/zh_CN/default/README.md +0 -4
  902. package/text-retract/examples/zh_CN/default/default/README.md +0 -6
  903. package/textarea/examples/en_US/default/README.md +0 -4
  904. package/textarea/examples/en_US/default/clear/README.md +0 -6
  905. package/textarea/examples/en_US/default/default/README.md +0 -6
  906. package/textarea/examples/en_US/default/disabled/README.md +0 -6
  907. package/textarea/examples/en_US/default/icon/README.md +0 -7
  908. package/textarea/examples/en_US/default/label/README.md +0 -7
  909. package/textarea/examples/en_US/default/length/README.md +0 -6
  910. package/textarea/examples/en_US/default/required/README.md +0 -6
  911. package/textarea/examples/zh_CN/default/README.md +0 -4
  912. package/textarea/examples/zh_CN/default/clear/README.md +0 -6
  913. package/textarea/examples/zh_CN/default/default/README.md +0 -6
  914. package/textarea/examples/zh_CN/default/disabled/README.md +0 -6
  915. package/textarea/examples/zh_CN/default/icon/README.md +0 -7
  916. package/textarea/examples/zh_CN/default/label/README.md +0 -7
  917. package/textarea/examples/zh_CN/default/length/README.md +0 -6
  918. package/textarea/examples/zh_CN/default/required/README.md +0 -6
  919. package/theme/examples/en_US/default/README.md +0 -4
  920. package/theme/examples/en_US/default/default/README.md +0 -8
  921. package/theme/examples/zh_CN/default/README.md +0 -4
  922. package/theme/examples/zh_CN/default/default/README.md +0 -8
  923. package/time-ago/examples/en_US/default/README.md +0 -4
  924. package/time-ago/examples/en_US/default/default/README.md +0 -4
  925. package/time-ago/examples/zh_CN/default/README.md +0 -4
  926. package/time-ago/examples/zh_CN/default/default/README.md +0 -4
  927. package/time-picker/examples/en_US/default/README.md +0 -4
  928. package/time-picker/examples/en_US/default/bordered/README.md +0 -6
  929. package/time-picker/examples/en_US/default/default/README.md +0 -7
  930. package/time-picker/examples/en_US/default/disabled/README.md +0 -6
  931. package/time-picker/examples/en_US/default/hour-minute/README.md +0 -6
  932. package/time-picker/examples/en_US/default/label/README.md +0 -7
  933. package/time-picker/examples/en_US/default/required/README.md +0 -6
  934. package/time-picker/examples/en_US/default/size/README.md +0 -6
  935. package/time-picker/examples/zh_CN/default/README.md +0 -4
  936. package/time-picker/examples/zh_CN/default/bordered/README.md +0 -6
  937. package/time-picker/examples/zh_CN/default/default/README.md +0 -7
  938. package/time-picker/examples/zh_CN/default/disabled/README.md +0 -6
  939. package/time-picker/examples/zh_CN/default/hour-minute/README.md +0 -6
  940. package/time-picker/examples/zh_CN/default/label/README.md +0 -7
  941. package/time-picker/examples/zh_CN/default/required/README.md +0 -6
  942. package/time-picker/examples/zh_CN/default/size/README.md +0 -6
  943. package/time-range/examples/en_US/default/README.md +0 -4
  944. package/time-range/examples/en_US/default/default/README.md +0 -6
  945. package/time-range/examples/zh_CN/default/README.md +0 -4
  946. package/time-range/examples/zh_CN/default/default/README.md +0 -6
  947. package/timeline/examples/en_US/default/README.md +0 -4
  948. package/timeline/examples/en_US/default/color/README.md +0 -6
  949. package/timeline/examples/en_US/default/custom/README.md +0 -6
  950. package/timeline/examples/en_US/default/default/README.md +0 -6
  951. package/timeline/examples/en_US/default/icon/README.md +0 -6
  952. package/timeline/examples/en_US/default/loading/README.md +0 -6
  953. package/timeline/examples/en_US/default/mode/README.md +0 -6
  954. package/timeline/examples/en_US/default/size/README.md +0 -6
  955. package/timeline/examples/en_US/default/type/README.md +0 -6
  956. package/timeline/examples/zh_CN/default/README.md +0 -4
  957. package/timeline/examples/zh_CN/default/color/README.md +0 -6
  958. package/timeline/examples/zh_CN/default/custom/README.md +0 -6
  959. package/timeline/examples/zh_CN/default/default/README.md +0 -6
  960. package/timeline/examples/zh_CN/default/icon/README.md +0 -6
  961. package/timeline/examples/zh_CN/default/loading/README.md +0 -6
  962. package/timeline/examples/zh_CN/default/mode/README.md +0 -6
  963. package/timeline/examples/zh_CN/default/size/README.md +0 -6
  964. package/timeline/examples/zh_CN/default/type/README.md +0 -6
  965. package/tooltip/examples/en_US/default/README.md +0 -4
  966. package/tooltip/examples/en_US/default/default/README.md +0 -6
  967. package/tooltip/examples/zh_CN/default/README.md +0 -4
  968. package/tooltip/examples/zh_CN/default/default/README.md +0 -6
  969. package/transfer/examples/en_US/default/README.md +0 -4
  970. package/transfer/examples/en_US/default/custom/README.md +0 -6
  971. package/transfer/examples/en_US/default/default/README.md +0 -6
  972. package/transfer/examples/en_US/default/drag/README.md +0 -6
  973. package/transfer/examples/zh_CN/default/README.md +0 -4
  974. package/transfer/examples/zh_CN/default/custom/README.md +0 -6
  975. package/transfer/examples/zh_CN/default/default/README.md +0 -6
  976. package/transfer/examples/zh_CN/default/drag/README.md +0 -6
  977. package/tree/examples/en_US/default/README.md +0 -4
  978. package/tree/examples/en_US/default/checkbox/README.md +0 -6
  979. package/tree/examples/en_US/default/control/README.md +0 -6
  980. package/tree/examples/en_US/default/custom/README.md +0 -6
  981. package/tree/examples/en_US/default/default/README.md +0 -4
  982. package/tree/examples/en_US/default/height/README.md +0 -7
  983. package/tree/examples/en_US/default/lazy/README.md +0 -6
  984. package/tree/examples/en_US/default/open/README.md +0 -6
  985. package/tree/examples/en_US/default/status/README.md +0 -6
  986. package/tree/examples/en_US/default/virtual-scroll/README.md +0 -7
  987. package/tree/examples/zh_CN/default/README.md +0 -4
  988. package/tree/examples/zh_CN/default/checkbox/README.md +0 -6
  989. package/tree/examples/zh_CN/default/control/README.md +0 -6
  990. package/tree/examples/zh_CN/default/custom/README.md +0 -6
  991. package/tree/examples/zh_CN/default/default/README.md +0 -4
  992. package/tree/examples/zh_CN/default/height/README.md +0 -7
  993. package/tree/examples/zh_CN/default/lazy/README.md +0 -6
  994. package/tree/examples/zh_CN/default/open/README.md +0 -6
  995. package/tree/examples/zh_CN/default/status/README.md +0 -6
  996. package/tree/examples/zh_CN/default/virtual-scroll/README.md +0 -7
  997. package/tree-file/examples/en_US/default/README.md +0 -4
  998. package/tree-file/examples/en_US/default/default/README.md +0 -6
  999. package/tree-file/examples/zh_CN/default/README.md +0 -4
  1000. package/tree-file/examples/zh_CN/default/default/README.md +0 -6
  1001. package/tree-select/examples/en_US/default/README.md +0 -4
  1002. package/tree-select/examples/en_US/default/async/README.md +0 -6
  1003. package/tree-select/examples/en_US/default/bordered/README.md +0 -6
  1004. package/tree-select/examples/en_US/default/custom/README.md +0 -6
  1005. package/tree-select/examples/en_US/default/default/README.md +0 -6
  1006. package/tree-select/examples/en_US/default/disabled/README.md +0 -6
  1007. package/tree-select/examples/en_US/default/label/README.md +0 -6
  1008. package/tree-select/examples/en_US/default/multiple/README.md +0 -6
  1009. package/tree-select/examples/en_US/default/path/README.md +0 -6
  1010. package/tree-select/examples/en_US/default/required/README.md +0 -6
  1011. package/tree-select/examples/en_US/default/scroll/README.md +0 -6
  1012. package/tree-select/examples/en_US/default/search/README.md +0 -7
  1013. package/tree-select/examples/en_US/default/size/README.md +0 -6
  1014. package/tree-select/examples/zh_CN/default/README.md +0 -4
  1015. package/tree-select/examples/zh_CN/default/async/README.md +0 -6
  1016. package/tree-select/examples/zh_CN/default/bordered/README.md +0 -6
  1017. package/tree-select/examples/zh_CN/default/custom/README.md +0 -6
  1018. package/tree-select/examples/zh_CN/default/default/README.md +0 -6
  1019. package/tree-select/examples/zh_CN/default/disabled/README.md +0 -6
  1020. package/tree-select/examples/zh_CN/default/label/README.md +0 -6
  1021. package/tree-select/examples/zh_CN/default/multiple/README.md +0 -6
  1022. package/tree-select/examples/zh_CN/default/path/README.md +0 -6
  1023. package/tree-select/examples/zh_CN/default/required/README.md +0 -6
  1024. package/tree-select/examples/zh_CN/default/scroll/README.md +0 -6
  1025. package/tree-select/examples/zh_CN/default/search/README.md +0 -7
  1026. package/tree-select/examples/zh_CN/default/size/README.md +0 -6
  1027. package/typography/examples/en_US/default/README.md +0 -4
  1028. package/typography/examples/en_US/default/default/README.md +0 -6
  1029. package/typography/examples/en_US/default/line-height/README.md +0 -6
  1030. package/typography/examples/en_US/default/size/README.md +0 -6
  1031. package/typography/examples/zh_CN/default/README.md +0 -4
  1032. package/typography/examples/zh_CN/default/default/README.md +0 -6
  1033. package/typography/examples/zh_CN/default/line-height/README.md +0 -6
  1034. package/typography/examples/zh_CN/default/size/README.md +0 -6
  1035. package/upload/examples/en_US/default/README.md +0 -4
  1036. package/upload/examples/en_US/default/custom/README.md +0 -6
  1037. package/upload/examples/en_US/default/default/README.md +0 -8
  1038. package/upload/examples/en_US/default/disabled/README.md +0 -9
  1039. package/upload/examples/en_US/default/img/README.md +0 -6
  1040. package/upload/examples/zh_CN/default/README.md +0 -4
  1041. package/upload/examples/zh_CN/default/custom/README.md +0 -6
  1042. package/upload/examples/zh_CN/default/default/README.md +0 -8
  1043. package/upload/examples/zh_CN/default/disabled/README.md +0 -9
  1044. package/upload/examples/zh_CN/default/img/README.md +0 -6
@@ -1,48 +1,89 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
2
2
  import { XTransferPrefix, XTransferProperty } from './transfer.property';
3
- import { XIsChange, XIsEmpty, XSetData } from '@ng-nest/ui/core';
4
- import { of, Subject } from 'rxjs';
5
- import { delay, takeUntil } from 'rxjs/operators';
3
+ import { XIsChange, XIsEmpty, XSetData, XRemove, XIsArray, XIsObject, XIsObjectArray, XIsBoolean, XIsFunction } from '@ng-nest/ui/core';
4
+ import { Subject } from 'rxjs';
5
+ import { map, takeUntil } from 'rxjs/operators';
6
6
  import { transferArrayItem, moveItemInArray } from '@angular/cdk/drag-drop';
7
7
  import { XValueAccessor } from '@ng-nest/ui/base-form';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ng-nest/ui/core";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@angular/forms";
12
- import * as i4 from "@angular/cdk/drag-drop";
13
- import * as i5 from "@ng-nest/ui/outlet";
14
- import * as i6 from "@ng-nest/ui/checkbox";
15
- import * as i7 from "@ng-nest/ui/button";
10
+ import * as i2 from "@ng-nest/ui/i18n";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "@angular/forms";
13
+ import * as i5 from "@angular/cdk/drag-drop";
14
+ import * as i6 from "@ng-nest/ui/outlet";
15
+ import * as i7 from "@ng-nest/ui/checkbox";
16
+ import * as i8 from "@ng-nest/ui/button";
17
+ import * as i9 from "@ng-nest/ui/tree";
18
+ import * as i10 from "@ng-nest/ui/table";
16
19
  export class XTransferComponent extends XTransferProperty {
17
- constructor(renderer, elementRef, cdr, configService) {
20
+ constructor(renderer, elementRef, cdr, configService, i18n) {
18
21
  super();
19
22
  this.renderer = renderer;
20
23
  this.elementRef = elementRef;
21
24
  this.cdr = cdr;
22
25
  this.configService = configService;
26
+ this.i18n = i18n;
23
27
  this.nodes = [];
24
28
  this.left = {
25
29
  list: [],
26
30
  searchList: [],
27
31
  checkedCount: 0,
32
+ direction: 'left',
28
33
  disabledButton: true
29
34
  };
30
35
  this.right = {
31
36
  list: [],
32
37
  searchList: [],
33
38
  checkedCount: 0,
39
+ direction: 'right',
34
40
  disabledButton: true
35
41
  };
36
42
  this.searchInput = '';
37
- this._titles = ['List', 'Selected'];
43
+ this.locale = {};
38
44
  this._unSubject = new Subject();
45
+ this.treeActivatedId = [];
46
+ this.tableData = [];
47
+ this.isObjectArray = false;
48
+ }
49
+ get localTitle() {
50
+ if (this.type === 'tree') {
51
+ return this.locale.treeTitle;
52
+ }
53
+ else {
54
+ return this.locale.listTitle;
55
+ }
39
56
  }
40
57
  writeValue(value) {
41
58
  this.value = value;
42
- this.setList();
59
+ if (XIsArray(value)) {
60
+ this.treeActivatedId = [...value];
61
+ if (XIsObjectArray(value)) {
62
+ this.isObjectArray = true;
63
+ }
64
+ }
65
+ this.setList(this.nodes);
66
+ }
67
+ get values() {
68
+ if (this.isObjectArray) {
69
+ return this.value.map((x) => x.id);
70
+ }
71
+ else {
72
+ return this.value;
73
+ }
43
74
  }
44
75
  ngOnInit() {
45
76
  this.setTitles();
77
+ this.setListStyle();
78
+ this.setHiddenCheckAll();
79
+ this.getTableCheckColumn();
80
+ this.i18n.localeChange
81
+ .pipe(map((x) => x.transfer), takeUntil(this._unSubject))
82
+ .subscribe((x) => {
83
+ this.locale = x;
84
+ XIsEmpty(this.titles) && this.setTitles();
85
+ this.cdr.markForCheck();
86
+ });
46
87
  }
47
88
  ngOnChanges(changes) {
48
89
  const { data } = changes;
@@ -61,6 +102,9 @@ export class XTransferComponent extends XTransferProperty {
61
102
  x.checked = $event;
62
103
  return x;
63
104
  });
105
+ if (this.type === 'tree' && source.direction === 'left') {
106
+ this.treeActivatedId = $event ? source.list.map((x) => x.id) : source.list.filter((x) => x.disabled).map((x) => x.id);
107
+ }
64
108
  source.checkedCount = $event ? list.length : 0;
65
109
  source.indeterminate = $event;
66
110
  this.setButtonDisabled(source);
@@ -78,7 +122,19 @@ export class XTransferComponent extends XTransferProperty {
78
122
  move(from, to) {
79
123
  if (from.disabledButton)
80
124
  return;
81
- let checkedItems = from.list?.filter((x) => !XIsEmpty(x.checked));
125
+ switch (this.type) {
126
+ case 'list':
127
+ this.moveList(from, to);
128
+ break;
129
+ case 'tree':
130
+ this.moveTree(from, to);
131
+ break;
132
+ case 'table':
133
+ this.moveTable(from, to);
134
+ }
135
+ }
136
+ moveList(from, to) {
137
+ let checkedItems = from.list?.filter((x) => !x.disabled && x.checked);
82
138
  let j = 0;
83
139
  checkedItems.forEach((x) => {
84
140
  const index = from.list?.indexOf(x);
@@ -86,14 +142,95 @@ export class XTransferComponent extends XTransferProperty {
86
142
  transferArrayItem(from.list, to.list, index, j);
87
143
  j++;
88
144
  });
89
- from.checkedAll = false;
90
- from.checkedCount = 0;
91
- from.indeterminate = false;
92
- from.disabledButton = true;
145
+ from.list = [...from.list];
146
+ to.list = [...to.list];
147
+ this.setCheckedCount('list', from, to);
148
+ this.setListCount('list', from, to);
149
+ this.setCheckedAll(from, to);
150
+ this.setButtonDisabled(from, to);
93
151
  this.setSearchList(from, to);
94
152
  this.setValue();
95
153
  this.cdr.detectChanges();
96
154
  }
155
+ moveTree(from, to) {
156
+ let checkedItems = [];
157
+ if (to.direction === 'right') {
158
+ checkedItems = from.list?.filter((x) => !x.disabled && !XIsEmpty(this.treeActivatedId) && this.treeActivatedId.includes(x.id));
159
+ checkedItems.forEach((x) => {
160
+ x.disabled = true;
161
+ x.change && x.change();
162
+ });
163
+ to.list?.unshift(...checkedItems.map((x) => {
164
+ let res = { ...x };
165
+ res.checked = false;
166
+ res.disabled = false;
167
+ return res;
168
+ }));
169
+ this.setCheckedCount('tree', from);
170
+ this.setCheckedCount('list', to);
171
+ }
172
+ else {
173
+ checkedItems = XRemove(from.list, (x) => !x.disabled && x.checked);
174
+ for (let item of checkedItems) {
175
+ let node = to.list?.find((x) => x.id === item.id);
176
+ if (node) {
177
+ node.checked = false;
178
+ node.disabled = false;
179
+ const idx = this.treeActivatedId.findIndex((x) => x === node.id);
180
+ if (idx >= 0) {
181
+ this.treeActivatedId.splice(idx, 1);
182
+ }
183
+ node.change && node.change();
184
+ }
185
+ }
186
+ this.setCheckedCount('tree', to);
187
+ this.setCheckedCount('list', from);
188
+ }
189
+ this.setCheckedAll(from, to);
190
+ this.setListCount('list', from, to);
191
+ this.setButtonDisabled(from, to);
192
+ this.setSearchList(from, to);
193
+ this.setValue();
194
+ }
195
+ moveTable(from, to) {
196
+ let checkedItems = [];
197
+ if (to.direction === 'right') {
198
+ checkedItems = from.list?.filter((x) => !x.disabled && x.checked);
199
+ to.list = [
200
+ ...checkedItems.map((x) => {
201
+ const res = { ...x };
202
+ x.disabled = true;
203
+ x.checked = true;
204
+ res.disabled = false;
205
+ res.checked = false;
206
+ return res;
207
+ }),
208
+ ...to.list
209
+ ];
210
+ this.tableData = [...from.list];
211
+ this.setCheckedCount('table', from);
212
+ this.setCheckedCount('list', to);
213
+ }
214
+ else {
215
+ checkedItems = XRemove(from.list, (x) => !x.disabled && x.checked);
216
+ const ids = checkedItems.map((x) => x.id);
217
+ for (let item of to.list) {
218
+ if (ids.includes(item.id)) {
219
+ item.checked = false;
220
+ item.disabled = false;
221
+ }
222
+ }
223
+ from.list = [...from.list];
224
+ this.tableData = [...to.list];
225
+ this.setCheckedCount('table', to);
226
+ this.setCheckedCount('list', from);
227
+ }
228
+ this.setListCount('table', from, to);
229
+ this.setCheckedAll(from, to);
230
+ this.setButtonDisabled(from, to);
231
+ this.setSearchList(from, to);
232
+ this.setValue();
233
+ }
97
234
  dropCdk(event) {
98
235
  const ev = event;
99
236
  if (ev.previousContainer === ev.container) {
@@ -101,8 +238,9 @@ export class XTransferComponent extends XTransferProperty {
101
238
  }
102
239
  else {
103
240
  transferArrayItem(ev.previousContainer.data, ev.container.data, ev.previousIndex, ev.currentIndex);
104
- this.setCheckedCount(this.left, this.right);
241
+ this.setCheckedCount('list', this.left, this.right);
105
242
  this.setCheckedAll(this.left, this.right);
243
+ this.setListCount('list', this.left, this.right);
106
244
  this.setButtonDisabled(this.left, this.right);
107
245
  }
108
246
  this.setSearchList(this.left, this.right);
@@ -115,6 +253,54 @@ export class XTransferComponent extends XTransferProperty {
115
253
  trackByNode(_index, item) {
116
254
  return item.id;
117
255
  }
256
+ setListCount(type = 'list', ...sources) {
257
+ if (['list', 'tree'].includes(type)) {
258
+ for (let source of sources) {
259
+ source.count = source.list?.filter((x) => !x.disabled).length;
260
+ }
261
+ }
262
+ else if (type === 'table') {
263
+ for (let source of sources) {
264
+ if (source.direction === 'left') {
265
+ source.count = this.tableTotal - this.right.list.length || 0;
266
+ }
267
+ else {
268
+ source.count = source.list?.filter((x) => !x.disabled).length;
269
+ }
270
+ }
271
+ }
272
+ }
273
+ onTreeNodeClick(_node) {
274
+ this.setCheckedCount('tree', this.left);
275
+ this.setCheckedAll(this.left);
276
+ this.setButtonDisabled(this.left);
277
+ }
278
+ onTableCheckedRow(row, source) {
279
+ if (!this.tableCheckboxColumn)
280
+ return;
281
+ let checked = row[this.tableCheckboxColumn.id];
282
+ row.checked = checked;
283
+ this.setCheckedCount('table', source);
284
+ this.setCheckedAll(source);
285
+ this.setButtonDisabled(source);
286
+ }
287
+ onTableCheckedAll(row, source) {
288
+ if (!this.tableCheckboxColumn)
289
+ return;
290
+ let checked = row[this.tableCheckboxColumn.id];
291
+ for (let item of source.list) {
292
+ if (!item.disabled) {
293
+ item.checked = checked;
294
+ }
295
+ }
296
+ this.setCheckedCount('table', source);
297
+ this.setButtonDisabled(source);
298
+ }
299
+ getTableCheckColumn() {
300
+ if (this.type !== 'table' || XIsEmpty(this.tableColumns))
301
+ return;
302
+ this.tableCheckboxColumn = this.tableColumns?.find((x) => x.rowChecked);
303
+ }
118
304
  setCheckedAll(...sources) {
119
305
  for (let source of sources) {
120
306
  if (source.checkedCount > 0) {
@@ -127,64 +313,181 @@ export class XTransferComponent extends XTransferProperty {
127
313
  }
128
314
  }
129
315
  else {
316
+ source.checkedAll = false;
130
317
  source.indeterminate = false;
131
318
  }
132
319
  }
133
320
  }
134
- setCheckedCount(...sources) {
135
- for (let source of sources)
136
- source.checkedCount = source.list?.filter((x) => !XIsEmpty(x.checked)).length;
321
+ setCheckedCount(type = 'list', ...sources) {
322
+ for (let source of sources) {
323
+ if (['table', 'list'].includes(type)) {
324
+ source.checkedCount = source.list?.filter((x) => !x.disabled && x.checked).length;
325
+ }
326
+ else if (type === 'tree') {
327
+ source.checkedCount = source.list?.filter((x) => !x.disabled && !XIsEmpty(this.treeActivatedId) && this.treeActivatedId.includes(x.id)).length;
328
+ }
329
+ }
137
330
  }
138
331
  setButtonDisabled(...sources) {
139
332
  for (let source of sources)
140
333
  source.disabledButton = source.checkedCount === 0;
141
334
  }
142
335
  setValue() {
143
- this.value = this.right.list?.map((x) => x.id);
336
+ if (this.isObjectArray) {
337
+ this.value = this.right.list;
338
+ }
339
+ else {
340
+ this.value = this.right.list?.map((x) => x.id);
341
+ }
144
342
  this.onChange(this.value);
145
343
  }
146
- setSearchList(...sources) {
147
- if (this.search) {
148
- for (let source of sources) {
149
- if (XIsEmpty(source.searchInput)) {
150
- source.searchList = [...source.list];
151
- }
152
- }
153
- }
344
+ setSearchList(..._sources) {
345
+ // if (this.search) {
346
+ // for (let source of sources) {
347
+ // if (XIsEmpty(source.searchInput)) {
348
+ // source.searchList = [...(source.list as XTransferNode[])];
349
+ // }
350
+ // }
351
+ // }
154
352
  }
155
353
  setData() {
354
+ if (this.type === 'table') {
355
+ this.getTableData();
356
+ return;
357
+ }
156
358
  XSetData(this.data, this._unSubject).subscribe((x) => {
157
- this.nodes = x;
359
+ this.setList(x);
158
360
  });
159
361
  }
160
- setList() {
161
- if (!XIsEmpty(this.value)) {
162
- this.left.list = this.nodes.filter((x) => this.value.indexOf(x.id) < 0);
163
- this.right.list = this.nodes.filter((x) => this.value.indexOf(x.id) >= 0);
362
+ setList(data) {
363
+ if (XIsEmpty(data))
364
+ return;
365
+ switch (this.type) {
366
+ case 'list':
367
+ this.nodes = data;
368
+ if (!XIsEmpty(this.values)) {
369
+ this.left.list = this.nodes.filter((x) => this.values.indexOf(x.id) < 0);
370
+ this.right.list = this.nodes.filter((x) => this.values.indexOf(x.id) >= 0);
371
+ }
372
+ else {
373
+ this.left.list = [...this.nodes];
374
+ }
375
+ this.setSearchList(this.left, this.right);
376
+ this.setListCount(this.type, this.left, this.right);
377
+ break;
378
+ case 'tree':
379
+ this.nodes = data;
380
+ this.setTreeNodeDisabled();
381
+ this.left.list = [...this.nodes];
382
+ if (!XIsEmpty(this.values)) {
383
+ this.right.list = this.nodes
384
+ .filter((x) => this.values.indexOf(x.id) >= 0)
385
+ .map((x) => {
386
+ let res = { ...x };
387
+ res.checked = false;
388
+ res.disabled = false;
389
+ return res;
390
+ });
391
+ }
392
+ this.setSearchList(this.left, this.right);
393
+ this.setListCount(this.type, this.left, this.right);
394
+ break;
395
+ case 'table':
396
+ this.nodes = data;
397
+ this.setTableDataDisabled();
398
+ this.left.list = [...this.nodes];
399
+ if (!XIsEmpty(this.values)) {
400
+ if (this.isObjectArray) {
401
+ this.right.list = [
402
+ ...this.value.map((x) => {
403
+ let res = { ...x };
404
+ res.disabled = false;
405
+ res.checked = false;
406
+ return res;
407
+ })
408
+ ];
409
+ }
410
+ else {
411
+ this.right.list = [...this.value];
412
+ }
413
+ }
414
+ this.setSearchList(this.left, this.right);
415
+ this.setListCount(this.type, this.left, this.right);
416
+ break;
164
417
  }
165
- else {
166
- this.left.list = this.nodes;
418
+ this.cdr.detectChanges();
419
+ }
420
+ getTableData() {
421
+ if (XIsFunction(this.data)) {
422
+ this.data(this.tableIndex, this.tableSize, this.tableQuery).subscribe((x) => {
423
+ this.tableTotal = x.total;
424
+ this.tableData = x.list;
425
+ this.setList(x.list);
426
+ });
167
427
  }
168
- this.setSearchList(this.left, this.right);
169
- // ToDo: x-checkbox error. Attempt to use a destroyed view: detectChanges
170
- of(true)
171
- .pipe(delay(0), takeUntil(this._unSubject))
172
- .subscribe(() => this.cdr.detectChanges());
173
428
  }
174
429
  setTitles() {
430
+ let titles = [];
175
431
  if (XIsEmpty(this.titles)) {
176
- this.titles = this._titles;
432
+ titles = [this.localTitle, this.locale.selectedTitle];
433
+ }
434
+ else {
435
+ titles = this.titles;
177
436
  }
178
- this.left.title = this.titles[0];
179
- if (this.titles.length > 1)
180
- this.right.title = this.titles[1];
437
+ if (titles.length > 0)
438
+ this.left.title = titles[0];
439
+ if (titles.length > 1)
440
+ this.right.title = titles[1];
441
+ this.cdr.detectChanges();
442
+ }
443
+ setListStyle() {
444
+ if (XIsEmpty(this.listStyle))
445
+ return;
446
+ let styles = [];
447
+ if (XIsObject(this.listStyle)) {
448
+ styles = [this.listStyle, this.listStyle];
449
+ }
450
+ else if (XIsObjectArray(this.listStyle)) {
451
+ styles = this.listStyle;
452
+ }
453
+ if (styles.length > 0)
454
+ this.left.listStyle = styles[0];
455
+ if (styles.length > 1)
456
+ this.right.listStyle = styles[1];
457
+ this.cdr.detectChanges();
458
+ }
459
+ setTreeNodeDisabled() {
460
+ if (!XIsEmpty(this.values) && this.nodes) {
461
+ for (let item of this.nodes) {
462
+ let hasIn = this.values.indexOf(item.id) >= 0;
463
+ item.disabled = hasIn;
464
+ item.checked = hasIn;
465
+ }
466
+ }
467
+ }
468
+ setTableDataDisabled() {
469
+ if (!XIsEmpty(this.values) && this.nodes) {
470
+ for (let item of this.nodes) {
471
+ let hasIn = this.values.indexOf(item.id) >= 0;
472
+ item.disabled = hasIn;
473
+ item.checked = hasIn;
474
+ }
475
+ }
476
+ }
477
+ setHiddenCheckAll() {
478
+ if (XIsEmpty(this.hiddenCheckAll))
479
+ return;
480
+ if (this.hiddenCheckAll.length > 0 && XIsBoolean(this.hiddenCheckAll[0]))
481
+ this.left.hiddenCheckAll = this.hiddenCheckAll[0];
482
+ if (this.hiddenCheckAll.length > 1 && XIsBoolean(this.hiddenCheckAll[1]))
483
+ this.right.hiddenCheckAll = this.hiddenCheckAll[1];
181
484
  this.cdr.detectChanges();
182
485
  }
183
486
  }
184
- /** @nocollapse */ XTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
185
- /** @nocollapse */ XTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTransferComponent, selector: "x-transfer", providers: [XValueAccessor(XTransferComponent)], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.list.length }\"\r\n ><span>{{ source.checkedCount }} / {{ source.list.length }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-box{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);width:12rem}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border-bottom:.0625rem solid var(--x-border);background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-title>span{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;padding:.25rem;height:18rem;overflow-y:auto}.x-transfer-list>li{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-list.cdk-drop-list-dragging>li:hover{background-color:transparent}.x-transfer-list.cdk-drop-list-dragging>li.cdk-drag-placeholder{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}.x-transfer-list.cdk-drop-list-dragging>li:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i6.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i7.XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
487
+ /** @nocollapse */ XTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
488
+ /** @nocollapse */ XTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTransferComponent, selector: "x-transfer", providers: [XValueAccessor(XTransferComponent)], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <div [ngStyle]=\"left.listStyle!\" class=\"x-transfer-list\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <ul\r\n *ngSwitchCase=\"'list'\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag && type === 'list'\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n <x-tree\r\n *ngSwitchCase=\"'tree'\"\r\n [data]=\"left.list!\"\r\n multiple\r\n allowManyActivated\r\n [(activatedId)]=\"treeActivatedId\"\r\n (nodeClick)=\"onTreeNodeClick($event)\"\r\n ></x-tree>\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns!\"\r\n [(size)]=\"tableSize\"\r\n [(index)]=\"tableIndex\"\r\n (indexChange)=\"getTableData()\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, left)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, left)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <div [ngSwitch]=\"type\" [ngStyle]=\"right.listStyle!\" class=\"x-transfer-list\">\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"right.list!\"\r\n [columns]=\"tableColumns!\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, right)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, right)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showPagination=\"false\"\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n <ul\r\n *ngSwitchDefault\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag || (drag && type !== 'list')\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n *ngIf=\"source.title && !source.hiddenCheckAll\"\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <span *ngIf=\"source.title && source.hiddenCheckAll\">{{ source.title }}</span>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.count }\"\r\n ><span class=\"x-transfer-total\">{{ source.checkedCount }} / {{ source.count }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top-left-radius:var(--x-border-radius);border-top-right-radius:var(--x-border-radius);border-bottom:none;background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-total{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;height:18rem;width:12rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom-left-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius);overflow:auto}.x-transfer-item{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-droplist{height:100%;padding:.25rem}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:hover{background-color:transparent}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item.cdk-drag-placeholder{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i8.XButtonComponent, selector: "x-button" }, { kind: "component", type: i9.XTreeComponent, selector: "x-tree" }, { kind: "component", type: i10.XTableComponent, selector: "x-table" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
186
489
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTransferComponent, decorators: [{
187
490
  type: Component,
188
- args: [{ selector: `${XTransferPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTransferComponent)], template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <ul\r\n class=\"x-transfer-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.list.length }\"\r\n ><span>{{ source.checkedCount }} / {{ source.list.length }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-box{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);width:12rem}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border-bottom:.0625rem solid var(--x-border);background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-title>span{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;padding:.25rem;height:18rem;overflow-y:auto}.x-transfer-list>li{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-list.cdk-drop-list-dragging>li:hover{background-color:transparent}.x-transfer-list.cdk-drop-list-dragging>li.cdk-drag-placeholder{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}.x-transfer-list.cdk-drop-list-dragging>li:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
189
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBdUJ2RCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ2IsR0FBc0IsRUFDL0IsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDYixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUExQnRDLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBb0I7WUFDdEIsSUFBSSxFQUFFLEVBQUU7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QUFPLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOztrSUFqTFUsa0JBQWtCO3NIQUFsQixrQkFBa0IscUNBRmxCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsc0VDekJqRCx5N0ZBbUVBOzJGRHhDYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmFuc2ZlclByZWZpeCwgWFRyYW5zZmVyTm9kZSwgWFRyYW5zZmVyU291cmNlLCBYVHJhbnNmZXJQcm9wZXJ0eSB9IGZyb20gJy4vdHJhbnNmZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhJc0VtcHR5LCBYU2V0RGF0YSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgdHJhbnNmZXJBcnJheUl0ZW0sIG1vdmVJdGVtSW5BcnJheSwgQ2RrRHJhZ0Ryb3AsIENka0RyYWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUcmFuc2ZlclByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2Zlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJhbnNmZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhUcmFuc2ZlckNvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJhbnNmZXJDb21wb25lbnQgZXh0ZW5kcyBYVHJhbnNmZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIG5vZGVzOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICBsZWZ0OiBYVHJhbnNmZXJTb3VyY2UgPSB7XHJcbiAgICBsaXN0OiBbXSxcclxuICAgIHNlYXJjaExpc3Q6IFtdLFxyXG4gICAgY2hlY2tlZENvdW50OiAwLFxyXG4gICAgZGlzYWJsZWRCdXR0b246IHRydWVcclxuICB9O1xyXG4gIHJpZ2h0OiBYVHJhbnNmZXJTb3VyY2UgPSB7XHJcbiAgICBsaXN0OiBbXSxcclxuICAgIHNlYXJjaExpc3Q6IFtdLFxyXG4gICAgY2hlY2tlZENvdW50OiAwLFxyXG4gICAgZGlzYWJsZWRCdXR0b246IHRydWVcclxuICB9O1xyXG4gIHNlYXJjaElucHV0OiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIF90aXRsZXMgPSBbJ0xpc3QnLCAnU2VsZWN0ZWQnXTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaElucHV0Q2hhbmdlKHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBzb3VyY2UubGlzdCA9IHNvdXJjZS5zZWFyY2hMaXN0Py5maWx0ZXIoKHgpID0+IHgubGFiZWwuaW5kZXhPZihzb3VyY2Uuc2VhcmNoSW5wdXQpID49IDApO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tlZEFsbENoYW5nZSgkZXZlbnQ6IGJvb2xlYW4sIHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBsZXQgbGlzdCA9IChzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkgYXMgWFRyYW5zZmVyTm9kZVtdKS5tYXAoKHgpID0+IHtcclxuICAgICAgeC5jaGVja2VkID0gJGV2ZW50O1xyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gICAgc291cmNlLmNoZWNrZWRDb3VudCA9ICRldmVudCA/IGxpc3QubGVuZ3RoIDogMDtcclxuICAgIHNvdXJjZS5pbmRldGVybWluYXRlID0gJGV2ZW50O1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tlZENoYW5nZSgkZXZlbnQ6IGJvb2xlYW4sIHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBpZiAoISRldmVudCkgKHNvdXJjZS5jaGVja2VkQ291bnQgYXMgbnVtYmVyKS0tO1xyXG4gICAgZWxzZSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpKys7XHJcbiAgICB0aGlzLnNldENoZWNrZWRBbGwoc291cmNlKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoc291cmNlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG1vdmUoZnJvbTogWFRyYW5zZmVyU291cmNlLCB0bzogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBpZiAoZnJvbS5kaXNhYmxlZEJ1dHRvbikgcmV0dXJuO1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAhWElzRW1wdHkoeC5jaGVja2VkKSkgYXMgWFRyYW5zZmVyTm9kZVtdO1xyXG4gICAgbGV0IGogPSAwO1xyXG4gICAgY2hlY2tlZEl0ZW1zLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgY29uc3QgaW5kZXggPSBmcm9tLmxpc3Q/LmluZGV4T2YoeCkgYXMgbnVtYmVyO1xyXG4gICAgICB4LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZnJvbS5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSwgdG8ubGlzdCBhcyBYVHJhbnNmZXJOb2RlW10sIGluZGV4LCBqKTtcclxuICAgICAgaisrO1xyXG4gICAgfSk7XHJcbiAgICBmcm9tLmNoZWNrZWRBbGwgPSBmYWxzZTtcclxuICAgIGZyb20uY2hlY2tlZENvdW50ID0gMDtcclxuICAgIGZyb20uaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgZnJvbS5kaXNhYmxlZEJ1dHRvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNldFNlYXJjaExpc3QoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZHJvcENkayhldmVudDogQ2RrRHJhZ0Ryb3A8WFRyYW5zZmVyTm9kZVtdIHwgdW5kZWZpbmVkLCBhbnk+KSB7XHJcbiAgICBjb25zdCBldiA9IGV2ZW50IGFzIENka0RyYWdEcm9wPFhUcmFuc2Zlck5vZGVbXT47XHJcbiAgICBpZiAoZXYucHJldmlvdXNDb250YWluZXIgPT09IGV2LmNvbnRhaW5lcikge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXYuY29udGFpbmVyLmRhdGEsIGV2LnByZXZpb3VzSW5kZXgsIGV2LmN1cnJlbnRJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShldi5wcmV2aW91c0NvbnRhaW5lci5kYXRhLCBldi5jb250YWluZXIuZGF0YSwgZXYucHJldmlvdXNJbmRleCwgZXYuY3VycmVudEluZGV4KTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQWxsKHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VhcmNoTGlzdCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJlZGljYXRlKGl0ZW06IENka0RyYWc8WFRyYW5zZmVyTm9kZT4pIHtcclxuICAgIHJldHVybiAhaXRlbS5kYXRhLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeU5vZGUoX2luZGV4OiBudW1iZXIsIGl0ZW06IFhUcmFuc2Zlck5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDaGVja2VkQWxsKC4uLnNvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykge1xyXG4gICAgICBpZiAoKHNvdXJjZS5jaGVja2VkQ291bnQgYXMgbnVtYmVyKSA+IDApIHtcclxuICAgICAgICBpZiAoc291cmNlLmNoZWNrZWRDb3VudCA9PT0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aCkge1xyXG4gICAgICAgICAgc291cmNlLmNoZWNrZWRBbGwgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IGZhbHNlO1xyXG4gICAgICAgICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRDb3VudCguLi5zb3VyY2VzOiBYVHJhbnNmZXJTb3VyY2VbXSkge1xyXG4gICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHNvdXJjZS5jaGVja2VkQ291bnQgPSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAhWElzRW1wdHkoeC5jaGVja2VkKSkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRCdXR0b25EaXNhYmxlZCguLi5zb3VyY2VzOiBYVHJhbnNmZXJTb3VyY2VbXSkge1xyXG4gICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHNvdXJjZS5kaXNhYmxlZEJ1dHRvbiA9IHNvdXJjZS5jaGVja2VkQ291bnQgPT09IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlKCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMucmlnaHQubGlzdD8ubWFwKCh4KSA9PiB4LmlkKSBhcyBhbnlbXTtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlYXJjaExpc3QoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaCkge1xyXG4gICAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykge1xyXG4gICAgICAgIGlmIChYSXNFbXB0eShzb3VyY2Uuc2VhcmNoSW5wdXQpKSB7XHJcbiAgICAgICAgICBzb3VyY2Uuc2VhcmNoTGlzdCA9IFsuLi4oc291cmNlLmxpc3QgYXMgWFRyYW5zZmVyTm9kZVtdKV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYVHJhbnNmZXJOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldExpc3QoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubGVmdC5saXN0ID0gdGhpcy5ub2Rlcy5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWUuaW5kZXhPZih4LmlkKSA8IDApO1xyXG4gICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZS5pbmRleE9mKHguaWQpID49IDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAvLyBUb0RvOiB4LWNoZWNrYm94IGVycm9yLiBBdHRlbXB0IHRvIHVzZSBhIGRlc3Ryb3llZCB2aWV3OiBkZXRlY3RDaGFuZ2VzXHJcbiAgICBvZih0cnVlKVxyXG4gICAgICAucGlwZShkZWxheSgwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VGl0bGVzKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudGl0bGVzKSkge1xyXG4gICAgICB0aGlzLnRpdGxlcyA9IHRoaXMuX3RpdGxlcztcclxuICAgIH1cclxuICAgIHRoaXMubGVmdC50aXRsZSA9IHRoaXMudGl0bGVzWzBdO1xyXG4gICAgaWYgKHRoaXMudGl0bGVzLmxlbmd0aCA+IDEpIHRoaXMucmlnaHQudGl0bGUgPSB0aGlzLnRpdGxlc1sxXTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjdHJhbnNmZXIgY2xhc3M9XCJ4LXRyYW5zZmVyXCIgY2RrRHJvcExpc3RHcm91cCBbbmdDbGFzc109XCJjbGFzc01hcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJveFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZVRpdGxlVHBsOyBjb250ZXh0OiB7IHNvdXJjZTogbGVmdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8dWxcclxuICAgICAgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIlxyXG4gICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BDZGsoJGV2ZW50KVwiXHJcbiAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwibGVmdC5saXN0XCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWdcIlxyXG4gICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJwcmVkaWNhdGVcIlxyXG4gICAgPlxyXG4gICAgICA8bGkgY2xhc3M9XCJ4LXRyYW5zZmVyLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbm9kZSBvZiBsZWZ0Lmxpc3Q7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCIgY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogbGVmdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJ1dHRvbnNcIj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiIFtkaXNhYmxlZF09XCJsZWZ0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUobGVmdCwgcmlnaHQpXCI+PC94LWJ1dHRvbj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgW2Rpc2FibGVkXT1cInJpZ2h0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUocmlnaHQsIGxlZnQpXCI+PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1ib3hcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VUaXRsZVRwbDsgY29udGV4dDogeyBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDx1bFxyXG4gICAgICBjbGFzcz1cIngtdHJhbnNmZXItbGlzdFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcENkaygkZXZlbnQpXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJyaWdodC5saXN0XCJcclxuICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWdcIlxyXG4gICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJwcmVkaWNhdGVcIlxyXG4gICAgPlxyXG4gICAgICA8bGkgY2xhc3M9XCJ4LXRyYW5zZmVyLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbm9kZSBvZiByaWdodC5saXN0OyB0cmFja0J5OiB0cmFja0J5Tm9kZVwiIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cIm5vZGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlTm9kZVRwbDsgY29udGV4dDogeyBub2RlOiBub2RlLCBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VUaXRsZVRwbCBsZXQtc291cmNlPVwic291cmNlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItdGl0bGVcIj5cclxuICAgIDx4LWNoZWNrYm94XHJcbiAgICAgIFtkYXRhXT1cIlt0aXRsZVRwbCA/ICcnIDogc291cmNlLnRpdGxlXVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic291cmNlLmNoZWNrZWRBbGxcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGVja2VkQWxsQ2hhbmdlKCRldmVudCwgc291cmNlKVwiXHJcbiAgICAgIFtpbmRldGVybWluYXRlXT1cInNvdXJjZS5pbmRldGVybWluYXRlXCJcclxuICAgID48L3gtY2hlY2tib3g+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwidGl0bGVUcGw7IGNvbnRleHQ6IHsgJHRpdGxlOiBzb3VyY2UudGl0bGUsICRjaGVja2VkQ291bnQ6IHNvdXJjZS5jaGVja2VkQ291bnQsICRjb3VudDogc291cmNlLmxpc3QubGVuZ3RoIH1cIlxyXG4gICAgICA+PHNwYW4+e3sgc291cmNlLmNoZWNrZWRDb3VudCB9fSAvIHt7IHNvdXJjZS5saXN0Lmxlbmd0aCB9fTwvc3Bhbj48L25nLWNvbnRhaW5lclxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItc2VhcmNoXCIgKm5nSWY9XCJzZWFyY2hcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgIGljb249XCJmdG8tc2VhcmNoXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzb3VyY2Uuc2VhcmNoSW5wdXRcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hJbnB1dENoYW5nZShzb3VyY2UpXCJcclxuICAgICAgY2xlYXJhYmxlXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PiAtLT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc291cmNlTm9kZVRwbCBsZXQtbm9kZT1cIm5vZGVcIiBsZXQtc291cmNlPVwic291cmNlXCI+XHJcbiAgPHgtY2hlY2tib3hcclxuICAgIFtkYXRhXT1cIlt7IGlkOiBub2RlLmlkLCBsYWJlbDogbm9kZVRwbCA/IG5vZGVUcGwgOiBub2RlLmxhYmVsLCBub2RlOiBub2RlIH1dXCJcclxuICAgIFtkaXNhYmxlZF09XCJub2RlLmRpc2FibGVkXCJcclxuICAgIFsobmdNb2RlbCldPVwibm9kZS5jaGVja2VkXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrZWRDaGFuZ2UoJGV2ZW50LCBzb3VyY2UpXCJcclxuICA+PC94LWNoZWNrYm94PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
491
+ args: [{ selector: `${XTransferPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTransferComponent)], template: "<div #transfer class=\"x-transfer\" cdkDropListGroup [ngClass]=\"classMap\">\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: left }\"></ng-container>\r\n <div [ngStyle]=\"left.listStyle!\" class=\"x-transfer-list\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <ul\r\n *ngSwitchCase=\"'list'\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"left.list\"\r\n [cdkDropListDisabled]=\"!drag && type === 'list'\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of left.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: left }\"></ng-container>\r\n </li>\r\n </ul>\r\n <x-tree\r\n *ngSwitchCase=\"'tree'\"\r\n [data]=\"left.list!\"\r\n multiple\r\n allowManyActivated\r\n [(activatedId)]=\"treeActivatedId\"\r\n (nodeClick)=\"onTreeNodeClick($event)\"\r\n ></x-tree>\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns!\"\r\n [(size)]=\"tableSize\"\r\n [(index)]=\"tableIndex\"\r\n (indexChange)=\"getTableData()\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, left)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, left)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"x-transfer-buttons\">\r\n <x-button type=\"primary\" icon=\"fto-chevron-right\" [disabled]=\"left.disabledButton\" (click)=\"move(left, right)\"></x-button>\r\n <x-button type=\"primary\" icon=\"fto-chevron-left\" [disabled]=\"right.disabledButton\" (click)=\"move(right, left)\"></x-button>\r\n </div>\r\n <div class=\"x-transfer-box\">\r\n <ng-container *ngTemplateOutlet=\"sourceTitleTpl; context: { source: right }\"></ng-container>\r\n <div [ngSwitch]=\"type\" [ngStyle]=\"right.listStyle!\" class=\"x-transfer-list\">\r\n <x-table\r\n *ngSwitchCase=\"'table'\"\r\n [data]=\"right.list!\"\r\n [columns]=\"tableColumns!\"\r\n (activatedRowChange)=\"onTableCheckedRow($event, right)\"\r\n (headCheckboxChange)=\"onTableCheckedAll($event, right)\"\r\n hiddenWrapBorder\r\n hiddenPaginationBorder\r\n showPagination=\"false\"\r\n showEllipsis=\"false\"\r\n showTotal=\"false\"\r\n paginationPosition=\"bottom-center\"\r\n allowSelectRow=\"false\"\r\n ></x-table>\r\n <ul\r\n *ngSwitchDefault\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListData]=\"right.list\"\r\n [cdkDropListDisabled]=\"!drag || (drag && type !== 'list')\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n class=\"x-transfer-droplist\"\r\n >\r\n <li class=\"x-transfer-item\" *ngFor=\"let node of right.list; trackBy: trackByNode\" cdkDrag [cdkDragData]=\"node\">\r\n <ng-container *ngTemplateOutlet=\"sourceNodeTpl; context: { node: node, source: right }\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #sourceTitleTpl let-source=\"source\">\r\n <div class=\"x-transfer-title\">\r\n <x-checkbox\r\n *ngIf=\"source.title && !source.hiddenCheckAll\"\r\n [data]=\"[titleTpl ? '' : source.title]\"\r\n [(ngModel)]=\"source.checkedAll\"\r\n (ngModelChange)=\"checkedAllChange($event, source)\"\r\n [indeterminate]=\"source.indeterminate\"\r\n ></x-checkbox>\r\n <span *ngIf=\"source.title && source.hiddenCheckAll\">{{ source.title }}</span>\r\n <ng-container *xOutlet=\"titleTpl; context: { $title: source.title, $checkedCount: source.checkedCount, $count: source.count }\"\r\n ><span class=\"x-transfer-total\">{{ source.checkedCount }} / {{ source.count }}</span></ng-container\r\n >\r\n </div>\r\n <!-- <div class=\"x-transfer-search\" *ngIf=\"search\">\r\n <x-input\r\n icon=\"fto-search\"\r\n [(ngModel)]=\"source.searchInput\"\r\n (ngModelChange)=\"searchInputChange(source)\"\r\n clearable\r\n ></x-input>\r\n </div> -->\r\n</ng-template>\r\n\r\n<ng-template #sourceNodeTpl let-node=\"node\" let-source=\"source\">\r\n <x-checkbox\r\n [data]=\"[{ id: node.id, label: nodeTpl ? nodeTpl : node.label, node: node }]\"\r\n [disabled]=\"node.disabled\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"checkedChange($event, source)\"\r\n ></x-checkbox>\r\n</ng-template>\r\n", styles: [".x-transfer{margin:0;padding:0;display:inline-flex;align-items:center}.x-transfer-title{padding:.25rem .5625rem;display:flex;align-items:center;justify-content:space-between;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top-left-radius:var(--x-border-radius);border-top-right-radius:var(--x-border-radius);border-bottom:none;background-color:var(--x-background);color:var(--x-text-300)}.x-transfer-total{margin-left:.325rem}.x-transfer-list{display:flex;flex-direction:column;height:18rem;width:12rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom-left-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius);overflow:auto}.x-transfer-item{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-transfer-droplist{height:100%;padding:.25rem}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:hover{background-color:transparent}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item.cdk-drag-placeholder{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-transfer-droplist.cdk-drop-list-dragging .x-transfer-item:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-transfer-buttons{margin:0 1rem;display:flex;flex-direction:column}.x-transfer-buttons>x-button:not(:first-child){margin-top:.5rem}.x-transfer-search{padding:.5rem;border-bottom:.0625rem solid var(--x-border)}body>li.x-transfer-item.cdk-drag-preview{padding:.125rem .25rem;border-radius:var(--x-border-radius);display:flex;align-items:center;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>li.x-transfer-item.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
492
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: i2.XI18nService }]; } });
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdHJhbnNmZXIvdHJhbnNmZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWtDLGlCQUFpQixFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hILE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFFUixPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsRUFFWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUF3QixNQUFNLHdCQUF3QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYXZELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFpRHZELFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDYixHQUFzQixFQUMvQixhQUE2QixFQUM3QixJQUFrQjtRQUV6QixLQUFLLEVBQUUsQ0FBQztRQU5ELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNiLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFjO1FBckQzQixVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUM1QixTQUFJLEdBQW9CO1lBQ3RCLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLEVBQUU7WUFDZCxZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLGNBQWMsRUFBRSxJQUFJO1NBQ3JCLENBQUM7UUFDRixVQUFLLEdBQW9CO1lBQ3ZCLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLEVBQUU7WUFDZCxZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLGNBQWMsRUFBRSxJQUFJO1NBQ3JCLENBQUM7UUFDRixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQWtCLEVBQUUsQ0FBQztRQVFuQixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN6QyxvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQW9CLEVBQUUsQ0FBQztRQUVoQyxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQTRCdEIsQ0FBQztJQXZDRCxJQUFZLFVBQVU7UUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQzlCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQU1RLFVBQVUsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzthQUMzQjtTQUNGO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjtJQUNILENBQUM7SUFZRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7YUFDbkIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQXlCLENBQUMsRUFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDekIsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBdUI7UUFDdkMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWUsRUFBRSxNQUF1QjtRQUN2RCxJQUFJLElBQUksR0FBcUIsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqRyxDQUFDLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUNuQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTtZQUN2RCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMxSDtRQUNELE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsTUFBTSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFlLEVBQUUsTUFBdUI7UUFDcEQsSUFBSSxDQUFDLE1BQU07WUFBRyxNQUFNLENBQUMsWUFBdUIsRUFBRSxDQUFDOztZQUN6QyxNQUFNLENBQUMsWUFBdUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFxQixFQUFFLEVBQW1CO1FBQzdDLElBQUksSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBQ2hDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQXFCLEVBQUUsRUFBbUI7UUFDekQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBVyxDQUFDO1lBQzlDLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFLLEVBQUUsRUFBRSxDQUFDLElBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQztRQUM1QixFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxRQUFRLENBQUMsSUFBcUIsRUFBRSxFQUFtQjtRQUN6RCxJQUFJLFlBQVksR0FBb0IsRUFBRSxDQUFDO1FBQ3ZDLElBQUksRUFBRSxDQUFDLFNBQVMsS0FBSyxPQUFPLEVBQUU7WUFDNUIsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFDO1lBQ2hJLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFZLEVBQUUsRUFBRTtnQkFDcEMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLENBQ2QsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBQ0wsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQVEsQ0FBQyxDQUFDO1lBQ3JFLEtBQUssSUFBSSxJQUFJLElBQUksWUFBWSxFQUFFO2dCQUM3QixJQUFJLElBQUksR0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFFLENBQUM7Z0JBQzlELElBQUksSUFBSSxFQUFFO29CQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztvQkFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2pFLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTt3QkFDWixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ3JDO29CQUNELElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUM5QjthQUNGO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDcEM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFxQixFQUFFLEVBQW1CO1FBQzFELElBQUksWUFBWSxHQUFvQixFQUFFLENBQUM7UUFDdkMsSUFBSSxFQUFFLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRTtZQUM1QixZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLENBQUM7WUFDbkUsRUFBRSxDQUFDLElBQUksR0FBRztnQkFDUixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDeEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNyQixDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDbEIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ2pCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUNyQixHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDcEIsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQyxDQUFDO2dCQUNGLEdBQUcsRUFBRSxDQUFDLElBQUs7YUFDWixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsT0FBUSxDQUFDLENBQUM7WUFDckUsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLElBQUssRUFBRTtnQkFDekIsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2lCQUN2QjthQUNGO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFLLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQW9EO1FBQzFELE1BQU0sRUFBRSxHQUFHLEtBQXFDLENBQUM7UUFDakQsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRTtZQUN6QyxlQUFlLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDdkU7YUFBTTtZQUNMLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBNEI7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLElBQW1CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQXNCLE1BQU0sRUFBRSxHQUFHLE9BQTBCO1FBQ3RFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDL0Q7U0FDRjthQUFNLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUMzQixLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTtvQkFDL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7aUJBQy9EO3FCQUFNO29CQUNMLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztpQkFDL0Q7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFnQjtRQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBa0IsRUFBRSxNQUF1QjtRQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUFFLE9BQU87UUFDdEMsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQyxHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBZ0MsRUFBRSxNQUF1QjtRQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUFFLE9BQU87UUFDdEMsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQyxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2FBQ3hCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQUUsT0FBTztRQUNqRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQUcsT0FBMEI7UUFDakQsS0FBSyxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7WUFDMUIsSUFBSyxNQUFNLENBQUMsWUFBdUIsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksTUFBTSxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUMxRSxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDMUI7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQzFCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2lCQUM3QjthQUNGO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixNQUFNLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzthQUM5QjtTQUNGO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUFzQixNQUFNLEVBQUUsR0FBRyxPQUEwQjtRQUNqRixLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDbkY7aUJBQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUMxQixNQUFNLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUN2QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzdGLENBQUMsTUFBTSxDQUFDO2FBQ1Y7U0FDRjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxHQUFHLE9BQTBCO1FBQ3JELEtBQUssSUFBSSxNQUFNLElBQUksT0FBTztZQUFFLE1BQU0sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVPLFFBQVE7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBQztTQUNqRDtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBRyxRQUEyQjtRQUNsRCxxQkFBcUI7UUFDckIsa0NBQWtDO1FBQ2xDLDBDQUEwQztRQUMxQyxtRUFBbUU7UUFDbkUsUUFBUTtRQUNSLE1BQU07UUFDTixJQUFJO0lBQ04sQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1I7UUFDRCxRQUFRLENBQWdCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sT0FBTyxDQUFDLElBQXFCO1FBQ25DLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFDM0IsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pCLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQzVFO3FCQUFNO29CQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xDO2dCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSzt5QkFDekIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDVCxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ25CLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNwQixHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQzt3QkFDckIsT0FBTyxHQUFHLENBQUM7b0JBQ2IsQ0FBQyxDQUFDLENBQUM7aUJBQ047Z0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTt3QkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUc7NEJBQ2hCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQ0FDdEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dDQUNuQixHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQ0FDckIsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0NBQ3BCLE9BQU8sR0FBRyxDQUFDOzRCQUNiLENBQUMsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ25DO2lCQUNGO2dCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsTUFBTTtTQUNUO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQTZCLEVBQUUsRUFBRTtnQkFDcEgsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBTSxDQUFDO2dCQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUMxQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWMsQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUN0QjtRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUFFLE9BQU87UUFDckMsSUFBSSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzFCLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzQzthQUFNLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN6QyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQXFCLENBQUM7U0FDckM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4QyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQzNCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3hDLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7WUFBRSxPQUFPO1FBQzFDLElBQUksSUFBSSxDQUFDLGNBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvSCxJQUFJLElBQUksQ0FBQyxjQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEksSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOztrSUE3ZFUsa0JBQWtCO3NIQUFsQixrQkFBa0IscUNBRmxCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsc0VDeENqRCx1Z0tBcUhBOzJGRDNFYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUcmFuc2ZlclByZWZpeCwgWFRyYW5zZmVyTm9kZSwgWFRyYW5zZmVyU291cmNlLCBYVHJhbnNmZXJQcm9wZXJ0eSwgWFRyYW5zZmVyVHlwZSB9IGZyb20gJy4vdHJhbnNmZXIucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0NoYW5nZSxcclxuICBYSXNFbXB0eSxcclxuICBYU2V0RGF0YSxcclxuICBYQ29uZmlnU2VydmljZSxcclxuICBYUmVtb3ZlLFxyXG4gIFhJc0FycmF5LFxyXG4gIFhJc09iamVjdCxcclxuICBYSXNPYmplY3RBcnJheSxcclxuICBYSXNCb29sZWFuLFxyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhSZXN1bHRMaXN0XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHRyYW5zZmVyQXJyYXlJdGVtLCBtb3ZlSXRlbUluQXJyYXksIENka0RyYWdEcm9wLCBDZGtEcmFnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyYW5zZmVyIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVGFibGVDb2x1bW4gfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyYW5zZmVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFRyYW5zZmVyQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhUcmFuc2ZlckNvbXBvbmVudCBleHRlbmRzIFhUcmFuc2ZlclByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbm9kZXM6IFhUcmFuc2Zlck5vZGVbXSA9IFtdO1xyXG4gIGxlZnQ6IFhUcmFuc2ZlclNvdXJjZSA9IHtcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgc2VhcmNoTGlzdDogW10sXHJcbiAgICBjaGVja2VkQ291bnQ6IDAsXHJcbiAgICBkaXJlY3Rpb246ICdsZWZ0JyxcclxuICAgIGRpc2FibGVkQnV0dG9uOiB0cnVlXHJcbiAgfTtcclxuICByaWdodDogWFRyYW5zZmVyU291cmNlID0ge1xyXG4gICAgbGlzdDogW10sXHJcbiAgICBzZWFyY2hMaXN0OiBbXSxcclxuICAgIGNoZWNrZWRDb3VudDogMCxcclxuICAgIGRpcmVjdGlvbjogJ3JpZ2h0JyxcclxuICAgIGRpc2FibGVkQnV0dG9uOiB0cnVlXHJcbiAgfTtcclxuICBzZWFyY2hJbnB1dDogc3RyaW5nID0gJyc7XHJcbiAgbG9jYWxlOiBYSTE4blRyYW5zZmVyID0ge307XHJcbiAgcHJpdmF0ZSBnZXQgbG9jYWxUaXRsZSgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0cmVlJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUudHJlZVRpdGxlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLmxpc3RUaXRsZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICB0cmVlQWN0aXZhdGVkSWQ6IGFueVtdID0gW107XHJcbiAgdGFibGVEYXRhOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICB0YWJsZUNoZWNrYm94Q29sdW1uPzogWFRhYmxlQ29sdW1uO1xyXG4gIGlzT2JqZWN0QXJyYXkgPSBmYWxzZTtcclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIGlmIChYSXNPYmplY3RBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlzT2JqZWN0QXJyYXkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QodGhpcy5ub2Rlcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWVzKCkge1xyXG4gICAgaWYgKHRoaXMuaXNPYmplY3RBcnJheSkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgICB0aGlzLnNldExpc3RTdHlsZSgpO1xyXG4gICAgdGhpcy5zZXRIaWRkZW5DaGVja0FsbCgpO1xyXG4gICAgdGhpcy5nZXRUYWJsZUNoZWNrQ29sdW1uKCk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC50cmFuc2ZlciBhcyBYSTE4blRyYW5zZmVyKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgWElzRW1wdHkodGhpcy50aXRsZXMpICYmIHRoaXMuc2V0VGl0bGVzKCk7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hJbnB1dENoYW5nZShzb3VyY2U6IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgc291cmNlLmxpc3QgPSBzb3VyY2Uuc2VhcmNoTGlzdD8uZmlsdGVyKCh4KSA9PiB4LmxhYmVsLmluZGV4T2Yoc291cmNlLnNlYXJjaElucHV0KSA+PSAwKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrZWRBbGxDaGFuZ2UoJGV2ZW50OiBib29sZWFuLCBzb3VyY2U6IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGxpc3Q6IFhUcmFuc2Zlck5vZGVbXSA9IChzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkgYXMgWFRyYW5zZmVyTm9kZVtdKS5tYXAoKHgpID0+IHtcclxuICAgICAgeC5jaGVja2VkID0gJGV2ZW50O1xyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RyZWUnICYmIHNvdXJjZS5kaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9ICRldmVudCA/IHNvdXJjZS5saXN0IS5tYXAoKHgpID0+IHguaWQpISA6IHNvdXJjZS5saXN0IS5maWx0ZXIoKHgpID0+IHguZGlzYWJsZWQpLm1hcCgoeCkgPT4geC5pZCk7XHJcbiAgICB9XHJcbiAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gJGV2ZW50ID8gbGlzdC5sZW5ndGggOiAwO1xyXG4gICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSAkZXZlbnQ7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja2VkQ2hhbmdlKCRldmVudDogYm9vbGVhbiwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghJGV2ZW50KSAoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpLS07XHJcbiAgICBlbHNlIChzb3VyY2UuY2hlY2tlZENvdW50IGFzIG51bWJlcikrKztcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZShmcm9tOiBYVHJhbnNmZXJTb3VyY2UsIHRvOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmIChmcm9tLmRpc2FibGVkQnV0dG9uKSByZXR1cm47XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlICdsaXN0JzpcclxuICAgICAgICB0aGlzLm1vdmVMaXN0KGZyb20sIHRvKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndHJlZSc6XHJcbiAgICAgICAgdGhpcy5tb3ZlVHJlZShmcm9tLCB0byk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RhYmxlJzpcclxuICAgICAgICB0aGlzLm1vdmVUYWJsZShmcm9tLCB0byk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vdmVMaXN0KGZyb206IFhUcmFuc2ZlclNvdXJjZSwgdG86IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpITtcclxuICAgIGxldCBqID0gMDtcclxuICAgIGNoZWNrZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gZnJvbS5saXN0Py5pbmRleE9mKHgpIGFzIG51bWJlcjtcclxuICAgICAgeC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGZyb20ubGlzdCEsIHRvLmxpc3QhLCBpbmRleCwgaik7XHJcbiAgICAgIGorKztcclxuICAgIH0pO1xyXG4gICAgZnJvbS5saXN0ID0gWy4uLmZyb20ubGlzdCFdO1xyXG4gICAgdG8ubGlzdCA9IFsuLi50by5saXN0IV07XHJcbiAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0TGlzdENvdW50KCdsaXN0JywgZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQWxsKGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVRyZWUoZnJvbTogWFRyYW5zZmVyU291cmNlLCB0bzogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBsZXQgY2hlY2tlZEl0ZW1zOiBYVHJhbnNmZXJOb2RlW10gPSBbXTtcclxuICAgIGlmICh0by5kaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgY2hlY2tlZEl0ZW1zID0gZnJvbS5saXN0Py5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkICYmICFYSXNFbXB0eSh0aGlzLnRyZWVBY3RpdmF0ZWRJZCkgJiYgdGhpcy50cmVlQWN0aXZhdGVkSWQuaW5jbHVkZXMoeC5pZCkpITtcclxuICAgICAgY2hlY2tlZEl0ZW1zLmZvckVhY2goKHg6IFhUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAgIHguZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHguY2hhbmdlICYmIHguY2hhbmdlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0by5saXN0Py51bnNoaWZ0KFxyXG4gICAgICAgIC4uLmNoZWNrZWRJdGVtcy5tYXAoKHgpID0+IHtcclxuICAgICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgIHJlcy5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICByZXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RyZWUnLCBmcm9tKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ2xpc3QnLCB0byk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGVja2VkSXRlbXMgPSBYUmVtb3ZlKGZyb20ubGlzdCEsICh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQhKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBjaGVja2VkSXRlbXMpIHtcclxuICAgICAgICBsZXQgbm9kZTogWFRyZWVOb2RlID0gdG8ubGlzdD8uZmluZCgoeCkgPT4geC5pZCA9PT0gaXRlbS5pZCkhO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICBub2RlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIG5vZGUuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMudHJlZUFjdGl2YXRlZElkLmZpbmRJbmRleCgoeCkgPT4geCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgICAgICBpZiAoaWR4ID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBub2RlLmNoYW5nZSAmJiBub2RlLmNoYW5nZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgndHJlZScsIHRvKTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ2xpc3QnLCBmcm9tKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChmcm9tLCB0byk7XHJcbiAgICB0aGlzLnNldExpc3RDb3VudCgnbGlzdCcsIGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVRhYmxlKGZyb206IFhUcmFuc2ZlclNvdXJjZSwgdG86IFhUcmFuc2ZlclNvdXJjZSkge1xyXG4gICAgbGV0IGNoZWNrZWRJdGVtczogWFRyYW5zZmVyTm9kZVtdID0gW107XHJcbiAgICBpZiAodG8uZGlyZWN0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgIGNoZWNrZWRJdGVtcyA9IGZyb20ubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpITtcclxuICAgICAgdG8ubGlzdCA9IFtcclxuICAgICAgICAuLi5jaGVja2VkSXRlbXMubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgIHguZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgeC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgIHJlcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgLi4udG8ubGlzdCFcclxuICAgICAgXTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSBbLi4uZnJvbS5saXN0IV07XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCd0YWJsZScsIGZyb20pO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIHRvKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNoZWNrZWRJdGVtcyA9IFhSZW1vdmUoZnJvbS5saXN0ISwgKHgpID0+ICF4LmRpc2FibGVkICYmIHguY2hlY2tlZCEpO1xyXG4gICAgICBjb25zdCBpZHMgPSBjaGVja2VkSXRlbXMubWFwKCh4KSA9PiB4LmlkKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiB0by5saXN0ISkge1xyXG4gICAgICAgIGlmIChpZHMuaW5jbHVkZXMoaXRlbS5pZCkpIHtcclxuICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBmcm9tLmxpc3QgPSBbLi4uZnJvbS5saXN0IV07XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gWy4uLnRvLmxpc3QhXTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RhYmxlJywgdG8pO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRDb3VudCgnbGlzdCcsIGZyb20pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0Q291bnQoJ3RhYmxlJywgZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQWxsKGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQoZnJvbSwgdG8pO1xyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KGZyb20sIHRvKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGRyb3BDZGsoZXZlbnQ6IENka0RyYWdEcm9wPFhUcmFuc2Zlck5vZGVbXSB8IHVuZGVmaW5lZCwgYW55Pikge1xyXG4gICAgY29uc3QgZXYgPSBldmVudCBhcyBDZGtEcmFnRHJvcDxYVHJhbnNmZXJOb2RlW10+O1xyXG4gICAgaWYgKGV2LnByZXZpb3VzQ29udGFpbmVyID09PSBldi5jb250YWluZXIpIHtcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2LmNvbnRhaW5lci5kYXRhLCBldi5wcmV2aW91c0luZGV4LCBldi5jdXJyZW50SW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZXYucHJldmlvdXNDb250YWluZXIuZGF0YSwgZXYuY29udGFpbmVyLmRhdGEsIGV2LnByZXZpb3VzSW5kZXgsIGV2LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCdsaXN0JywgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkQWxsKHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgIHRoaXMuc2V0TGlzdENvdW50KCdsaXN0JywgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWFyY2hMaXN0KHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVkaWNhdGUoaXRlbTogQ2RrRHJhZzxYVHJhbnNmZXJOb2RlPikge1xyXG4gICAgcmV0dXJuICFpdGVtLmRhdGEuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFRyYW5zZmVyTm9kZSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0Q291bnQodHlwZTogWFRyYW5zZmVyVHlwZSA9ICdsaXN0JywgLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGlmIChbJ2xpc3QnLCAndHJlZSddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgc291cmNlLmNvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndGFibGUnKSB7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgaWYgKHNvdXJjZS5kaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgc291cmNlLmNvdW50ID0gdGhpcy50YWJsZVRvdGFsIC0gdGhpcy5yaWdodC5saXN0IS5sZW5ndGggfHwgMDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc291cmNlLmNvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVHJlZU5vZGVDbGljayhfbm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICB0aGlzLnNldENoZWNrZWRDb3VudCgndHJlZScsIHRoaXMubGVmdCk7XHJcbiAgICB0aGlzLnNldENoZWNrZWRBbGwodGhpcy5sZWZ0KTtcclxuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQodGhpcy5sZWZ0KTtcclxuICB9XHJcblxyXG4gIG9uVGFibGVDaGVja2VkUm93KHJvdzogWFRyYW5zZmVyTm9kZSwgc291cmNlOiBYVHJhbnNmZXJTb3VyY2UpIHtcclxuICAgIGlmICghdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uKSByZXR1cm47XHJcbiAgICBsZXQgY2hlY2tlZCA9IHJvd1t0aGlzLnRhYmxlQ2hlY2tib3hDb2x1bW4uaWRdO1xyXG4gICAgcm93LmNoZWNrZWQgPSBjaGVja2VkO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkQ291bnQoJ3RhYmxlJywgc291cmNlKTtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZEFsbChzb3VyY2UpO1xyXG4gICAgdGhpcy5zZXRCdXR0b25EaXNhYmxlZChzb3VyY2UpO1xyXG4gIH1cclxuXHJcbiAgb25UYWJsZUNoZWNrZWRBbGwocm93OiB7IFtwcm9wOiBzdHJpbmddOiBib29sZWFuIH0sIHNvdXJjZTogWFRyYW5zZmVyU291cmNlKSB7XHJcbiAgICBpZiAoIXRoaXMudGFibGVDaGVja2JveENvbHVtbikgcmV0dXJuO1xyXG4gICAgbGV0IGNoZWNrZWQgPSByb3dbdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uLmlkXTtcclxuICAgIGZvciAobGV0IGl0ZW0gb2Ygc291cmNlLmxpc3QhKSB7XHJcbiAgICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0Q2hlY2tlZENvdW50KCd0YWJsZScsIHNvdXJjZSk7XHJcbiAgICB0aGlzLnNldEJ1dHRvbkRpc2FibGVkKHNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRhYmxlQ2hlY2tDb2x1bW4oKSB7XHJcbiAgICBpZiAodGhpcy50eXBlICE9PSAndGFibGUnIHx8IFhJc0VtcHR5KHRoaXMudGFibGVDb2x1bW5zKSkgcmV0dXJuO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrYm94Q29sdW1uID0gdGhpcy50YWJsZUNvbHVtbnM/LmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENoZWNrZWRBbGwoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmICgoc291cmNlLmNoZWNrZWRDb3VudCBhcyBudW1iZXIpID4gMCkge1xyXG4gICAgICAgIGlmIChzb3VyY2UuY2hlY2tlZENvdW50ID09PSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICBzb3VyY2UuY2hlY2tlZEFsbCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgICBzb3VyY2UuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvdXJjZS5jaGVja2VkQWxsID0gZmFsc2U7XHJcbiAgICAgICAgc291cmNlLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDaGVja2VkQ291bnQodHlwZTogWFRyYW5zZmVyVHlwZSA9ICdsaXN0JywgLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGlmIChbJ3RhYmxlJywgJ2xpc3QnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgIHNvdXJjZS5jaGVja2VkQ291bnQgPSBzb3VyY2UubGlzdD8uZmlsdGVyKCh4KSA9PiAheC5kaXNhYmxlZCAmJiB4LmNoZWNrZWQpLmxlbmd0aDtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAndHJlZScpIHtcclxuICAgICAgICBzb3VyY2UuY2hlY2tlZENvdW50ID0gc291cmNlLmxpc3Q/LmZpbHRlcihcclxuICAgICAgICAgICh4KSA9PiAheC5kaXNhYmxlZCAmJiAhWElzRW1wdHkodGhpcy50cmVlQWN0aXZhdGVkSWQpICYmIHRoaXMudHJlZUFjdGl2YXRlZElkLmluY2x1ZGVzKHguaWQpXHJcbiAgICAgICAgKS5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QnV0dG9uRGlzYWJsZWQoLi4uc291cmNlczogWFRyYW5zZmVyU291cmNlW10pIHtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSBzb3VyY2UuZGlzYWJsZWRCdXR0b24gPSBzb3VyY2UuY2hlY2tlZENvdW50ID09PSAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLmlzT2JqZWN0QXJyYXkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucmlnaHQubGlzdCE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yaWdodC5saXN0Py5tYXAoKHgpID0+IHguaWQpITtcclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlYXJjaExpc3QoLi4uX3NvdXJjZXM6IFhUcmFuc2ZlclNvdXJjZVtdKSB7XHJcbiAgICAvLyBpZiAodGhpcy5zZWFyY2gpIHtcclxuICAgIC8vICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZXMpIHtcclxuICAgIC8vICAgICBpZiAoWElzRW1wdHkoc291cmNlLnNlYXJjaElucHV0KSkge1xyXG4gICAgLy8gICAgICAgc291cmNlLnNlYXJjaExpc3QgPSBbLi4uKHNvdXJjZS5saXN0IGFzIFhUcmFuc2Zlck5vZGVbXSldO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RhYmxlJykge1xyXG4gICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBYU2V0RGF0YTxYVHJhbnNmZXJOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0TGlzdCh4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRMaXN0KGRhdGE6IFhUcmFuc2Zlck5vZGVbXSkge1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpKSByZXR1cm47XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlICdsaXN0JzpcclxuICAgICAgICB0aGlzLm5vZGVzID0gZGF0YTtcclxuICAgICAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWVzKSkge1xyXG4gICAgICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSB0aGlzLm5vZGVzLmZpbHRlcigoeCkgPT4gdGhpcy52YWx1ZXMuaW5kZXhPZih4LmlkKSA8IDApO1xyXG4gICAgICAgICAgdGhpcy5yaWdodC5saXN0ID0gdGhpcy5ub2Rlcy5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWVzLmluZGV4T2YoeC5pZCkgPj0gMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubGVmdC5saXN0ID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldExpc3RDb3VudCh0aGlzLnR5cGUsIHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RyZWUnOlxyXG4gICAgICAgIHRoaXMubm9kZXMgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuc2V0VHJlZU5vZGVEaXNhYmxlZCgpO1xyXG4gICAgICAgIHRoaXMubGVmdC5saXN0ID0gWy4uLnRoaXMubm9kZXNdO1xyXG4gICAgICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZXMpKSB7XHJcbiAgICAgICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSB0aGlzLm5vZGVzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHRoaXMudmFsdWVzLmluZGV4T2YoeC5pZCkgPj0gMClcclxuICAgICAgICAgICAgLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCByZXMgPSB7IC4uLnggfTtcclxuICAgICAgICAgICAgICByZXMuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHJlcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFNlYXJjaExpc3QodGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldExpc3RDb3VudCh0aGlzLnR5cGUsIHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RhYmxlJzpcclxuICAgICAgICB0aGlzLm5vZGVzID0gZGF0YTtcclxuICAgICAgICB0aGlzLnNldFRhYmxlRGF0YURpc2FibGVkKCk7XHJcbiAgICAgICAgdGhpcy5sZWZ0Lmxpc3QgPSBbLi4udGhpcy5ub2Rlc107XHJcbiAgICAgICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmlzT2JqZWN0QXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5yaWdodC5saXN0ID0gW1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzID0geyAuLi54IH07XHJcbiAgICAgICAgICAgICAgICByZXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJlcy5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJpZ2h0Lmxpc3QgPSBbLi4udGhpcy52YWx1ZV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U2VhcmNoTGlzdCh0aGlzLmxlZnQsIHRoaXMucmlnaHQpO1xyXG4gICAgICAgIHRoaXMuc2V0TGlzdENvdW50KHRoaXMudHlwZSwgdGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldFRhYmxlRGF0YSgpIHtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmRhdGEpKSB7XHJcbiAgICAgICh0aGlzLmRhdGEgYXMgRnVuY3Rpb24pKHRoaXMudGFibGVJbmRleCwgdGhpcy50YWJsZVNpemUsIHRoaXMudGFibGVRdWVyeSkuc3Vic2NyaWJlKCh4OiBYUmVzdWx0TGlzdDxYVHJhbnNmZXJOb2RlPikgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGVUb3RhbCA9IHgudG90YWwhO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0geC5saXN0ITtcclxuICAgICAgICB0aGlzLnNldExpc3QoeC5saXN0ISk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUaXRsZXMoKSB7XHJcbiAgICBsZXQgdGl0bGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMudGl0bGVzKSkge1xyXG4gICAgICB0aXRsZXMgPSBbdGhpcy5sb2NhbFRpdGxlISwgdGhpcy5sb2NhbGUuc2VsZWN0ZWRUaXRsZSFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGl0bGVzID0gdGhpcy50aXRsZXM7XHJcbiAgICB9XHJcbiAgICBpZiAodGl0bGVzLmxlbmd0aCA+IDApIHRoaXMubGVmdC50aXRsZSA9IHRpdGxlc1swXTtcclxuICAgIGlmICh0aXRsZXMubGVuZ3RoID4gMSkgdGhpcy5yaWdodC50aXRsZSA9IHRpdGxlc1sxXTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdFN0eWxlKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMubGlzdFN0eWxlKSkgcmV0dXJuO1xyXG4gICAgbGV0IHN0eWxlczogb2JqZWN0W10gPSBbXTtcclxuICAgIGlmIChYSXNPYmplY3QodGhpcy5saXN0U3R5bGUpKSB7XHJcbiAgICAgIHN0eWxlcyA9IFt0aGlzLmxpc3RTdHlsZSwgdGhpcy5saXN0U3R5bGVdO1xyXG4gICAgfSBlbHNlIGlmIChYSXNPYmplY3RBcnJheSh0aGlzLmxpc3RTdHlsZSkpIHtcclxuICAgICAgc3R5bGVzID0gdGhpcy5saXN0U3R5bGUgYXMgb2JqZWN0W107XHJcbiAgICB9XHJcbiAgICBpZiAoc3R5bGVzLmxlbmd0aCA+IDApIHRoaXMubGVmdC5saXN0U3R5bGUgPSBzdHlsZXNbMF07XHJcbiAgICBpZiAoc3R5bGVzLmxlbmd0aCA+IDEpIHRoaXMucmlnaHQubGlzdFN0eWxlID0gc3R5bGVzWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUcmVlTm9kZURpc2FibGVkKCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykgJiYgdGhpcy5ub2Rlcykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubm9kZXMpIHtcclxuICAgICAgICBsZXQgaGFzSW4gPSB0aGlzLnZhbHVlcy5pbmRleE9mKGl0ZW0uaWQpID49IDA7XHJcbiAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGhhc0luO1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGhhc0luO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRhYmxlRGF0YURpc2FibGVkKCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlcykgJiYgdGhpcy5ub2Rlcykge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubm9kZXMpIHtcclxuICAgICAgICBsZXQgaGFzSW4gPSB0aGlzLnZhbHVlcy5pbmRleE9mKGl0ZW0uaWQpID49IDA7XHJcbiAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGhhc0luO1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZCA9IGhhc0luO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEhpZGRlbkNoZWNrQWxsKCkge1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMuaGlkZGVuQ2hlY2tBbGwpKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5oaWRkZW5DaGVja0FsbCEubGVuZ3RoID4gMCAmJiBYSXNCb29sZWFuKHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzBdKSkgdGhpcy5sZWZ0LmhpZGRlbkNoZWNrQWxsID0gdGhpcy5oaWRkZW5DaGVja0FsbCFbMF07XHJcbiAgICBpZiAodGhpcy5oaWRkZW5DaGVja0FsbCEubGVuZ3RoID4gMSAmJiBYSXNCb29sZWFuKHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzFdKSkgdGhpcy5yaWdodC5oaWRkZW5DaGVja0FsbCA9IHRoaXMuaGlkZGVuQ2hlY2tBbGwhWzFdO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN0cmFuc2ZlciBjbGFzcz1cIngtdHJhbnNmZXJcIiBjZGtEcm9wTGlzdEdyb3VwIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItYm94XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlVGl0bGVUcGw7IGNvbnRleHQ6IHsgc291cmNlOiBsZWZ0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwibGVmdC5saXN0U3R5bGUhXCIgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gICAgICAgIDx1bFxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidsaXN0J1wiXHJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJsZWZ0Lmxpc3RcIlxyXG4gICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWcgJiYgdHlwZSA9PT0gJ2xpc3QnXCJcclxuICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cInByZWRpY2F0ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIngtdHJhbnNmZXItZHJvcGxpc3RcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cIngtdHJhbnNmZXItaXRlbVwiICpuZ0Zvcj1cImxldCBub2RlIG9mIGxlZnQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VOb2RlVHBsOyBjb250ZXh0OiB7IG5vZGU6IG5vZGUsIHNvdXJjZTogbGVmdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgICAgPHgtdHJlZVxyXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIid0cmVlJ1wiXHJcbiAgICAgICAgICBbZGF0YV09XCJsZWZ0Lmxpc3QhXCJcclxuICAgICAgICAgIG11bHRpcGxlXHJcbiAgICAgICAgICBhbGxvd01hbnlBY3RpdmF0ZWRcclxuICAgICAgICAgIFsoYWN0aXZhdGVkSWQpXT1cInRyZWVBY3RpdmF0ZWRJZFwiXHJcbiAgICAgICAgICAobm9kZUNsaWNrKT1cIm9uVHJlZU5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICA+PC94LXRyZWU+XHJcbiAgICAgICAgPHgtdGFibGVcclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIndGFibGUnXCJcclxuICAgICAgICAgIFtkYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnMhXCJcclxuICAgICAgICAgIFsoc2l6ZSldPVwidGFibGVTaXplXCJcclxuICAgICAgICAgIFsoaW5kZXgpXT1cInRhYmxlSW5kZXhcIlxyXG4gICAgICAgICAgKGluZGV4Q2hhbmdlKT1cImdldFRhYmxlRGF0YSgpXCJcclxuICAgICAgICAgIFtxdWVyeV09XCJ0YWJsZVF1ZXJ5XCJcclxuICAgICAgICAgIFt0b3RhbF09XCJ0YWJsZVRvdGFsXCJcclxuICAgICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRSb3coJGV2ZW50LCBsZWZ0KVwiXHJcbiAgICAgICAgICAoaGVhZENoZWNrYm94Q2hhbmdlKT1cIm9uVGFibGVDaGVja2VkQWxsKCRldmVudCwgbGVmdClcIlxyXG4gICAgICAgICAgaGlkZGVuV3JhcEJvcmRlclxyXG4gICAgICAgICAgaGlkZGVuUGFnaW5hdGlvbkJvcmRlclxyXG4gICAgICAgICAgc2hvd0VsbGlwc2lzPVwiZmFsc2VcIlxyXG4gICAgICAgICAgc2hvd1RvdGFsPVwiZmFsc2VcIlxyXG4gICAgICAgICAgcGFnaW5hdGlvblBvc2l0aW9uPVwiYm90dG9tLWNlbnRlclwiXHJcbiAgICAgICAgICBhbGxvd1NlbGVjdFJvdz1cImZhbHNlXCJcclxuICAgICAgICA+PC94LXRhYmxlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLWJ1dHRvbnNcIj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiIFtkaXNhYmxlZF09XCJsZWZ0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUobGVmdCwgcmlnaHQpXCI+PC94LWJ1dHRvbj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgW2Rpc2FibGVkXT1cInJpZ2h0LmRpc2FibGVkQnV0dG9uXCIgKGNsaWNrKT1cIm1vdmUocmlnaHQsIGxlZnQpXCI+PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC10cmFuc2Zlci1ib3hcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VUaXRsZVRwbDsgY29udGV4dDogeyBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW25nU3dpdGNoXT1cInR5cGVcIiBbbmdTdHlsZV09XCJyaWdodC5saXN0U3R5bGUhXCIgY2xhc3M9XCJ4LXRyYW5zZmVyLWxpc3RcIj5cclxuICAgICAgPHgtdGFibGVcclxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3RhYmxlJ1wiXHJcbiAgICAgICAgW2RhdGFdPVwicmlnaHQubGlzdCFcIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cInRhYmxlQ29sdW1ucyFcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRSb3coJGV2ZW50LCByaWdodClcIlxyXG4gICAgICAgIChoZWFkQ2hlY2tib3hDaGFuZ2UpPVwib25UYWJsZUNoZWNrZWRBbGwoJGV2ZW50LCByaWdodClcIlxyXG4gICAgICAgIGhpZGRlbldyYXBCb3JkZXJcclxuICAgICAgICBoaWRkZW5QYWdpbmF0aW9uQm9yZGVyXHJcbiAgICAgICAgc2hvd1BhZ2luYXRpb249XCJmYWxzZVwiXHJcbiAgICAgICAgc2hvd0VsbGlwc2lzPVwiZmFsc2VcIlxyXG4gICAgICAgIHNob3dUb3RhbD1cImZhbHNlXCJcclxuICAgICAgICBwYWdpbmF0aW9uUG9zaXRpb249XCJib3R0b20tY2VudGVyXCJcclxuICAgICAgICBhbGxvd1NlbGVjdFJvdz1cImZhbHNlXCJcclxuICAgICAgPjwveC10YWJsZT5cclxuICAgICAgPHVsXHJcbiAgICAgICAgKm5nU3dpdGNoRGVmYXVsdFxyXG4gICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wQ2RrKCRldmVudClcIlxyXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwicmlnaHQubGlzdFwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWRyYWcgfHwgKGRyYWcgJiYgdHlwZSAhPT0gJ2xpc3QnKVwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwicHJlZGljYXRlXCJcclxuICAgICAgICBjbGFzcz1cIngtdHJhbnNmZXItZHJvcGxpc3RcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwieC10cmFuc2Zlci1pdGVtXCIgKm5nRm9yPVwibGV0IG5vZGUgb2YgcmlnaHQubGlzdDsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJub2RlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlTm9kZVRwbDsgY29udGV4dDogeyBub2RlOiBub2RlLCBzb3VyY2U6IHJpZ2h0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb3VyY2VUaXRsZVRwbCBsZXQtc291cmNlPVwic291cmNlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdHJhbnNmZXItdGl0bGVcIj5cclxuICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICpuZ0lmPVwic291cmNlLnRpdGxlICYmICFzb3VyY2UuaGlkZGVuQ2hlY2tBbGxcIlxyXG4gICAgICBbZGF0YV09XCJbdGl0bGVUcGwgPyAnJyA6IHNvdXJjZS50aXRsZV1cIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNvdXJjZS5jaGVja2VkQWxsXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tlZEFsbENoYW5nZSgkZXZlbnQsIHNvdXJjZSlcIlxyXG4gICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzb3VyY2UuaW5kZXRlcm1pbmF0ZVwiXHJcbiAgICA+PC94LWNoZWNrYm94PlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzb3VyY2UudGl0bGUgJiYgc291cmNlLmhpZGRlbkNoZWNrQWxsXCI+e3sgc291cmNlLnRpdGxlIH19PC9zcGFuPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRpdGxlVHBsOyBjb250ZXh0OiB7ICR0aXRsZTogc291cmNlLnRpdGxlLCAkY2hlY2tlZENvdW50OiBzb3VyY2UuY2hlY2tlZENvdW50LCAkY291bnQ6IHNvdXJjZS5jb3VudCB9XCJcclxuICAgICAgPjxzcGFuIGNsYXNzPVwieC10cmFuc2Zlci10b3RhbFwiPnt7IHNvdXJjZS5jaGVja2VkQ291bnQgfX0gLyB7eyBzb3VyY2UuY291bnQgfX08L3NwYW4+PC9uZy1jb250YWluZXJcclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJ4LXRyYW5zZmVyLXNlYXJjaFwiICpuZ0lmPVwic2VhcmNoXCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICBpY29uPVwiZnRvLXNlYXJjaFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic291cmNlLnNlYXJjaElucHV0XCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoSW5wdXRDaGFuZ2Uoc291cmNlKVwiXHJcbiAgICAgIGNsZWFyYWJsZVxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj4gLS0+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvdXJjZU5vZGVUcGwgbGV0LW5vZGU9XCJub2RlXCIgbGV0LXNvdXJjZT1cInNvdXJjZVwiPlxyXG4gIDx4LWNoZWNrYm94XHJcbiAgICBbZGF0YV09XCJbeyBpZDogbm9kZS5pZCwgbGFiZWw6IG5vZGVUcGwgPyBub2RlVHBsIDogbm9kZS5sYWJlbCwgbm9kZTogbm9kZSB9XVwiXHJcbiAgICBbZGlzYWJsZWRdPVwibm9kZS5kaXNhYmxlZFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cIm5vZGUuY2hlY2tlZFwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGVja2VkQ2hhbmdlKCRldmVudCwgc291cmNlKVwiXHJcbiAgPjwveC1jaGVja2JveD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19