kitchen-simulator 5.0.0-test.3 → 5.0.0-test.4

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 (694) hide show
  1. package/es/KitchenConfigurator.js +1 -1
  2. package/es/KitchenConfigurator.js.map +1 -1
  3. package/package.json +8 -12
  4. package/src/KitchenConfigurator.jsx +1 -1
  5. package/lib/@history.js +0 -11
  6. package/lib/@history.js.map +0 -1
  7. package/lib/AppContext.js +0 -11
  8. package/lib/AppContext.js.map +0 -1
  9. package/lib/KitchenConfigurator.js +0 -1353
  10. package/lib/KitchenConfigurator.js.map +0 -1
  11. package/lib/KitchenConfiguratorApp.js +0 -539
  12. package/lib/KitchenConfiguratorApp.js.map +0 -1
  13. package/lib/actions/area-actions.js +0 -22
  14. package/lib/actions/area-actions.js.map +0 -1
  15. package/lib/actions/export.js +0 -44
  16. package/lib/actions/export.js.map +0 -1
  17. package/lib/actions/groups-actions.js +0 -108
  18. package/lib/actions/groups-actions.js.map +0 -1
  19. package/lib/actions/holes-actions.js +0 -141
  20. package/lib/actions/holes-actions.js.map +0 -1
  21. package/lib/actions/items-actions.js +0 -365
  22. package/lib/actions/items-actions.js.map +0 -1
  23. package/lib/actions/lines-actions.js +0 -98
  24. package/lib/actions/lines-actions.js.map +0 -1
  25. package/lib/actions/project-actions.js +0 -333
  26. package/lib/actions/project-actions.js.map +0 -1
  27. package/lib/actions/scene-actions.js +0 -44
  28. package/lib/actions/scene-actions.js.map +0 -1
  29. package/lib/actions/user-actions.js +0 -69
  30. package/lib/actions/user-actions.js.map +0 -1
  31. package/lib/actions/vertices-actions.js +0 -36
  32. package/lib/actions/vertices-actions.js.map +0 -1
  33. package/lib/actions/viewer2d-actions.js +0 -74
  34. package/lib/actions/viewer2d-actions.js.map +0 -1
  35. package/lib/actions/viewer3d-actions.js +0 -33
  36. package/lib/actions/viewer3d-actions.js.map +0 -1
  37. package/lib/catalog/areas/area/planner-element.js +0 -47
  38. package/lib/catalog/areas/area/planner-element.js.map +0 -1
  39. package/lib/catalog/catalog.js +0 -283
  40. package/lib/catalog/catalog.js.map +0 -1
  41. package/lib/catalog/factories/area-factory-3d.js +0 -192
  42. package/lib/catalog/factories/area-factory-3d.js.map +0 -1
  43. package/lib/catalog/factories/area-factory.js +0 -90
  44. package/lib/catalog/factories/area-factory.js.map +0 -1
  45. package/lib/catalog/factories/export.js +0 -26
  46. package/lib/catalog/factories/export.js.map +0 -1
  47. package/lib/catalog/factories/wall-factory-3d.js +0 -213
  48. package/lib/catalog/factories/wall-factory-3d.js.map +0 -1
  49. package/lib/catalog/factories/wall-factory.js +0 -279
  50. package/lib/catalog/factories/wall-factory.js.map +0 -1
  51. package/lib/catalog/holes/door-closet/planner-element.js +0 -232
  52. package/lib/catalog/holes/door-closet/planner-element.js.map +0 -1
  53. package/lib/catalog/holes/door-double/planner-element.js +0 -325
  54. package/lib/catalog/holes/door-double/planner-element.js.map +0 -1
  55. package/lib/catalog/holes/door-exterior/planner-element.js +0 -225
  56. package/lib/catalog/holes/door-exterior/planner-element.js.map +0 -1
  57. package/lib/catalog/holes/door-interior/planner-element.js +0 -237
  58. package/lib/catalog/holes/door-interior/planner-element.js.map +0 -1
  59. package/lib/catalog/holes/door-panic/planner-element.js +0 -513
  60. package/lib/catalog/holes/door-panic/planner-element.js.map +0 -1
  61. package/lib/catalog/holes/door-panic-double/planner-element.js +0 -473
  62. package/lib/catalog/holes/door-panic-double/planner-element.js.map +0 -1
  63. package/lib/catalog/holes/door-sliding/planner-element.js +0 -235
  64. package/lib/catalog/holes/door-sliding/planner-element.js.map +0 -1
  65. package/lib/catalog/holes/doorway-framed/planner-element.js +0 -155
  66. package/lib/catalog/holes/doorway-framed/planner-element.js.map +0 -1
  67. package/lib/catalog/holes/doorway-frameless/planner-element.js +0 -114
  68. package/lib/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
  69. package/lib/catalog/holes/window-clear/planner-element.js +0 -176
  70. package/lib/catalog/holes/window-clear/planner-element.js.map +0 -1
  71. package/lib/catalog/holes/window-cross/planner-element.js +0 -175
  72. package/lib/catalog/holes/window-cross/planner-element.js.map +0 -1
  73. package/lib/catalog/holes/window-double-hung/planner-element.js +0 -313
  74. package/lib/catalog/holes/window-double-hung/planner-element.js.map +0 -1
  75. package/lib/catalog/holes/window-vertical/planner-element.js +0 -286
  76. package/lib/catalog/holes/window-vertical/planner-element.js.map +0 -1
  77. package/lib/catalog/lines/wall/planner-element.js +0 -77
  78. package/lib/catalog/lines/wall/planner-element.js.map +0 -1
  79. package/lib/catalog/molding/molding-dcm/planner-element.js +0 -39
  80. package/lib/catalog/molding/molding-dcm/planner-element.js.map +0 -1
  81. package/lib/catalog/molding/molding-fbm/planner-element.js +0 -39
  82. package/lib/catalog/molding/molding-fbm/planner-element.js.map +0 -1
  83. package/lib/catalog/molding/molding-lrm/planner-element.js +0 -39
  84. package/lib/catalog/molding/molding-lrm/planner-element.js.map +0 -1
  85. package/lib/catalog/properties/export.js +0 -82
  86. package/lib/catalog/properties/export.js.map +0 -1
  87. package/lib/catalog/properties/property-checkbox.js +0 -79
  88. package/lib/catalog/properties/property-checkbox.js.map +0 -1
  89. package/lib/catalog/properties/property-color.js +0 -47
  90. package/lib/catalog/properties/property-color.js.map +0 -1
  91. package/lib/catalog/properties/property-enum.js +0 -63
  92. package/lib/catalog/properties/property-enum.js.map +0 -1
  93. package/lib/catalog/properties/property-hidden.js +0 -27
  94. package/lib/catalog/properties/property-hidden.js.map +0 -1
  95. package/lib/catalog/properties/property-lenght-measure.js +0 -109
  96. package/lib/catalog/properties/property-lenght-measure.js.map +0 -1
  97. package/lib/catalog/properties/property-length-measure.js +0 -93
  98. package/lib/catalog/properties/property-length-measure.js.map +0 -1
  99. package/lib/catalog/properties/property-length-measure_hole.js +0 -109
  100. package/lib/catalog/properties/property-length-measure_hole.js.map +0 -1
  101. package/lib/catalog/properties/property-number.js +0 -56
  102. package/lib/catalog/properties/property-number.js.map +0 -1
  103. package/lib/catalog/properties/property-read-only.js +0 -34
  104. package/lib/catalog/properties/property-read-only.js.map +0 -1
  105. package/lib/catalog/properties/property-string.js +0 -56
  106. package/lib/catalog/properties/property-string.js.map +0 -1
  107. package/lib/catalog/properties/property-toggle.js +0 -47
  108. package/lib/catalog/properties/property-toggle.js.map +0 -1
  109. package/lib/catalog/properties/shared-property-style.js +0 -21
  110. package/lib/catalog/properties/shared-property-style.js.map +0 -1
  111. package/lib/catalog/utils/FuseUtils.js +0 -89
  112. package/lib/catalog/utils/FuseUtils.js.map +0 -1
  113. package/lib/catalog/utils/exporter.js +0 -156
  114. package/lib/catalog/utils/exporter.js.map +0 -1
  115. package/lib/catalog/utils/geom-utils.js +0 -206
  116. package/lib/catalog/utils/geom-utils.js.map +0 -1
  117. package/lib/catalog/utils/item-loader.js +0 -1534
  118. package/lib/catalog/utils/item-loader.js.map +0 -1
  119. package/lib/catalog/utils/load-obj.js +0 -100
  120. package/lib/catalog/utils/load-obj.js.map +0 -1
  121. package/lib/catalog/utils/mtl-loader.js +0 -360
  122. package/lib/catalog/utils/mtl-loader.js.map +0 -1
  123. package/lib/catalog/utils/obj-loader.js +0 -479
  124. package/lib/catalog/utils/obj-loader.js.map +0 -1
  125. package/lib/class/FuseUtils.js +0 -89
  126. package/lib/class/FuseUtils.js.map +0 -1
  127. package/lib/class/area.js +0 -151
  128. package/lib/class/area.js.map +0 -1
  129. package/lib/class/export.js +0 -97
  130. package/lib/class/export.js.map +0 -1
  131. package/lib/class/group.js +0 -446
  132. package/lib/class/group.js.map +0 -1
  133. package/lib/class/guide.js +0 -68
  134. package/lib/class/guide.js.map +0 -1
  135. package/lib/class/hole.js +0 -935
  136. package/lib/class/hole.js.map +0 -1
  137. package/lib/class/item.js +0 -1894
  138. package/lib/class/item.js.map +0 -1
  139. package/lib/class/layer.js +0 -673
  140. package/lib/class/layer.js.map +0 -1
  141. package/lib/class/line.js +0 -1296
  142. package/lib/class/line.js.map +0 -1
  143. package/lib/class/project.js +0 -829
  144. package/lib/class/project.js.map +0 -1
  145. package/lib/class/vertex.js +0 -272
  146. package/lib/class/vertex.js.map +0 -1
  147. package/lib/components/atoms/Snackbar/index.js +0 -57
  148. package/lib/components/atoms/Snackbar/index.js.map +0 -1
  149. package/lib/components/atoms/radio-button/index.js +0 -33
  150. package/lib/components/atoms/radio-button/index.js.map +0 -1
  151. package/lib/components/atoms/radio-button/styles.js +0 -12
  152. package/lib/components/atoms/radio-button/styles.js.map +0 -1
  153. package/lib/components/button/MainButton.js +0 -98
  154. package/lib/components/button/MainButton.js.map +0 -1
  155. package/lib/components/button/ToggleMeasureButton.js +0 -63
  156. package/lib/components/button/ToggleMeasureButton.js.map +0 -1
  157. package/lib/components/catalog-view/catalog-breadcrumb.js +0 -61
  158. package/lib/components/catalog-view/catalog-breadcrumb.js.map +0 -1
  159. package/lib/components/catalog-view/catalog-item.js +0 -233
  160. package/lib/components/catalog-view/catalog-item.js.map +0 -1
  161. package/lib/components/catalog-view/catalog-list.js +0 -189
  162. package/lib/components/catalog-view/catalog-list.js.map +0 -1
  163. package/lib/components/catalog-view/catalog-page-item.js +0 -137
  164. package/lib/components/catalog-view/catalog-page-item.js.map +0 -1
  165. package/lib/components/catalog-view/catalog-turn-back-page-item.js +0 -113
  166. package/lib/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
  167. package/lib/components/configurator/custom-configurator.js +0 -101
  168. package/lib/components/configurator/custom-configurator.js.map +0 -1
  169. package/lib/components/configurator/project-configurator.js +0 -138
  170. package/lib/components/configurator/project-configurator.js.map +0 -1
  171. package/lib/components/content.js +0 -132
  172. package/lib/components/content.js.map +0 -1
  173. package/lib/components/export.js +0 -90
  174. package/lib/components/export.js.map +0 -1
  175. package/lib/components/firstsetting/button/styles.js +0 -34
  176. package/lib/components/firstsetting/button/styles.js.map +0 -1
  177. package/lib/components/firstsetting/export.js +0 -16
  178. package/lib/components/firstsetting/export.js.map +0 -1
  179. package/lib/components/firstsetting/firstsetting-content-button.js +0 -224
  180. package/lib/components/firstsetting/firstsetting-content-button.js.map +0 -1
  181. package/lib/components/firstsetting/firstsetting-toggle-button.js +0 -133
  182. package/lib/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
  183. package/lib/components/firstsetting/firstsetting.js +0 -633
  184. package/lib/components/firstsetting/firstsetting.js.map +0 -1
  185. package/lib/components/footerbar/button/ControlButton.js +0 -79
  186. package/lib/components/footerbar/button/ControlButton.js.map +0 -1
  187. package/lib/components/footerbar/button/DirectionButton.js +0 -76
  188. package/lib/components/footerbar/button/DirectionButton.js.map +0 -1
  189. package/lib/components/footerbar/button/DirectionPanSpinButton.js +0 -57
  190. package/lib/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
  191. package/lib/components/footerbar/button/ToggleButton.js +0 -83
  192. package/lib/components/footerbar/button/ToggleButton.js.map +0 -1
  193. package/lib/components/footerbar/button/ToggleConvertButton.js +0 -80
  194. package/lib/components/footerbar/button/ToggleConvertButton.js.map +0 -1
  195. package/lib/components/footerbar/button/ToggleMeasureButton.js +0 -59
  196. package/lib/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
  197. package/lib/components/footerbar/button/styles.js +0 -29
  198. package/lib/components/footerbar/button/styles.js.map +0 -1
  199. package/lib/components/footerbar/export.js +0 -16
  200. package/lib/components/footerbar/export.js.map +0 -1
  201. package/lib/components/footerbar/footer-content-button.js +0 -224
  202. package/lib/components/footerbar/footer-content-button.js.map +0 -1
  203. package/lib/components/footerbar/footer-toggle-button.js +0 -133
  204. package/lib/components/footerbar/footer-toggle-button.js.map +0 -1
  205. package/lib/components/footerbar/footerbar.js +0 -808
  206. package/lib/components/footerbar/footerbar.js.map +0 -1
  207. package/lib/components/footerbar/styles.js +0 -41
  208. package/lib/components/footerbar/styles.js.map +0 -1
  209. package/lib/components/header/button/MenuButton.js +0 -77
  210. package/lib/components/header/button/MenuButton.js.map +0 -1
  211. package/lib/components/header/button/SaveButton.js +0 -57
  212. package/lib/components/header/button/SaveButton.js.map +0 -1
  213. package/lib/components/header/button/styles.js +0 -68
  214. package/lib/components/header/button/styles.js.map +0 -1
  215. package/lib/components/header/export.js +0 -12
  216. package/lib/components/header/export.js.map +0 -1
  217. package/lib/components/header/header.js +0 -556
  218. package/lib/components/header/header.js.map +0 -1
  219. package/lib/components/header/styles.js +0 -47
  220. package/lib/components/header/styles.js.map +0 -1
  221. package/lib/components/login/Login.js +0 -94
  222. package/lib/components/login/Login.js.map +0 -1
  223. package/lib/components/login/LoginForm/index.js +0 -140
  224. package/lib/components/login/LoginForm/index.js.map +0 -1
  225. package/lib/components/login/Register.js +0 -104
  226. package/lib/components/login/Register.js.map +0 -1
  227. package/lib/components/login/RegisterForm/index.js +0 -237
  228. package/lib/components/login/RegisterForm/index.js.map +0 -1
  229. package/lib/components/login/jwtService.js +0 -239
  230. package/lib/components/login/jwtService.js.map +0 -1
  231. package/lib/components/molecules/slider/index.js +0 -22
  232. package/lib/components/molecules/slider/index.js.map +0 -1
  233. package/lib/components/molecules/slider/styles.js +0 -2
  234. package/lib/components/molecules/slider/styles.js.map +0 -1
  235. package/lib/components/myprojects/export.js +0 -12
  236. package/lib/components/myprojects/export.js.map +0 -1
  237. package/lib/components/myprojects/index.js +0 -453
  238. package/lib/components/myprojects/index.js.map +0 -1
  239. package/lib/components/myprojects/styles.js +0 -31
  240. package/lib/components/myprojects/styles.js.map +0 -1
  241. package/lib/components/sidebar/custom-accordion.js +0 -45
  242. package/lib/components/sidebar/custom-accordion.js.map +0 -1
  243. package/lib/components/sidebar/export.js +0 -50
  244. package/lib/components/sidebar/export.js.map +0 -1
  245. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -74
  246. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
  247. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -124
  248. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
  249. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -135
  250. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
  251. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -260
  252. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
  253. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -84
  254. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
  255. package/lib/components/sidebar/panel-element-editor/element-editor.js +0 -884
  256. package/lib/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
  257. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
  258. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
  259. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js +0 -56
  260. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
  261. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -125
  262. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
  263. package/lib/components/sidebar/panel-group-editor.js +0 -218
  264. package/lib/components/sidebar/panel-group-editor.js.map +0 -1
  265. package/lib/components/sidebar/panel-groups.js +0 -274
  266. package/lib/components/sidebar/panel-groups.js.map +0 -1
  267. package/lib/components/sidebar/panel-guides.js +0 -192
  268. package/lib/components/sidebar/panel-guides.js.map +0 -1
  269. package/lib/components/sidebar/panel-layer-elements.js +0 -258
  270. package/lib/components/sidebar/panel-layer-elements.js.map +0 -1
  271. package/lib/components/sidebar/panel-layers.js +0 -347
  272. package/lib/components/sidebar/panel-layers.js.map +0 -1
  273. package/lib/components/sidebar/panel.js +0 -110
  274. package/lib/components/sidebar/panel.js.map +0 -1
  275. package/lib/components/sidebar/sidebar.js +0 -117
  276. package/lib/components/sidebar/sidebar.js.map +0 -1
  277. package/lib/components/sidebar/toolbar-panel.js +0 -171
  278. package/lib/components/sidebar/toolbar-panel.js.map +0 -1
  279. package/lib/components/sign/export.js +0 -18
  280. package/lib/components/sign/export.js.map +0 -1
  281. package/lib/components/sign/main/index.js +0 -567
  282. package/lib/components/sign/main/index.js.map +0 -1
  283. package/lib/components/sign/main/styles.js +0 -27
  284. package/lib/components/sign/main/styles.js.map +0 -1
  285. package/lib/components/style/button.js +0 -121
  286. package/lib/components/style/button.js.map +0 -1
  287. package/lib/components/style/cancel-button.js +0 -30
  288. package/lib/components/style/cancel-button.js.map +0 -1
  289. package/lib/components/style/content-container.js +0 -41
  290. package/lib/components/style/content-container.js.map +0 -1
  291. package/lib/components/style/content-title.js +0 -38
  292. package/lib/components/style/content-title.js.map +0 -1
  293. package/lib/components/style/delete-button.js +0 -35
  294. package/lib/components/style/delete-button.js.map +0 -1
  295. package/lib/components/style/export.js +0 -122
  296. package/lib/components/style/export.js.map +0 -1
  297. package/lib/components/style/form-block.js +0 -32
  298. package/lib/components/style/form-block.js.map +0 -1
  299. package/lib/components/style/form-color-input.js +0 -35
  300. package/lib/components/style/form-color-input.js.map +0 -1
  301. package/lib/components/style/form-label.js +0 -34
  302. package/lib/components/style/form-label.js.map +0 -1
  303. package/lib/components/style/form-number-input.js +0 -197
  304. package/lib/components/style/form-number-input.js.map +0 -1
  305. package/lib/components/style/form-number-input_2.js +0 -214
  306. package/lib/components/style/form-number-input_2.js.map +0 -1
  307. package/lib/components/style/form-select.js +0 -30
  308. package/lib/components/style/form-select.js.map +0 -1
  309. package/lib/components/style/form-slider.js +0 -53
  310. package/lib/components/style/form-slider.js.map +0 -1
  311. package/lib/components/style/form-submit-button.js +0 -36
  312. package/lib/components/style/form-submit-button.js.map +0 -1
  313. package/lib/components/style/form-text-input.js +0 -84
  314. package/lib/components/style/form-text-input.js.map +0 -1
  315. package/lib/components/toolbar/button/ControlButton.js +0 -76
  316. package/lib/components/toolbar/button/ControlButton.js.map +0 -1
  317. package/lib/components/toolbar/button/DirectionButton.js +0 -57
  318. package/lib/components/toolbar/button/DirectionButton.js.map +0 -1
  319. package/lib/components/toolbar/button/RightButton.js +0 -140
  320. package/lib/components/toolbar/button/RightButton.js.map +0 -1
  321. package/lib/components/toolbar/button/ToggleButton.js +0 -66
  322. package/lib/components/toolbar/button/ToggleButton.js.map +0 -1
  323. package/lib/components/toolbar/button/index.js +0 -94
  324. package/lib/components/toolbar/button/index.js.map +0 -1
  325. package/lib/components/toolbar/button/styles.js +0 -21
  326. package/lib/components/toolbar/button/styles.js.map +0 -1
  327. package/lib/components/toolbar/components/DoorStyleMenu.js +0 -112
  328. package/lib/components/toolbar/components/DoorStyleMenu.js.map +0 -1
  329. package/lib/components/toolbar/components/Pricing.js +0 -110
  330. package/lib/components/toolbar/components/Pricing.js.map +0 -1
  331. package/lib/components/toolbar/components/ReviewForQuote.js +0 -485
  332. package/lib/components/toolbar/components/ReviewForQuote.js.map +0 -1
  333. package/lib/components/toolbar/export.js +0 -50
  334. package/lib/components/toolbar/export.js.map +0 -1
  335. package/lib/components/toolbar/main/Alert.js +0 -132
  336. package/lib/components/toolbar/main/Alert.js.map +0 -1
  337. package/lib/components/toolbar/main/TakePictureModal.js +0 -109
  338. package/lib/components/toolbar/main/TakePictureModal.js.map +0 -1
  339. package/lib/components/toolbar/main/confirm-popup.js +0 -95
  340. package/lib/components/toolbar/main/confirm-popup.js.map +0 -1
  341. package/lib/components/toolbar/main/index.js +0 -4619
  342. package/lib/components/toolbar/main/index.js.map +0 -1
  343. package/lib/components/toolbar/main/myComponents.js +0 -125
  344. package/lib/components/toolbar/main/myComponents.js.map +0 -1
  345. package/lib/components/toolbar/main/styles.js +0 -73
  346. package/lib/components/toolbar/main/styles.js.map +0 -1
  347. package/lib/components/toolbar/plugin-item.js +0 -156
  348. package/lib/components/toolbar/plugin-item.js.map +0 -1
  349. package/lib/components/toolbar/popup/appliance/appliance-category/index.js +0 -86
  350. package/lib/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
  351. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js +0 -85
  352. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
  353. package/lib/components/toolbar/popup/appliance/index.js +0 -89
  354. package/lib/components/toolbar/popup/appliance/index.js.map +0 -1
  355. package/lib/components/toolbar/popup/autosaveprompt/index.js +0 -99
  356. package/lib/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
  357. package/lib/components/toolbar/popup/autosaveprompt/styles.js +0 -16
  358. package/lib/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
  359. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -86
  360. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
  361. package/lib/components/toolbar/popup/cabinet/choose-product/index.js +0 -107
  362. package/lib/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
  363. package/lib/components/toolbar/popup/cabinet/index.js +0 -91
  364. package/lib/components/toolbar/popup/cabinet/index.js.map +0 -1
  365. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js +0 -59
  366. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
  367. package/lib/components/toolbar/popup/doorStyle/index.js +0 -68
  368. package/lib/components/toolbar/popup/doorStyle/index.js.map +0 -1
  369. package/lib/components/toolbar/popup/doorStyle/style-category/index.js +0 -152
  370. package/lib/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
  371. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -9
  372. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
  373. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -128
  374. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
  375. package/lib/components/toolbar/popup/downloadsummary/index.js +0 -572
  376. package/lib/components/toolbar/popup/downloadsummary/index.js.map +0 -1
  377. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -60
  378. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
  379. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -200
  380. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
  381. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -254
  382. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
  383. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1762
  384. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
  385. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -96
  386. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
  387. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -125
  388. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
  389. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1713
  390. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
  391. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -184
  392. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
  393. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js +0 -115
  394. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
  395. package/lib/components/toolbar/popup/downloadsummary/styles.js +0 -47
  396. package/lib/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
  397. package/lib/components/toolbar/popup/finishingtouch/category/index.js +0 -44
  398. package/lib/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
  399. package/lib/components/toolbar/popup/finishingtouch/index.js +0 -54
  400. package/lib/components/toolbar/popup/finishingtouch/index.js.map +0 -1
  401. package/lib/components/toolbar/popup/finishingtouch/material-edit.js +0 -163
  402. package/lib/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
  403. package/lib/components/toolbar/popup/finishingtouch/product/index.js +0 -65
  404. package/lib/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
  405. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -124
  406. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
  407. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js +0 -255
  408. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
  409. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -20
  410. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
  411. package/lib/components/toolbar/popup/floorplan/floor-category/index.js +0 -99
  412. package/lib/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
  413. package/lib/components/toolbar/popup/floorplan/index.js +0 -56
  414. package/lib/components/toolbar/popup/floorplan/index.js.map +0 -1
  415. package/lib/components/toolbar/popup/index.js +0 -195
  416. package/lib/components/toolbar/popup/index.js.map +0 -1
  417. package/lib/components/toolbar/popup/newproject/index.js +0 -75
  418. package/lib/components/toolbar/popup/newproject/index.js.map +0 -1
  419. package/lib/components/toolbar/popup/newproject/styles.js +0 -16
  420. package/lib/components/toolbar/popup/newproject/styles.js.map +0 -1
  421. package/lib/components/toolbar/popup/product/appliance.js +0 -73
  422. package/lib/components/toolbar/popup/product/appliance.js.map +0 -1
  423. package/lib/components/toolbar/popup/product/cabinetproduct.js +0 -33
  424. package/lib/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
  425. package/lib/components/toolbar/popup/product/doorstyle.js +0 -59
  426. package/lib/components/toolbar/popup/product/doorstyle.js.map +0 -1
  427. package/lib/components/toolbar/popup/product/doorstyleproduct.js +0 -59
  428. package/lib/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
  429. package/lib/components/toolbar/popup/product/floor.js +0 -59
  430. package/lib/components/toolbar/popup/product/floor.js.map +0 -1
  431. package/lib/components/toolbar/popup/product/floorproduct.js +0 -68
  432. package/lib/components/toolbar/popup/product/floorproduct.js.map +0 -1
  433. package/lib/components/toolbar/popup/product/index.js +0 -59
  434. package/lib/components/toolbar/popup/product/index.js.map +0 -1
  435. package/lib/components/toolbar/popup/product/primary.js +0 -71
  436. package/lib/components/toolbar/popup/product/primary.js.map +0 -1
  437. package/lib/components/toolbar/popup/product/productline.js +0 -128
  438. package/lib/components/toolbar/popup/product/productline.js.map +0 -1
  439. package/lib/components/toolbar/popup/product/reviewItem.js +0 -346
  440. package/lib/components/toolbar/popup/product/reviewItem.js.map +0 -1
  441. package/lib/components/toolbar/popup/product/reviewMolding.js +0 -291
  442. package/lib/components/toolbar/popup/product/reviewMolding.js.map +0 -1
  443. package/lib/components/toolbar/popup/product/styles.js +0 -79
  444. package/lib/components/toolbar/popup/product/styles.js.map +0 -1
  445. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js +0 -169
  446. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
  447. package/lib/components/toolbar/popup/savedesign/index.js +0 -516
  448. package/lib/components/toolbar/popup/savedesign/index.js.map +0 -1
  449. package/lib/components/toolbar/popup/savedesign/styles.js +0 -26
  450. package/lib/components/toolbar/popup/savedesign/styles.js.map +0 -1
  451. package/lib/components/toolbar/popup/setDoorStyleOption/index.js +0 -64
  452. package/lib/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
  453. package/lib/components/toolbar/popup/styles.js +0 -104
  454. package/lib/components/toolbar/popup/styles.js.map +0 -1
  455. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -166
  456. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
  457. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -93
  458. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
  459. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -45
  460. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
  461. package/lib/components/toolbar/popup/submitforquote/StepDots.js +0 -40
  462. package/lib/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
  463. package/lib/components/toolbar/popup/submitforquote/cart-choice.js +0 -141
  464. package/lib/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
  465. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -50
  466. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
  467. package/lib/components/toolbar/popup/submitforquote/index.js +0 -698
  468. package/lib/components/toolbar/popup/submitforquote/index.js.map +0 -1
  469. package/lib/components/toolbar/popup/submitforquote/styles.js +0 -38
  470. package/lib/components/toolbar/popup/submitforquote/styles.js.map +0 -1
  471. package/lib/components/toolbar/popup/submitprompt/index.js +0 -79
  472. package/lib/components/toolbar/popup/submitprompt/index.js.map +0 -1
  473. package/lib/components/toolbar/popup/submitprompt/styles.js +0 -16
  474. package/lib/components/toolbar/popup/submitprompt/styles.js.map +0 -1
  475. package/lib/components/toolbar/toolbar-button.js +0 -111
  476. package/lib/components/toolbar/toolbar-button.js.map +0 -1
  477. package/lib/components/toolbar/toolbar-load-button.js +0 -36
  478. package/lib/components/toolbar/toolbar-load-button.js.map +0 -1
  479. package/lib/components/toolbar/toolbar-save-button.js +0 -34
  480. package/lib/components/toolbar/toolbar-save-button.js.map +0 -1
  481. package/lib/components/tutorial-view/Modal.js +0 -503
  482. package/lib/components/tutorial-view/Modal.js.map +0 -1
  483. package/lib/components/tutorial-view/styles.js +0 -13
  484. package/lib/components/tutorial-view/styles.js.map +0 -1
  485. package/lib/components/viewer2d/area.js +0 -90
  486. package/lib/components/viewer2d/area.js.map +0 -1
  487. package/lib/components/viewer2d/export.js +0 -122
  488. package/lib/components/viewer2d/export.js.map +0 -1
  489. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +0 -45
  490. package/lib/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
  491. package/lib/components/viewer2d/grids/grid-streak.js +0 -45
  492. package/lib/components/viewer2d/grids/grid-streak.js.map +0 -1
  493. package/lib/components/viewer2d/grids/grid-vertical-streak.js +0 -45
  494. package/lib/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
  495. package/lib/components/viewer2d/grids/grids.js +0 -45
  496. package/lib/components/viewer2d/grids/grids.js.map +0 -1
  497. package/lib/components/viewer2d/group.js +0 -63
  498. package/lib/components/viewer2d/group.js.map +0 -1
  499. package/lib/components/viewer2d/item.js +0 -522
  500. package/lib/components/viewer2d/item.js.map +0 -1
  501. package/lib/components/viewer2d/layer.js +0 -172
  502. package/lib/components/viewer2d/layer.js.map +0 -1
  503. package/lib/components/viewer2d/line.js +0 -899
  504. package/lib/components/viewer2d/line.js.map +0 -1
  505. package/lib/components/viewer2d/ruler.js +0 -108
  506. package/lib/components/viewer2d/ruler.js.map +0 -1
  507. package/lib/components/viewer2d/rulerDist.js +0 -154
  508. package/lib/components/viewer2d/rulerDist.js.map +0 -1
  509. package/lib/components/viewer2d/rulerX.js +0 -159
  510. package/lib/components/viewer2d/rulerX.js.map +0 -1
  511. package/lib/components/viewer2d/rulerY.js +0 -161
  512. package/lib/components/viewer2d/rulerY.js.map +0 -1
  513. package/lib/components/viewer2d/scene.js +0 -148
  514. package/lib/components/viewer2d/scene.js.map +0 -1
  515. package/lib/components/viewer2d/snap.js +0 -84
  516. package/lib/components/viewer2d/snap.js.map +0 -1
  517. package/lib/components/viewer2d/state.js +0 -88
  518. package/lib/components/viewer2d/state.js.map +0 -1
  519. package/lib/components/viewer2d/utils.js +0 -174
  520. package/lib/components/viewer2d/utils.js.map +0 -1
  521. package/lib/components/viewer2d/vertex.js +0 -76
  522. package/lib/components/viewer2d/vertex.js.map +0 -1
  523. package/lib/components/viewer2d/viewer2d.js +0 -1409
  524. package/lib/components/viewer2d/viewer2d.js.map +0 -1
  525. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2598
  526. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
  527. package/lib/components/viewer3d/dcm.js +0 -408
  528. package/lib/components/viewer3d/dcm.js.map +0 -1
  529. package/lib/components/viewer3d/fbm.js +0 -421
  530. package/lib/components/viewer3d/fbm.js.map +0 -1
  531. package/lib/components/viewer3d/front3D.js +0 -76
  532. package/lib/components/viewer3d/front3D.js.map +0 -1
  533. package/lib/components/viewer3d/grid-creator.js +0 -35
  534. package/lib/components/viewer3d/grid-creator.js.map +0 -1
  535. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +0 -45
  536. package/lib/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
  537. package/lib/components/viewer3d/grids/grid-streak.js +0 -36
  538. package/lib/components/viewer3d/grids/grid-streak.js.map +0 -1
  539. package/lib/components/viewer3d/grids/grid-vertical-streak.js +0 -45
  540. package/lib/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
  541. package/lib/components/viewer3d/libs/first-person-controls.js +0 -75
  542. package/lib/components/viewer3d/libs/first-person-controls.js.map +0 -1
  543. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1288
  544. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
  545. package/lib/components/viewer3d/libs/mtl-loader.js +0 -360
  546. package/lib/components/viewer3d/libs/mtl-loader.js.map +0 -1
  547. package/lib/components/viewer3d/libs/obj-loader.js +0 -465
  548. package/lib/components/viewer3d/libs/obj-loader.js.map +0 -1
  549. package/lib/components/viewer3d/libs/orbit-controls.js +0 -701
  550. package/lib/components/viewer3d/libs/orbit-controls.js.map +0 -1
  551. package/lib/components/viewer3d/libs/pointer-lock-controls.js +0 -48
  552. package/lib/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
  553. package/lib/components/viewer3d/lrm.js +0 -312
  554. package/lib/components/viewer3d/lrm.js.map +0 -1
  555. package/lib/components/viewer3d/model.js +0 -715
  556. package/lib/components/viewer3d/model.js.map +0 -1
  557. package/lib/components/viewer3d/pointer-lock-navigation.js +0 -123
  558. package/lib/components/viewer3d/pointer-lock-navigation.js.map +0 -1
  559. package/lib/components/viewer3d/ruler-utils/itemRect.js +0 -69
  560. package/lib/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
  561. package/lib/components/viewer3d/ruler-utils/layer3D.js +0 -503
  562. package/lib/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
  563. package/lib/components/viewer3d/ruler-utils/ruler3D.js +0 -235
  564. package/lib/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
  565. package/lib/components/viewer3d/ruler-utils/scene3D.js +0 -70
  566. package/lib/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
  567. package/lib/components/viewer3d/ruler-utils/state3D.js +0 -26
  568. package/lib/components/viewer3d/ruler-utils/state3D.js.map +0 -1
  569. package/lib/components/viewer3d/scene-creator.js +0 -3641
  570. package/lib/components/viewer3d/scene-creator.js.map +0 -1
  571. package/lib/components/viewer3d/three-memory-cleaner.js +0 -61
  572. package/lib/components/viewer3d/three-memory-cleaner.js.map +0 -1
  573. package/lib/components/viewer3d/viewer3d-first-person.js +0 -321
  574. package/lib/components/viewer3d/viewer3d-first-person.js.map +0 -1
  575. package/lib/components/viewer3d/viewer3d.js +0 -2508
  576. package/lib/components/viewer3d/viewer3d.js.map +0 -1
  577. package/lib/components/wizardstep/button/styles.js +0 -67
  578. package/lib/components/wizardstep/button/styles.js.map +0 -1
  579. package/lib/components/wizardstep/export.js +0 -12
  580. package/lib/components/wizardstep/export.js.map +0 -1
  581. package/lib/components/wizardstep/index.js +0 -978
  582. package/lib/components/wizardstep/index.js.map +0 -1
  583. package/lib/components/wizardstep/styles.js +0 -68
  584. package/lib/components/wizardstep/styles.js.map +0 -1
  585. package/lib/components/wizardstep/wizardstep-content-button.js +0 -224
  586. package/lib/components/wizardstep/wizardstep-content-button.js.map +0 -1
  587. package/lib/components/wizardstep/wizardstep-toggle-button.js +0 -133
  588. package/lib/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
  589. package/lib/constants.js +0 -646
  590. package/lib/constants.js.map +0 -1
  591. package/lib/hooks/useCheckCart.js +0 -60
  592. package/lib/hooks/useCheckCart.js.map +0 -1
  593. package/lib/hooks/useGetPricesBySku.js +0 -81
  594. package/lib/hooks/useGetPricesBySku.js.map +0 -1
  595. package/lib/hooks/useValidateToken.js +0 -207
  596. package/lib/hooks/useValidateToken.js.map +0 -1
  597. package/lib/index.js +0 -102
  598. package/lib/index.js.map +0 -1
  599. package/lib/models.js +0 -518
  600. package/lib/models.js.map +0 -1
  601. package/lib/plugins/SVGLoader.js +0 -1418
  602. package/lib/plugins/SVGLoader.js.map +0 -1
  603. package/lib/plugins/autosave.js +0 -40
  604. package/lib/plugins/autosave.js.map +0 -1
  605. package/lib/plugins/console-debugger.js +0 -45
  606. package/lib/plugins/console-debugger.js.map +0 -1
  607. package/lib/plugins/export.js +0 -34
  608. package/lib/plugins/export.js.map +0 -1
  609. package/lib/plugins/keyboard.js +0 -108
  610. package/lib/plugins/keyboard.js.map +0 -1
  611. package/lib/reducers/areas-reducer.js +0 -19
  612. package/lib/reducers/areas-reducer.js.map +0 -1
  613. package/lib/reducers/export.js +0 -98
  614. package/lib/reducers/export.js.map +0 -1
  615. package/lib/reducers/groups-reducer.js +0 -45
  616. package/lib/reducers/groups-reducer.js.map +0 -1
  617. package/lib/reducers/holes-reducer.js +0 -69
  618. package/lib/reducers/holes-reducer.js.map +0 -1
  619. package/lib/reducers/items-reducer.js +0 -147
  620. package/lib/reducers/items-reducer.js.map +0 -1
  621. package/lib/reducers/lines-reducer.js +0 -52
  622. package/lib/reducers/lines-reducer.js.map +0 -1
  623. package/lib/reducers/project-reducer.js +0 -136
  624. package/lib/reducers/project-reducer.js.map +0 -1
  625. package/lib/reducers/reducer.js +0 -27
  626. package/lib/reducers/reducer.js.map +0 -1
  627. package/lib/reducers/scene-reducer.js +0 -35
  628. package/lib/reducers/scene-reducer.js.map +0 -1
  629. package/lib/reducers/user-reducer.js +0 -48
  630. package/lib/reducers/user-reducer.js.map +0 -1
  631. package/lib/reducers/vertices-reducer.js +0 -26
  632. package/lib/reducers/vertices-reducer.js.map +0 -1
  633. package/lib/reducers/viewer2d-reducer.js +0 -83
  634. package/lib/reducers/viewer2d-reducer.js.map +0 -1
  635. package/lib/reducers/viewer3d-reducer.js +0 -64
  636. package/lib/reducers/viewer3d-reducer.js.map +0 -1
  637. package/lib/shared-style.js +0 -73
  638. package/lib/shared-style.js.map +0 -1
  639. package/lib/styles/export.js +0 -14
  640. package/lib/styles/export.js.map +0 -1
  641. package/lib/translator/en.js +0 -111
  642. package/lib/translator/en.js.map +0 -1
  643. package/lib/translator/it.js +0 -86
  644. package/lib/translator/it.js.map +0 -1
  645. package/lib/translator/ru.js +0 -86
  646. package/lib/translator/ru.js.map +0 -1
  647. package/lib/translator/translator.js +0 -91
  648. package/lib/translator/translator.js.map +0 -1
  649. package/lib/utils/browser.js +0 -41
  650. package/lib/utils/browser.js.map +0 -1
  651. package/lib/utils/email-validator.js +0 -11
  652. package/lib/utils/email-validator.js.map +0 -1
  653. package/lib/utils/export.js +0 -57
  654. package/lib/utils/export.js.map +0 -1
  655. package/lib/utils/geometry.js +0 -2329
  656. package/lib/utils/geometry.js.map +0 -1
  657. package/lib/utils/get-edges-of-subgraphs.js +0 -29
  658. package/lib/utils/get-edges-of-subgraphs.js.map +0 -1
  659. package/lib/utils/graph-cycles.js +0 -241
  660. package/lib/utils/graph-cycles.js.map +0 -1
  661. package/lib/utils/graph-inner-cycles.js +0 -55
  662. package/lib/utils/graph-inner-cycles.js.map +0 -1
  663. package/lib/utils/graph.js +0 -152
  664. package/lib/utils/graph.js.map +0 -1
  665. package/lib/utils/helper.js +0 -360
  666. package/lib/utils/helper.js.map +0 -1
  667. package/lib/utils/history.js +0 -37
  668. package/lib/utils/history.js.map +0 -1
  669. package/lib/utils/id-broker.js +0 -26
  670. package/lib/utils/id-broker.js.map +0 -1
  671. package/lib/utils/logger.js +0 -15
  672. package/lib/utils/logger.js.map +0 -1
  673. package/lib/utils/math.js +0 -58
  674. package/lib/utils/math.js.map +0 -1
  675. package/lib/utils/molding.js +0 -864
  676. package/lib/utils/molding.js.map +0 -1
  677. package/lib/utils/name-generator.js +0 -24
  678. package/lib/utils/name-generator.js.map +0 -1
  679. package/lib/utils/objects-utils.js +0 -61
  680. package/lib/utils/objects-utils.js.map +0 -1
  681. package/lib/utils/phone-validator.js +0 -11
  682. package/lib/utils/phone-validator.js.map +0 -1
  683. package/lib/utils/process-black-list.js +0 -25
  684. package/lib/utils/process-black-list.js.map +0 -1
  685. package/lib/utils/react-if.js +0 -25
  686. package/lib/utils/react-if.js.map +0 -1
  687. package/lib/utils/snap-scene.js +0 -106
  688. package/lib/utils/snap-scene.js.map +0 -1
  689. package/lib/utils/snap.js +0 -250
  690. package/lib/utils/snap.js.map +0 -1
  691. package/lib/utils/threeCSG.es6.js +0 -504
  692. package/lib/utils/threeCSG.es6.js.map +0 -1
  693. package/lib/version.js +0 -8
  694. package/lib/version.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"item.js","names":["_convertUnits","_interopRequireDefault","require","_export","_export2","_immutable","_path","_constants","_helper","_util","_molding","_utils","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_toConsumableArray","r","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","t","toString","call","slice","name","Array","from","test","isArray","length","n","ownKeys","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_classCallCheck","_defineProperties","key","_createClass","i","_toPrimitive","toPrimitive","String","Number","allItemRect","allItemSnap","allLines","allLineRects","allLineSnap","allRect","time1","time2","Item","exports","create","state","layerID","type","x","y","width","height","rotation","isDuplication","molding","undefined","itemID","IDBroker","acquireID","item","catalog","factoryElement","id","getIn","NameGenerator","generateName","sku_number","toJS","category","layoutpos","cabinet_category","layer","doorStyle","_temp$doorStyles","temp","cds","doorStyles","find","elem","tmpDS","data","cabinet_door_style_id","merge","fromJS","_state$oStyle","styleObj","oStyle","_state$oStyle2","get","size","updatedState","setSizeOfItemByDoorStyle","_doorStyle$doorStyles","euro_cds","element","is_euro_cds","door_style_name","newProperties","hasOwnProperty","Map","depth","_length","_unit","convert","euro_length","to","euro_height","euro_width","properties","oldDepth","oldHeight","oldWidth","updateDoorHandle","setIn","includes","ceilHeight","ceilUnit","newAltitude","layerMolding","md","hasMoldingLayout","doorHandle","dataJSON","handle_gltf","metalness","roughness","cnt","prop","mergeIn","select","Layer","selectElement","replacingSupport","selectHole","holeID","editWidth","newWidth","alert","set","prepareSnap","scene","GeometryUtils","getAllLines","buildRectFromLines","getAllItems","getAllItemSnap","getAllLineSnap","cur","others","concat","validateSnaps","duplicateSelected","currentObject","objectID","myObject","sceneComponentType","rotRad","Math","PI","val","pos","cos","sin","is_corner","isrectSect","validInterSect","_this$create","stateI","mode","MODE_IDLE","drawingSupport","isRect","_this$create2","isRectDown","_this$create3","isRectUp","_this$create4","console","log","line","myOffset","offset","v0","vertices","v1","lineLength","pointsDistance","delta","allHoles","rightAble","leftAble","_this$createHole","createHole","stateH","hole","selected","newDelta","_this$createHole2","_this$createHole3","storeDistArray","distArray","curDistArray","isEqualDist","b","equal","every","curElement","index","validateItemPositions","_this","isItemInRect","_state$getIn","items","remove","unselect","removeElement","group","Group","replaceItem","selectedPos","selectedObject","selectedLayer","selectedItemId","info","selectToolDrawingItem","MODE_DRAWING_ITEM","selectToolDrawingItem3D","MODE_DRAWING_ITEM_3D","endCreatingCabinet","isOpen","openedType","updatePopupOpen","updateDrawingItem","hasIn","updateIn","MODE_IDLE_3D","_this$create5","updateDraggingItemChanged","_state","debugUtil","round","endDrawingItem","unselectAll","popup","updateMolding","beginDraggingItem","isUndefined","MODE_DRAGGING_ITEM","draggingSupport","startPointX","startPointY","originalX","originalY","beginDraggingItem3D","MODE_DRAGGING_ITEM_3D","updateDraggingItem","_state2","diffX","diffY","tX","tY","updateDraggingItem3DX","_state3","updateDraggingItem3DY","_state4","endDraggingItem","endDraggingItem3D","beginRotatingItem","originRotation","MODE_ROTATING_ITEM","rotatingSupport","beginRotatingItem3D","MODE_ROTATING_ITEM_3D","updateRotatingItem","_state5","origin","newRot","atan2","deltaRot","deltaX","deltaY","updateRotatingItemChanged","endRotatingItem","endRotatingItem3D","replaceSubmodule","url","_state6","urlData","split","newURL","addURL","submodule","normalMap","flag","pathData","setProperties","setJsProperties","updateProperties","v","k","updateJsProperties","setAttributes","itemAttributes","setJsAttributes","animateObject","_state7","animCount","animValue","animate","removeReplacingSupport","setInitialDoorStyle","_state8","layers","counttop","setDoorStyle","pathes","isAll","_this2","endsWith","tmp","temp_layer_molding","some","ds","itemIDs","setDoorStyleOfItem","curItem","tmpMolding","temp_item_molding","itemGroup","MoldingUtils","getItemGroupFromMolding","it","cds_data","brightness","color","glossness","texture","thumbnail","sku","color_sku_alias","install","getInstallationSuffix","INSTALLATION_SUFFIX_TYPE","NAME","_loop","setCounterTop","counterTop","_state9","newCounter","setItemsDoorHandle","elements_item","_this3","setDoorHandle","_state0","selectedItems","setHandleMaterial","material","_state1","setWallColor","wallColor","_state10","lines","lineID","setBacksplash","backsplash","_state11","newBack","uri","setMolding","_state12","tempLayerMolding","mol","molding_type","location_type","toArray","isEnableItemForMolding","tempItemMolding","selectedItem","moldingGroup","tempSelItemMolding","_state13","snappedItemGroup","itemGroups","isItemSnappedItem","tryMergeMDItem","base_item","updateSelectItemMolding","_loop2","isSameMoldingLayoutpos","delMoldings","isItemSameItemByLocation","resultMol","emptyMoldingArray","temp_items","groupMoldings","itGroup","finalMoldings","tempMoldings","ml","setLocationMolding","location","locationMolding","sort","locationMoldingItems","MOLDING_LOCATIONS","setBacksplashVisible","backsplashVisible","_state14","setApplianceMaterial","_state15","newMaterial","setModelling","_state16","updateItemsAltitude","altitude","holes","vetName0","vetName1","verticesArray","areas","index0","indexOf","index1","Hole","toggleLoadingCabinet","_state17","isLoadingCabinet","endLoading","_state18"],"sources":["../../src/class/item.js"],"sourcesContent":["import convert from 'convert-units';\r\nimport { Layer, Group, Hole } from './export';\r\nimport {\r\n IDBroker,\r\n NameGenerator,\r\n GeometryUtils,\r\n MoldingUtils\r\n} from '../utils/export';\r\nimport { Map, fromJS } from 'immutable';\r\nimport path from 'path';\r\nimport {\r\n MODE_IDLE,\r\n MODE_IDLE_3D,\r\n MODE_DRAWING_ITEM,\r\n MODE_DRAWING_ITEM_3D,\r\n MODE_DRAGGING_ITEM,\r\n MODE_DRAGGING_ITEM_3D,\r\n MODE_ROTATING_ITEM,\r\n MODE_ROTATING_ITEM_3D,\r\n MOLDING_LOCATIONS,\r\n INSTALLATION_SUFFIX_TYPE\r\n} from '../constants';\r\nimport { debugUtil } from '../utils/helper';\r\nimport { isUndefined } from 'util';\r\nimport { hasMoldingLayout } from '../utils/molding';\r\nimport { getInstallationSuffix } from '../components/viewer2d/utils';\r\nlet allItemRect;\r\nlet allItemSnap;\r\nlet allLines;\r\nlet allLineRects;\r\nlet allLineSnap;\r\nlet allRect;\r\nlet time1;\r\nlet time2;\r\n\r\nclass Item {\r\n static create(\r\n state,\r\n layerID,\r\n type,\r\n x,\r\n y,\r\n width,\r\n height,\r\n rotation,\r\n isDuplication,\r\n molding = []\r\n ) {\r\n let itemID = IDBroker.acquireID();\r\n\r\n let item = state.catalog.factoryElement(\r\n type,\r\n {\r\n id: itemID,\r\n itemID: state.catalog.getIn(['elements', type, 'itemID']),\r\n name: NameGenerator.generateName(\r\n 'items',\r\n state.catalog.getIn(['elements', type, 'info', 'title'])\r\n ),\r\n sku_number: state.catalog.getIn(['elements', type, 'obj']).toJS()\r\n .sku_number,\r\n //style: state.catalog.getIn(['elements', type, 'info', 'door']),\r\n category: state.catalog.getIn(['elements', type, 'type']),\r\n layoutpos: state.catalog.getIn(['elements', type, 'info', 'layoutpos']),\r\n cabinet_category: state.catalog.getIn(['elements', type, 'obj']).toJS()\r\n .cabinet_category,\r\n type,\r\n height,\r\n width,\r\n x,\r\n y,\r\n rotation,\r\n isDuplication\r\n },\r\n null,\r\n state\r\n );\r\n\r\n if (item.category === 'cabinet') {\r\n const layer = state.getIn(['scene', 'layers', layerID]);\r\n if (state.doorStyle !== null && state.doorStyle !== undefined) {\r\n const temp = layer.doorStyle ? layer.doorStyle : state.doorStyle.toJS();\r\n let cds = temp?.doorStyles?.cds.find(\r\n elem =>\r\n elem.itemID === state.catalog.getIn(['elements', type, 'itemID'])\r\n );\r\n let tmpDS = temp;\r\n if (cds !== undefined && cds !== null) {\r\n tmpDS.doorStyles = {\r\n ...temp.doorStyles,\r\n ...cds.data[0],\r\n cabinet_door_style_id: cds.cabinet_door_style_id\r\n };\r\n item = item.merge({\r\n doorStyle: fromJS(tmpDS)\r\n });\r\n } else {\r\n let styleObj = state.oStyle?.toJS()?.oStyle;\r\n if (styleObj) {\r\n for (let x in styleObj) {\r\n cds = styleObj[x].data.doorStyles.cds.find(\r\n elem =>\r\n elem.itemID ===\r\n state.catalog.getIn(['elements', type, 'itemID'])\r\n );\r\n if (cds !== null && cds !== undefined && cds) {\r\n tmpDS = styleObj[x].data;\r\n tmpDS.doorStyles = {\r\n ...tmpDS.doorStyles,\r\n ...cds.data[0],\r\n cabinet_door_style_id: cds.cabinet_door_style_id\r\n };\r\n item = item.merge({\r\n doorStyle: fromJS(tmpDS)\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n let styleObj = state.oStyle?.toJS()?.oStyle;\r\n if (styleObj) {\r\n for (let x in styleObj) {\r\n cds = styleObj[x].data.doorStyles.cds.find(\r\n elem =>\r\n elem.itemID ===\r\n state.catalog.getIn(['elements', type, 'itemID'])\r\n );\r\n if (cds !== null && cds !== undefined && cds) {\r\n let tmpDS = styleObj[x].data;\r\n tmpDS.doorStyles = {\r\n ...tmpDS.doorStyles,\r\n ...cds.data[0],\r\n cabinet_door_style_id: cds.cabinet_door_style_id\r\n };\r\n item = item.merge({\r\n doorStyle: fromJS(tmpDS)\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (item.get('type') === 'cabinet' && item.get('doorStyle').size === 0) {\r\n return { updatedState: state, item: null };\r\n }\r\n\r\n let setSizeOfItemByDoorStyle = () => {\r\n let doorStyle = item.get('doorStyle').toJS();\r\n var cds = doorStyle?.doorStyles?.cds?.find(\r\n elem => elem.itemID === item.itemID\r\n );\r\n let euro_cds = [];\r\n if (cds !== undefined) {\r\n euro_cds = cds && cds.data.filter(element => element.is_euro_cds);\r\n }\r\n if (\r\n doorStyle.door_style_name === 'Euro & Frameless' &&\r\n euro_cds.length > 0\r\n ) {\r\n let newProperties = item.get('properties').toJS();\r\n if (newProperties.hasOwnProperty('depth')) {\r\n if (!newProperties.hasOwnProperty('oldDepth')) {\r\n newProperties['oldDepth'] = new Map({\r\n length: newProperties.depth.length,\r\n _length: newProperties.depth._length,\r\n _unit: newProperties.depth._unit\r\n });\r\n }\r\n newProperties['depth'] = new Map({\r\n length: convert(euro_cds[0].euro_length).from('in').to('cm'),\r\n _length: euro_cds[0].euro_length,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('height')) {\r\n if (!newProperties.hasOwnProperty('oldHeight')) {\r\n newProperties['oldHeight'] = new Map({\r\n length: newProperties.height.length,\r\n _length: newProperties.height._length,\r\n _unit: newProperties.height._unit\r\n });\r\n }\r\n newProperties['height'] = new Map({\r\n length: convert(euro_cds[0].euro_height).from('in').to('cm'),\r\n _length: euro_cds[0].euro_height,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('width')) {\r\n if (!newProperties.hasOwnProperty('oldWidth')) {\r\n newProperties['oldWidth'] = new Map({\r\n length: newProperties.width.length,\r\n _length: newProperties.width._length,\r\n _unit: newProperties.width._unit\r\n });\r\n }\r\n newProperties['width'] = new Map({\r\n length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,\r\n _length: euro_cds[0].euro_width,\r\n _unit: 'in'\r\n });\r\n }\r\n item = item.merge({ properties: fromJS(newProperties) });\r\n } else {\r\n let properties = item.get('properties').toJS();\r\n if (properties.hasOwnProperty('oldDepth')) {\r\n properties['depth'] = new Map({\r\n length: properties.oldDepth.length,\r\n _length: properties.oldDepth._length,\r\n _unit: properties.oldDepth._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldHeight')) {\r\n properties['height'] = new Map({\r\n length: properties.oldHeight.length,\r\n _length: properties.oldHeight._length,\r\n _unit: properties.oldHeight._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldWidth')) {\r\n properties['width'] = new Map({\r\n length: properties.oldWidth.length,\r\n _length: properties.oldWidth._length,\r\n _unit: properties.oldWidth._unit\r\n });\r\n }\r\n item = item.merge({ properties: fromJS(properties) });\r\n }\r\n };\r\n item.category === 'cabinet' && setSizeOfItemByDoorStyle();\r\n\r\n item = this.updateDoorHandle(\r\n item,\r\n state.getIn(['scene', 'layers', layerID])\r\n );\r\n\r\n state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);\r\n\r\n if (item.type.includes('Light')) {\r\n let ceilHeight = state.getIn(['scene', 'layers', layerID, 'ceilHeight']);\r\n let ceilUnit = state.getIn(['scene', 'layers', layerID, 'unit']);\r\n ceilHeight = convert(ceilHeight).from(ceilUnit).to('cm');\r\n let newAltitude =\r\n ceilHeight - item.properties.getIn(['height', 'length']);\r\n newAltitude = convert(newAltitude).from('cm').to(ceilUnit);\r\n item = item.setIn(['properties', 'altitude', '_length'], newAltitude);\r\n state = state.setIn(['scene', 'layers', layerID, 'items', item.id], item);\r\n }\r\n\r\n if (item.category === 'cabinet') {\r\n // If create a copied object, copied object has original object's molding property.And if create a object, it has a layer's molding property.\r\n let layerMolding = state\r\n .getIn(['scene', 'layers', layerID, 'molding'])\r\n .filter(md => hasMoldingLayout(md, item.layoutpos));\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'molding'],\r\n layerMolding.length ? layerMolding : molding\r\n );\r\n }\r\n return { updatedState: state, item };\r\n }\r\n\r\n static updateDoorHandle(item, layer) {\r\n const doorHandle = layer.get('doorHandle');\r\n\r\n if (doorHandle == '') return item;\r\n const dataJSON = item.toJS();\r\n let itemID = dataJSON.id;\r\n var doorStyle = dataJSON.doorStyle;\r\n var tmpDS = {\r\n ...doorStyle,\r\n handle_gltf: doorHandle,\r\n metalness: 0.2,\r\n roughness: 0.1\r\n };\r\n let cnt = 0;\r\n for (let prop in doorStyle.doorStyles) cnt++;\r\n if (cnt !== 0) {\r\n for (var i = 1; i < 10; i++) {\r\n tmpDS['doorStyles']['door_handle_' + i + '_gltf'] = doorHandle;\r\n tmpDS['doorStyles']['fixed_drawer_door_handle_' + i + '_gltf'] =\r\n doorHandle;\r\n tmpDS['doorStyles']['drawer_door_handle_' + i + '_gltf'] = doorHandle;\r\n }\r\n }\r\n\r\n item = item.mergeIn(['doorStyle'], fromJS(tmpDS));\r\n\r\n return item;\r\n }\r\n\r\n static select(state, layerID, itemID) {\r\n state = Layer.select(state, layerID).updatedState;\r\n state = Layer.selectElement(state, layerID, 'items', itemID).updatedState;\r\n state = state.merge({\r\n replacingSupport: new Map({\r\n layerID,\r\n itemID\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static selectHole(state, layerID, holeID) {\r\n state = Layer.select(state, layerID).updatedState;\r\n state = Layer.selectElement(state, layerID, 'holes', holeID).updatedState;\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static editWidth(state, newWidth, layerID, itemID) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let properties = item.properties;\r\n if (newWidth === 0) {\r\n alert('You can not set width to 0');\r\n return { updatedState: state };\r\n }\r\n let width = new Map({\r\n _length: newWidth,\r\n _unit: 'in',\r\n length: convert(newWidth).from('in').to('cm')\r\n });\r\n properties = properties.set('width', width);\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties'],\r\n properties\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static prepareSnap(state, layerID) {\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let scene = state.get('scene');\r\n let catalog = state.catalog.toJS();\r\n allLines = GeometryUtils.getAllLines(layer);\r\n allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);\r\n allItemRect = GeometryUtils.getAllItems(scene, catalog, allLineRects);\r\n allItemSnap = GeometryUtils.getAllItemSnap(allItemRect);\r\n allLineSnap = GeometryUtils.getAllLineSnap(allLineRects, allItemRect.cur);\r\n allRect = allItemRect.others.concat(allLineRects);\r\n allItemSnap = GeometryUtils.validateSnaps(allItemSnap, allRect);\r\n allLineSnap = GeometryUtils.validateSnaps(allLineSnap, allRect);\r\n }\r\n\r\n static duplicateSelected(state, currentObject) {\r\n let layerID = state.getIn(['scene', 'selectedLayer']);\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let objectID = currentObject.id;\r\n let myObject;\r\n let x = currentObject.x;\r\n let y = currentObject.y;\r\n let sceneComponentType, width, depth, rotRad;\r\n switch (currentObject.prototype) {\r\n case 'items':\r\n myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);\r\n sceneComponentType = myObject.type;\r\n width = myObject.properties.getIn(['width', 'length']);\r\n depth = myObject.properties.getIn(['depth', 'length']);\r\n rotRad = (myObject.rotation * Math.PI) / 180;\r\n this.prepareSnap(state, layerID);\r\n let val = {\r\n pos: {\r\n x: x + width * Math.cos(rotRad),\r\n y: y + width * Math.sin(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isrectSect = GeometryUtils.validInterSect(allRect, val);\r\n if (isrectSect) {\r\n // Duplicated object has a original object's molding property\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x + width * Math.cos(rotRad),\r\n y + width * Math.sin(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n let val = {\r\n pos: {\r\n x: x - width * Math.cos(rotRad),\r\n y: y - width * Math.sin(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isRect = GeometryUtils.validInterSect(allRect, val);\r\n if (isRect) {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x - width * Math.cos(rotRad),\r\n y - width * Math.sin(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n let val = {\r\n pos: {\r\n x: x - depth * Math.sin(rotRad),\r\n y: y - depth * Math.cos(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isRectDown = GeometryUtils.validInterSect(allRect, val);\r\n if (isRectDown) {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x - depth * Math.sin(rotRad),\r\n y - depth * Math.cos(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n let val = {\r\n pos: {\r\n x: x + depth * Math.sin(rotRad),\r\n y: y + depth * Math.cos(rotRad)\r\n },\r\n rotRad: rotRad\r\n };\r\n val.size = allItemRect.cur.size;\r\n val.layoutpos = allItemRect.cur.layoutpos;\r\n val.is_corner = allItemRect.cur.is_corner;\r\n let isRectUp = GeometryUtils.validInterSect(allRect, val);\r\n if (isRectUp) {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n x + depth * Math.sin(rotRad),\r\n y + depth * Math.cos(rotRad),\r\n 200,\r\n 100,\r\n (rotRad * 180) / Math.PI,\r\n true,\r\n myObject.molding\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n } else {\r\n console.log('there is no space');\r\n alert('No more space!');\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case 'holes':\r\n this.prepareSnap(state, layerID);\r\n myObject = state.getIn(['scene', 'layers', layerID, 'holes', objectID]);\r\n let line = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n myObject.line\r\n ]);\r\n sceneComponentType = myObject.type;\r\n width = myObject.get('properties').get('width').get('length');\r\n let myOffset = myObject.offset;\r\n let v0 = layer.getIn(['vertices', line.vertices.get(0)]);\r\n let v1 = layer.getIn(['vertices', line.vertices.get(1)]);\r\n let lineLength = GeometryUtils.pointsDistance(v0.x, v0.y, v1.x, v1.y);\r\n let delta = width / 2 / lineLength + 0.00001;\r\n let allHoles = state.getIn(['scene', 'layers', layerID, 'holes']);\r\n let rightAble = true;\r\n let leftAble = true;\r\n if (myOffset + 3 * delta > 1) rightAble = false;\r\n else if (myOffset - 3 * delta < 0) leftAble = false;\r\n if (allHoles.size === 0) {\r\n let { updatedState: stateH, hole } = this.createHole(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n myObject.line,\r\n myOffset + delta * 2,\r\n myObject.get('properties')\r\n );\r\n state = this.selectHole(stateH, layerID, hole.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], hole.id);\r\n } else {\r\n allHoles.forEach(hole => {\r\n if (hole.line === line.id)\r\n if (!hole.selected) {\r\n let newDelta =\r\n hole.get('properties').get('width').get('length') /\r\n 2 /\r\n lineLength;\r\n if (myOffset < hole.offset) {\r\n if (myOffset + delta * 3 > hole.offset - newDelta) {\r\n rightAble = false;\r\n }\r\n } else {\r\n if (myOffset - delta * 3 < hole.offset + newDelta) {\r\n leftAble = false;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (rightAble) {\r\n let { updatedState: stateH, hole } = this.createHole(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n myObject.line,\r\n myOffset + delta * 2,\r\n myObject.get('properties')\r\n );\r\n state = this.selectHole(stateH, layerID, hole.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], hole.id);\r\n } else {\r\n if (leftAble) {\r\n let { updatedState: stateH, hole } = this.createHole(\r\n state,\r\n layerID,\r\n sceneComponentType,\r\n myObject.line,\r\n myOffset - delta * 2,\r\n myObject.get('properties')\r\n );\r\n state = this.selectHole(stateH, layerID, hole.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], hole.id);\r\n } else alert('No more space');\r\n }\r\n break;\r\n case 'lines':\r\n alert('Duplicating lines is not currently supported yet.');\r\n break;\r\n default:\r\n break;\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static storeDistArray(state, layerID, itemID, distArray) {\r\n let curDistArray = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n itemID,\r\n 'distArray'\r\n ]);\r\n let isEqualDist = (a, b) => {\r\n return a == b;\r\n };\r\n if (curDistArray) {\r\n let equal = curDistArray.every((curElement, index) => {\r\n return isEqualDist(curElement[0], distArray[index][0]);\r\n });\r\n if (!equal) {\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'distArray'],\r\n distArray\r\n );\r\n }\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static validateItemPositions(state, layerID) {\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n\r\n function isItemInRect(item) {\r\n let { width, height } = state.getIn(['scene']);\r\n return item.x >= 0 && item.x <= width && item.y >= 0 && item.y <= height;\r\n }\r\n\r\n layer.items.forEach(item => {\r\n if (!isItemInRect(item))\r\n state = this.remove(state, layerID, item.id).updatedState;\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static remove(state, layerID, itemID) {\r\n state = this.unselect(state, layerID, itemID).updatedState;\r\n state = Layer.removeElement(state, layerID, 'items', itemID).updatedState;\r\n\r\n state\r\n .getIn(['scene', 'groups'])\r\n .forEach(\r\n group =>\r\n (state = Group.removeElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'items',\r\n itemID\r\n ).updatedState)\r\n );\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static replaceItem(state, selectedPos, currentObject, selectedObject) {\r\n state = this.remove(\r\n state,\r\n state.scene.selectedLayer,\r\n selectedPos.selectedItemId\r\n ).updatedState;\r\n state = this.create(\r\n state,\r\n state.scene.selectedLayer,\r\n selectedObject.name,\r\n selectedPos.x,\r\n selectedPos.y,\r\n selectedObject.info.width,\r\n selectedObject.info.height,\r\n selectedPos.rotation,\r\n false\r\n ).updatedState;\r\n // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;\r\n return { updatedState: state };\r\n }\r\n\r\n static unselect(state, layerID, itemID) {\r\n state = Layer.unselect(state, layerID, 'items', itemID).updatedState;\r\n return { updatedState: state };\r\n }\r\n\r\n static selectToolDrawingItem(state, sceneComponentType) {\r\n state = state.merge({\r\n mode: MODE_DRAWING_ITEM,\r\n drawingSupport: new Map({\r\n type: sceneComponentType\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static selectToolDrawingItem3D(state, sceneComponentType) {\r\n state = state.merge({\r\n mode: MODE_DRAWING_ITEM_3D,\r\n drawingSupport: new Map({\r\n type: sceneComponentType\r\n })\r\n });\r\n state = state.mergeIn(['scene', 'loadFlag'], false);\r\n return { updatedState: state };\r\n }\r\n\r\n static endCreatingCabinet(state) {\r\n state = state.merge({\r\n isOpen: false,\r\n openedType: 0\r\n });\r\n return { updatedState: state };\r\n }\r\n static updatePopupOpen(state, value) {\r\n state = state.merge({\r\n openedType: value\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDrawingItem(state, layerID, x, y) {\r\n if (state.hasIn(['drawingSupport', 'currentID'])) {\r\n let mode = state.get('mode');\r\n if ([MODE_DRAWING_ITEM_3D].includes(mode)) {\r\n state = state.updateIn(\r\n [\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n state.getIn(['drawingSupport', 'currentID'])\r\n ],\r\n item => item && item.merge({ x, y })\r\n );\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n }\r\n if ([MODE_DRAWING_ITEM].includes(mode)) {\r\n state = state.merge({ mode: MODE_IDLE });\r\n state = state.updateIn(\r\n [\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n state.getIn(['drawingSupport', 'currentID'])\r\n ],\r\n item => item && item.merge({ x, y })\r\n );\r\n }\r\n } else {\r\n let { updatedState: stateI, item } = this.create(\r\n state,\r\n layerID,\r\n state.getIn(['drawingSupport', 'type']),\r\n x,\r\n y,\r\n 200,\r\n 100,\r\n 0,\r\n false\r\n );\r\n if (item === null) {\r\n alert('There are no Door Colors in this cabinet.');\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n drawingSupport: new Map()\r\n });\r\n } else {\r\n state = Item.select(stateI, layerID, item.id).updatedState;\r\n state = state.setIn(['drawingSupport', 'currentID'], item.id);\r\n }\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItemChanged(state, x, y, layerID, itemID) {\r\n let { scene } = state;\r\n // let originalX = draggingSupport.get('originalX');\r\n // let originalY = draggingSupport.get('originalY');\r\n\r\n // let diffX = x;\r\n // let diffY = y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n // let tX = originalX - diffX;\r\n // let tY = originalY - diffY;\r\n // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;\r\n // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;\r\n item = item.merge({\r\n x: x,\r\n y: y\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n time2 = debugUtil();\r\n false &&\r\n console.log(\r\n 'FPS:',\r\n Math.round(1000 / (time2 - time1)),\r\n ' Delta Time:',\r\n (time2 - time1) / 1000,\r\n '(s)'\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static endDrawingItem(state, layerID, x, y) {\r\n let catalog = state.catalog;\r\n state = this.updateDrawingItem(state, layerID, x, y, catalog).updatedState;\r\n state = Layer.unselectAll(state, layerID).updatedState;\r\n let popup = state.get('popup');\r\n\r\n state = state.merge({\r\n drawingSupport: Map({\r\n type: state.drawingSupport.get('type')\r\n }),\r\n isOpen: !popup\r\n });\r\n state = Layer.unselectAll(state, layerID).updatedState;\r\n this.updateMolding(state);\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDraggingItem(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n\r\n time1 = debugUtil();\r\n if (isUndefined(item)) return;\r\n state = state.merge({\r\n mode: MODE_DRAGGING_ITEM,\r\n draggingSupport: Map({\r\n layerID,\r\n itemID,\r\n startPointX: x,\r\n startPointY: y,\r\n originalX: item.x,\r\n originalY: item.y\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDraggingItem3D(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n state = state.setIn(['scene', 'isEndDragging'], false);\r\n if (isUndefined(item)) return { updatedState: state };\r\n state = state.merge({\r\n mode: MODE_DRAGGING_ITEM_3D,\r\n draggingSupport: Map({\r\n layerID,\r\n itemID,\r\n startPointX: x,\r\n startPointY: y,\r\n originalX: item.x,\r\n originalY: item.y\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItem(state, x, y) {\r\n let { draggingSupport, scene } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let itemID = draggingSupport.get('itemID');\r\n let startPointX = draggingSupport.get('startPointX');\r\n let startPointY = draggingSupport.get('startPointY');\r\n let originalX = draggingSupport.get('originalX');\r\n let originalY = draggingSupport.get('originalY');\r\n\r\n let diffX = startPointX - x;\r\n let diffY = startPointY - y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n if (isUndefined(item)) return { updatedState: state };\r\n let tX = originalX - diffX;\r\n let tY = originalY - diffY;\r\n tX = tX > scene.width ? scene.width : tX < 0 ? 0 : tX;\r\n tY = tY > scene.height ? scene.height : tY < 0 ? 0 : tY;\r\n item = item.merge({\r\n x: tX,\r\n y: tY\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItem3DX(state, x) {\r\n let { draggingSupport, scene } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let itemID = draggingSupport.get('itemID');\r\n let startPointX = draggingSupport.get('startPointX');\r\n let originalX = draggingSupport.get('originalX');\r\n\r\n let diffX = startPointX - x;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n item = item.merge({\r\n x: originalX - diffX\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDraggingItem3DY(state, y) {\r\n let { draggingSupport, scene } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let itemID = draggingSupport.get('itemID');\r\n let startPointY = draggingSupport.get('startPointY');\r\n let originalY = draggingSupport.get('originalY');\r\n\r\n let diffY = startPointY - y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n item = item.merge({\r\n y: originalY - diffY\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endDraggingItem(state, x, y) {\r\n state = this.updateDraggingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endDraggingItem3D(state) {\r\n // state = this.updateDraggingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n state = state.setIn(['scene', 'isEndDragging'], true);\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginRotatingItem(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let originRotation = item.get('rotation');\r\n\r\n state = state.merge({\r\n mode: MODE_ROTATING_ITEM,\r\n rotatingSupport: Map({\r\n layerID,\r\n itemID,\r\n x,\r\n y,\r\n originRotation\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginRotatingItem3D(state, layerID, itemID, x, y) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let originRotation = item.get('rotation');\r\n\r\n state = state.merge({\r\n mode: MODE_ROTATING_ITEM_3D,\r\n rotatingSupport: Map({\r\n layerID,\r\n itemID,\r\n x,\r\n y,\r\n originRotation\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateRotatingItem(state, x, y) {\r\n let { rotatingSupport, scene } = state;\r\n let layerID = rotatingSupport.get('layerID');\r\n let itemID = rotatingSupport.get('itemID');\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let origin = {\r\n x: rotatingSupport.get('x'),\r\n y: rotatingSupport.get('y'),\r\n originRotation: rotatingSupport.get('originRotation')\r\n };\r\n\r\n let newRot =\r\n (Math.atan2(origin.y - item.y, origin.x - item.x) * 180) / Math.PI + 90;\r\n let deltaRot = newRot - origin.originRotation;\r\n\r\n let deltaX = x - item.x;\r\n let deltaY = y - item.y;\r\n\r\n let rotation = (Math.atan2(deltaY, deltaX) * 180) / Math.PI + 90;\r\n rotation -= deltaRot;\r\n if (-5 < rotation && rotation < 5) rotation = 0;\r\n if (-95 < rotation && rotation < -85) rotation = -90;\r\n if (-185 < rotation && rotation < -175) rotation = -180;\r\n if (85 < rotation && rotation < 95) rotation = 90;\r\n if (-270 < rotation && rotation < -265) rotation = 90;\r\n if (175 < rotation && rotation < 185) rotation = 180;\r\n if (265 < rotation && rotation < 275) rotation = -90;\r\n\r\n item = item.merge({\r\n rotation\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateRotatingItemChanged(state, rotation, layerID, itemID) {\r\n let scene = state.scene;\r\n\r\n // let originalX = draggingSupport.get('originalX');\r\n // let originalY = draggingSupport.get('originalY');\r\n\r\n // let diffX = x;\r\n // let diffY = y;\r\n\r\n let item = scene.getIn(['layers', layerID, 'items', itemID]);\r\n // let tX = originalX - diffX;\r\n // let tY = originalY - diffY;\r\n // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;\r\n // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;\r\n item = item.merge({\r\n rotation: rotation\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endRotatingItem(state, x, y) {\r\n //state = this.updateRotatingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endRotatingItem3D(state, x, y) {\r\n state = this.updateRotatingItem(state, x, y).updatedState;\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static replaceSubmodule(state, url) {\r\n let { replacingSupport, scene } = state;\r\n url = 'catalog/texture.png';\r\n let urlData = url.split('/');\r\n let newURL = '';\r\n let addURL = false;\r\n for (let i = 0; i < urlData.length; i++) {\r\n if (urlData[i] == '') {\r\n continue;\r\n }\r\n newURL += '/' + urlData[i];\r\n }\r\n let layerID = replacingSupport.get('layerID');\r\n let itemID = replacingSupport.get('itemID');\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let submodule = [];\r\n let normalMap = [];\r\n\r\n for (let i = 0; i < item.submodule.size; i++)\r\n submodule.push(item.submodule.get(i));\r\n for (let i = 0; i < item.normalMap.size; i++)\r\n normalMap.push(item.normalMap.get(i));\r\n //let submodule = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'submodule']);\r\n urlData = newURL.split('/');\r\n let flag = false;\r\n if (urlData[urlData.length - 1].includes('.gltf')) {\r\n for (let i = 0; i < submodule.length; i++) {\r\n let pathData = submodule[i].split('/');\r\n if (pathData[pathData.length - 2] === urlData[urlData.length - 2]) {\r\n submodule[i] = newURL;\r\n flag = true;\r\n }\r\n }\r\n if (!flag) submodule.push(newURL);\r\n item = item.merge({\r\n submodule\r\n });\r\n } else {\r\n for (let i = 0; i < normalMap.length; i++) {\r\n let pathData = normalMap[i].split('/');\r\n if (pathData[pathData.length - 2] === urlData[urlData.length - 2]) {\r\n normalMap[i] = newURL;\r\n flag = true;\r\n }\r\n }\r\n if (!flag) normalMap.push(newURL);\r\n\r\n item = item.merge({\r\n normalMap\r\n });\r\n }\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setProperties(state, layerID, itemID, properties) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties'],\r\n properties\r\n );\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setJsProperties(state, layerID, itemID, properties) {\r\n return this.setProperties(state, layerID, itemID, fromJS(properties));\r\n }\r\n\r\n static updateProperties(state, layerID, itemID, properties) {\r\n properties.forEach((v, k) => {\r\n if (\r\n state.hasIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n itemID,\r\n 'properties',\r\n k\r\n ])\r\n )\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties', k],\r\n v\r\n );\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateJsProperties(state, layerID, itemID, properties) {\r\n return this.updateProperties(state, layerID, itemID, fromJS(properties));\r\n }\r\n\r\n static setAttributes(state, layerID, itemID, itemAttributes) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID],\r\n itemAttributes\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static setJsAttributes(state, layerID, itemID, itemAttributes) {\r\n itemAttributes = fromJS(itemAttributes);\r\n return this.setAttributes(state, layerID, itemID, itemAttributes);\r\n }\r\n\r\n static animateObject(state, value) {\r\n let { replacingSupport, scene } = state;\r\n let layerID = replacingSupport.get('layerID');\r\n let itemID = replacingSupport.get('itemID');\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n if (item !== undefined) {\r\n let animCount = item.get('animate');\r\n item = item.merge({\r\n animValue: value,\r\n animate: animCount + 1\r\n });\r\n\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)\r\n });\r\n state = state.merge({ mode: MODE_IDLE_3D });\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static removeReplacingSupport(state) {\r\n state = state.merge({\r\n replacingSupport: new Map()\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setInitialDoorStyle(state, doorStyle, oStyle) {\r\n if (doorStyle === undefined) {\r\n state = state.merge({\r\n oStyle: new Map({\r\n oStyle\r\n })\r\n });\r\n } else {\r\n state = state.merge({\r\n doorStyle: doorStyle,\r\n oStyle: new Map({\r\n oStyle\r\n })\r\n });\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n {\r\n let itemID = data.id;\r\n\r\n var tmpDS = {\r\n ...data.doorStyle,\r\n doorStyles: {\r\n ...data.doorStyle.doorStyles,\r\n counttop: doorStyle.doorStyles.counttop\r\n }\r\n };\r\n data = data.mergeIn(['doorStyle'], fromJS(tmpDS));\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n }\r\n });\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static setDoorStyle(state, doorStyle, pathes, isAll) {\r\n var keys = Object.keys(doorStyle.doorStyles);\r\n keys = keys.filter(elem => !elem.endsWith('_gltf'));\r\n var tmp = {};\r\n for (let x in keys) {\r\n tmp[keys[x]] = doorStyle.doorStyles[keys[x]];\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', state.scene.selectedLayer, 'doorStyle'],\r\n doorStyle\r\n );\r\n state = state.merge({\r\n doorStyle: doorStyle\r\n });\r\n let layerID = state.scene.get('selectedLayer');\r\n let temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);\r\n temp_layer_molding = temp_layer_molding.filter(md =>\r\n doorStyle.doorStyles.cds.some(ds => md.itemID === ds.itemID)\r\n );\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'molding'],\r\n temp_layer_molding\r\n );\r\n let itemIDs = state.scene.layers\r\n .getIn([layerID, 'selected', 'items'])\r\n .toJS();\r\n\r\n let setDoorStyleOfItem = data => {\r\n if (data.category !== 'cabinet') return; //CDS should effect to cabinets\r\n let itemID = data.id;\r\n const curItem = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n itemID\r\n ]);\r\n const layer = state.getIn(['scene', 'layers', layerID]);\r\n let tmpMolding = [...curItem.molding];\r\n let temp_item_molding = [...curItem.molding];\r\n temp_item_molding = temp_item_molding.filter(md =>\r\n doorStyle.doorStyles.cds.some(ds => ds.itemID === md.itemID)\r\n );\r\n tmpMolding.forEach(md => {\r\n const itemGroup = MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n curItem,\r\n md\r\n );\r\n itemGroup.forEach(it => {\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', it.id, 'molding'],\r\n temp_item_molding\r\n );\r\n });\r\n });\r\n var cds = doorStyle.doorStyles.cds.find(\r\n elem => elem.itemID === data.itemID\r\n );\r\n let euro_cds = [];\r\n if (cds !== undefined) {\r\n euro_cds = cds && cds.data.filter(element => element.is_euro_cds);\r\n }\r\n let cds_data;\r\n if (\r\n doorStyle.door_style_name === 'Euro & Frameless' &&\r\n euro_cds.length > 0\r\n ) {\r\n cds_data = cds\r\n ? { ...euro_cds[0], cabinet_door_style_id: cds.cabinet_door_style_id }\r\n : {};\r\n let newProperties = state.scene\r\n .getIn(['layers', layerID, 'items', itemID, 'properties'])\r\n .toJS();\r\n if (newProperties.hasOwnProperty('depth')) {\r\n if (!newProperties.hasOwnProperty('oldDepth')) {\r\n newProperties['oldDepth'] = new Map({\r\n length: newProperties.depth.length,\r\n _length: newProperties.depth._length,\r\n _unit: newProperties.depth._unit\r\n });\r\n }\r\n newProperties['depth'] = new Map({\r\n length: convert(euro_cds[0].euro_length).from('in').to('cm'),\r\n _length: euro_cds[0].euro_length,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('height')) {\r\n if (!newProperties.hasOwnProperty('oldHeight')) {\r\n newProperties['oldHeight'] = new Map({\r\n length: newProperties.height.length,\r\n _length: newProperties.height._length,\r\n _unit: newProperties.height._unit\r\n });\r\n }\r\n newProperties['height'] = new Map({\r\n length: convert(euro_cds[0].euro_height).from('in').to('cm'),\r\n _length: euro_cds[0].euro_height,\r\n _unit: 'in'\r\n });\r\n }\r\n if (newProperties.hasOwnProperty('width')) {\r\n if (!newProperties.hasOwnProperty('oldWidth')) {\r\n newProperties['oldWidth'] = new Map({\r\n length: newProperties.width.length,\r\n _length: newProperties.width._length,\r\n _unit: newProperties.width._unit\r\n });\r\n }\r\n newProperties['width'] = new Map({\r\n length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,\r\n _length: euro_cds[0].euro_width,\r\n _unit: 'in'\r\n });\r\n }\r\n state = this.setJsProperties(\r\n state,\r\n layerID,\r\n itemID,\r\n newProperties\r\n ).updatedState;\r\n } else {\r\n cds_data = cds\r\n ? { ...cds.data[0], cabinet_door_style_id: cds.cabinet_door_style_id }\r\n : {};\r\n let properties = state.scene\r\n .getIn(['layers', layerID, 'items', itemID, 'properties'])\r\n .toJS();\r\n if (properties.hasOwnProperty('oldDepth')) {\r\n properties['depth'] = new Map({\r\n length: properties.oldDepth.length,\r\n _length: properties.oldDepth._length,\r\n _unit: properties.oldDepth._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldHeight')) {\r\n properties['height'] = new Map({\r\n length: properties.oldHeight.length,\r\n _length: properties.oldHeight._length,\r\n _unit: properties.oldHeight._unit\r\n });\r\n }\r\n if (properties.hasOwnProperty('oldWidth')) {\r\n properties['width'] = new Map({\r\n length: properties.oldWidth.length,\r\n _length: properties.oldWidth._length,\r\n _unit: properties.oldWidth._unit\r\n });\r\n }\r\n state = this.setJsProperties(\r\n state,\r\n layerID,\r\n itemID,\r\n properties\r\n ).updatedState;\r\n }\r\n var tmpDS = {\r\n id: doorStyle.id,\r\n brightness: doorStyle.brightness,\r\n color: doorStyle.color,\r\n glossness: doorStyle.glossness,\r\n name: doorStyle.name,\r\n door_style_name: doorStyle.door_style_name,\r\n texture: doorStyle.texture,\r\n thumbnail: doorStyle.thumbnail,\r\n type: doorStyle.type,\r\n sku: doorStyle.sku,\r\n color_sku_alias: doorStyle.color_sku_alias, // alias name of color_sku for the current dealer\r\n install: getInstallationSuffix(\r\n INSTALLATION_SUFFIX_TYPE.NAME,\r\n doorStyle\r\n ),\r\n doorStyles: {\r\n ...tmp,\r\n ...cds_data\r\n }\r\n };\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'doorStyle'],\r\n fromJS(tmpDS)\r\n );\r\n };\r\n\r\n if (isAll) {\r\n let items = state.scene.layers.get(layerID).items;\r\n items.forEach(setDoorStyleOfItem);\r\n } else {\r\n if (itemIDs.length > 0) {\r\n for (let i = 0; i < itemIDs.length; i++) {\r\n let itemID = itemIDs[i];\r\n let items = state.scene.layers.get(layerID).items;\r\n items.forEach(data => {\r\n if (itemID === data.id) {\r\n setDoorStyleOfItem(data);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return { updatedState: state };\r\n }\r\n static setCounterTop(state, counterTop) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n layers = layers.mergeIn(['counterTop'], counterTop);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n let items = layers.items;\r\n items.forEach(data => {\r\n {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n let newCounter = dataJSON.counterTop;\r\n newCounter = { ...newCounter, ...counterTop };\r\n data = data.mergeIn(['counterTop'], newCounter);\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n }\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setItemsDoorHandle(state, scene, layer, layerID, elements_item) {\r\n elements_item.forEach(data => {\r\n let itemID = data.id;\r\n let item = this.updateDoorHandle(data, layer);\r\n layer = layer.mergeIn(['items', itemID], item);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setDoorHandle(state, doorHandle) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n\r\n layer = layer.mergeIn(['doorHandle'], doorHandle);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n\r\n let items = layer.items;\r\n let selectedItems = items.filter(element => element.selected === true); // find selected items (default 1 selected)\r\n\r\n if (selectedItems.size === 0) {\r\n state = this.setItemsDoorHandle(\r\n state,\r\n scene,\r\n layer,\r\n layerID,\r\n items\r\n ).updatedState;\r\n } else {\r\n state = this.setItemsDoorHandle(\r\n state,\r\n scene,\r\n layer,\r\n layerID,\r\n selectedItems\r\n ).updatedState;\r\n }\r\n return { updatedState: state };\r\n }\r\n static setHandleMaterial(state, material) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n var doorStyle = dataJSON.doorStyle;\r\n var tmpDS = {\r\n ...doorStyle,\r\n metalness: material.metalness,\r\n roughness: material.roughness\r\n };\r\n data = data.mergeIn(['doorStyle'], fromJS(tmpDS));\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setWallColor(state, wallColor) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n\r\n layer = layer.merge({ wallColor });\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n\r\n let lines = layer.lines;\r\n lines.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let lineID = dataJSON.id;\r\n data = data.mergeIn(['wallColor'], wallColor);\r\n layer = layer.mergeIn(['lines', lineID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setBacksplash(state, backsplash) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n const dataJSON = layer.toJS();\r\n let newBack = dataJSON.backsplash;\r\n let flag = true; // selected or not\r\n // if backsplash is already set\r\n if (layer.getIn(['backsplash']).uri === backsplash.uri) {\r\n // unselect\r\n newBack = { ...newBack, uri: '' };\r\n flag = false;\r\n }\r\n // else then, set backsplash\r\n else newBack = { ...newBack, ...backsplash };\r\n layer = layer.mergeIn(['backsplash'], newBack);\r\n layer = layer.set('backsplashApplied', flag);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static setMolding(state, molding, isAll) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n if (isAll) {\r\n let tempLayerMolding = layer.molding;\r\n let flag = tempLayerMolding.some(mol => mol.name === molding.name);\r\n if (flag) {\r\n tempLayerMolding = tempLayerMolding.filter(\r\n mol => mol.name !== molding.name\r\n );\r\n } else {\r\n if (\r\n tempLayerMolding.some(\r\n mol =>\r\n mol.molding_type === molding.molding_type &&\r\n mol.location_type === molding.location_type\r\n )\r\n ) {\r\n tempLayerMolding = tempLayerMolding.filter(\r\n mol =>\r\n mol.molding_type !== molding.molding_type ||\r\n mol.location_type !== molding.location_type\r\n );\r\n }\r\n tempLayerMolding = tempLayerMolding.concat(molding);\r\n }\r\n layer = layer.set('molding', tempLayerMolding);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n layer.items.toArray().forEach(item => {\r\n if (MoldingUtils.isEnableItemForMolding(layer, item, molding)) {\r\n let tempItemMolding = item.molding;\r\n if (flag) {\r\n if (tempItemMolding.some(mol => mol.name === molding.name)) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol => mol.name !== molding.name\r\n );\r\n }\r\n } else {\r\n if (\r\n tempItemMolding.some(\r\n mol =>\r\n mol.molding_type === molding.molding_type &&\r\n mol.location_type === molding.location_type\r\n )\r\n ) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol =>\r\n mol.molding_type !== molding.molding_type ||\r\n mol.location_type !== molding.location_type\r\n );\r\n }\r\n tempItemMolding = tempItemMolding.concat(molding);\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n tempItemMolding\r\n );\r\n }\r\n });\r\n } else {\r\n const selectedItem = layer.getIn([\r\n 'items',\r\n layer.selected.toJS().items[0]\r\n ]);\r\n if (MoldingUtils.isEnableItemForMolding(layer, selectedItem, molding)) {\r\n let moldingGroup = MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n selectedItem,\r\n molding\r\n );\r\n let tempSelItemMolding = selectedItem.molding;\r\n let flag = tempSelItemMolding.some(mol => mol.name === molding.name);\r\n moldingGroup.forEach(item => {\r\n let tempItemMolding = item.molding;\r\n if (flag) {\r\n if (tempItemMolding.some(mol => mol.name === molding.name)) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol => mol.name !== molding.name\r\n );\r\n }\r\n } else {\r\n if (\r\n tempItemMolding.some(\r\n mol =>\r\n mol.molding_type === molding.molding_type &&\r\n mol.location_type === molding.location_type\r\n )\r\n ) {\r\n tempItemMolding = tempItemMolding.filter(\r\n mol =>\r\n mol.molding_type !== molding.molding_type ||\r\n mol.location_type !== molding.location_type\r\n );\r\n }\r\n tempItemMolding = tempItemMolding.concat(molding);\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n tempItemMolding\r\n );\r\n });\r\n }\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static updateMolding(state) {\r\n const { scene } = state;\r\n const layerID = scene.get('selectedLayer');\r\n const layer = scene.layers.get(layerID);\r\n const selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);\r\n let snappedItemGroup = []; // The array that include snapped items with selected item.\r\n if (!!selectedItem && selectedItem.category === 'cabinet') {\r\n let itemGroups = [];\r\n layer.items.toArray().forEach(curItem => {\r\n if (selectedItem.id !== curItem.id && curItem.category === 'cabinet') {\r\n if (MoldingUtils.isItemSnappedItem(selectedItem, curItem)) {\r\n snappedItemGroup.push(curItem); // add the snapped item.\r\n // add the snapped item that has same molding location type, layoutpos and height to itemGroups.\r\n if (curItem.molding.length) {\r\n curItem.molding.forEach(md => {\r\n // This code check whether the curItem can be grouped with selected Item in molding.\r\n if (\r\n MoldingUtils.tryMergeMDItem(\r\n layer,\r\n selectedItem,\r\n curItem,\r\n [selectedItem],\r\n md\r\n )\r\n ) {\r\n itemGroups.push({\r\n base_item: curItem,\r\n group: MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n curItem,\r\n md\r\n ),\r\n molding: md\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n const updateSelectItemMolding = () => {\r\n for (let i = 0; i < snappedItemGroup.length; i++) {\r\n // check whether snapped item is same as selected item in layoutpos(Wall, Tall, Base)\r\n if (\r\n MoldingUtils.isSameMoldingLayoutpos(\r\n selectedItem,\r\n snappedItemGroup[i]\r\n )\r\n ) {\r\n // check whether snapped item is same in location(same location type and height).\r\n let delMoldings = [];\r\n for (let k = 0; k < selectedItem.molding.length; k++) {\r\n if (\r\n MoldingUtils.isItemSameItemByLocation(\r\n selectedItem,\r\n snappedItemGroup[i],\r\n selectedItem.molding[k].location_type\r\n )\r\n ) {\r\n delMoldings.push(selectedItem.molding[k].itemID);\r\n }\r\n }\r\n let resultMol = [];\r\n selectedItem.molding.forEach(mol => {\r\n if (!delMoldings.some(id => id === mol.itemID)) {\r\n resultMol.push(mol);\r\n }\r\n });\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', selectedItem.id, 'molding'],\r\n resultMol\r\n );\r\n }\r\n }\r\n };\r\n const emptyMoldingArray = () => {\r\n let temp_items = [selectedItem];\r\n let groupMoldings = [];\r\n itemGroups.forEach(itGroup => {\r\n groupMoldings.push(itGroup.molding);\r\n itGroup.group.forEach(it => {\r\n if (!temp_items.some(i => i.id === it.id)) {\r\n temp_items.push(it);\r\n }\r\n });\r\n });\r\n temp_items.forEach(item => {\r\n let finalMoldings = [];\r\n let tempMoldings = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n item.id,\r\n 'molding'\r\n ]);\r\n tempMoldings.forEach(molding => {\r\n if (!groupMoldings.some(ml => ml.itemID === molding.itemID)) {\r\n finalMoldings.push(molding);\r\n }\r\n });\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n finalMoldings\r\n );\r\n });\r\n updateSelectItemMolding();\r\n };\r\n const setLocationMolding = location => {\r\n let locationMolding = itemGroups\r\n .filter(it => it.molding.location_type === location)\r\n .sort((a, b) => {\r\n if (a.group.length === b.group.length) {\r\n return (\r\n GeometryUtils.pointsDistance(\r\n a.base_item.x,\r\n a.base_item.y,\r\n selectedItem.x,\r\n selectedItem.y\r\n ) -\r\n GeometryUtils.pointsDistance(\r\n b.base_item.x,\r\n b.base_item.y,\r\n selectedItem.x,\r\n selectedItem.y\r\n )\r\n );\r\n } else {\r\n return a.group.length - b.group.length;\r\n }\r\n });\r\n if (locationMolding.length) {\r\n let locationMoldingItems = MoldingUtils.getItemGroupFromMolding(\r\n layer,\r\n selectedItem,\r\n locationMolding[0].molding\r\n );\r\n locationMoldingItems.forEach(item => {\r\n let tempMoldings = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n item.id,\r\n 'molding'\r\n ]);\r\n if (\r\n !tempMoldings.some(\r\n mol => mol.itemID === locationMolding[0].molding.itemID\r\n )\r\n )\r\n tempMoldings.push(locationMolding[0].molding);\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'items', item.id, 'molding'],\r\n tempMoldings\r\n );\r\n });\r\n }\r\n };\r\n if (\r\n itemGroups.length &&\r\n layer.items.some(\r\n it =>\r\n MoldingUtils.isItemSnappedItem(selectedItem, it) &&\r\n it.category === 'cabinet'\r\n )\r\n ) {\r\n emptyMoldingArray();\r\n for (let i = 0; i < MOLDING_LOCATIONS.length; i++) {\r\n setLocationMolding(MOLDING_LOCATIONS[i]);\r\n }\r\n } else if (!itemGroups.length && selectedItem.molding.length) {\r\n // Delete the selected Item's molding property if selItem attached the group that has no molding.\r\n // If snapped items have no moldings and one item's property is same as selected Item, selected Item's molding should be deleted.\r\n updateSelectItemMolding();\r\n }\r\n }\r\n return { updatedState: state };\r\n }\r\n\r\n static setBacksplashVisible(state, itemID, backsplashVisible) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layer = scene.layers.get(layerID);\r\n layer = layer.mergeIn(\r\n ['items', itemID, 'backsplashVisible'],\r\n backsplashVisible\r\n );\r\n // let cabinet_category = layer.getIn([\"items\"], itemID).toJS()[itemID].cabinet_category;\r\n // if (cabinet_category && (cabinet_category.search(\"Sink\") !== -1 || cabinet_category.search(\"End/Angle\") !== -1)) {\r\n // layer = layer.mergeIn([\"items\", itemID, \"backsplashVisible\"], true);\r\n // } else {\r\n // layer = layer.mergeIn([\"items\", itemID, \"backsplashVisible\"], false);\r\n // }\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layer)\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n static setApplianceMaterial(state, material) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n var newMaterial = {\r\n metalness: material.metalness,\r\n roughness: material.roughness\r\n };\r\n data = data.mergeIn(['applianceMaterial'], newMaterial);\r\n layers = layers.mergeIn(['items', itemID], data);\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setModelling(state, molding) {\r\n let { scene } = state;\r\n let layerID = scene.get('selectedLayer');\r\n let layers = scene.layers.get(layerID);\r\n let items = layers.items;\r\n items.forEach(data => {\r\n const dataJSON = data.toJS();\r\n let itemID = dataJSON.id;\r\n });\r\n state = state.merge({\r\n scene: scene.mergeIn(['layers', layerID], layers)\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static updateItemsAltitude(state, layerID, itemID, value) {\r\n let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);\r\n let properties = item.get('properties');\r\n let altitude = properties.get('altitude');\r\n let length = altitude.get('length');\r\n let _length = altitude.get('_length');\r\n let _unit = altitude.get('_unit');\r\n length = length - value;\r\n switch (_unit) {\r\n case 'mm':\r\n _length = length * 10;\r\n break;\r\n case 'm':\r\n _length = length * 0.01;\r\n break;\r\n default:\r\n _length = length;\r\n }\r\n if (length <= 0) {\r\n length = 0;\r\n _length = 0;\r\n }\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'items', itemID, 'properties', 'altitude'],\r\n new Map({\r\n length: length,\r\n _length: _length,\r\n _unit: _unit\r\n })\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static createHole(state, layerID, type, lineID, offset, properties) {\r\n let holeID = IDBroker.acquireID();\r\n let hole = state.catalog.factoryElement(\r\n type,\r\n {\r\n id: holeID,\r\n url: state.catalog.getIn(['elements', type, 'info', 'url']),\r\n type,\r\n offset,\r\n line: lineID\r\n },\r\n properties\r\n );\r\n\r\n state = state.setIn(['scene', 'layers', layerID, 'holes', holeID], hole);\r\n state = state.updateIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'holes'],\r\n holes => holes && holes.push(holeID)\r\n );\r\n // get vertex order/////\r\n let element = state.scene.layers.getIn([layerID, 'lines', lineID]);\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let vetName0 = element.vertices.get(0);\r\n let vetName1 = element.vertices.get(1);\r\n let verticesArray = [];\r\n layer.areas.forEach(data => {\r\n verticesArray.push(data.vertices.toJS());\r\n });\r\n for (let i = 0; i < verticesArray.length; i++) {\r\n let vertices = verticesArray[i];\r\n if (vertices.includes(vetName0) && vertices.includes(vetName1)) {\r\n let index0 = vertices.indexOf(vetName0);\r\n let index1 = vertices.indexOf(vetName1);\r\n // if vertex order chanege//\r\n if (index1 + 1 == index0) {\r\n return { updatedState: state, hole };\r\n }\r\n if (index0 == 0 && index1 == vertices.length - 1) {\r\n return { updatedState: state, hole };\r\n }\r\n // ////////////////////////\r\n }\r\n }\r\n // ///////////////////////////\r\n properties = hole.properties.toJS();\r\n if (properties.hasOwnProperty('flip_orizzontal')) {\r\n properties['flip_orizzontal'] = true;\r\n }\r\n if (properties.hasOwnProperty('flip_horizontal')) {\r\n properties['flip_horizontal'] = true;\r\n }\r\n state = Hole.setJsProperties(\r\n state,\r\n layerID,\r\n holeID,\r\n properties\r\n ).updatedState;\r\n return { updatedState: state, hole };\r\n }\r\n\r\n static toggleLoadingCabinet(state) {\r\n let { scene } = state;\r\n console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);\r\n // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);\r\n // state = state.set('scene', scene);\r\n state = state.setIn(['scene', 'isLoadingCabinet'], !scene.isLoadingCabinet);\r\n return { updatedState: state };\r\n }\r\n static endLoading(state) {\r\n let { scene } = state;\r\n state = state.setIn(['scene', 'loadFlag'], true);\r\n return { updatedState: state };\r\n }\r\n}\r\n\r\nexport { Item as default };\r\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAMA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAYA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAAqE,SAAAD,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAE,QAAAC,CAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAC,MAAA,IAAAD,CAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,CAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,CAAA,KAAAD,OAAA,CAAAC,CAAA;AAAA,SAAAK,mBAAAC,CAAA,WAAAC,kBAAA,CAAAD,CAAA,KAAAE,gBAAA,CAAAF,CAAA,KAAAG,2BAAA,CAAAH,CAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAH,CAAA,EAAAM,CAAA,QAAAN,CAAA,2BAAAA,CAAA,SAAAO,iBAAA,CAAAP,CAAA,EAAAM,CAAA,OAAAE,CAAA,MAAAC,QAAA,CAAAC,IAAA,CAAAV,CAAA,EAAAW,KAAA,6BAAAH,CAAA,IAAAR,CAAA,CAAAH,WAAA,KAAAW,CAAA,GAAAR,CAAA,CAAAH,WAAA,CAAAe,IAAA,aAAAJ,CAAA,cAAAA,CAAA,GAAAK,KAAA,CAAAC,IAAA,CAAAd,CAAA,oBAAAQ,CAAA,+CAAAO,IAAA,CAAAP,CAAA,IAAAD,iBAAA,CAAAP,CAAA,EAAAM,CAAA;AAAA,SAAAJ,iBAAAF,CAAA,8BAAAL,MAAA,YAAAK,CAAA,CAAAL,MAAA,CAAAC,QAAA,aAAAI,CAAA,uBAAAa,KAAA,CAAAC,IAAA,CAAAd,CAAA;AAAA,SAAAC,mBAAAD,CAAA,QAAAa,KAAA,CAAAG,OAAA,CAAAhB,CAAA,UAAAO,iBAAA,CAAAP,CAAA;AAAA,SAAAO,kBAAAP,CAAA,EAAAM,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAN,CAAA,CAAAiB,MAAA,MAAAX,CAAA,GAAAN,CAAA,CAAAiB,MAAA,YAAA1B,CAAA,MAAA2B,CAAA,GAAAL,KAAA,CAAAP,CAAA,GAAAf,CAAA,GAAAe,CAAA,EAAAf,CAAA,IAAA2B,CAAA,CAAA3B,CAAA,IAAAS,CAAA,CAAAT,CAAA,UAAA2B,CAAA;AAAA,SAAAC,QAAA5B,CAAA,EAAAS,CAAA,QAAAQ,CAAA,GAAAY,MAAA,CAAAC,IAAA,CAAA9B,CAAA,OAAA6B,MAAA,CAAAE,qBAAA,QAAA5B,CAAA,GAAA0B,MAAA,CAAAE,qBAAA,CAAA/B,CAAA,GAAAS,CAAA,KAAAN,CAAA,GAAAA,CAAA,CAAA6B,MAAA,WAAAvB,CAAA,WAAAoB,MAAA,CAAAI,wBAAA,CAAAjC,CAAA,EAAAS,CAAA,EAAAyB,UAAA,OAAAjB,CAAA,CAAAkB,IAAA,CAAAC,KAAA,CAAAnB,CAAA,EAAAd,CAAA,YAAAc,CAAA;AAAA,SAAAoB,cAAArC,CAAA,aAAAS,CAAA,MAAAA,CAAA,GAAA6B,SAAA,CAAAZ,MAAA,EAAAjB,CAAA,UAAAQ,CAAA,WAAAqB,SAAA,CAAA7B,CAAA,IAAA6B,SAAA,CAAA7B,CAAA,QAAAA,CAAA,OAAAmB,OAAA,CAAAC,MAAA,CAAAZ,CAAA,OAAAsB,OAAA,WAAA9B,CAAA,IAAA+B,eAAA,CAAAxC,CAAA,EAAAS,CAAA,EAAAQ,CAAA,CAAAR,CAAA,SAAAoB,MAAA,CAAAY,yBAAA,GAAAZ,MAAA,CAAAa,gBAAA,CAAA1C,CAAA,EAAA6B,MAAA,CAAAY,yBAAA,CAAAxB,CAAA,KAAAW,OAAA,CAAAC,MAAA,CAAAZ,CAAA,GAAAsB,OAAA,WAAA9B,CAAA,IAAAoB,MAAA,CAAAc,cAAA,CAAA3C,CAAA,EAAAS,CAAA,EAAAoB,MAAA,CAAAI,wBAAA,CAAAhB,CAAA,EAAAR,CAAA,iBAAAT,CAAA;AAAA,SAAAwC,gBAAAxC,CAAA,EAAAS,CAAA,EAAAQ,CAAA,YAAAR,CAAA,GAAAmC,cAAA,CAAAnC,CAAA,MAAAT,CAAA,GAAA6B,MAAA,CAAAc,cAAA,CAAA3C,CAAA,EAAAS,CAAA,IAAAoC,KAAA,EAAA5B,CAAA,EAAAiB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAA/C,CAAA,CAAAS,CAAA,IAAAQ,CAAA,EAAAjB,CAAA;AAAA,SAAAgD,gBAAAjC,CAAA,EAAAY,CAAA,UAAAZ,CAAA,YAAAY,CAAA,aAAAb,SAAA;AAAA,SAAAmC,kBAAAjD,CAAA,EAAAS,CAAA,aAAAQ,CAAA,MAAAA,CAAA,GAAAR,CAAA,CAAAiB,MAAA,EAAAT,CAAA,UAAAd,CAAA,GAAAM,CAAA,CAAAQ,CAAA,GAAAd,CAAA,CAAA+B,UAAA,GAAA/B,CAAA,CAAA+B,UAAA,QAAA/B,CAAA,CAAA2C,YAAA,kBAAA3C,CAAA,KAAAA,CAAA,CAAA4C,QAAA,QAAAlB,MAAA,CAAAc,cAAA,CAAA3C,CAAA,EAAA4C,cAAA,CAAAzC,CAAA,CAAA+C,GAAA,GAAA/C,CAAA;AAAA,SAAAgD,aAAAnD,CAAA,EAAAS,CAAA,EAAAQ,CAAA,WAAAR,CAAA,IAAAwC,iBAAA,CAAAjD,CAAA,CAAAO,SAAA,EAAAE,CAAA,GAAAQ,CAAA,IAAAgC,iBAAA,CAAAjD,CAAA,EAAAiB,CAAA,GAAAY,MAAA,CAAAc,cAAA,CAAA3C,CAAA,iBAAA+C,QAAA,SAAA/C,CAAA;AAAA,SAAA4C,eAAA3B,CAAA,QAAAmC,CAAA,GAAAC,YAAA,CAAApC,CAAA,gCAAAf,OAAA,CAAAkD,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAApC,CAAA,EAAAR,CAAA,oBAAAP,OAAA,CAAAe,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAjB,CAAA,GAAAiB,CAAA,CAAAb,MAAA,CAAAkD,WAAA,kBAAAtD,CAAA,QAAAoD,CAAA,GAAApD,CAAA,CAAAmB,IAAA,CAAAF,CAAA,EAAAR,CAAA,gCAAAP,OAAA,CAAAkD,CAAA,UAAAA,CAAA,YAAAtC,SAAA,yEAAAL,CAAA,GAAA8C,MAAA,GAAAC,MAAA,EAAAvC,CAAA;AACrE,IAAIwC,WAAW;AACf,IAAIC,WAAW;AACf,IAAIC,QAAQ;AACZ,IAAIC,YAAY;AAChB,IAAIC,WAAW;AACf,IAAIC,OAAO;AACX,IAAIC,KAAK;AACT,IAAIC,KAAK;AAAC,IAEJC,IAAI,GAAAC,OAAA;EAAA,SAAAD,KAAA;IAAAjB,eAAA,OAAAiB,IAAA;EAAA;EAAA,OAAAd,YAAA,CAAAc,IAAA;IAAAf,GAAA;IAAAL,KAAA,EACR,SAAOsB,MAAMA,CACXC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,CAAC,EACDC,CAAC,EACDC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,aAAa,EAEb;MAAA,IADAC,OAAO,GAAAvC,SAAA,CAAAZ,MAAA,QAAAY,SAAA,QAAAwC,SAAA,GAAAxC,SAAA,MAAG,EAAE;MAEZ,IAAIyC,MAAM,GAAGC,iBAAQ,CAACC,SAAS,CAAC,CAAC;MAEjC,IAAIC,IAAI,GAAGd,KAAK,CAACe,OAAO,CAACC,cAAc,CACrCd,IAAI,EACJ;QACEe,EAAE,EAAEN,MAAM;QACVA,MAAM,EAAEX,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzDjD,IAAI,EAAEkE,sBAAa,CAACC,YAAY,CAC9B,OAAO,EACPpB,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CACzD,CAAC;QACDmB,UAAU,EAAErB,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,KAAK,CAAC,CAAC,CAACoB,IAAI,CAAC,CAAC,CAC9DD,UAAU;QACb;QACAE,QAAQ,EAAEvB,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,MAAM,CAAC,CAAC;QACzDsB,SAAS,EAAExB,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACvEuB,gBAAgB,EAAEzB,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,KAAK,CAAC,CAAC,CAACoB,IAAI,CAAC,CAAC,CACpEG,gBAAgB;QACnBvB,IAAI,EAAJA,IAAI;QACJI,MAAM,EAANA,MAAM;QACND,KAAK,EAALA,KAAK;QACLF,CAAC,EAADA,CAAC;QACDC,CAAC,EAADA,CAAC;QACDG,QAAQ,EAARA,QAAQ;QACRC,aAAa,EAAbA;MACF,CAAC,EACD,IAAI,EACJR,KACF,CAAC;MAED,IAAIc,IAAI,CAACS,QAAQ,KAAK,SAAS,EAAE;QAC/B,IAAMG,KAAK,GAAG1B,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,CAAC,CAAC;QACvD,IAAID,KAAK,CAAC2B,SAAS,KAAK,IAAI,IAAI3B,KAAK,CAAC2B,SAAS,KAAKjB,SAAS,EAAE;UAAA,IAAAkB,gBAAA;UAC7D,IAAMC,IAAI,GAAGH,KAAK,CAACC,SAAS,GAAGD,KAAK,CAACC,SAAS,GAAG3B,KAAK,CAAC2B,SAAS,CAACL,IAAI,CAAC,CAAC;UACvE,IAAIQ,IAAG,GAAGD,IAAI,aAAJA,IAAI,gBAAAD,gBAAA,GAAJC,IAAI,CAAEE,UAAU,cAAAH,gBAAA,uBAAhBA,gBAAA,CAAkBE,GAAG,CAACE,IAAI,CAClC,UAAAC,IAAI;YAAA,OACFA,IAAI,CAACtB,MAAM,KAAKX,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,QAAQ,CAAC,CAAC;UAAA,CACrE,CAAC;UACD,IAAIgC,KAAK,GAAGL,IAAI;UAChB,IAAIC,IAAG,KAAKpB,SAAS,IAAIoB,IAAG,KAAK,IAAI,EAAE;YACrCI,KAAK,CAACH,UAAU,GAAA9D,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACX4D,IAAI,CAACE,UAAU,GACfD,IAAG,CAACK,IAAI,CAAC,CAAC,CAAC;cACdC,qBAAqB,EAAEN,IAAG,CAACM;YAAqB,EACjD;YACDtB,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;cAChBV,SAAS,EAAE,IAAAW,iBAAM,EAACJ,KAAK;YACzB,CAAC,CAAC;UACJ,CAAC,MAAM;YAAA,IAAAK,aAAA;YACL,IAAIC,QAAQ,IAAAD,aAAA,GAAGvC,KAAK,CAACyC,MAAM,cAAAF,aAAA,gBAAAA,aAAA,GAAZA,aAAA,CAAcjB,IAAI,CAAC,CAAC,cAAAiB,aAAA,uBAApBA,aAAA,CAAsBE,MAAM;YAC3C,IAAID,QAAQ,EAAE;cACZ,KAAK,IAAIrC,EAAC,IAAIqC,QAAQ,EAAE;gBACtBV,IAAG,GAAGU,QAAQ,CAACrC,EAAC,CAAC,CAACgC,IAAI,CAACJ,UAAU,CAACD,GAAG,CAACE,IAAI,CACxC,UAAAC,IAAI;kBAAA,OACFA,IAAI,CAACtB,MAAM,KACXX,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAAA,CACrD,CAAC;gBACD,IAAI4B,IAAG,KAAK,IAAI,IAAIA,IAAG,KAAKpB,SAAS,IAAIoB,IAAG,EAAE;kBAC5CI,KAAK,GAAGM,QAAQ,CAACrC,EAAC,CAAC,CAACgC,IAAI;kBACxBD,KAAK,CAACH,UAAU,GAAA9D,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACXiE,KAAK,CAACH,UAAU,GAChBD,IAAG,CAACK,IAAI,CAAC,CAAC,CAAC;oBACdC,qBAAqB,EAAEN,IAAG,CAACM;kBAAqB,EACjD;kBACDtB,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;oBAChBV,SAAS,EAAE,IAAAW,iBAAM,EAACJ,KAAK;kBACzB,CAAC,CAAC;kBACF;gBACF;cACF;YACF;UACF;QACF,CAAC,MAAM;UAAA,IAAAQ,cAAA;UACL,IAAIF,SAAQ,IAAAE,cAAA,GAAG1C,KAAK,CAACyC,MAAM,cAAAC,cAAA,gBAAAA,cAAA,GAAZA,cAAA,CAAcpB,IAAI,CAAC,CAAC,cAAAoB,cAAA,uBAApBA,cAAA,CAAsBD,MAAM;UAC3C,IAAID,SAAQ,EAAE;YACZ,KAAK,IAAIrC,GAAC,IAAIqC,SAAQ,EAAE;cACtBV,GAAG,GAAGU,SAAQ,CAACrC,GAAC,CAAC,CAACgC,IAAI,CAACJ,UAAU,CAACD,GAAG,CAACE,IAAI,CACxC,UAAAC,IAAI;gBAAA,OACFA,IAAI,CAACtB,MAAM,KACXX,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,QAAQ,CAAC,CAAC;cAAA,CACrD,CAAC;cACD,IAAI4B,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKpB,SAAS,IAAIoB,GAAG,EAAE;gBAC5C,IAAII,MAAK,GAAGM,SAAQ,CAACrC,GAAC,CAAC,CAACgC,IAAI;gBAC5BD,MAAK,CAACH,UAAU,GAAA9D,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACXiE,MAAK,CAACH,UAAU,GAChBD,GAAG,CAACK,IAAI,CAAC,CAAC,CAAC;kBACdC,qBAAqB,EAAEN,GAAG,CAACM;gBAAqB,EACjD;gBACDtB,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;kBAChBV,SAAS,EAAE,IAAAW,iBAAM,EAACJ,MAAK;gBACzB,CAAC,CAAC;gBACF;cACF;YACF;UACF;QACF;MACF;MAEA,IAAIpB,IAAI,CAAC6B,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI7B,IAAI,CAAC6B,GAAG,CAAC,WAAW,CAAC,CAACC,IAAI,KAAK,CAAC,EAAE;QACtE,OAAO;UAAEC,YAAY,EAAE7C,KAAK;UAAEc,IAAI,EAAE;QAAK,CAAC;MAC5C;MAEA,IAAIgC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA,EAAS;QAAA,IAAAC,qBAAA;QACnC,IAAIpB,SAAS,GAAGb,IAAI,CAAC6B,GAAG,CAAC,WAAW,CAAC,CAACrB,IAAI,CAAC,CAAC;QAC5C,IAAIQ,GAAG,GAAGH,SAAS,aAATA,SAAS,gBAAAoB,qBAAA,GAATpB,SAAS,CAAEI,UAAU,cAAAgB,qBAAA,gBAAAA,qBAAA,GAArBA,qBAAA,CAAuBjB,GAAG,cAAAiB,qBAAA,uBAA1BA,qBAAA,CAA4Bf,IAAI,CACxC,UAAAC,IAAI;UAAA,OAAIA,IAAI,CAACtB,MAAM,KAAKG,IAAI,CAACH,MAAM;QAAA,CACrC,CAAC;QACD,IAAIqC,QAAQ,GAAG,EAAE;QACjB,IAAIlB,GAAG,KAAKpB,SAAS,EAAE;UACrBsC,QAAQ,GAAGlB,GAAG,IAAIA,GAAG,CAACK,IAAI,CAACvE,MAAM,CAAC,UAAAqF,OAAO;YAAA,OAAIA,OAAO,CAACC,WAAW;UAAA,EAAC;QACnE;QACA,IACEvB,SAAS,CAACwB,eAAe,KAAK,kBAAkB,IAChDH,QAAQ,CAAC1F,MAAM,GAAG,CAAC,EACnB;UACA,IAAI8F,aAAa,GAAGtC,IAAI,CAAC6B,GAAG,CAAC,YAAY,CAAC,CAACrB,IAAI,CAAC,CAAC;UACjD,IAAI8B,aAAa,CAACC,cAAc,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAACD,aAAa,CAACC,cAAc,CAAC,UAAU,CAAC,EAAE;cAC7CD,aAAa,CAAC,UAAU,CAAC,GAAG,IAAIE,cAAG,CAAC;gBAClChG,MAAM,EAAE8F,aAAa,CAACG,KAAK,CAACjG,MAAM;gBAClCkG,OAAO,EAAEJ,aAAa,CAACG,KAAK,CAACC,OAAO;gBACpCC,KAAK,EAAEL,aAAa,CAACG,KAAK,CAACE;cAC7B,CAAC,CAAC;YACJ;YACAL,aAAa,CAAC,OAAO,CAAC,GAAG,IAAIE,cAAG,CAAC;cAC/BhG,MAAM,EAAE,IAAAoG,wBAAO,EAACV,QAAQ,CAAC,CAAC,CAAC,CAACW,WAAW,CAAC,CAACxG,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAAC,IAAI,CAAC;cAC5DJ,OAAO,EAAER,QAAQ,CAAC,CAAC,CAAC,CAACW,WAAW;cAChCF,KAAK,EAAE;YACT,CAAC,CAAC;UACJ;UACA,IAAIL,aAAa,CAACC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC1C,IAAI,CAACD,aAAa,CAACC,cAAc,CAAC,WAAW,CAAC,EAAE;cAC9CD,aAAa,CAAC,WAAW,CAAC,GAAG,IAAIE,cAAG,CAAC;gBACnChG,MAAM,EAAE8F,aAAa,CAAC9C,MAAM,CAAChD,MAAM;gBACnCkG,OAAO,EAAEJ,aAAa,CAAC9C,MAAM,CAACkD,OAAO;gBACrCC,KAAK,EAAEL,aAAa,CAAC9C,MAAM,CAACmD;cAC9B,CAAC,CAAC;YACJ;YACAL,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAIE,cAAG,CAAC;cAChChG,MAAM,EAAE,IAAAoG,wBAAO,EAACV,QAAQ,CAAC,CAAC,CAAC,CAACa,WAAW,CAAC,CAAC1G,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAAC,IAAI,CAAC;cAC5DJ,OAAO,EAAER,QAAQ,CAAC,CAAC,CAAC,CAACa,WAAW;cAChCJ,KAAK,EAAE;YACT,CAAC,CAAC;UACJ;UACA,IAAIL,aAAa,CAACC,cAAc,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAACD,aAAa,CAACC,cAAc,CAAC,UAAU,CAAC,EAAE;cAC7CD,aAAa,CAAC,UAAU,CAAC,GAAG,IAAIE,cAAG,CAAC;gBAClChG,MAAM,EAAE8F,aAAa,CAAC/C,KAAK,CAAC/C,MAAM;gBAClCkG,OAAO,EAAEJ,aAAa,CAAC/C,KAAK,CAACmD,OAAO;gBACpCC,KAAK,EAAEL,aAAa,CAAC/C,KAAK,CAACoD;cAC7B,CAAC,CAAC;YACJ;YACAL,aAAa,CAAC,OAAO,CAAC,GAAG,IAAIE,cAAG,CAAC;cAC/BhG,MAAM,EAAE,IAAAoG,wBAAO,EAACV,QAAQ,CAAC,CAAC,CAAC,CAACc,UAAU,CAAC,CAAC3G,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;cAChEJ,OAAO,EAAER,QAAQ,CAAC,CAAC,CAAC,CAACc,UAAU;cAC/BL,KAAK,EAAE;YACT,CAAC,CAAC;UACJ;UACA3C,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;YAAE0B,UAAU,EAAE,IAAAzB,iBAAM,EAACc,aAAa;UAAE,CAAC,CAAC;QAC1D,CAAC,MAAM;UACL,IAAIW,UAAU,GAAGjD,IAAI,CAAC6B,GAAG,CAAC,YAAY,CAAC,CAACrB,IAAI,CAAC,CAAC;UAC9C,IAAIyC,UAAU,CAACV,cAAc,CAAC,UAAU,CAAC,EAAE;YACzCU,UAAU,CAAC,OAAO,CAAC,GAAG,IAAIT,cAAG,CAAC;cAC5BhG,MAAM,EAAEyG,UAAU,CAACC,QAAQ,CAAC1G,MAAM;cAClCkG,OAAO,EAAEO,UAAU,CAACC,QAAQ,CAACR,OAAO;cACpCC,KAAK,EAAEM,UAAU,CAACC,QAAQ,CAACP;YAC7B,CAAC,CAAC;UACJ;UACA,IAAIM,UAAU,CAACV,cAAc,CAAC,WAAW,CAAC,EAAE;YAC1CU,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAIT,cAAG,CAAC;cAC7BhG,MAAM,EAAEyG,UAAU,CAACE,SAAS,CAAC3G,MAAM;cACnCkG,OAAO,EAAEO,UAAU,CAACE,SAAS,CAACT,OAAO;cACrCC,KAAK,EAAEM,UAAU,CAACE,SAAS,CAACR;YAC9B,CAAC,CAAC;UACJ;UACA,IAAIM,UAAU,CAACV,cAAc,CAAC,UAAU,CAAC,EAAE;YACzCU,UAAU,CAAC,OAAO,CAAC,GAAG,IAAIT,cAAG,CAAC;cAC5BhG,MAAM,EAAEyG,UAAU,CAACG,QAAQ,CAAC5G,MAAM;cAClCkG,OAAO,EAAEO,UAAU,CAACG,QAAQ,CAACV,OAAO;cACpCC,KAAK,EAAEM,UAAU,CAACG,QAAQ,CAACT;YAC7B,CAAC,CAAC;UACJ;UACA3C,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;YAAE0B,UAAU,EAAE,IAAAzB,iBAAM,EAACyB,UAAU;UAAE,CAAC,CAAC;QACvD;MACF,CAAC;MACDjD,IAAI,CAACS,QAAQ,KAAK,SAAS,IAAIuB,wBAAwB,CAAC,CAAC;MAEzDhC,IAAI,GAAG,IAAI,CAACqD,gBAAgB,CAC1BrD,IAAI,EACJd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,CAAC,CAC1C,CAAC;MAEDD,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI,CAAC;MAExE,IAAIA,IAAI,CAACZ,IAAI,CAACmE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC/B,IAAIC,UAAU,GAAGtE,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,YAAY,CAAC,CAAC;QACxE,IAAIsE,QAAQ,GAAGvE,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,MAAM,CAAC,CAAC;QAChEqE,UAAU,GAAG,IAAAZ,wBAAO,EAACY,UAAU,CAAC,CAACnH,IAAI,CAACoH,QAAQ,CAAC,CAACX,EAAE,CAAC,IAAI,CAAC;QACxD,IAAIY,WAAW,GACbF,UAAU,GAAGxD,IAAI,CAACiD,UAAU,CAAC7C,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1DsD,WAAW,GAAG,IAAAd,wBAAO,EAACc,WAAW,CAAC,CAACrH,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAACW,QAAQ,CAAC;QAC1DzD,IAAI,GAAGA,IAAI,CAACsD,KAAK,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,EAAEI,WAAW,CAAC;QACrExE,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEa,IAAI,CAACG,EAAE,CAAC,EAAEH,IAAI,CAAC;MAC3E;MAEA,IAAIA,IAAI,CAACS,QAAQ,KAAK,SAAS,EAAE;QAC/B;QACA,IAAIkD,YAAY,GAAGzE,KAAK,CACrBkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,SAAS,CAAC,CAAC,CAC9CrC,MAAM,CAAC,UAAA8G,EAAE;UAAA,OAAI,IAAAC,yBAAgB,EAACD,EAAE,EAAE5D,IAAI,CAACU,SAAS,CAAC;QAAA,EAAC;QACrDxB,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,SAAS,CAAC,EACxD8D,YAAY,CAACnH,MAAM,GAAGmH,YAAY,GAAGhE,OACvC,CAAC;MACH;MACA,OAAO;QAAEoC,YAAY,EAAE7C,KAAK;QAAEc,IAAI,EAAJA;MAAK,CAAC;IACtC;EAAC;IAAAhC,GAAA;IAAAL,KAAA,EAED,SAAO0F,gBAAgBA,CAACrD,IAAI,EAAEY,KAAK,EAAE;MACnC,IAAMkD,UAAU,GAAGlD,KAAK,CAACiB,GAAG,CAAC,YAAY,CAAC;MAE1C,IAAIiC,UAAU,IAAI,EAAE,EAAE,OAAO9D,IAAI;MACjC,IAAM+D,QAAQ,GAAG/D,IAAI,CAACQ,IAAI,CAAC,CAAC;MAC5B,IAAIX,MAAM,GAAGkE,QAAQ,CAAC5D,EAAE;MACxB,IAAIU,SAAS,GAAGkD,QAAQ,CAAClD,SAAS;MAClC,IAAIO,KAAK,GAAAjE,aAAA,CAAAA,aAAA,KACJ0D,SAAS;QACZmD,WAAW,EAAEF,UAAU;QACvBG,SAAS,EAAE,GAAG;QACdC,SAAS,EAAE;MAAG,EACf;MACD,IAAIC,GAAG,GAAG,CAAC;MACX,KAAK,IAAIC,IAAI,IAAIvD,SAAS,CAACI,UAAU,EAAEkD,GAAG,EAAE;MAC5C,IAAIA,GAAG,KAAK,CAAC,EAAE;QACb,KAAK,IAAIjG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;UAC3BkD,KAAK,CAAC,YAAY,CAAC,CAAC,cAAc,GAAGlD,CAAC,GAAG,OAAO,CAAC,GAAG4F,UAAU;UAC9D1C,KAAK,CAAC,YAAY,CAAC,CAAC,2BAA2B,GAAGlD,CAAC,GAAG,OAAO,CAAC,GAC5D4F,UAAU;UACZ1C,KAAK,CAAC,YAAY,CAAC,CAAC,qBAAqB,GAAGlD,CAAC,GAAG,OAAO,CAAC,GAAG4F,UAAU;QACvE;MACF;MAEA9D,IAAI,GAAGA,IAAI,CAACqE,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,IAAA7C,iBAAM,EAACJ,KAAK,CAAC,CAAC;MAEjD,OAAOpB,IAAI;IACb;EAAC;IAAAhC,GAAA;IAAAL,KAAA,EAED,SAAO2G,MAAMA,CAACpF,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAE;MACpCX,KAAK,GAAGqF,aAAK,CAACD,MAAM,CAACpF,KAAK,EAAEC,OAAO,CAAC,CAAC4C,YAAY;MACjD7C,KAAK,GAAGqF,aAAK,CAACC,aAAa,CAACtF,KAAK,EAAEC,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAACkC,YAAY;MACzE7C,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBkD,gBAAgB,EAAE,IAAIjC,cAAG,CAAC;UACxBrD,OAAO,EAAPA,OAAO;UACPU,MAAM,EAANA;QACF,CAAC;MACH,CAAC,CAAC;MAEF,OAAO;QAAEkC,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO+G,UAAUA,CAACxF,KAAK,EAAEC,OAAO,EAAEwF,MAAM,EAAE;MACxCzF,KAAK,GAAGqF,aAAK,CAACD,MAAM,CAACpF,KAAK,EAAEC,OAAO,CAAC,CAAC4C,YAAY;MACjD7C,KAAK,GAAGqF,aAAK,CAACC,aAAa,CAACtF,KAAK,EAAEC,OAAO,EAAE,OAAO,EAAEwF,MAAM,CAAC,CAAC5C,YAAY;MAEzE,OAAO;QAAEA,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOiH,SAASA,CAAC1F,KAAK,EAAE2F,QAAQ,EAAE1F,OAAO,EAAEU,MAAM,EAAE;MACjD,IAAIG,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrE,IAAIoD,UAAU,GAAGjD,IAAI,CAACiD,UAAU;MAChC,IAAI4B,QAAQ,KAAK,CAAC,EAAE;QAClBC,KAAK,CAAC,4BAA4B,CAAC;QACnC,OAAO;UAAE/C,YAAY,EAAE7C;QAAM,CAAC;MAChC;MACA,IAAIK,KAAK,GAAG,IAAIiD,cAAG,CAAC;QAClBE,OAAO,EAAEmC,QAAQ;QACjBlC,KAAK,EAAE,IAAI;QACXnG,MAAM,EAAE,IAAAoG,wBAAO,EAACiC,QAAQ,CAAC,CAACxI,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAAC,IAAI;MAC9C,CAAC,CAAC;MACFG,UAAU,GAAGA,UAAU,CAAC8B,GAAG,CAAC,OAAO,EAAExF,KAAK,CAAC;MAC3CL,KAAK,GAAGA,KAAK,CAACmF,OAAO,CACnB,CAAC,OAAO,EAAE,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,YAAY,CAAC,EAC3DoD,UACF,CAAC;MACD,OAAO;QAAElB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOqH,WAAWA,CAAC9F,KAAK,EAAEC,OAAO,EAAE;MACjC,IAAIyB,KAAK,GAAG1B,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,CAAC,CAAC;MACrD,IAAI8F,KAAK,GAAG/F,KAAK,CAAC2C,GAAG,CAAC,OAAO,CAAC;MAC9B,IAAI5B,OAAO,GAAGf,KAAK,CAACe,OAAO,CAACO,IAAI,CAAC,CAAC;MAClC/B,QAAQ,GAAGyG,sBAAa,CAACC,WAAW,CAACvE,KAAK,CAAC;MAC3ClC,YAAY,GAAGwG,sBAAa,CAACE,kBAAkB,CAACxE,KAAK,EAAEnC,QAAQ,CAAC;MAChEF,WAAW,GAAG2G,sBAAa,CAACG,WAAW,CAACJ,KAAK,EAAEhF,OAAO,EAAEvB,YAAY,CAAC;MACrEF,WAAW,GAAG0G,sBAAa,CAACI,cAAc,CAAC/G,WAAW,CAAC;MACvDI,WAAW,GAAGuG,sBAAa,CAACK,cAAc,CAAC7G,YAAY,EAAEH,WAAW,CAACiH,GAAG,CAAC;MACzE5G,OAAO,GAAGL,WAAW,CAACkH,MAAM,CAACC,MAAM,CAAChH,YAAY,CAAC;MACjDF,WAAW,GAAG0G,sBAAa,CAACS,aAAa,CAACnH,WAAW,EAAEI,OAAO,CAAC;MAC/DD,WAAW,GAAGuG,sBAAa,CAACS,aAAa,CAAChH,WAAW,EAAEC,OAAO,CAAC;IACjE;EAAC;IAAAZ,GAAA;IAAAL,KAAA,EAED,SAAOiI,iBAAiBA,CAAC1G,KAAK,EAAE2G,aAAa,EAAE;MAC7C,IAAI1G,OAAO,GAAGD,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;MACrD,IAAIQ,KAAK,GAAG1B,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,CAAC,CAAC;MACrD,IAAI2G,QAAQ,GAAGD,aAAa,CAAC1F,EAAE;MAC/B,IAAI4F,QAAQ;MACZ,IAAI1G,CAAC,GAAGwG,aAAa,CAACxG,CAAC;MACvB,IAAIC,CAAC,GAAGuG,aAAa,CAACvG,CAAC;MACvB,IAAI0G,kBAAkB,EAAEzG,KAAK,EAAEkD,KAAK,EAAEwD,MAAM;MAC5C,QAAQJ,aAAa,CAACxK,SAAS;QAC7B,KAAK,OAAO;UACV0K,QAAQ,GAAG7G,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAE2G,QAAQ,CAAC,CAAC;UACvEE,kBAAkB,GAAGD,QAAQ,CAAC3G,IAAI;UAClCG,KAAK,GAAGwG,QAAQ,CAAC9C,UAAU,CAAC7C,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;UACtDqC,KAAK,GAAGsD,QAAQ,CAAC9C,UAAU,CAAC7C,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;UACtD6F,MAAM,GAAIF,QAAQ,CAACtG,QAAQ,GAAGyG,IAAI,CAACC,EAAE,GAAI,GAAG;UAC5C,IAAI,CAACnB,WAAW,CAAC9F,KAAK,EAAEC,OAAO,CAAC;UAChC,IAAIiH,GAAG,GAAG;YACRC,GAAG,EAAE;cACHhH,CAAC,EAAEA,CAAC,GAAGE,KAAK,GAAG2G,IAAI,CAACI,GAAG,CAACL,MAAM,CAAC;cAC/B3G,CAAC,EAAEA,CAAC,GAAGC,KAAK,GAAG2G,IAAI,CAACK,GAAG,CAACN,MAAM;YAChC,CAAC;YACDA,MAAM,EAAEA;UACV,CAAC;UACDG,GAAG,CAACtE,IAAI,GAAGvD,WAAW,CAACiH,GAAG,CAAC1D,IAAI;UAC/BsE,GAAG,CAAC1F,SAAS,GAAGnC,WAAW,CAACiH,GAAG,CAAC9E,SAAS;UACzC0F,GAAG,CAACI,SAAS,GAAGjI,WAAW,CAACiH,GAAG,CAACgB,SAAS;UACzC,IAAIC,UAAU,GAAGvB,sBAAa,CAACwB,cAAc,CAAC9H,OAAO,EAAEwH,GAAG,CAAC;UAC3D,IAAIK,UAAU,EAAE;YACd;YACA,IAAAE,YAAA,GAAqC,IAAI,CAAC1H,MAAM,CAC9CC,KAAK,EACLC,OAAO,EACP6G,kBAAkB,EAClB3G,CAAC,GAAGE,KAAK,GAAG2G,IAAI,CAACI,GAAG,CAACL,MAAM,CAAC,EAC5B3G,CAAC,GAAGC,KAAK,GAAG2G,IAAI,CAACK,GAAG,CAACN,MAAM,CAAC,EAC5B,GAAG,EACH,GAAG,EACFA,MAAM,GAAG,GAAG,GAAIC,IAAI,CAACC,EAAE,EACxB,IAAI,EACJJ,QAAQ,CAACpG,OACX,CAAC;cAXmBiH,MAAM,GAAAD,YAAA,CAApB5E,YAAY;cAAU/B,IAAI,GAAA2G,YAAA,CAAJ3G,IAAI;YAYhC,IAAIA,IAAI,KAAK,IAAI,EAAE;cACjB8E,KAAK,CAAC,2CAA2C,CAAC;cAClD5F,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;gBAClBsF,IAAI,EAAEC,oBAAS;gBACfC,cAAc,EAAE,IAAIvE,cAAG,CAAC;cAC1B,CAAC,CAAC;YACJ,CAAC,MAAM;cACLtD,KAAK,GAAGH,IAAI,CAACuF,MAAM,CAACsC,MAAM,EAAEzH,OAAO,EAAEa,IAAI,CAACG,EAAE,CAAC,CAAC4B,YAAY;cAC1D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEtD,IAAI,CAACG,EAAE,CAAC;YAC/D;UACF,CAAC,MAAM;YACL,IAAIiG,IAAG,GAAG;cACRC,GAAG,EAAE;gBACHhH,CAAC,EAAEA,CAAC,GAAGE,KAAK,GAAG2G,IAAI,CAACI,GAAG,CAACL,MAAM,CAAC;gBAC/B3G,CAAC,EAAEA,CAAC,GAAGC,KAAK,GAAG2G,IAAI,CAACK,GAAG,CAACN,MAAM;cAChC,CAAC;cACDA,MAAM,EAAEA;YACV,CAAC;YACDG,IAAG,CAACtE,IAAI,GAAGvD,WAAW,CAACiH,GAAG,CAAC1D,IAAI;YAC/BsE,IAAG,CAAC1F,SAAS,GAAGnC,WAAW,CAACiH,GAAG,CAAC9E,SAAS;YACzC0F,IAAG,CAACI,SAAS,GAAGjI,WAAW,CAACiH,GAAG,CAACgB,SAAS;YACzC,IAAIQ,MAAM,GAAG9B,sBAAa,CAACwB,cAAc,CAAC9H,OAAO,EAAEwH,IAAG,CAAC;YACvD,IAAIY,MAAM,EAAE;cACV,IAAAC,aAAA,GAAqC,IAAI,CAAChI,MAAM,CAC9CC,KAAK,EACLC,OAAO,EACP6G,kBAAkB,EAClB3G,CAAC,GAAGE,KAAK,GAAG2G,IAAI,CAACI,GAAG,CAACL,MAAM,CAAC,EAC5B3G,CAAC,GAAGC,KAAK,GAAG2G,IAAI,CAACK,GAAG,CAACN,MAAM,CAAC,EAC5B,GAAG,EACH,GAAG,EACFA,MAAM,GAAG,GAAG,GAAIC,IAAI,CAACC,EAAE,EACxB,IAAI,EACJJ,QAAQ,CAACpG,OACX,CAAC;gBAXmBiH,OAAM,GAAAK,aAAA,CAApBlF,YAAY;gBAAU/B,KAAI,GAAAiH,aAAA,CAAJjH,IAAI;cAYhC,IAAIA,KAAI,KAAK,IAAI,EAAE;gBACjB8E,KAAK,CAAC,2CAA2C,CAAC;gBAClD5F,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;kBAClBsF,IAAI,EAAEC,oBAAS;kBACfC,cAAc,EAAE,IAAIvE,cAAG,CAAC;gBAC1B,CAAC,CAAC;cACJ,CAAC,MAAM;gBACLtD,KAAK,GAAGH,IAAI,CAACuF,MAAM,CAACsC,OAAM,EAAEzH,OAAO,EAAEa,KAAI,CAACG,EAAE,CAAC,CAAC4B,YAAY;gBAC1D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEtD,KAAI,CAACG,EAAE,CAAC;cAC/D;YACF,CAAC,MAAM;cACL,IAAIiG,KAAG,GAAG;gBACRC,GAAG,EAAE;kBACHhH,CAAC,EAAEA,CAAC,GAAGoD,KAAK,GAAGyD,IAAI,CAACK,GAAG,CAACN,MAAM,CAAC;kBAC/B3G,CAAC,EAAEA,CAAC,GAAGmD,KAAK,GAAGyD,IAAI,CAACI,GAAG,CAACL,MAAM;gBAChC,CAAC;gBACDA,MAAM,EAAEA;cACV,CAAC;cACDG,KAAG,CAACtE,IAAI,GAAGvD,WAAW,CAACiH,GAAG,CAAC1D,IAAI;cAC/BsE,KAAG,CAAC1F,SAAS,GAAGnC,WAAW,CAACiH,GAAG,CAAC9E,SAAS;cACzC0F,KAAG,CAACI,SAAS,GAAGjI,WAAW,CAACiH,GAAG,CAACgB,SAAS;cACzC,IAAIU,UAAU,GAAGhC,sBAAa,CAACwB,cAAc,CAAC9H,OAAO,EAAEwH,KAAG,CAAC;cAC3D,IAAIc,UAAU,EAAE;gBACd,IAAAC,aAAA,GAAqC,IAAI,CAAClI,MAAM,CAC9CC,KAAK,EACLC,OAAO,EACP6G,kBAAkB,EAClB3G,CAAC,GAAGoD,KAAK,GAAGyD,IAAI,CAACK,GAAG,CAACN,MAAM,CAAC,EAC5B3G,CAAC,GAAGmD,KAAK,GAAGyD,IAAI,CAACI,GAAG,CAACL,MAAM,CAAC,EAC5B,GAAG,EACH,GAAG,EACFA,MAAM,GAAG,GAAG,GAAIC,IAAI,CAACC,EAAE,EACxB,IAAI,EACJJ,QAAQ,CAACpG,OACX,CAAC;kBAXmBiH,QAAM,GAAAO,aAAA,CAApBpF,YAAY;kBAAU/B,MAAI,GAAAmH,aAAA,CAAJnH,IAAI;gBAYhC,IAAIA,MAAI,KAAK,IAAI,EAAE;kBACjB8E,KAAK,CAAC,2CAA2C,CAAC;kBAClD5F,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;oBAClBsF,IAAI,EAAEC,oBAAS;oBACfC,cAAc,EAAE,IAAIvE,cAAG,CAAC;kBAC1B,CAAC,CAAC;gBACJ,CAAC,MAAM;kBACLtD,KAAK,GAAGH,IAAI,CAACuF,MAAM,CAACsC,QAAM,EAAEzH,OAAO,EAAEa,MAAI,CAACG,EAAE,CAAC,CAAC4B,YAAY;kBAC1D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEtD,MAAI,CAACG,EAAE,CAAC;gBAC/D;cACF,CAAC,MAAM;gBACL,IAAIiG,KAAG,GAAG;kBACRC,GAAG,EAAE;oBACHhH,CAAC,EAAEA,CAAC,GAAGoD,KAAK,GAAGyD,IAAI,CAACK,GAAG,CAACN,MAAM,CAAC;oBAC/B3G,CAAC,EAAEA,CAAC,GAAGmD,KAAK,GAAGyD,IAAI,CAACI,GAAG,CAACL,MAAM;kBAChC,CAAC;kBACDA,MAAM,EAAEA;gBACV,CAAC;gBACDG,KAAG,CAACtE,IAAI,GAAGvD,WAAW,CAACiH,GAAG,CAAC1D,IAAI;gBAC/BsE,KAAG,CAAC1F,SAAS,GAAGnC,WAAW,CAACiH,GAAG,CAAC9E,SAAS;gBACzC0F,KAAG,CAACI,SAAS,GAAGjI,WAAW,CAACiH,GAAG,CAACgB,SAAS;gBACzC,IAAIY,QAAQ,GAAGlC,sBAAa,CAACwB,cAAc,CAAC9H,OAAO,EAAEwH,KAAG,CAAC;gBACzD,IAAIgB,QAAQ,EAAE;kBACZ,IAAAC,aAAA,GAAqC,IAAI,CAACpI,MAAM,CAC9CC,KAAK,EACLC,OAAO,EACP6G,kBAAkB,EAClB3G,CAAC,GAAGoD,KAAK,GAAGyD,IAAI,CAACK,GAAG,CAACN,MAAM,CAAC,EAC5B3G,CAAC,GAAGmD,KAAK,GAAGyD,IAAI,CAACI,GAAG,CAACL,MAAM,CAAC,EAC5B,GAAG,EACH,GAAG,EACFA,MAAM,GAAG,GAAG,GAAIC,IAAI,CAACC,EAAE,EACxB,IAAI,EACJJ,QAAQ,CAACpG,OACX,CAAC;oBAXmBiH,QAAM,GAAAS,aAAA,CAApBtF,YAAY;oBAAU/B,MAAI,GAAAqH,aAAA,CAAJrH,IAAI;kBAYhC,IAAIA,MAAI,KAAK,IAAI,EAAE;oBACjB8E,KAAK,CAAC,2CAA2C,CAAC;oBAClD5F,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;sBAClBsF,IAAI,EAAEC,oBAAS;sBACfC,cAAc,EAAE,IAAIvE,cAAG,CAAC;oBAC1B,CAAC,CAAC;kBACJ,CAAC,MAAM;oBACLtD,KAAK,GAAGH,IAAI,CAACuF,MAAM,CAACsC,QAAM,EAAEzH,OAAO,EAAEa,MAAI,CAACG,EAAE,CAAC,CAAC4B,YAAY;oBAC1D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEtD,MAAI,CAACG,EAAE,CAAC;kBAC/D;gBACF,CAAC,MAAM;kBACLmH,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;kBAChCzC,KAAK,CAAC,gBAAgB,CAAC;gBACzB;cACF;YACF;UACF;UACA;QACF,KAAK,OAAO;UACV,IAAI,CAACE,WAAW,CAAC9F,KAAK,EAAEC,OAAO,CAAC;UAChC4G,QAAQ,GAAG7G,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAE2G,QAAQ,CAAC,CAAC;UACvE,IAAI0B,IAAI,GAAGtI,KAAK,CAACkB,KAAK,CAAC,CACrB,OAAO,EACP,QAAQ,EACRjB,OAAO,EACP,OAAO,EACP4G,QAAQ,CAACyB,IAAI,CACd,CAAC;UACFxB,kBAAkB,GAAGD,QAAQ,CAAC3G,IAAI;UAClCG,KAAK,GAAGwG,QAAQ,CAAClE,GAAG,CAAC,YAAY,CAAC,CAACA,GAAG,CAAC,OAAO,CAAC,CAACA,GAAG,CAAC,QAAQ,CAAC;UAC7D,IAAI4F,QAAQ,GAAG1B,QAAQ,CAAC2B,MAAM;UAC9B,IAAIC,EAAE,GAAG/G,KAAK,CAACR,KAAK,CAAC,CAAC,UAAU,EAAEoH,IAAI,CAACI,QAAQ,CAAC/F,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;UACxD,IAAIgG,EAAE,GAAGjH,KAAK,CAACR,KAAK,CAAC,CAAC,UAAU,EAAEoH,IAAI,CAACI,QAAQ,CAAC/F,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;UACxD,IAAIiG,UAAU,GAAG5C,sBAAa,CAAC6C,cAAc,CAACJ,EAAE,CAACtI,CAAC,EAAEsI,EAAE,CAACrI,CAAC,EAAEuI,EAAE,CAACxI,CAAC,EAAEwI,EAAE,CAACvI,CAAC,CAAC;UACrE,IAAI0I,KAAK,GAAGzI,KAAK,GAAG,CAAC,GAAGuI,UAAU,GAAG,OAAO;UAC5C,IAAIG,QAAQ,GAAG/I,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,CAAC,CAAC;UACjE,IAAI+I,SAAS,GAAG,IAAI;UACpB,IAAIC,QAAQ,GAAG,IAAI;UACnB,IAAIV,QAAQ,GAAG,CAAC,GAAGO,KAAK,GAAG,CAAC,EAAEE,SAAS,GAAG,KAAK,CAAC,KAC3C,IAAIT,QAAQ,GAAG,CAAC,GAAGO,KAAK,GAAG,CAAC,EAAEG,QAAQ,GAAG,KAAK;UACnD,IAAIF,QAAQ,CAACnG,IAAI,KAAK,CAAC,EAAE;YACvB,IAAAsG,gBAAA,GAAqC,IAAI,CAACC,UAAU,CAClDnJ,KAAK,EACLC,OAAO,EACP6G,kBAAkB,EAClBD,QAAQ,CAACyB,IAAI,EACbC,QAAQ,GAAGO,KAAK,GAAG,CAAC,EACpBjC,QAAQ,CAAClE,GAAG,CAAC,YAAY,CAC3B,CAAC;cAPmByG,MAAM,GAAAF,gBAAA,CAApBrG,YAAY;cAAUwG,IAAI,GAAAH,gBAAA,CAAJG,IAAI;YAQhCrJ,KAAK,GAAG,IAAI,CAACwF,UAAU,CAAC4D,MAAM,EAAEnJ,OAAO,EAAEoJ,IAAI,CAACpI,EAAE,CAAC,CAAC4B,YAAY;YAC9D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEiF,IAAI,CAACpI,EAAE,CAAC;UAC/D,CAAC,MAAM;YACL8H,QAAQ,CAAC5K,OAAO,CAAC,UAAAkL,IAAI,EAAI;cACvB,IAAIA,IAAI,CAACf,IAAI,KAAKA,IAAI,CAACrH,EAAE,EACvB,IAAI,CAACoI,IAAI,CAACC,QAAQ,EAAE;gBAClB,IAAIC,QAAQ,GACVF,IAAI,CAAC1G,GAAG,CAAC,YAAY,CAAC,CAACA,GAAG,CAAC,OAAO,CAAC,CAACA,GAAG,CAAC,QAAQ,CAAC,GACjD,CAAC,GACDiG,UAAU;gBACZ,IAAIL,QAAQ,GAAGc,IAAI,CAACb,MAAM,EAAE;kBAC1B,IAAID,QAAQ,GAAGO,KAAK,GAAG,CAAC,GAAGO,IAAI,CAACb,MAAM,GAAGe,QAAQ,EAAE;oBACjDP,SAAS,GAAG,KAAK;kBACnB;gBACF,CAAC,MAAM;kBACL,IAAIT,QAAQ,GAAGO,KAAK,GAAG,CAAC,GAAGO,IAAI,CAACb,MAAM,GAAGe,QAAQ,EAAE;oBACjDN,QAAQ,GAAG,KAAK;kBAClB;gBACF;cACF;YACJ,CAAC,CAAC;UACJ;UACA,IAAID,SAAS,EAAE;YACb,IAAAQ,iBAAA,GAAqC,IAAI,CAACL,UAAU,CAClDnJ,KAAK,EACLC,OAAO,EACP6G,kBAAkB,EAClBD,QAAQ,CAACyB,IAAI,EACbC,QAAQ,GAAGO,KAAK,GAAG,CAAC,EACpBjC,QAAQ,CAAClE,GAAG,CAAC,YAAY,CAC3B,CAAC;cAPmByG,OAAM,GAAAI,iBAAA,CAApB3G,YAAY;cAAUwG,KAAI,GAAAG,iBAAA,CAAJH,IAAI;YAQhCrJ,KAAK,GAAG,IAAI,CAACwF,UAAU,CAAC4D,OAAM,EAAEnJ,OAAO,EAAEoJ,KAAI,CAACpI,EAAE,CAAC,CAAC4B,YAAY;YAC9D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEiF,KAAI,CAACpI,EAAE,CAAC;UAC/D,CAAC,MAAM;YACL,IAAIgI,QAAQ,EAAE;cACZ,IAAAQ,iBAAA,GAAqC,IAAI,CAACN,UAAU,CAClDnJ,KAAK,EACLC,OAAO,EACP6G,kBAAkB,EAClBD,QAAQ,CAACyB,IAAI,EACbC,QAAQ,GAAGO,KAAK,GAAG,CAAC,EACpBjC,QAAQ,CAAClE,GAAG,CAAC,YAAY,CAC3B,CAAC;gBAPmByG,QAAM,GAAAK,iBAAA,CAApB5G,YAAY;gBAAUwG,MAAI,GAAAI,iBAAA,CAAJJ,IAAI;cAQhCrJ,KAAK,GAAG,IAAI,CAACwF,UAAU,CAAC4D,QAAM,EAAEnJ,OAAO,EAAEoJ,MAAI,CAACpI,EAAE,CAAC,CAAC4B,YAAY;cAC9D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEiF,MAAI,CAACpI,EAAE,CAAC;YAC/D,CAAC,MAAM2E,KAAK,CAAC,eAAe,CAAC;UAC/B;UACA;QACF,KAAK,OAAO;UACVA,KAAK,CAAC,mDAAmD,CAAC;UAC1D;QACF;UACE;MACJ;MACA,OAAO;QAAE/C,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOiL,cAAcA,CAAC1J,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEgJ,SAAS,EAAE;MACvD,IAAIC,YAAY,GAAG5J,KAAK,CAACkB,KAAK,CAAC,CAC7B,OAAO,EACP,QAAQ,EACRjB,OAAO,EACP,OAAO,EACPU,MAAM,EACN,WAAW,CACZ,CAAC;MACF,IAAIkJ,WAAW,GAAG,SAAdA,WAAWA,CAAIlN,CAAC,EAAEmN,CAAC,EAAK;QAC1B,OAAOnN,CAAC,IAAImN,CAAC;MACf,CAAC;MACD,IAAIF,YAAY,EAAE;QAChB,IAAIG,KAAK,GAAGH,YAAY,CAACI,KAAK,CAAC,UAACC,UAAU,EAAEC,KAAK,EAAK;UACpD,OAAOL,WAAW,CAACI,UAAU,CAAC,CAAC,CAAC,EAAEN,SAAS,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,IAAI,CAACH,KAAK,EAAE;UACV/J,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,WAAW,CAAC,EAC1DgJ,SACF,CAAC;QACH;MACF;MAEA,OAAO;QAAE9G,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO0L,qBAAqBA,CAACnK,KAAK,EAAEC,OAAO,EAAE;MAAA,IAAAmK,KAAA;MAC3C,IAAI1I,KAAK,GAAG1B,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,CAAC,CAAC;MAErD,SAASoK,YAAYA,CAACvJ,IAAI,EAAE;QAC1B,IAAAwJ,YAAA,GAAwBtK,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;UAAxCb,KAAK,GAAAiK,YAAA,CAALjK,KAAK;UAAEC,MAAM,GAAAgK,YAAA,CAANhK,MAAM;QACnB,OAAOQ,IAAI,CAACX,CAAC,IAAI,CAAC,IAAIW,IAAI,CAACX,CAAC,IAAIE,KAAK,IAAIS,IAAI,CAACV,CAAC,IAAI,CAAC,IAAIU,IAAI,CAACV,CAAC,IAAIE,MAAM;MAC1E;MAEAoB,KAAK,CAAC6I,KAAK,CAACpM,OAAO,CAAC,UAAA2C,IAAI,EAAI;QAC1B,IAAI,CAACuJ,YAAY,CAACvJ,IAAI,CAAC,EACrBd,KAAK,GAAGoK,KAAI,CAACI,MAAM,CAACxK,KAAK,EAAEC,OAAO,EAAEa,IAAI,CAACG,EAAE,CAAC,CAAC4B,YAAY;MAC7D,CAAC,CAAC;MACF,OAAO;QAAEA,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO+L,MAAMA,CAACxK,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAE;MACpCX,KAAK,GAAG,IAAI,CAACyK,QAAQ,CAACzK,KAAK,EAAEC,OAAO,EAAEU,MAAM,CAAC,CAACkC,YAAY;MAC1D7C,KAAK,GAAGqF,aAAK,CAACqF,aAAa,CAAC1K,KAAK,EAAEC,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAACkC,YAAY;MAEzE7C,KAAK,CACFkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAC1B/C,OAAO,CACN,UAAAwM,KAAK;QAAA,OACF3K,KAAK,GAAG4K,aAAK,CAACF,aAAa,CAC1B1K,KAAK,EACL2K,KAAK,CAAC1J,EAAE,EACRhB,OAAO,EACP,OAAO,EACPU,MACF,CAAC,CAACkC,YAAY;MAAA,CAClB,CAAC;MAEH,OAAO;QAAEA,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOoM,WAAWA,CAAC7K,KAAK,EAAE8K,WAAW,EAAEnE,aAAa,EAAEoE,cAAc,EAAE;MACpE/K,KAAK,GAAG,IAAI,CAACwK,MAAM,CACjBxK,KAAK,EACLA,KAAK,CAAC+F,KAAK,CAACiF,aAAa,EACzBF,WAAW,CAACG,cACd,CAAC,CAACpI,YAAY;MACd7C,KAAK,GAAG,IAAI,CAACD,MAAM,CACjBC,KAAK,EACLA,KAAK,CAAC+F,KAAK,CAACiF,aAAa,EACzBD,cAAc,CAAC9N,IAAI,EACnB6N,WAAW,CAAC3K,CAAC,EACb2K,WAAW,CAAC1K,CAAC,EACb2K,cAAc,CAACG,IAAI,CAAC7K,KAAK,EACzB0K,cAAc,CAACG,IAAI,CAAC5K,MAAM,EAC1BwK,WAAW,CAACvK,QAAQ,EACpB,KACF,CAAC,CAACsC,YAAY;MACd;MACA,OAAO;QAAEA,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOgM,QAAQA,CAACzK,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAE;MACtCX,KAAK,GAAGqF,aAAK,CAACoF,QAAQ,CAACzK,KAAK,EAAEC,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAACkC,YAAY;MACpE,OAAO;QAAEA,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO0M,qBAAqBA,CAACnL,KAAK,EAAE8G,kBAAkB,EAAE;MACtD9G,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBsF,IAAI,EAAEyD,4BAAiB;QACvBvD,cAAc,EAAE,IAAIvE,cAAG,CAAC;UACtBpD,IAAI,EAAE4G;QACR,CAAC;MACH,CAAC,CAAC;MAEF,OAAO;QAAEjE,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO4M,uBAAuBA,CAACrL,KAAK,EAAE8G,kBAAkB,EAAE;MACxD9G,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBsF,IAAI,EAAE2D,+BAAoB;QAC1BzD,cAAc,EAAE,IAAIvE,cAAG,CAAC;UACtBpD,IAAI,EAAE4G;QACR,CAAC;MACH,CAAC,CAAC;MACF9G,KAAK,GAAGA,KAAK,CAACmF,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC;MACnD,OAAO;QAAEtC,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO8M,kBAAkBA,CAACvL,KAAK,EAAE;MAC/BA,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBmJ,MAAM,EAAE,KAAK;QACbC,UAAU,EAAE;MACd,CAAC,CAAC;MACF,OAAO;QAAE5I,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EACD,SAAOiN,eAAeA,CAAC1L,KAAK,EAAEvB,KAAK,EAAE;MACnCuB,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBoJ,UAAU,EAAEhN;MACd,CAAC,CAAC;MACF,OAAO;QAAEoE,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOkN,iBAAiBA,CAAC3L,KAAK,EAAEC,OAAO,EAAEE,CAAC,EAAEC,CAAC,EAAE;MAC7C,IAAIJ,KAAK,CAAC4L,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,EAAE;QAChD,IAAIjE,IAAI,GAAG3H,KAAK,CAAC2C,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC2I,+BAAoB,CAAC,CAACjH,QAAQ,CAACsD,IAAI,CAAC,EAAE;UACzC3H,KAAK,GAAGA,KAAK,CAAC6L,QAAQ,CACpB,CACE,OAAO,EACP,QAAQ,EACR5L,OAAO,EACP,OAAO,EACPD,KAAK,CAACkB,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAC7C,EACD,UAAAJ,IAAI;YAAA,OAAIA,IAAI,IAAIA,IAAI,CAACuB,KAAK,CAAC;cAAElC,CAAC,EAADA,CAAC;cAAEC,CAAC,EAADA;YAAE,CAAC,CAAC;UAAA,CACtC,CAAC;UACDJ,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;YAAEsF,IAAI,EAAEmE;UAAa,CAAC,CAAC;QAC7C;QACA,IAAI,CAACV,4BAAiB,CAAC,CAAC/G,QAAQ,CAACsD,IAAI,CAAC,EAAE;UACtC3H,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;YAAEsF,IAAI,EAAEC;UAAU,CAAC,CAAC;UACxC5H,KAAK,GAAGA,KAAK,CAAC6L,QAAQ,CACpB,CACE,OAAO,EACP,QAAQ,EACR5L,OAAO,EACP,OAAO,EACPD,KAAK,CAACkB,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAC7C,EACD,UAAAJ,IAAI;YAAA,OAAIA,IAAI,IAAIA,IAAI,CAACuB,KAAK,CAAC;cAAElC,CAAC,EAADA,CAAC;cAAEC,CAAC,EAADA;YAAE,CAAC,CAAC;UAAA,CACtC,CAAC;QACH;MACF,CAAC,MAAM;QACL,IAAA2L,aAAA,GAAqC,IAAI,CAAChM,MAAM,CAC9CC,KAAK,EACLC,OAAO,EACPD,KAAK,CAACkB,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,EACvCf,CAAC,EACDC,CAAC,EACD,GAAG,EACH,GAAG,EACH,CAAC,EACD,KACF,CAAC;UAVmBsH,MAAM,GAAAqE,aAAA,CAApBlJ,YAAY;UAAU/B,IAAI,GAAAiL,aAAA,CAAJjL,IAAI;QAWhC,IAAIA,IAAI,KAAK,IAAI,EAAE;UACjB8E,KAAK,CAAC,2CAA2C,CAAC;UAClD5F,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;YAClBsF,IAAI,EAAEC,oBAAS;YACfC,cAAc,EAAE,IAAIvE,cAAG,CAAC;UAC1B,CAAC,CAAC;QACJ,CAAC,MAAM;UACLtD,KAAK,GAAGH,IAAI,CAACuF,MAAM,CAACsC,MAAM,EAAEzH,OAAO,EAAEa,IAAI,CAACG,EAAE,CAAC,CAAC4B,YAAY;UAC1D7C,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAEtD,IAAI,CAACG,EAAE,CAAC;QAC/D;MACF;MAEA,OAAO;QAAE4B,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOuN,yBAAyBA,CAAChM,KAAK,EAAEG,CAAC,EAAEC,CAAC,EAAEH,OAAO,EAAEU,MAAM,EAAE;MAC7D,IAAAsL,MAAA,GAAgBjM,KAAK;QAAf+F,KAAK,GAAAkG,MAAA,CAALlG,KAAK;MACX;MACA;;MAEA;MACA;;MAEA,IAAIjF,IAAI,GAAGiF,KAAK,CAAC7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MAC5D;MACA;MACA;MACA;MACAG,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;QAChBlC,CAAC,EAAEA,CAAC;QACJC,CAAC,EAAEA;MACL,CAAC,CAAC;MAEFJ,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;MACjE,CAAC,CAAC;MACFlB,KAAK,GAAG,IAAAsM,iBAAS,EAAC,CAAC;MACnB,KAAK,IACH9D,OAAO,CAACC,GAAG,CACT,MAAM,EACNrB,IAAI,CAACmF,KAAK,CAAC,IAAI,IAAIvM,KAAK,GAAGD,KAAK,CAAC,CAAC,EAClC,cAAc,EACd,CAACC,KAAK,GAAGD,KAAK,IAAI,IAAI,EACtB,KACF,CAAC;MACH,OAAO;QAAEkD,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO2N,cAAcA,CAACpM,KAAK,EAAEC,OAAO,EAAEE,CAAC,EAAEC,CAAC,EAAE;MAC1C,IAAIW,OAAO,GAAGf,KAAK,CAACe,OAAO;MAC3Bf,KAAK,GAAG,IAAI,CAAC2L,iBAAiB,CAAC3L,KAAK,EAAEC,OAAO,EAAEE,CAAC,EAAEC,CAAC,EAAEW,OAAO,CAAC,CAAC8B,YAAY;MAC1E7C,KAAK,GAAGqF,aAAK,CAACgH,WAAW,CAACrM,KAAK,EAAEC,OAAO,CAAC,CAAC4C,YAAY;MACtD,IAAIyJ,KAAK,GAAGtM,KAAK,CAAC2C,GAAG,CAAC,OAAO,CAAC;MAE9B3C,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBwF,cAAc,EAAE,IAAAvE,cAAG,EAAC;UAClBpD,IAAI,EAAEF,KAAK,CAAC6H,cAAc,CAAClF,GAAG,CAAC,MAAM;QACvC,CAAC,CAAC;QACF6I,MAAM,EAAE,CAACc;MACX,CAAC,CAAC;MACFtM,KAAK,GAAGqF,aAAK,CAACgH,WAAW,CAACrM,KAAK,EAAEC,OAAO,CAAC,CAAC4C,YAAY;MACtD,IAAI,CAAC0J,aAAa,CAACvM,KAAK,CAAC;MACzB,OAAO;QAAE6C,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO+N,iBAAiBA,CAACxM,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAER,CAAC,EAAEC,CAAC,EAAE;MACrD,IAAIU,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MAErEhB,KAAK,GAAG,IAAAuM,iBAAS,EAAC,CAAC;MACnB,IAAI,IAAAO,iBAAW,EAAC3L,IAAI,CAAC,EAAE;MACvBd,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBsF,IAAI,EAAE+E,6BAAkB;QACxBC,eAAe,EAAE,IAAArJ,cAAG,EAAC;UACnBrD,OAAO,EAAPA,OAAO;UACPU,MAAM,EAANA,MAAM;UACNiM,WAAW,EAAEzM,CAAC;UACd0M,WAAW,EAAEzM,CAAC;UACd0M,SAAS,EAAEhM,IAAI,CAACX,CAAC;UACjB4M,SAAS,EAAEjM,IAAI,CAACV;QAClB,CAAC;MACH,CAAC,CAAC;MAEF,OAAO;QAAEyC,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOuO,mBAAmBA,CAAChN,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAER,CAAC,EAAEC,CAAC,EAAE;MACvD,IAAIU,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrEX,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC;MACtD,IAAI,IAAAqI,iBAAW,EAAC3L,IAAI,CAAC,EAAE,OAAO;QAAE+B,YAAY,EAAE7C;MAAM,CAAC;MACrDA,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBsF,IAAI,EAAEsF,gCAAqB;QAC3BN,eAAe,EAAE,IAAArJ,cAAG,EAAC;UACnBrD,OAAO,EAAPA,OAAO;UACPU,MAAM,EAANA,MAAM;UACNiM,WAAW,EAAEzM,CAAC;UACd0M,WAAW,EAAEzM,CAAC;UACd0M,SAAS,EAAEhM,IAAI,CAACX,CAAC;UACjB4M,SAAS,EAAEjM,IAAI,CAACV;QAClB,CAAC;MACH,CAAC,CAAC;MAEF,OAAO;QAAEyC,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOyO,kBAAkBA,CAAClN,KAAK,EAAEG,CAAC,EAAEC,CAAC,EAAE;MACrC,IAAA+M,OAAA,GAAiCnN,KAAK;QAAhC2M,eAAe,GAAAQ,OAAA,CAAfR,eAAe;QAAE5G,KAAK,GAAAoH,OAAA,CAALpH,KAAK;MAE5B,IAAI9F,OAAO,GAAG0M,eAAe,CAAChK,GAAG,CAAC,SAAS,CAAC;MAC5C,IAAIhC,MAAM,GAAGgM,eAAe,CAAChK,GAAG,CAAC,QAAQ,CAAC;MAC1C,IAAIiK,WAAW,GAAGD,eAAe,CAAChK,GAAG,CAAC,aAAa,CAAC;MACpD,IAAIkK,WAAW,GAAGF,eAAe,CAAChK,GAAG,CAAC,aAAa,CAAC;MACpD,IAAImK,SAAS,GAAGH,eAAe,CAAChK,GAAG,CAAC,WAAW,CAAC;MAChD,IAAIoK,SAAS,GAAGJ,eAAe,CAAChK,GAAG,CAAC,WAAW,CAAC;MAEhD,IAAIyK,KAAK,GAAGR,WAAW,GAAGzM,CAAC;MAC3B,IAAIkN,KAAK,GAAGR,WAAW,GAAGzM,CAAC;MAE3B,IAAIU,IAAI,GAAGiF,KAAK,CAAC7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MAC5D,IAAI,IAAA8L,iBAAW,EAAC3L,IAAI,CAAC,EAAE,OAAO;QAAE+B,YAAY,EAAE7C;MAAM,CAAC;MACrD,IAAIsN,EAAE,GAAGR,SAAS,GAAGM,KAAK;MAC1B,IAAIG,EAAE,GAAGR,SAAS,GAAGM,KAAK;MAC1BC,EAAE,GAAGA,EAAE,GAAGvH,KAAK,CAAC1F,KAAK,GAAG0F,KAAK,CAAC1F,KAAK,GAAGiN,EAAE,GAAG,CAAC,GAAG,CAAC,GAAGA,EAAE;MACrDC,EAAE,GAAGA,EAAE,GAAGxH,KAAK,CAACzF,MAAM,GAAGyF,KAAK,CAACzF,MAAM,GAAGiN,EAAE,GAAG,CAAC,GAAG,CAAC,GAAGA,EAAE;MACvDzM,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;QAChBlC,CAAC,EAAEmN,EAAE;QACLlN,CAAC,EAAEmN;MACL,CAAC,CAAC;MAEFvN,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;MACjE,CAAC,CAAC;MAEF,OAAO;QAAE+B,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO+O,qBAAqBA,CAACxN,KAAK,EAAEG,CAAC,EAAE;MACrC,IAAAsN,OAAA,GAAiCzN,KAAK;QAAhC2M,eAAe,GAAAc,OAAA,CAAfd,eAAe;QAAE5G,KAAK,GAAA0H,OAAA,CAAL1H,KAAK;MAE5B,IAAI9F,OAAO,GAAG0M,eAAe,CAAChK,GAAG,CAAC,SAAS,CAAC;MAC5C,IAAIhC,MAAM,GAAGgM,eAAe,CAAChK,GAAG,CAAC,QAAQ,CAAC;MAC1C,IAAIiK,WAAW,GAAGD,eAAe,CAAChK,GAAG,CAAC,aAAa,CAAC;MACpD,IAAImK,SAAS,GAAGH,eAAe,CAAChK,GAAG,CAAC,WAAW,CAAC;MAEhD,IAAIyK,KAAK,GAAGR,WAAW,GAAGzM,CAAC;MAE3B,IAAIW,IAAI,GAAGiF,KAAK,CAAC7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MAC5DG,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;QAChBlC,CAAC,EAAE2M,SAAS,GAAGM;MACjB,CAAC,CAAC;MAEFpN,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;MACjE,CAAC,CAAC;MAEF,OAAO;QAAE+B,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOiP,qBAAqBA,CAAC1N,KAAK,EAAEI,CAAC,EAAE;MACrC,IAAAuN,OAAA,GAAiC3N,KAAK;QAAhC2M,eAAe,GAAAgB,OAAA,CAAfhB,eAAe;QAAE5G,KAAK,GAAA4H,OAAA,CAAL5H,KAAK;MAE5B,IAAI9F,OAAO,GAAG0M,eAAe,CAAChK,GAAG,CAAC,SAAS,CAAC;MAC5C,IAAIhC,MAAM,GAAGgM,eAAe,CAAChK,GAAG,CAAC,QAAQ,CAAC;MAC1C,IAAIkK,WAAW,GAAGF,eAAe,CAAChK,GAAG,CAAC,aAAa,CAAC;MACpD,IAAIoK,SAAS,GAAGJ,eAAe,CAAChK,GAAG,CAAC,WAAW,CAAC;MAEhD,IAAI0K,KAAK,GAAGR,WAAW,GAAGzM,CAAC;MAE3B,IAAIU,IAAI,GAAGiF,KAAK,CAAC7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MAC5DG,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;QAChBjC,CAAC,EAAE2M,SAAS,GAAGM;MACjB,CAAC,CAAC;MAEFrN,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;MACjE,CAAC,CAAC;MAEF,OAAO;QAAE+B,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOmP,eAAeA,CAAC5N,KAAK,EAAEG,CAAC,EAAEC,CAAC,EAAE;MAClCJ,KAAK,GAAG,IAAI,CAACkN,kBAAkB,CAAClN,KAAK,EAAEG,CAAC,EAAEC,CAAC,CAAC,CAACyC,YAAY;MACzD7C,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAAEsF,IAAI,EAAEC;MAAU,CAAC,CAAC;MAExC,OAAO;QAAE/E,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOoP,iBAAiBA,CAAC7N,KAAK,EAAE;MAC9B;MACAA,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAAEsF,IAAI,EAAEmE;MAAa,CAAC,CAAC;MAC3C9L,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC;MAErD,OAAO;QAAEvB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOqP,iBAAiBA,CAAC9N,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAER,CAAC,EAAEC,CAAC,EAAE;MACrD,IAAIU,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrE,IAAIoN,cAAc,GAAGjN,IAAI,CAAC6B,GAAG,CAAC,UAAU,CAAC;MAEzC3C,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBsF,IAAI,EAAEqG,6BAAkB;QACxBC,eAAe,EAAE,IAAA3K,cAAG,EAAC;UACnBrD,OAAO,EAAPA,OAAO;UACPU,MAAM,EAANA,MAAM;UACNR,CAAC,EAADA,CAAC;UACDC,CAAC,EAADA,CAAC;UACD2N,cAAc,EAAdA;QACF,CAAC;MACH,CAAC,CAAC;MAEF,OAAO;QAAElL,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOyP,mBAAmBA,CAAClO,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAER,CAAC,EAAEC,CAAC,EAAE;MACvD,IAAIU,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrE,IAAIoN,cAAc,GAAGjN,IAAI,CAAC6B,GAAG,CAAC,UAAU,CAAC;MAEzC3C,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBsF,IAAI,EAAEwG,gCAAqB;QAC3BF,eAAe,EAAE,IAAA3K,cAAG,EAAC;UACnBrD,OAAO,EAAPA,OAAO;UACPU,MAAM,EAANA,MAAM;UACNR,CAAC,EAADA,CAAC;UACDC,CAAC,EAADA,CAAC;UACD2N,cAAc,EAAdA;QACF,CAAC;MACH,CAAC,CAAC;MAEF,OAAO;QAAElL,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO2P,kBAAkBA,CAACpO,KAAK,EAAEG,CAAC,EAAEC,CAAC,EAAE;MACrC,IAAAiO,OAAA,GAAiCrO,KAAK;QAAhCiO,eAAe,GAAAI,OAAA,CAAfJ,eAAe;QAAElI,KAAK,GAAAsI,OAAA,CAALtI,KAAK;MAC5B,IAAI9F,OAAO,GAAGgO,eAAe,CAACtL,GAAG,CAAC,SAAS,CAAC;MAC5C,IAAIhC,MAAM,GAAGsN,eAAe,CAACtL,GAAG,CAAC,QAAQ,CAAC;MAC1C,IAAI7B,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrE,IAAI2N,MAAM,GAAG;QACXnO,CAAC,EAAE8N,eAAe,CAACtL,GAAG,CAAC,GAAG,CAAC;QAC3BvC,CAAC,EAAE6N,eAAe,CAACtL,GAAG,CAAC,GAAG,CAAC;QAC3BoL,cAAc,EAAEE,eAAe,CAACtL,GAAG,CAAC,gBAAgB;MACtD,CAAC;MAED,IAAI4L,MAAM,GACPvH,IAAI,CAACwH,KAAK,CAACF,MAAM,CAAClO,CAAC,GAAGU,IAAI,CAACV,CAAC,EAAEkO,MAAM,CAACnO,CAAC,GAAGW,IAAI,CAACX,CAAC,CAAC,GAAG,GAAG,GAAI6G,IAAI,CAACC,EAAE,GAAG,EAAE;MACzE,IAAIwH,QAAQ,GAAGF,MAAM,GAAGD,MAAM,CAACP,cAAc;MAE7C,IAAIW,MAAM,GAAGvO,CAAC,GAAGW,IAAI,CAACX,CAAC;MACvB,IAAIwO,MAAM,GAAGvO,CAAC,GAAGU,IAAI,CAACV,CAAC;MAEvB,IAAIG,QAAQ,GAAIyG,IAAI,CAACwH,KAAK,CAACG,MAAM,EAAED,MAAM,CAAC,GAAG,GAAG,GAAI1H,IAAI,CAACC,EAAE,GAAG,EAAE;MAChE1G,QAAQ,IAAIkO,QAAQ;MACpB,IAAI,CAAC,CAAC,GAAGlO,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAG,CAAC;MAC/C,IAAI,CAAC,EAAE,GAAGA,QAAQ,IAAIA,QAAQ,GAAG,CAAC,EAAE,EAAEA,QAAQ,GAAG,CAAC,EAAE;MACpD,IAAI,CAAC,GAAG,GAAGA,QAAQ,IAAIA,QAAQ,GAAG,CAAC,GAAG,EAAEA,QAAQ,GAAG,CAAC,GAAG;MACvD,IAAI,EAAE,GAAGA,QAAQ,IAAIA,QAAQ,GAAG,EAAE,EAAEA,QAAQ,GAAG,EAAE;MACjD,IAAI,CAAC,GAAG,GAAGA,QAAQ,IAAIA,QAAQ,GAAG,CAAC,GAAG,EAAEA,QAAQ,GAAG,EAAE;MACrD,IAAI,GAAG,GAAGA,QAAQ,IAAIA,QAAQ,GAAG,GAAG,EAAEA,QAAQ,GAAG,GAAG;MACpD,IAAI,GAAG,GAAGA,QAAQ,IAAIA,QAAQ,GAAG,GAAG,EAAEA,QAAQ,GAAG,CAAC,EAAE;MAEpDO,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;QAChB9B,QAAQ,EAARA;MACF,CAAC,CAAC;MAEFP,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;MACjE,CAAC,CAAC;MAEF,OAAO;QAAE+B,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOmQ,yBAAyBA,CAAC5O,KAAK,EAAEO,QAAQ,EAAEN,OAAO,EAAEU,MAAM,EAAE;MACjE,IAAIoF,KAAK,GAAG/F,KAAK,CAAC+F,KAAK;;MAEvB;MACA;;MAEA;MACA;;MAEA,IAAIjF,IAAI,GAAGiF,KAAK,CAAC7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MAC5D;MACA;MACA;MACA;MACAG,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;QAChB9B,QAAQ,EAAEA;MACZ,CAAC,CAAC;MAEFP,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;MACjE,CAAC,CAAC;MAEF,OAAO;QAAE+B,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOoQ,eAAeA,CAAC7O,KAAK,EAAEG,CAAC,EAAEC,CAAC,EAAE;MAClC;MACAJ,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAAEsF,IAAI,EAAEC;MAAU,CAAC,CAAC;MAExC,OAAO;QAAE/E,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOqQ,iBAAiBA,CAAC9O,KAAK,EAAEG,CAAC,EAAEC,CAAC,EAAE;MACpCJ,KAAK,GAAG,IAAI,CAACoO,kBAAkB,CAACpO,KAAK,EAAEG,CAAC,EAAEC,CAAC,CAAC,CAACyC,YAAY;MACzD7C,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAAEsF,IAAI,EAAEmE;MAAa,CAAC,CAAC;MAE3C,OAAO;QAAEjJ,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOsQ,gBAAgBA,CAAC/O,KAAK,EAAEgP,GAAG,EAAE;MAClC,IAAAC,OAAA,GAAkCjP,KAAK;QAAjCuF,gBAAgB,GAAA0J,OAAA,CAAhB1J,gBAAgB;QAAEQ,KAAK,GAAAkJ,OAAA,CAALlJ,KAAK;MAC7BiJ,GAAG,GAAG,qBAAqB;MAC3B,IAAIE,OAAO,GAAGF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC;MAC5B,IAAIC,MAAM,GAAG,EAAE;MACf,IAAIC,MAAM,GAAG,KAAK;MAClB,KAAK,IAAIrQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkQ,OAAO,CAAC5R,MAAM,EAAE0B,CAAC,EAAE,EAAE;QACvC,IAAIkQ,OAAO,CAAClQ,CAAC,CAAC,IAAI,EAAE,EAAE;UACpB;QACF;QACAoQ,MAAM,IAAI,GAAG,GAAGF,OAAO,CAAClQ,CAAC,CAAC;MAC5B;MACA,IAAIiB,OAAO,GAAGsF,gBAAgB,CAAC5C,GAAG,CAAC,SAAS,CAAC;MAC7C,IAAIhC,MAAM,GAAG4E,gBAAgB,CAAC5C,GAAG,CAAC,QAAQ,CAAC;MAC3C,IAAI7B,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrE,IAAI2O,SAAS,GAAG,EAAE;MAClB,IAAIC,SAAS,GAAG,EAAE;MAElB,KAAK,IAAIvQ,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAG8B,IAAI,CAACwO,SAAS,CAAC1M,IAAI,EAAE5D,EAAC,EAAE,EAC1CsQ,SAAS,CAACvR,IAAI,CAAC+C,IAAI,CAACwO,SAAS,CAAC3M,GAAG,CAAC3D,EAAC,CAAC,CAAC;MACvC,KAAK,IAAIA,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG8B,IAAI,CAACyO,SAAS,CAAC3M,IAAI,EAAE5D,GAAC,EAAE,EAC1CuQ,SAAS,CAACxR,IAAI,CAAC+C,IAAI,CAACyO,SAAS,CAAC5M,GAAG,CAAC3D,GAAC,CAAC,CAAC;MACvC;MACAkQ,OAAO,GAAGE,MAAM,CAACD,KAAK,CAAC,GAAG,CAAC;MAC3B,IAAIK,IAAI,GAAG,KAAK;MAChB,IAAIN,OAAO,CAACA,OAAO,CAAC5R,MAAM,GAAG,CAAC,CAAC,CAAC+G,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjD,KAAK,IAAIrF,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGsQ,SAAS,CAAChS,MAAM,EAAE0B,GAAC,EAAE,EAAE;UACzC,IAAIyQ,QAAQ,GAAGH,SAAS,CAACtQ,GAAC,CAAC,CAACmQ,KAAK,CAAC,GAAG,CAAC;UACtC,IAAIM,QAAQ,CAACA,QAAQ,CAACnS,MAAM,GAAG,CAAC,CAAC,KAAK4R,OAAO,CAACA,OAAO,CAAC5R,MAAM,GAAG,CAAC,CAAC,EAAE;YACjEgS,SAAS,CAACtQ,GAAC,CAAC,GAAGoQ,MAAM;YACrBI,IAAI,GAAG,IAAI;UACb;QACF;QACA,IAAI,CAACA,IAAI,EAAEF,SAAS,CAACvR,IAAI,CAACqR,MAAM,CAAC;QACjCtO,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;UAChBiN,SAAS,EAATA;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,KAAK,IAAItQ,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGuQ,SAAS,CAACjS,MAAM,EAAE0B,GAAC,EAAE,EAAE;UACzC,IAAIyQ,SAAQ,GAAGF,SAAS,CAACvQ,GAAC,CAAC,CAACmQ,KAAK,CAAC,GAAG,CAAC;UACtC,IAAIM,SAAQ,CAACA,SAAQ,CAACnS,MAAM,GAAG,CAAC,CAAC,KAAK4R,OAAO,CAACA,OAAO,CAAC5R,MAAM,GAAG,CAAC,CAAC,EAAE;YACjEiS,SAAS,CAACvQ,GAAC,CAAC,GAAGoQ,MAAM;YACrBI,IAAI,GAAG,IAAI;UACb;QACF;QACA,IAAI,CAACA,IAAI,EAAED,SAAS,CAACxR,IAAI,CAACqR,MAAM,CAAC;QAEjCtO,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;UAChBkN,SAAS,EAATA;QACF,CAAC,CAAC;MACJ;MAEAvP,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;MACjE,CAAC,CAAC;MACFd,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAAEsF,IAAI,EAAEmE;MAAa,CAAC,CAAC;MAE3C,OAAO;QAAEjJ,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOiR,aAAaA,CAAC1P,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEoD,UAAU,EAAE;MACvD/D,KAAK,GAAGA,KAAK,CAACmF,OAAO,CACnB,CAAC,OAAO,EAAE,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,YAAY,CAAC,EAC3DoD,UACF,CAAC;MAED,OAAO;QAAElB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOkR,eAAeA,CAAC3P,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEoD,UAAU,EAAE;MACzD,OAAO,IAAI,CAAC2L,aAAa,CAAC1P,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAE,IAAA2B,iBAAM,EAACyB,UAAU,CAAC,CAAC;IACvE;EAAC;IAAAjF,GAAA;IAAAL,KAAA,EAED,SAAOmR,gBAAgBA,CAAC5P,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEoD,UAAU,EAAE;MAC1DA,UAAU,CAAC5F,OAAO,CAAC,UAAC0R,CAAC,EAAEC,CAAC,EAAK;QAC3B,IACE9P,KAAK,CAAC4L,KAAK,CAAC,CACV,OAAO,EACP,QAAQ,EACR3L,OAAO,EACP,OAAO,EACPU,MAAM,EACN,YAAY,EACZmP,CAAC,CACF,CAAC,EAEF9P,KAAK,GAAGA,KAAK,CAACmF,OAAO,CACnB,CAAC,OAAO,EAAE,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,YAAY,EAAEmP,CAAC,CAAC,EAC9DD,CACF,CAAC;MACL,CAAC,CAAC;MAEF,OAAO;QAAEhN,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOsR,kBAAkBA,CAAC/P,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEoD,UAAU,EAAE;MAC5D,OAAO,IAAI,CAAC6L,gBAAgB,CAAC5P,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAE,IAAA2B,iBAAM,EAACyB,UAAU,CAAC,CAAC;IAC1E;EAAC;IAAAjF,GAAA;IAAAL,KAAA,EAED,SAAOuR,aAAaA,CAAChQ,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEsP,cAAc,EAAE;MAC3DjQ,KAAK,GAAGA,KAAK,CAACmF,OAAO,CACnB,CAAC,OAAO,EAAE,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAC7CsP,cACF,CAAC;MACD,OAAO;QAAEpN,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOyR,eAAeA,CAAClQ,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEsP,cAAc,EAAE;MAC7DA,cAAc,GAAG,IAAA3N,iBAAM,EAAC2N,cAAc,CAAC;MACvC,OAAO,IAAI,CAACD,aAAa,CAAChQ,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAEsP,cAAc,CAAC;IACnE;EAAC;IAAAnR,GAAA;IAAAL,KAAA,EAED,SAAO0R,aAAaA,CAACnQ,KAAK,EAAEvB,KAAK,EAAE;MACjC,IAAA2R,OAAA,GAAkCpQ,KAAK;QAAjCuF,gBAAgB,GAAA6K,OAAA,CAAhB7K,gBAAgB;QAAEQ,KAAK,GAAAqK,OAAA,CAALrK,KAAK;MAC7B,IAAI9F,OAAO,GAAGsF,gBAAgB,CAAC5C,GAAG,CAAC,SAAS,CAAC;MAC7C,IAAIhC,MAAM,GAAG4E,gBAAgB,CAAC5C,GAAG,CAAC,QAAQ,CAAC;MAC3C,IAAI7B,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrE,IAAIG,IAAI,KAAKJ,SAAS,EAAE;QACtB,IAAI2P,SAAS,GAAGvP,IAAI,CAAC6B,GAAG,CAAC,SAAS,CAAC;QACnC7B,IAAI,GAAGA,IAAI,CAACuB,KAAK,CAAC;UAChBiO,SAAS,EAAE7R,KAAK;UAChB8R,OAAO,EAAEF,SAAS,GAAG;QACvB,CAAC,CAAC;QAEFrQ,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,EAAEG,IAAI;QACjE,CAAC,CAAC;QACFd,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAAEsF,IAAI,EAAEmE;QAAa,CAAC,CAAC;MAC7C;MAEA,OAAO;QAAEjJ,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO+R,sBAAsBA,CAACxQ,KAAK,EAAE;MACnCA,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBkD,gBAAgB,EAAE,IAAIjC,cAAG,CAAC;MAC5B,CAAC,CAAC;MACF,OAAO;QAAET,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOgS,mBAAmBA,CAACzQ,KAAK,EAAE2B,SAAS,EAAEc,MAAM,EAAE;MACnD,IAAId,SAAS,KAAKjB,SAAS,EAAE;QAC3BV,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClBI,MAAM,EAAE,IAAIa,cAAG,CAAC;YACdb,MAAM,EAANA;UACF,CAAC;QACH,CAAC,CAAC;MACJ,CAAC,MAAM;QACLzC,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClBV,SAAS,EAAEA,SAAS;UACpBc,MAAM,EAAE,IAAIa,cAAG,CAAC;YACdb,MAAM,EAANA;UACF,CAAC;QACH,CAAC,CAAC;QACF,IAAAiO,OAAA,GAAgB1Q,KAAK;UAAf+F,KAAK,GAAA2K,OAAA,CAAL3K,KAAK;QACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;QACxC,IAAIgO,MAAM,GAAG5K,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;QACtC,IAAIsK,KAAK,GAAGoG,MAAM,CAACpG,KAAK;QACxBA,KAAK,CAACpM,OAAO,CAAC,UAAAgE,IAAI,EAAI;UACpB;YACE,IAAIxB,MAAM,GAAGwB,IAAI,CAAClB,EAAE;YAEpB,IAAIiB,KAAK,GAAAjE,aAAA,CAAAA,aAAA,KACJkE,IAAI,CAACR,SAAS;cACjBI,UAAU,EAAA9D,aAAA,CAAAA,aAAA,KACLkE,IAAI,CAACR,SAAS,CAACI,UAAU;gBAC5B6O,QAAQ,EAAEjP,SAAS,CAACI,UAAU,CAAC6O;cAAQ;YACxC,EACF;YACDzO,IAAI,GAAGA,IAAI,CAACgD,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,IAAA7C,iBAAM,EAACJ,KAAK,CAAC,CAAC;YACjDyO,MAAM,GAAGA,MAAM,CAACxL,OAAO,CAAC,CAAC,OAAO,EAAExE,MAAM,CAAC,EAAEwB,IAAI,CAAC;YAChDnC,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;cAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAE0Q,MAAM;YAClD,CAAC,CAAC;UACJ;QACF,CAAC,CAAC;MACJ;MACA,OAAO;QAAE9N,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOoS,YAAYA,CAAC7Q,KAAK,EAAE2B,SAAS,EAAEmP,MAAM,EAAEC,KAAK,EAAE;MAAA,IAAAC,MAAA;MACnD,IAAItT,IAAI,GAAGD,MAAM,CAACC,IAAI,CAACiE,SAAS,CAACI,UAAU,CAAC;MAC5CrE,IAAI,GAAGA,IAAI,CAACE,MAAM,CAAC,UAAAqE,IAAI;QAAA,OAAI,CAACA,IAAI,CAACgP,QAAQ,CAAC,OAAO,CAAC;MAAA,EAAC;MACnD,IAAIC,GAAG,GAAG,CAAC,CAAC;MACZ,KAAK,IAAI/Q,CAAC,IAAIzC,IAAI,EAAE;QAClBwT,GAAG,CAACxT,IAAI,CAACyC,CAAC,CAAC,CAAC,GAAGwB,SAAS,CAACI,UAAU,CAACrE,IAAI,CAACyC,CAAC,CAAC,CAAC;MAC9C;MACAH,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEpE,KAAK,CAAC+F,KAAK,CAACiF,aAAa,EAAE,WAAW,CAAC,EAC3DrJ,SACF,CAAC;MACD3B,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClBV,SAAS,EAAEA;MACb,CAAC,CAAC;MACF,IAAI1B,OAAO,GAAGD,KAAK,CAAC+F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MAC9C,IAAIwO,kBAAkB,GAAGnR,KAAK,CAAC+F,KAAK,CAAC7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,SAAS,CAAC,CAAC;MAC1EkR,kBAAkB,GAAGA,kBAAkB,CAACvT,MAAM,CAAC,UAAA8G,EAAE;QAAA,OAC/C/C,SAAS,CAACI,UAAU,CAACD,GAAG,CAACsP,IAAI,CAAC,UAAAC,EAAE;UAAA,OAAI3M,EAAE,CAAC/D,MAAM,KAAK0Q,EAAE,CAAC1Q,MAAM;QAAA,EAAC;MAAA,CAC9D,CAAC;MACDX,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,SAAS,CAAC,EACvCkR,kBACF,CAAC;MACD,IAAIG,OAAO,GAAGtR,KAAK,CAAC+F,KAAK,CAAC4K,MAAM,CAC7BzP,KAAK,CAAC,CAACjB,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CACrCqB,IAAI,CAAC,CAAC;MAET,IAAIiQ,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGpP,IAAI,EAAI;QAC/B,IAAIA,IAAI,CAACZ,QAAQ,KAAK,SAAS,EAAE,OAAO,CAAC;QACzC,IAAIZ,MAAM,GAAGwB,IAAI,CAAClB,EAAE;QACpB,IAAMuQ,OAAO,GAAGxR,KAAK,CAACkB,KAAK,CAAC,CAC1B,OAAO,EACP,QAAQ,EACRjB,OAAO,EACP,OAAO,EACPU,MAAM,CACP,CAAC;QACF,IAAMe,KAAK,GAAG1B,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,CAAC,CAAC;QACvD,IAAIwR,UAAU,GAAArV,kBAAA,CAAOoV,OAAO,CAAC/Q,OAAO,CAAC;QACrC,IAAIiR,iBAAiB,GAAAtV,kBAAA,CAAOoV,OAAO,CAAC/Q,OAAO,CAAC;QAC5CiR,iBAAiB,GAAGA,iBAAiB,CAAC9T,MAAM,CAAC,UAAA8G,EAAE;UAAA,OAC7C/C,SAAS,CAACI,UAAU,CAACD,GAAG,CAACsP,IAAI,CAAC,UAAAC,EAAE;YAAA,OAAIA,EAAE,CAAC1Q,MAAM,KAAK+D,EAAE,CAAC/D,MAAM;UAAA,EAAC;QAAA,CAC9D,CAAC;QACD8Q,UAAU,CAACtT,OAAO,CAAC,UAAAuG,EAAE,EAAI;UACvB,IAAMiN,SAAS,GAAGC,qBAAY,CAACC,uBAAuB,CACpDnQ,KAAK,EACL8P,OAAO,EACP9M,EACF,CAAC;UACDiN,SAAS,CAACxT,OAAO,CAAC,UAAA2T,EAAE,EAAI;YACtB9R,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAE6R,EAAE,CAAC7Q,EAAE,EAAE,SAAS,CAAC,EACvDyQ,iBACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,IAAI5P,GAAG,GAAGH,SAAS,CAACI,UAAU,CAACD,GAAG,CAACE,IAAI,CACrC,UAAAC,IAAI;UAAA,OAAIA,IAAI,CAACtB,MAAM,KAAKwB,IAAI,CAACxB,MAAM;QAAA,CACrC,CAAC;QACD,IAAIqC,QAAQ,GAAG,EAAE;QACjB,IAAIlB,GAAG,KAAKpB,SAAS,EAAE;UACrBsC,QAAQ,GAAGlB,GAAG,IAAIA,GAAG,CAACK,IAAI,CAACvE,MAAM,CAAC,UAAAqF,OAAO;YAAA,OAAIA,OAAO,CAACC,WAAW;UAAA,EAAC;QACnE;QACA,IAAI6O,QAAQ;QACZ,IACEpQ,SAAS,CAACwB,eAAe,KAAK,kBAAkB,IAChDH,QAAQ,CAAC1F,MAAM,GAAG,CAAC,EACnB;UACAyU,QAAQ,GAAGjQ,GAAG,GAAA7D,aAAA,CAAAA,aAAA,KACL+E,QAAQ,CAAC,CAAC,CAAC;YAAEZ,qBAAqB,EAAEN,GAAG,CAACM;UAAqB,KAClE,CAAC,CAAC;UACN,IAAIgB,aAAa,GAAGpD,KAAK,CAAC+F,KAAK,CAC5B7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,YAAY,CAAC,CAAC,CACzDW,IAAI,CAAC,CAAC;UACT,IAAI8B,aAAa,CAACC,cAAc,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAACD,aAAa,CAACC,cAAc,CAAC,UAAU,CAAC,EAAE;cAC7CD,aAAa,CAAC,UAAU,CAAC,GAAG,IAAIE,cAAG,CAAC;gBAClChG,MAAM,EAAE8F,aAAa,CAACG,KAAK,CAACjG,MAAM;gBAClCkG,OAAO,EAAEJ,aAAa,CAACG,KAAK,CAACC,OAAO;gBACpCC,KAAK,EAAEL,aAAa,CAACG,KAAK,CAACE;cAC7B,CAAC,CAAC;YACJ;YACAL,aAAa,CAAC,OAAO,CAAC,GAAG,IAAIE,cAAG,CAAC;cAC/BhG,MAAM,EAAE,IAAAoG,wBAAO,EAACV,QAAQ,CAAC,CAAC,CAAC,CAACW,WAAW,CAAC,CAACxG,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAAC,IAAI,CAAC;cAC5DJ,OAAO,EAAER,QAAQ,CAAC,CAAC,CAAC,CAACW,WAAW;cAChCF,KAAK,EAAE;YACT,CAAC,CAAC;UACJ;UACA,IAAIL,aAAa,CAACC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC1C,IAAI,CAACD,aAAa,CAACC,cAAc,CAAC,WAAW,CAAC,EAAE;cAC9CD,aAAa,CAAC,WAAW,CAAC,GAAG,IAAIE,cAAG,CAAC;gBACnChG,MAAM,EAAE8F,aAAa,CAAC9C,MAAM,CAAChD,MAAM;gBACnCkG,OAAO,EAAEJ,aAAa,CAAC9C,MAAM,CAACkD,OAAO;gBACrCC,KAAK,EAAEL,aAAa,CAAC9C,MAAM,CAACmD;cAC9B,CAAC,CAAC;YACJ;YACAL,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAIE,cAAG,CAAC;cAChChG,MAAM,EAAE,IAAAoG,wBAAO,EAACV,QAAQ,CAAC,CAAC,CAAC,CAACa,WAAW,CAAC,CAAC1G,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAAC,IAAI,CAAC;cAC5DJ,OAAO,EAAER,QAAQ,CAAC,CAAC,CAAC,CAACa,WAAW;cAChCJ,KAAK,EAAE;YACT,CAAC,CAAC;UACJ;UACA,IAAIL,aAAa,CAACC,cAAc,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAACD,aAAa,CAACC,cAAc,CAAC,UAAU,CAAC,EAAE;cAC7CD,aAAa,CAAC,UAAU,CAAC,GAAG,IAAIE,cAAG,CAAC;gBAClChG,MAAM,EAAE8F,aAAa,CAAC/C,KAAK,CAAC/C,MAAM;gBAClCkG,OAAO,EAAEJ,aAAa,CAAC/C,KAAK,CAACmD,OAAO;gBACpCC,KAAK,EAAEL,aAAa,CAAC/C,KAAK,CAACoD;cAC7B,CAAC,CAAC;YACJ;YACAL,aAAa,CAAC,OAAO,CAAC,GAAG,IAAIE,cAAG,CAAC;cAC/BhG,MAAM,EAAE,IAAAoG,wBAAO,EAACV,QAAQ,CAAC,CAAC,CAAC,CAACc,UAAU,CAAC,CAAC3G,IAAI,CAAC,IAAI,CAAC,CAACyG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;cAChEJ,OAAO,EAAER,QAAQ,CAAC,CAAC,CAAC,CAACc,UAAU;cAC/BL,KAAK,EAAE;YACT,CAAC,CAAC;UACJ;UACAzD,KAAK,GAAGgR,MAAI,CAACrB,eAAe,CAC1B3P,KAAK,EACLC,OAAO,EACPU,MAAM,EACNyC,aACF,CAAC,CAACP,YAAY;QAChB,CAAC,MAAM;UACLkP,QAAQ,GAAGjQ,GAAG,GAAA7D,aAAA,CAAAA,aAAA,KACL6D,GAAG,CAACK,IAAI,CAAC,CAAC,CAAC;YAAEC,qBAAqB,EAAEN,GAAG,CAACM;UAAqB,KAClE,CAAC,CAAC;UACN,IAAI2B,UAAU,GAAG/D,KAAK,CAAC+F,KAAK,CACzB7E,KAAK,CAAC,CAAC,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,YAAY,CAAC,CAAC,CACzDW,IAAI,CAAC,CAAC;UACT,IAAIyC,UAAU,CAACV,cAAc,CAAC,UAAU,CAAC,EAAE;YACzCU,UAAU,CAAC,OAAO,CAAC,GAAG,IAAIT,cAAG,CAAC;cAC5BhG,MAAM,EAAEyG,UAAU,CAACC,QAAQ,CAAC1G,MAAM;cAClCkG,OAAO,EAAEO,UAAU,CAACC,QAAQ,CAACR,OAAO;cACpCC,KAAK,EAAEM,UAAU,CAACC,QAAQ,CAACP;YAC7B,CAAC,CAAC;UACJ;UACA,IAAIM,UAAU,CAACV,cAAc,CAAC,WAAW,CAAC,EAAE;YAC1CU,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAIT,cAAG,CAAC;cAC7BhG,MAAM,EAAEyG,UAAU,CAACE,SAAS,CAAC3G,MAAM;cACnCkG,OAAO,EAAEO,UAAU,CAACE,SAAS,CAACT,OAAO;cACrCC,KAAK,EAAEM,UAAU,CAACE,SAAS,CAACR;YAC9B,CAAC,CAAC;UACJ;UACA,IAAIM,UAAU,CAACV,cAAc,CAAC,UAAU,CAAC,EAAE;YACzCU,UAAU,CAAC,OAAO,CAAC,GAAG,IAAIT,cAAG,CAAC;cAC5BhG,MAAM,EAAEyG,UAAU,CAACG,QAAQ,CAAC5G,MAAM;cAClCkG,OAAO,EAAEO,UAAU,CAACG,QAAQ,CAACV,OAAO;cACpCC,KAAK,EAAEM,UAAU,CAACG,QAAQ,CAACT;YAC7B,CAAC,CAAC;UACJ;UACAzD,KAAK,GAAGgR,MAAI,CAACrB,eAAe,CAC1B3P,KAAK,EACLC,OAAO,EACPU,MAAM,EACNoD,UACF,CAAC,CAAClB,YAAY;QAChB;QACA,IAAIX,KAAK,GAAG;UACVjB,EAAE,EAAEU,SAAS,CAACV,EAAE;UAChB+Q,UAAU,EAAErQ,SAAS,CAACqQ,UAAU;UAChCC,KAAK,EAAEtQ,SAAS,CAACsQ,KAAK;UACtBC,SAAS,EAAEvQ,SAAS,CAACuQ,SAAS;UAC9BjV,IAAI,EAAE0E,SAAS,CAAC1E,IAAI;UACpBkG,eAAe,EAAExB,SAAS,CAACwB,eAAe;UAC1CgP,OAAO,EAAExQ,SAAS,CAACwQ,OAAO;UAC1BC,SAAS,EAAEzQ,SAAS,CAACyQ,SAAS;UAC9BlS,IAAI,EAAEyB,SAAS,CAACzB,IAAI;UACpBmS,GAAG,EAAE1Q,SAAS,CAAC0Q,GAAG;UAClBC,eAAe,EAAE3Q,SAAS,CAAC2Q,eAAe;UAAE;UAC5CC,OAAO,EAAE,IAAAC,4BAAqB,EAC5BC,mCAAwB,CAACC,IAAI,EAC7B/Q,SACF,CAAC;UACDI,UAAU,EAAA9D,aAAA,CAAAA,aAAA,KACLiT,GAAG,GACHa,QAAQ;QAEf,CAAC;QACD/R,KAAK,GAAGA,KAAK,CAACmF,OAAO,CACnB,CAAC,OAAO,EAAE,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,WAAW,CAAC,EAC1D,IAAA2B,iBAAM,EAACJ,KAAK,CACd,CAAC;MACH,CAAC;MAED,IAAI6O,KAAK,EAAE;QACT,IAAIxG,KAAK,GAAGvK,KAAK,CAAC+F,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC,CAACsK,KAAK;QACjDA,KAAK,CAACpM,OAAO,CAACoT,kBAAkB,CAAC;MACnC,CAAC,MAAM;QACL,IAAID,OAAO,CAAChU,MAAM,GAAG,CAAC,EAAE;UAAA,IAAAqV,KAAA,YAAAA,MAAA,EACmB;YACvC,IAAIhS,MAAM,GAAG2Q,OAAO,CAACtS,CAAC,CAAC;YACvB,IAAIuL,KAAK,GAAGvK,KAAK,CAAC+F,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC,CAACsK,KAAK;YACjDA,KAAK,CAACpM,OAAO,CAAC,UAAAgE,IAAI,EAAI;cACpB,IAAIxB,MAAM,KAAKwB,IAAI,CAAClB,EAAE,EAAE;gBACtBsQ,kBAAkB,CAACpP,IAAI,CAAC;cAC1B;YACF,CAAC,CAAC;UACJ,CAAC;UARD,KAAK,IAAInD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsS,OAAO,CAAChU,MAAM,EAAE0B,CAAC,EAAE;YAAA2T,KAAA;UAAA;QASzC;MACF;MACA,OAAO;QAAE9P,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EACD,SAAOmU,aAAaA,CAAC5S,KAAK,EAAE6S,UAAU,EAAE;MACtC,IAAAC,OAAA,GAAgB9S,KAAK;QAAf+F,KAAK,GAAA+M,OAAA,CAAL/M,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIgO,MAAM,GAAG5K,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACtC0Q,MAAM,GAAGA,MAAM,CAACxL,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE0N,UAAU,CAAC;MACnD7S,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAE0Q,MAAM;MAClD,CAAC,CAAC;MACF,IAAIpG,KAAK,GAAGoG,MAAM,CAACpG,KAAK;MACxBA,KAAK,CAACpM,OAAO,CAAC,UAAAgE,IAAI,EAAI;QACpB;UACE,IAAM0C,QAAQ,GAAG1C,IAAI,CAACb,IAAI,CAAC,CAAC;UAC5B,IAAIX,MAAM,GAAGkE,QAAQ,CAAC5D,EAAE;UACxB,IAAI8R,UAAU,GAAGlO,QAAQ,CAACgO,UAAU;UACpCE,UAAU,GAAA9U,aAAA,CAAAA,aAAA,KAAQ8U,UAAU,GAAKF,UAAU,CAAE;UAC7C1Q,IAAI,GAAGA,IAAI,CAACgD,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE4N,UAAU,CAAC;UAC/CpC,MAAM,GAAGA,MAAM,CAACxL,OAAO,CAAC,CAAC,OAAO,EAAExE,MAAM,CAAC,EAAEwB,IAAI,CAAC;UAChDnC,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;YAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAE0Q,MAAM;UAClD,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;MAEF,OAAO;QAAE9N,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOuU,kBAAkBA,CAAChT,KAAK,EAAE+F,KAAK,EAAErE,KAAK,EAAEzB,OAAO,EAAEgT,aAAa,EAAE;MAAA,IAAAC,MAAA;MACrED,aAAa,CAAC9U,OAAO,CAAC,UAAAgE,IAAI,EAAI;QAC5B,IAAIxB,MAAM,GAAGwB,IAAI,CAAClB,EAAE;QACpB,IAAIH,IAAI,GAAGoS,MAAI,CAAC/O,gBAAgB,CAAChC,IAAI,EAAET,KAAK,CAAC;QAC7CA,KAAK,GAAGA,KAAK,CAACyD,OAAO,CAAC,CAAC,OAAO,EAAExE,MAAM,CAAC,EAAEG,IAAI,CAAC;QAC9Cd,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAEyB,KAAK;QACjD,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO;QAAEmB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO0U,aAAaA,CAACnT,KAAK,EAAE4E,UAAU,EAAE;MACtC,IAAAwO,OAAA,GAAgBpT,KAAK;QAAf+F,KAAK,GAAAqN,OAAA,CAALrN,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIjB,KAAK,GAAGqE,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MAErCyB,KAAK,GAAGA,KAAK,CAACyD,OAAO,CAAC,CAAC,YAAY,CAAC,EAAEP,UAAU,CAAC;MACjD5E,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAEyB,KAAK;MACjD,CAAC,CAAC;MAEF,IAAI6I,KAAK,GAAG7I,KAAK,CAAC6I,KAAK;MACvB,IAAI8I,aAAa,GAAG9I,KAAK,CAAC3M,MAAM,CAAC,UAAAqF,OAAO;QAAA,OAAIA,OAAO,CAACqG,QAAQ,KAAK,IAAI;MAAA,EAAC,CAAC,CAAC;;MAExE,IAAI+J,aAAa,CAACzQ,IAAI,KAAK,CAAC,EAAE;QAC5B5C,KAAK,GAAG,IAAI,CAACgT,kBAAkB,CAC7BhT,KAAK,EACL+F,KAAK,EACLrE,KAAK,EACLzB,OAAO,EACPsK,KACF,CAAC,CAAC1H,YAAY;MAChB,CAAC,MAAM;QACL7C,KAAK,GAAG,IAAI,CAACgT,kBAAkB,CAC7BhT,KAAK,EACL+F,KAAK,EACLrE,KAAK,EACLzB,OAAO,EACPoT,aACF,CAAC,CAACxQ,YAAY;MAChB;MACA,OAAO;QAAEA,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EACD,SAAO6U,iBAAiBA,CAACtT,KAAK,EAAEuT,QAAQ,EAAE;MACxC,IAAAC,OAAA,GAAgBxT,KAAK;QAAf+F,KAAK,GAAAyN,OAAA,CAALzN,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIgO,MAAM,GAAG5K,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACtC,IAAIsK,KAAK,GAAGoG,MAAM,CAACpG,KAAK;MACxBA,KAAK,CAACpM,OAAO,CAAC,UAAAgE,IAAI,EAAI;QACpB,IAAM0C,QAAQ,GAAG1C,IAAI,CAACb,IAAI,CAAC,CAAC;QAC5B,IAAIX,MAAM,GAAGkE,QAAQ,CAAC5D,EAAE;QACxB,IAAIU,SAAS,GAAGkD,QAAQ,CAAClD,SAAS;QAClC,IAAIO,KAAK,GAAAjE,aAAA,CAAAA,aAAA,KACJ0D,SAAS;UACZoD,SAAS,EAAEwO,QAAQ,CAACxO,SAAS;UAC7BC,SAAS,EAAEuO,QAAQ,CAACvO;QAAS,EAC9B;QACD7C,IAAI,GAAGA,IAAI,CAACgD,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,IAAA7C,iBAAM,EAACJ,KAAK,CAAC,CAAC;QACjDyO,MAAM,GAAGA,MAAM,CAACxL,OAAO,CAAC,CAAC,OAAO,EAAExE,MAAM,CAAC,EAAEwB,IAAI,CAAC;QAChDnC,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAE0Q,MAAM;QAClD,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO;QAAE9N,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOgV,YAAYA,CAACzT,KAAK,EAAE0T,SAAS,EAAE;MACpC,IAAAC,QAAA,GAAgB3T,KAAK;QAAf+F,KAAK,GAAA4N,QAAA,CAAL5N,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIjB,KAAK,GAAGqE,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MAErCyB,KAAK,GAAGA,KAAK,CAACW,KAAK,CAAC;QAAEqR,SAAS,EAATA;MAAU,CAAC,CAAC;MAClC1T,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAEyB,KAAK;MACjD,CAAC,CAAC;MAEF,IAAIkS,KAAK,GAAGlS,KAAK,CAACkS,KAAK;MACvBA,KAAK,CAACzV,OAAO,CAAC,UAAAgE,IAAI,EAAI;QACpB,IAAM0C,QAAQ,GAAG1C,IAAI,CAACb,IAAI,CAAC,CAAC;QAC5B,IAAIuS,MAAM,GAAGhP,QAAQ,CAAC5D,EAAE;QACxBkB,IAAI,GAAGA,IAAI,CAACgD,OAAO,CAAC,CAAC,WAAW,CAAC,EAAEuO,SAAS,CAAC;QAC7ChS,KAAK,GAAGA,KAAK,CAACyD,OAAO,CAAC,CAAC,OAAO,EAAE0O,MAAM,CAAC,EAAE1R,IAAI,CAAC;QAC9CnC,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAEyB,KAAK;QACjD,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO;QAAEmB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOqV,aAAaA,CAAC9T,KAAK,EAAE+T,UAAU,EAAE;MACtC,IAAAC,QAAA,GAAgBhU,KAAK;QAAf+F,KAAK,GAAAiO,QAAA,CAALjO,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIjB,KAAK,GAAGqE,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACrC,IAAM4E,QAAQ,GAAGnD,KAAK,CAACJ,IAAI,CAAC,CAAC;MAC7B,IAAI2S,OAAO,GAAGpP,QAAQ,CAACkP,UAAU;MACjC,IAAIvE,IAAI,GAAG,IAAI,CAAC,CAAC;MACjB;MACA,IAAI9N,KAAK,CAACR,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAACgT,GAAG,KAAKH,UAAU,CAACG,GAAG,EAAE;QACtD;QACAD,OAAO,GAAAhW,aAAA,CAAAA,aAAA,KAAQgW,OAAO;UAAEC,GAAG,EAAE;QAAE,EAAE;QACjC1E,IAAI,GAAG,KAAK;MACd;MACA;MAAA,KACKyE,OAAO,GAAAhW,aAAA,CAAAA,aAAA,KAAQgW,OAAO,GAAKF,UAAU,CAAE;MAC5CrS,KAAK,GAAGA,KAAK,CAACyD,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE8O,OAAO,CAAC;MAC9CvS,KAAK,GAAGA,KAAK,CAACmE,GAAG,CAAC,mBAAmB,EAAE2J,IAAI,CAAC;MAC5CxP,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAEyB,KAAK;MACjD,CAAC,CAAC;MACF,OAAO;QAAEmB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO0V,UAAUA,CAACnU,KAAK,EAAES,OAAO,EAAEsQ,KAAK,EAAE;MACvC,IAAAqD,QAAA,GAAgBpU,KAAK;QAAf+F,KAAK,GAAAqO,QAAA,CAALrO,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIjB,KAAK,GAAGqE,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACrC,IAAI8Q,KAAK,EAAE;QACT,IAAIsD,gBAAgB,GAAG3S,KAAK,CAACjB,OAAO;QACpC,IAAI+O,IAAI,GAAG6E,gBAAgB,CAACjD,IAAI,CAAC,UAAAkD,GAAG;UAAA,OAAIA,GAAG,CAACrX,IAAI,KAAKwD,OAAO,CAACxD,IAAI;QAAA,EAAC;QAClE,IAAIuS,IAAI,EAAE;UACR6E,gBAAgB,GAAGA,gBAAgB,CAACzW,MAAM,CACxC,UAAA0W,GAAG;YAAA,OAAIA,GAAG,CAACrX,IAAI,KAAKwD,OAAO,CAACxD,IAAI;UAAA,CAClC,CAAC;QACH,CAAC,MAAM;UACL,IACEoX,gBAAgB,CAACjD,IAAI,CACnB,UAAAkD,GAAG;YAAA,OACDA,GAAG,CAACC,YAAY,KAAK9T,OAAO,CAAC8T,YAAY,IACzCD,GAAG,CAACE,aAAa,KAAK/T,OAAO,CAAC+T,aAAa;UAAA,CAC/C,CAAC,EACD;YACAH,gBAAgB,GAAGA,gBAAgB,CAACzW,MAAM,CACxC,UAAA0W,GAAG;cAAA,OACDA,GAAG,CAACC,YAAY,KAAK9T,OAAO,CAAC8T,YAAY,IACzCD,GAAG,CAACE,aAAa,KAAK/T,OAAO,CAAC+T,aAAa;YAAA,CAC/C,CAAC;UACH;UACAH,gBAAgB,GAAGA,gBAAgB,CAAC7N,MAAM,CAAC/F,OAAO,CAAC;QACrD;QACAiB,KAAK,GAAGA,KAAK,CAACmE,GAAG,CAAC,SAAS,EAAEwO,gBAAgB,CAAC;QAC9CrU,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAEyB,KAAK;QACjD,CAAC,CAAC;QACFA,KAAK,CAAC6I,KAAK,CAACkK,OAAO,CAAC,CAAC,CAACtW,OAAO,CAAC,UAAA2C,IAAI,EAAI;UACpC,IAAI8Q,qBAAY,CAAC8C,sBAAsB,CAAChT,KAAK,EAAEZ,IAAI,EAAEL,OAAO,CAAC,EAAE;YAC7D,IAAIkU,eAAe,GAAG7T,IAAI,CAACL,OAAO;YAClC,IAAI+O,IAAI,EAAE;cACR,IAAImF,eAAe,CAACvD,IAAI,CAAC,UAAAkD,GAAG;gBAAA,OAAIA,GAAG,CAACrX,IAAI,KAAKwD,OAAO,CAACxD,IAAI;cAAA,EAAC,EAAE;gBAC1D0X,eAAe,GAAGA,eAAe,CAAC/W,MAAM,CACtC,UAAA0W,GAAG;kBAAA,OAAIA,GAAG,CAACrX,IAAI,KAAKwD,OAAO,CAACxD,IAAI;gBAAA,CAClC,CAAC;cACH;YACF,CAAC,MAAM;cACL,IACE0X,eAAe,CAACvD,IAAI,CAClB,UAAAkD,GAAG;gBAAA,OACDA,GAAG,CAACC,YAAY,KAAK9T,OAAO,CAAC8T,YAAY,IACzCD,GAAG,CAACE,aAAa,KAAK/T,OAAO,CAAC+T,aAAa;cAAA,CAC/C,CAAC,EACD;gBACAG,eAAe,GAAGA,eAAe,CAAC/W,MAAM,CACtC,UAAA0W,GAAG;kBAAA,OACDA,GAAG,CAACC,YAAY,KAAK9T,OAAO,CAAC8T,YAAY,IACzCD,GAAG,CAACE,aAAa,KAAK/T,OAAO,CAAC+T,aAAa;gBAAA,CAC/C,CAAC;cACH;cACAG,eAAe,GAAGA,eAAe,CAACnO,MAAM,CAAC/F,OAAO,CAAC;YACnD;YACAT,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEa,IAAI,CAACG,EAAE,EAAE,SAAS,CAAC,EACzD0T,eACF,CAAC;UACH;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAMC,YAAY,GAAGlT,KAAK,CAACR,KAAK,CAAC,CAC/B,OAAO,EACPQ,KAAK,CAAC4H,QAAQ,CAAChI,IAAI,CAAC,CAAC,CAACiJ,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAIqH,qBAAY,CAAC8C,sBAAsB,CAAChT,KAAK,EAAEkT,YAAY,EAAEnU,OAAO,CAAC,EAAE;UACrE,IAAIoU,YAAY,GAAGjD,qBAAY,CAACC,uBAAuB,CACrDnQ,KAAK,EACLkT,YAAY,EACZnU,OACF,CAAC;UACD,IAAIqU,kBAAkB,GAAGF,YAAY,CAACnU,OAAO;UAC7C,IAAI+O,KAAI,GAAGsF,kBAAkB,CAAC1D,IAAI,CAAC,UAAAkD,GAAG;YAAA,OAAIA,GAAG,CAACrX,IAAI,KAAKwD,OAAO,CAACxD,IAAI;UAAA,EAAC;UACpE4X,YAAY,CAAC1W,OAAO,CAAC,UAAA2C,IAAI,EAAI;YAC3B,IAAI6T,eAAe,GAAG7T,IAAI,CAACL,OAAO;YAClC,IAAI+O,KAAI,EAAE;cACR,IAAImF,eAAe,CAACvD,IAAI,CAAC,UAAAkD,GAAG;gBAAA,OAAIA,GAAG,CAACrX,IAAI,KAAKwD,OAAO,CAACxD,IAAI;cAAA,EAAC,EAAE;gBAC1D0X,eAAe,GAAGA,eAAe,CAAC/W,MAAM,CACtC,UAAA0W,GAAG;kBAAA,OAAIA,GAAG,CAACrX,IAAI,KAAKwD,OAAO,CAACxD,IAAI;gBAAA,CAClC,CAAC;cACH;YACF,CAAC,MAAM;cACL,IACE0X,eAAe,CAACvD,IAAI,CAClB,UAAAkD,GAAG;gBAAA,OACDA,GAAG,CAACC,YAAY,KAAK9T,OAAO,CAAC8T,YAAY,IACzCD,GAAG,CAACE,aAAa,KAAK/T,OAAO,CAAC+T,aAAa;cAAA,CAC/C,CAAC,EACD;gBACAG,eAAe,GAAGA,eAAe,CAAC/W,MAAM,CACtC,UAAA0W,GAAG;kBAAA,OACDA,GAAG,CAACC,YAAY,KAAK9T,OAAO,CAAC8T,YAAY,IACzCD,GAAG,CAACE,aAAa,KAAK/T,OAAO,CAAC+T,aAAa;gBAAA,CAC/C,CAAC;cACH;cACAG,eAAe,GAAGA,eAAe,CAACnO,MAAM,CAAC/F,OAAO,CAAC;YACnD;YACAT,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEa,IAAI,CAACG,EAAE,EAAE,SAAS,CAAC,EACzD0T,eACF,CAAC;UACH,CAAC,CAAC;QACJ;MACF;MACA,OAAO;QAAE9R,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO8N,aAAaA,CAACvM,KAAK,EAAE;MAC1B,IAAA+U,QAAA,GAAkB/U,KAAK;QAAf+F,KAAK,GAAAgP,QAAA,CAALhP,KAAK;MACb,IAAM9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MAC1C,IAAMjB,KAAK,GAAGqE,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACvC,IAAM2U,YAAY,GAAGlT,KAAK,CAACR,KAAK,CAAC,CAAC,OAAO,EAAEQ,KAAK,CAAC4H,QAAQ,CAAChI,IAAI,CAAC,CAAC,CAACiJ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;MAC3E,IAAIyK,gBAAgB,GAAG,EAAE,CAAC,CAAC;MAC3B,IAAI,CAAC,CAACJ,YAAY,IAAIA,YAAY,CAACrT,QAAQ,KAAK,SAAS,EAAE;QACzD,IAAI0T,UAAU,GAAG,EAAE;QACnBvT,KAAK,CAAC6I,KAAK,CAACkK,OAAO,CAAC,CAAC,CAACtW,OAAO,CAAC,UAAAqT,OAAO,EAAI;UACvC,IAAIoD,YAAY,CAAC3T,EAAE,KAAKuQ,OAAO,CAACvQ,EAAE,IAAIuQ,OAAO,CAACjQ,QAAQ,KAAK,SAAS,EAAE;YACpE,IAAIqQ,qBAAY,CAACsD,iBAAiB,CAACN,YAAY,EAAEpD,OAAO,CAAC,EAAE;cACzDwD,gBAAgB,CAACjX,IAAI,CAACyT,OAAO,CAAC,CAAC,CAAC;cAChC;cACA,IAAIA,OAAO,CAAC/Q,OAAO,CAACnD,MAAM,EAAE;gBAC1BkU,OAAO,CAAC/Q,OAAO,CAACtC,OAAO,CAAC,UAAAuG,EAAE,EAAI;kBAC5B;kBACA,IACEkN,qBAAY,CAACuD,cAAc,CACzBzT,KAAK,EACLkT,YAAY,EACZpD,OAAO,EACP,CAACoD,YAAY,CAAC,EACdlQ,EACF,CAAC,EACD;oBACAuQ,UAAU,CAAClX,IAAI,CAAC;sBACdqX,SAAS,EAAE5D,OAAO;sBAClB7G,KAAK,EAAEiH,qBAAY,CAACC,uBAAuB,CACzCnQ,KAAK,EACL8P,OAAO,EACP9M,EACF,CAAC;sBACDjE,OAAO,EAAEiE;oBACX,CAAC,CAAC;kBACJ;gBACF,CAAC,CAAC;cACJ;YACF;UACF;QACF,CAAC,CAAC;QACF,IAAM2Q,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;UAAA,IAAAC,MAAA,YAAAA,OAAA,EACc;YAChD;YACA,IACE1D,qBAAY,CAAC2D,sBAAsB,CACjCX,YAAY,EACZI,gBAAgB,CAAChW,CAAC,CACpB,CAAC,EACD;cACA;cACA,IAAIwW,WAAW,GAAG,EAAE;cACpB,KAAK,IAAI1F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8E,YAAY,CAACnU,OAAO,CAACnD,MAAM,EAAEwS,CAAC,EAAE,EAAE;gBACpD,IACE8B,qBAAY,CAAC6D,wBAAwB,CACnCb,YAAY,EACZI,gBAAgB,CAAChW,CAAC,CAAC,EACnB4V,YAAY,CAACnU,OAAO,CAACqP,CAAC,CAAC,CAAC0E,aAC1B,CAAC,EACD;kBACAgB,WAAW,CAACzX,IAAI,CAAC6W,YAAY,CAACnU,OAAO,CAACqP,CAAC,CAAC,CAACnP,MAAM,CAAC;gBAClD;cACF;cACA,IAAI+U,SAAS,GAAG,EAAE;cAClBd,YAAY,CAACnU,OAAO,CAACtC,OAAO,CAAC,UAAAmW,GAAG,EAAI;gBAClC,IAAI,CAACkB,WAAW,CAACpE,IAAI,CAAC,UAAAnQ,EAAE;kBAAA,OAAIA,EAAE,KAAKqT,GAAG,CAAC3T,MAAM;gBAAA,EAAC,EAAE;kBAC9C+U,SAAS,CAAC3X,IAAI,CAACuW,GAAG,CAAC;gBACrB;cACF,CAAC,CAAC;cACFtU,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAE2U,YAAY,CAAC3T,EAAE,EAAE,SAAS,CAAC,EACjEyU,SACF,CAAC;YACH;UACF,CAAC;UAhCD,KAAK,IAAI1W,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgW,gBAAgB,CAAC1X,MAAM,EAAE0B,CAAC,EAAE;YAAAsW,MAAA;UAAA;QAiClD,CAAC;QACD,IAAMK,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;UAC9B,IAAIC,UAAU,GAAG,CAAChB,YAAY,CAAC;UAC/B,IAAIiB,aAAa,GAAG,EAAE;UACtBZ,UAAU,CAAC9W,OAAO,CAAC,UAAA2X,OAAO,EAAI;YAC5BD,aAAa,CAAC9X,IAAI,CAAC+X,OAAO,CAACrV,OAAO,CAAC;YACnCqV,OAAO,CAACnL,KAAK,CAACxM,OAAO,CAAC,UAAA2T,EAAE,EAAI;cAC1B,IAAI,CAAC8D,UAAU,CAACxE,IAAI,CAAC,UAAApS,CAAC;gBAAA,OAAIA,CAAC,CAACiC,EAAE,KAAK6Q,EAAE,CAAC7Q,EAAE;cAAA,EAAC,EAAE;gBACzC2U,UAAU,CAAC7X,IAAI,CAAC+T,EAAE,CAAC;cACrB;YACF,CAAC,CAAC;UACJ,CAAC,CAAC;UACF8D,UAAU,CAACzX,OAAO,CAAC,UAAA2C,IAAI,EAAI;YACzB,IAAIiV,aAAa,GAAG,EAAE;YACtB,IAAIC,YAAY,GAAGhW,KAAK,CAACkB,KAAK,CAAC,CAC7B,OAAO,EACP,QAAQ,EACRjB,OAAO,EACP,OAAO,EACPa,IAAI,CAACG,EAAE,EACP,SAAS,CACV,CAAC;YACF+U,YAAY,CAAC7X,OAAO,CAAC,UAAAsC,OAAO,EAAI;cAC9B,IAAI,CAACoV,aAAa,CAACzE,IAAI,CAAC,UAAA6E,EAAE;gBAAA,OAAIA,EAAE,CAACtV,MAAM,KAAKF,OAAO,CAACE,MAAM;cAAA,EAAC,EAAE;gBAC3DoV,aAAa,CAAChY,IAAI,CAAC0C,OAAO,CAAC;cAC7B;YACF,CAAC,CAAC;YACFT,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEa,IAAI,CAACG,EAAE,EAAE,SAAS,CAAC,EACzD8U,aACF,CAAC;UACH,CAAC,CAAC;UACFV,uBAAuB,CAAC,CAAC;QAC3B,CAAC;QACD,IAAMa,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGC,QAAQ,EAAI;UACrC,IAAIC,eAAe,GAAGnB,UAAU,CAC7BrX,MAAM,CAAC,UAAAkU,EAAE;YAAA,OAAIA,EAAE,CAACrR,OAAO,CAAC+T,aAAa,KAAK2B,QAAQ;UAAA,EAAC,CACnDE,IAAI,CAAC,UAAC1Z,CAAC,EAAEmN,CAAC,EAAK;YACd,IAAInN,CAAC,CAACgO,KAAK,CAACrN,MAAM,KAAKwM,CAAC,CAACa,KAAK,CAACrN,MAAM,EAAE;cACrC,OACE0I,sBAAa,CAAC6C,cAAc,CAC1BlM,CAAC,CAACyY,SAAS,CAACjV,CAAC,EACbxD,CAAC,CAACyY,SAAS,CAAChV,CAAC,EACbwU,YAAY,CAACzU,CAAC,EACdyU,YAAY,CAACxU,CACf,CAAC,GACD4F,sBAAa,CAAC6C,cAAc,CAC1BiB,CAAC,CAACsL,SAAS,CAACjV,CAAC,EACb2J,CAAC,CAACsL,SAAS,CAAChV,CAAC,EACbwU,YAAY,CAACzU,CAAC,EACdyU,YAAY,CAACxU,CACf,CAAC;YAEL,CAAC,MAAM;cACL,OAAOzD,CAAC,CAACgO,KAAK,CAACrN,MAAM,GAAGwM,CAAC,CAACa,KAAK,CAACrN,MAAM;YACxC;UACF,CAAC,CAAC;UACJ,IAAI8Y,eAAe,CAAC9Y,MAAM,EAAE;YAC1B,IAAIgZ,oBAAoB,GAAG1E,qBAAY,CAACC,uBAAuB,CAC7DnQ,KAAK,EACLkT,YAAY,EACZwB,eAAe,CAAC,CAAC,CAAC,CAAC3V,OACrB,CAAC;YACD6V,oBAAoB,CAACnY,OAAO,CAAC,UAAA2C,IAAI,EAAI;cACnC,IAAIkV,YAAY,GAAGhW,KAAK,CAACkB,KAAK,CAAC,CAC7B,OAAO,EACP,QAAQ,EACRjB,OAAO,EACP,OAAO,EACPa,IAAI,CAACG,EAAE,EACP,SAAS,CACV,CAAC;cACF,IACE,CAAC+U,YAAY,CAAC5E,IAAI,CAChB,UAAAkD,GAAG;gBAAA,OAAIA,GAAG,CAAC3T,MAAM,KAAKyV,eAAe,CAAC,CAAC,CAAC,CAAC3V,OAAO,CAACE,MAAM;cAAA,CACzD,CAAC,EAEDqV,YAAY,CAACjY,IAAI,CAACqY,eAAe,CAAC,CAAC,CAAC,CAAC3V,OAAO,CAAC;cAC/CT,KAAK,GAAGA,KAAK,CAACoE,KAAK,CACjB,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEa,IAAI,CAACG,EAAE,EAAE,SAAS,CAAC,EACzD+U,YACF,CAAC;YACH,CAAC,CAAC;UACJ;QACF,CAAC;QACD,IACEf,UAAU,CAAC3X,MAAM,IACjBoE,KAAK,CAAC6I,KAAK,CAAC6G,IAAI,CACd,UAAAU,EAAE;UAAA,OACAF,qBAAY,CAACsD,iBAAiB,CAACN,YAAY,EAAE9C,EAAE,CAAC,IAChDA,EAAE,CAACvQ,QAAQ,KAAK,SAAS;QAAA,CAC7B,CAAC,EACD;UACAoU,iBAAiB,CAAC,CAAC;UACnB,KAAK,IAAI3W,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuX,4BAAiB,CAACjZ,MAAM,EAAE0B,CAAC,EAAE,EAAE;YACjDkX,kBAAkB,CAACK,4BAAiB,CAACvX,CAAC,CAAC,CAAC;UAC1C;QACF,CAAC,MAAM,IAAI,CAACiW,UAAU,CAAC3X,MAAM,IAAIsX,YAAY,CAACnU,OAAO,CAACnD,MAAM,EAAE;UAC5D;UACA;UACA+X,uBAAuB,CAAC,CAAC;QAC3B;MACF;MACA,OAAO;QAAExS,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO+X,oBAAoBA,CAACxW,KAAK,EAAEW,MAAM,EAAE8V,iBAAiB,EAAE;MAC5D,IAAAC,QAAA,GAAgB1W,KAAK;QAAf+F,KAAK,GAAA2Q,QAAA,CAAL3Q,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIjB,KAAK,GAAGqE,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACrCyB,KAAK,GAAGA,KAAK,CAACyD,OAAO,CACnB,CAAC,OAAO,EAAExE,MAAM,EAAE,mBAAmB,CAAC,EACtC8V,iBACF,CAAC;MACD;MACA;MACA;MACA;MACA;MACA;MACAzW,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAEyB,KAAK;MACjD,CAAC,CAAC;MAEF,OAAO;QAAEmB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EACD,SAAOkY,oBAAoBA,CAAC3W,KAAK,EAAEuT,QAAQ,EAAE;MAC3C,IAAAqD,QAAA,GAAgB5W,KAAK;QAAf+F,KAAK,GAAA6Q,QAAA,CAAL7Q,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIgO,MAAM,GAAG5K,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACtC,IAAIsK,KAAK,GAAGoG,MAAM,CAACpG,KAAK;MACxBA,KAAK,CAACpM,OAAO,CAAC,UAAAgE,IAAI,EAAI;QACpB,IAAM0C,QAAQ,GAAG1C,IAAI,CAACb,IAAI,CAAC,CAAC;QAC5B,IAAIX,MAAM,GAAGkE,QAAQ,CAAC5D,EAAE;QACxB,IAAI4V,WAAW,GAAG;UAChB9R,SAAS,EAAEwO,QAAQ,CAACxO,SAAS;UAC7BC,SAAS,EAAEuO,QAAQ,CAACvO;QACtB,CAAC;QACD7C,IAAI,GAAGA,IAAI,CAACgD,OAAO,CAAC,CAAC,mBAAmB,CAAC,EAAE0R,WAAW,CAAC;QACvDlG,MAAM,GAAGA,MAAM,CAACxL,OAAO,CAAC,CAAC,OAAO,EAAExE,MAAM,CAAC,EAAEwB,IAAI,CAAC;QAChDnC,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;UAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAE0Q,MAAM;QAClD,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,OAAO;QAAE9N,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOqY,YAAYA,CAAC9W,KAAK,EAAES,OAAO,EAAE;MAClC,IAAAsW,QAAA,GAAgB/W,KAAK;QAAf+F,KAAK,GAAAgR,QAAA,CAALhR,KAAK;MACX,IAAI9F,OAAO,GAAG8F,KAAK,CAACpD,GAAG,CAAC,eAAe,CAAC;MACxC,IAAIgO,MAAM,GAAG5K,KAAK,CAAC4K,MAAM,CAAChO,GAAG,CAAC1C,OAAO,CAAC;MACtC,IAAIsK,KAAK,GAAGoG,MAAM,CAACpG,KAAK;MACxBA,KAAK,CAACpM,OAAO,CAAC,UAAAgE,IAAI,EAAI;QACpB,IAAM0C,QAAQ,GAAG1C,IAAI,CAACb,IAAI,CAAC,CAAC;QAC5B,IAAIX,MAAM,GAAGkE,QAAQ,CAAC5D,EAAE;MAC1B,CAAC,CAAC;MACFjB,KAAK,GAAGA,KAAK,CAACqC,KAAK,CAAC;QAClB0D,KAAK,EAAEA,KAAK,CAACZ,OAAO,CAAC,CAAC,QAAQ,EAAElF,OAAO,CAAC,EAAE0Q,MAAM;MAClD,CAAC,CAAC;MACF,OAAO;QAAE9N,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAOuY,mBAAmBA,CAAChX,KAAK,EAAEC,OAAO,EAAEU,MAAM,EAAElC,KAAK,EAAE;MACxD,IAAIqC,IAAI,GAAGd,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,EAAE,OAAO,EAAEU,MAAM,CAAC,CAAC;MACrE,IAAIoD,UAAU,GAAGjD,IAAI,CAAC6B,GAAG,CAAC,YAAY,CAAC;MACvC,IAAIsU,QAAQ,GAAGlT,UAAU,CAACpB,GAAG,CAAC,UAAU,CAAC;MACzC,IAAIrF,MAAM,GAAG2Z,QAAQ,CAACtU,GAAG,CAAC,QAAQ,CAAC;MACnC,IAAIa,OAAO,GAAGyT,QAAQ,CAACtU,GAAG,CAAC,SAAS,CAAC;MACrC,IAAIc,KAAK,GAAGwT,QAAQ,CAACtU,GAAG,CAAC,OAAO,CAAC;MACjCrF,MAAM,GAAGA,MAAM,GAAGmB,KAAK;MACvB,QAAQgF,KAAK;QACX,KAAK,IAAI;UACPD,OAAO,GAAGlG,MAAM,GAAG,EAAE;UACrB;QACF,KAAK,GAAG;UACNkG,OAAO,GAAGlG,MAAM,GAAG,IAAI;UACvB;QACF;UACEkG,OAAO,GAAGlG,MAAM;MACpB;MACA,IAAIA,MAAM,IAAI,CAAC,EAAE;QACfA,MAAM,GAAG,CAAC;QACVkG,OAAO,GAAG,CAAC;MACb;MACAxD,KAAK,GAAGA,KAAK,CAACmF,OAAO,CACnB,CAAC,OAAO,EAAE,QAAQ,EAAElF,OAAO,EAAE,OAAO,EAAEU,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EACvE,IAAI2C,cAAG,CAAC;QACNhG,MAAM,EAAEA,MAAM;QACdkG,OAAO,EAAEA,OAAO;QAChBC,KAAK,EAAEA;MACT,CAAC,CACH,CAAC;MACD,OAAO;QAAEZ,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EAED,SAAO0K,UAAUA,CAACnJ,KAAK,EAAEC,OAAO,EAAEC,IAAI,EAAE2T,MAAM,EAAErL,MAAM,EAAEzE,UAAU,EAAE;MAClE,IAAI0B,MAAM,GAAG7E,iBAAQ,CAACC,SAAS,CAAC,CAAC;MACjC,IAAIwI,IAAI,GAAGrJ,KAAK,CAACe,OAAO,CAACC,cAAc,CACrCd,IAAI,EACJ;QACEe,EAAE,EAAEwE,MAAM;QACVuJ,GAAG,EAAEhP,KAAK,CAACe,OAAO,CAACG,KAAK,CAAC,CAAC,UAAU,EAAEhB,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3DA,IAAI,EAAJA,IAAI;QACJsI,MAAM,EAANA,MAAM;QACNF,IAAI,EAAEuL;MACR,CAAC,EACD9P,UACF,CAAC;MAED/D,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEnE,OAAO,EAAE,OAAO,EAAEwF,MAAM,CAAC,EAAE4D,IAAI,CAAC;MACxErJ,KAAK,GAAGA,KAAK,CAAC6L,QAAQ,CACpB,CAAC,OAAO,EAAE,QAAQ,EAAE5L,OAAO,EAAE,OAAO,EAAE4T,MAAM,EAAE,OAAO,CAAC,EACtD,UAAAqD,KAAK;QAAA,OAAIA,KAAK,IAAIA,KAAK,CAACnZ,IAAI,CAAC0H,MAAM,CAAC;MAAA,CACtC,CAAC;MACD;MACA,IAAIxC,OAAO,GAAGjD,KAAK,CAAC+F,KAAK,CAAC4K,MAAM,CAACzP,KAAK,CAAC,CAACjB,OAAO,EAAE,OAAO,EAAE4T,MAAM,CAAC,CAAC;MAClE,IAAInS,KAAK,GAAG1B,KAAK,CAACkB,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEjB,OAAO,CAAC,CAAC;MACrD,IAAIkX,QAAQ,GAAGlU,OAAO,CAACyF,QAAQ,CAAC/F,GAAG,CAAC,CAAC,CAAC;MACtC,IAAIyU,QAAQ,GAAGnU,OAAO,CAACyF,QAAQ,CAAC/F,GAAG,CAAC,CAAC,CAAC;MACtC,IAAI0U,aAAa,GAAG,EAAE;MACtB3V,KAAK,CAAC4V,KAAK,CAACnZ,OAAO,CAAC,UAAAgE,IAAI,EAAI;QAC1BkV,aAAa,CAACtZ,IAAI,CAACoE,IAAI,CAACuG,QAAQ,CAACpH,IAAI,CAAC,CAAC,CAAC;MAC1C,CAAC,CAAC;MACF,KAAK,IAAItC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqY,aAAa,CAAC/Z,MAAM,EAAE0B,CAAC,EAAE,EAAE;QAC7C,IAAI0J,QAAQ,GAAG2O,aAAa,CAACrY,CAAC,CAAC;QAC/B,IAAI0J,QAAQ,CAACrE,QAAQ,CAAC8S,QAAQ,CAAC,IAAIzO,QAAQ,CAACrE,QAAQ,CAAC+S,QAAQ,CAAC,EAAE;UAC9D,IAAIG,MAAM,GAAG7O,QAAQ,CAAC8O,OAAO,CAACL,QAAQ,CAAC;UACvC,IAAIM,MAAM,GAAG/O,QAAQ,CAAC8O,OAAO,CAACJ,QAAQ,CAAC;UACvC;UACA,IAAIK,MAAM,GAAG,CAAC,IAAIF,MAAM,EAAE;YACxB,OAAO;cAAE1U,YAAY,EAAE7C,KAAK;cAAEqJ,IAAI,EAAJA;YAAK,CAAC;UACtC;UACA,IAAIkO,MAAM,IAAI,CAAC,IAAIE,MAAM,IAAI/O,QAAQ,CAACpL,MAAM,GAAG,CAAC,EAAE;YAChD,OAAO;cAAEuF,YAAY,EAAE7C,KAAK;cAAEqJ,IAAI,EAAJA;YAAK,CAAC;UACtC;UACA;QACF;MACF;MACA;MACAtF,UAAU,GAAGsF,IAAI,CAACtF,UAAU,CAACzC,IAAI,CAAC,CAAC;MACnC,IAAIyC,UAAU,CAACV,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAChDU,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;MACtC;MACA,IAAIA,UAAU,CAACV,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAChDU,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;MACtC;MACA/D,KAAK,GAAG0X,YAAI,CAAC/H,eAAe,CAC1B3P,KAAK,EACLC,OAAO,EACPwF,MAAM,EACN1B,UACF,CAAC,CAAClB,YAAY;MACd,OAAO;QAAEA,YAAY,EAAE7C,KAAK;QAAEqJ,IAAI,EAAJA;MAAK,CAAC;IACtC;EAAC;IAAAvK,GAAA;IAAAL,KAAA,EAED,SAAOkZ,oBAAoBA,CAAC3X,KAAK,EAAE;MACjC,IAAA4X,QAAA,GAAgB5X,KAAK;QAAf+F,KAAK,GAAA6R,QAAA,CAAL7R,KAAK;MACXqC,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAE,CAACtC,KAAK,CAAC8R,gBAAgB,CAAC;MAChE;MACA;MACA7X,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC2B,KAAK,CAAC8R,gBAAgB,CAAC;MAC3E,OAAO;QAAEhV,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;IAAAlB,GAAA;IAAAL,KAAA,EACD,SAAOqZ,UAAUA,CAAC9X,KAAK,EAAE;MACvB,IAAA+X,QAAA,GAAgB/X,KAAK;QAAf+F,KAAK,GAAAgS,QAAA,CAALhS,KAAK;MACX/F,KAAK,GAAGA,KAAK,CAACoE,KAAK,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC;MAChD,OAAO;QAAEvB,YAAY,EAAE7C;MAAM,CAAC;IAChC;EAAC;AAAA","ignoreList":[]}