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

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 (751) hide show
  1. package/package.json +23 -41
  2. package/es/@history.js +0 -3
  3. package/es/@history.js.map +0 -1
  4. package/es/AppContext.js +0 -4
  5. package/es/AppContext.js.map +0 -1
  6. package/es/KitchenConfigurator.js +0 -1345
  7. package/es/KitchenConfigurator.js.map +0 -1
  8. package/es/KitchenConfiguratorApp.js +0 -532
  9. package/es/KitchenConfiguratorApp.js.map +0 -1
  10. package/es/actions/area-actions.js +0 -15
  11. package/es/actions/area-actions.js.map +0 -1
  12. package/es/actions/export.js +0 -26
  13. package/es/actions/export.js.map +0 -1
  14. package/es/actions/groups-actions.js +0 -90
  15. package/es/actions/groups-actions.js.map +0 -1
  16. package/es/actions/holes-actions.js +0 -120
  17. package/es/actions/holes-actions.js.map +0 -1
  18. package/es/actions/items-actions.js +0 -314
  19. package/es/actions/items-actions.js.map +0 -1
  20. package/es/actions/lines-actions.js +0 -83
  21. package/es/actions/lines-actions.js.map +0 -1
  22. package/es/actions/project-actions.js +0 -282
  23. package/es/actions/project-actions.js.map +0 -1
  24. package/es/actions/scene-actions.js +0 -34
  25. package/es/actions/scene-actions.js.map +0 -1
  26. package/es/actions/user-actions.js +0 -59
  27. package/es/actions/user-actions.js.map +0 -1
  28. package/es/actions/vertices-actions.js +0 -28
  29. package/es/actions/vertices-actions.js.map +0 -1
  30. package/es/actions/viewer2d-actions.js +0 -59
  31. package/es/actions/viewer2d-actions.js.map +0 -1
  32. package/es/actions/viewer3d-actions.js +0 -24
  33. package/es/actions/viewer3d-actions.js.map +0 -1
  34. package/es/catalog/areas/area/planner-element.js +0 -41
  35. package/es/catalog/areas/area/planner-element.js.map +0 -1
  36. package/es/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  37. package/es/catalog/areas/area/textures/grass.jpg +0 -0
  38. package/es/catalog/areas/area/textures/parquet.jpg +0 -0
  39. package/es/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  40. package/es/catalog/areas/area/textures/tile1.jpg +0 -0
  41. package/es/catalog/back.png +0 -0
  42. package/es/catalog/catalog.js +0 -278
  43. package/es/catalog/catalog.js.map +0 -1
  44. package/es/catalog/doors.png +0 -0
  45. package/es/catalog/doorways.png +0 -0
  46. package/es/catalog/envMap/nx.hdr +0 -0
  47. package/es/catalog/envMap/ny.hdr +0 -0
  48. package/es/catalog/envMap/nz.hdr +0 -0
  49. package/es/catalog/envMap/px.hdr +0 -0
  50. package/es/catalog/envMap/py.hdr +0 -0
  51. package/es/catalog/envMap/pz.hdr +0 -0
  52. package/es/catalog/factories/area-factory-3d.js +0 -183
  53. package/es/catalog/factories/area-factory-3d.js.map +0 -1
  54. package/es/catalog/factories/area-factory.js +0 -82
  55. package/es/catalog/factories/area-factory.js.map +0 -1
  56. package/es/catalog/factories/export.js +0 -8
  57. package/es/catalog/factories/export.js.map +0 -1
  58. package/es/catalog/factories/wall-factory-3d.js +0 -203
  59. package/es/catalog/factories/wall-factory-3d.js.map +0 -1
  60. package/es/catalog/factories/wall-factory.js +0 -269
  61. package/es/catalog/factories/wall-factory.js.map +0 -1
  62. package/es/catalog/holes/door-closet/planner-element.js +0 -223
  63. package/es/catalog/holes/door-closet/planner-element.js.map +0 -1
  64. package/es/catalog/holes/door-double/door_double.png +0 -0
  65. package/es/catalog/holes/door-double/planner-element.js +0 -316
  66. package/es/catalog/holes/door-double/planner-element.js.map +0 -1
  67. package/es/catalog/holes/door-exterior/planner-element.js +0 -216
  68. package/es/catalog/holes/door-exterior/planner-element.js.map +0 -1
  69. package/es/catalog/holes/door-interior/planner-element.js +0 -228
  70. package/es/catalog/holes/door-interior/planner-element.js.map +0 -1
  71. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  72. package/es/catalog/holes/door-panic/planner-element.js +0 -504
  73. package/es/catalog/holes/door-panic/planner-element.js.map +0 -1
  74. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  75. package/es/catalog/holes/door-panic-double/planner-element.js +0 -464
  76. package/es/catalog/holes/door-panic-double/planner-element.js.map +0 -1
  77. package/es/catalog/holes/door-sliding/planner-element.js +0 -226
  78. package/es/catalog/holes/door-sliding/planner-element.js.map +0 -1
  79. package/es/catalog/holes/doorway-framed/planner-element.js +0 -146
  80. package/es/catalog/holes/doorway-framed/planner-element.js.map +0 -1
  81. package/es/catalog/holes/doorway-frameless/planner-element.js +0 -105
  82. package/es/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
  83. package/es/catalog/holes/gate/gate.jpg +0 -0
  84. package/es/catalog/holes/window-clear/planner-element.js +0 -167
  85. package/es/catalog/holes/window-clear/planner-element.js.map +0 -1
  86. package/es/catalog/holes/window-clear/texture.png +0 -0
  87. package/es/catalog/holes/window-cross/planner-element.js +0 -166
  88. package/es/catalog/holes/window-cross/planner-element.js.map +0 -1
  89. package/es/catalog/holes/window-cross/texture.png +0 -0
  90. package/es/catalog/holes/window-double-hung/planner-element.js +0 -304
  91. package/es/catalog/holes/window-double-hung/planner-element.js.map +0 -1
  92. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  93. package/es/catalog/holes/window-vertical/planner-element.js +0 -277
  94. package/es/catalog/holes/window-vertical/planner-element.js.map +0 -1
  95. package/es/catalog/holes/window-vertical/texture.png +0 -0
  96. package/es/catalog/lines/wall/planner-element.js +0 -71
  97. package/es/catalog/lines/wall/planner-element.js.map +0 -1
  98. package/es/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  99. package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  100. package/es/catalog/lines/wall/textures/bricks.jpg +0 -0
  101. package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
  102. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  103. package/es/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  104. package/es/catalog/lines/wall/textures/morden.jpg +0 -0
  105. package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  106. package/es/catalog/lines/wall/textures/painted.jpg +0 -0
  107. package/es/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  108. package/es/catalog/lines/wall/textures/plaster.jpg +0 -0
  109. package/es/catalog/lines/wall/wall.png +0 -0
  110. package/es/catalog/molding/molding-dcm/planner-element.js +0 -30
  111. package/es/catalog/molding/molding-dcm/planner-element.js.map +0 -1
  112. package/es/catalog/molding/molding-dcm/texture.png +0 -0
  113. package/es/catalog/molding/molding-fbm/planner-element.js +0 -30
  114. package/es/catalog/molding/molding-fbm/planner-element.js.map +0 -1
  115. package/es/catalog/molding/molding-fbm/texture.png +0 -0
  116. package/es/catalog/molding/molding-lrm/planner-element.js +0 -30
  117. package/es/catalog/molding/molding-lrm/planner-element.js.map +0 -1
  118. package/es/catalog/molding/molding-lrm/texture.png +0 -0
  119. package/es/catalog/properties/export.js +0 -22
  120. package/es/catalog/properties/export.js.map +0 -1
  121. package/es/catalog/properties/property-checkbox.js +0 -72
  122. package/es/catalog/properties/property-checkbox.js.map +0 -1
  123. package/es/catalog/properties/property-color.js +0 -40
  124. package/es/catalog/properties/property-color.js.map +0 -1
  125. package/es/catalog/properties/property-enum.js +0 -56
  126. package/es/catalog/properties/property-enum.js.map +0 -1
  127. package/es/catalog/properties/property-hidden.js +0 -20
  128. package/es/catalog/properties/property-hidden.js.map +0 -1
  129. package/es/catalog/properties/property-lenght-measure.js +0 -102
  130. package/es/catalog/properties/property-lenght-measure.js.map +0 -1
  131. package/es/catalog/properties/property-length-measure.js +0 -86
  132. package/es/catalog/properties/property-length-measure.js.map +0 -1
  133. package/es/catalog/properties/property-length-measure_hole.js +0 -102
  134. package/es/catalog/properties/property-length-measure_hole.js.map +0 -1
  135. package/es/catalog/properties/property-number.js +0 -49
  136. package/es/catalog/properties/property-number.js.map +0 -1
  137. package/es/catalog/properties/property-read-only.js +0 -27
  138. package/es/catalog/properties/property-read-only.js.map +0 -1
  139. package/es/catalog/properties/property-string.js +0 -49
  140. package/es/catalog/properties/property-string.js.map +0 -1
  141. package/es/catalog/properties/property-toggle.js +0 -40
  142. package/es/catalog/properties/property-toggle.js.map +0 -1
  143. package/es/catalog/properties/shared-property-style.js +0 -15
  144. package/es/catalog/properties/shared-property-style.js.map +0 -1
  145. package/es/catalog/utils/FuseUtils.js +0 -83
  146. package/es/catalog/utils/FuseUtils.js.map +0 -1
  147. package/es/catalog/utils/exporter.js +0 -149
  148. package/es/catalog/utils/exporter.js.map +0 -1
  149. package/es/catalog/utils/geom-utils.js +0 -190
  150. package/es/catalog/utils/geom-utils.js.map +0 -1
  151. package/es/catalog/utils/item-loader.js +0 -1522
  152. package/es/catalog/utils/item-loader.js.map +0 -1
  153. package/es/catalog/utils/load-obj.js +0 -92
  154. package/es/catalog/utils/load-obj.js.map +0 -1
  155. package/es/catalog/utils/mtl-loader.js +0 -358
  156. package/es/catalog/utils/mtl-loader.js.map +0 -1
  157. package/es/catalog/utils/obj-loader.js +0 -477
  158. package/es/catalog/utils/obj-loader.js.map +0 -1
  159. package/es/catalog/windows.png +0 -0
  160. package/es/class/FuseUtils.js +0 -83
  161. package/es/class/FuseUtils.js.map +0 -1
  162. package/es/class/area.js +0 -146
  163. package/es/class/area.js.map +0 -1
  164. package/es/class/export.js +0 -25
  165. package/es/class/export.js.map +0 -1
  166. package/es/class/group.js +0 -441
  167. package/es/class/group.js.map +0 -1
  168. package/es/class/guide.js +0 -63
  169. package/es/class/guide.js.map +0 -1
  170. package/es/class/hole.js +0 -931
  171. package/es/class/hole.js.map +0 -1
  172. package/es/class/item.js +0 -1888
  173. package/es/class/item.js.map +0 -1
  174. package/es/class/layer.js +0 -668
  175. package/es/class/layer.js.map +0 -1
  176. package/es/class/line.js +0 -1290
  177. package/es/class/line.js.map +0 -1
  178. package/es/class/project.js +0 -823
  179. package/es/class/project.js.map +0 -1
  180. package/es/class/vertex.js +0 -267
  181. package/es/class/vertex.js.map +0 -1
  182. package/es/components/atoms/Snackbar/index.js +0 -50
  183. package/es/components/atoms/Snackbar/index.js.map +0 -1
  184. package/es/components/atoms/radio-button/index.js +0 -26
  185. package/es/components/atoms/radio-button/index.js.map +0 -1
  186. package/es/components/atoms/radio-button/styles.js +0 -5
  187. package/es/components/atoms/radio-button/styles.js.map +0 -1
  188. package/es/components/button/MainButton.js +0 -92
  189. package/es/components/button/MainButton.js.map +0 -1
  190. package/es/components/button/ToggleMeasureButton.js +0 -56
  191. package/es/components/button/ToggleMeasureButton.js.map +0 -1
  192. package/es/components/catalog-view/catalog-breadcrumb.js +0 -53
  193. package/es/components/catalog-view/catalog-breadcrumb.js.map +0 -1
  194. package/es/components/catalog-view/catalog-item.js +0 -226
  195. package/es/components/catalog-view/catalog-item.js.map +0 -1
  196. package/es/components/catalog-view/catalog-list.js +0 -182
  197. package/es/components/catalog-view/catalog-list.js.map +0 -1
  198. package/es/components/catalog-view/catalog-page-item.js +0 -130
  199. package/es/components/catalog-view/catalog-page-item.js.map +0 -1
  200. package/es/components/catalog-view/catalog-turn-back-page-item.js +0 -106
  201. package/es/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
  202. package/es/components/configurator/custom-configurator.js +0 -94
  203. package/es/components/configurator/custom-configurator.js.map +0 -1
  204. package/es/components/configurator/project-configurator.js +0 -131
  205. package/es/components/configurator/project-configurator.js.map +0 -1
  206. package/es/components/content.js +0 -123
  207. package/es/components/content.js.map +0 -1
  208. package/es/components/export.js +0 -24
  209. package/es/components/export.js.map +0 -1
  210. package/es/components/firstsetting/button/styles.js +0 -27
  211. package/es/components/firstsetting/button/styles.js.map +0 -1
  212. package/es/components/firstsetting/export.js +0 -9
  213. package/es/components/firstsetting/export.js.map +0 -1
  214. package/es/components/firstsetting/firstsetting-content-button.js +0 -217
  215. package/es/components/firstsetting/firstsetting-content-button.js.map +0 -1
  216. package/es/components/firstsetting/firstsetting-toggle-button.js +0 -126
  217. package/es/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
  218. package/es/components/firstsetting/firstsetting.js +0 -626
  219. package/es/components/firstsetting/firstsetting.js.map +0 -1
  220. package/es/components/footerbar/button/ControlButton.js +0 -72
  221. package/es/components/footerbar/button/ControlButton.js.map +0 -1
  222. package/es/components/footerbar/button/DirectionButton.js +0 -69
  223. package/es/components/footerbar/button/DirectionButton.js.map +0 -1
  224. package/es/components/footerbar/button/DirectionPanSpinButton.js +0 -50
  225. package/es/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
  226. package/es/components/footerbar/button/ToggleButton.js +0 -76
  227. package/es/components/footerbar/button/ToggleButton.js.map +0 -1
  228. package/es/components/footerbar/button/ToggleConvertButton.js +0 -73
  229. package/es/components/footerbar/button/ToggleConvertButton.js.map +0 -1
  230. package/es/components/footerbar/button/ToggleMeasureButton.js +0 -52
  231. package/es/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
  232. package/es/components/footerbar/button/styles.js +0 -22
  233. package/es/components/footerbar/button/styles.js.map +0 -1
  234. package/es/components/footerbar/export.js +0 -9
  235. package/es/components/footerbar/export.js.map +0 -1
  236. package/es/components/footerbar/footer-content-button.js +0 -217
  237. package/es/components/footerbar/footer-content-button.js.map +0 -1
  238. package/es/components/footerbar/footer-toggle-button.js +0 -126
  239. package/es/components/footerbar/footer-toggle-button.js.map +0 -1
  240. package/es/components/footerbar/footerbar.js +0 -801
  241. package/es/components/footerbar/footerbar.js.map +0 -1
  242. package/es/components/footerbar/styles.js +0 -34
  243. package/es/components/footerbar/styles.js.map +0 -1
  244. package/es/components/header/button/MenuButton.js +0 -70
  245. package/es/components/header/button/MenuButton.js.map +0 -1
  246. package/es/components/header/button/SaveButton.js +0 -48
  247. package/es/components/header/button/SaveButton.js.map +0 -1
  248. package/es/components/header/button/styles.js +0 -59
  249. package/es/components/header/button/styles.js.map +0 -1
  250. package/es/components/header/export.js +0 -5
  251. package/es/components/header/export.js.map +0 -1
  252. package/es/components/header/header.js +0 -550
  253. package/es/components/header/header.js.map +0 -1
  254. package/es/components/header/header.style.css +0 -47
  255. package/es/components/header/styles.js +0 -41
  256. package/es/components/header/styles.js.map +0 -1
  257. package/es/components/login/Login.js +0 -86
  258. package/es/components/login/Login.js.map +0 -1
  259. package/es/components/login/LoginForm/index.js +0 -132
  260. package/es/components/login/LoginForm/index.js.map +0 -1
  261. package/es/components/login/Register.js +0 -96
  262. package/es/components/login/Register.js.map +0 -1
  263. package/es/components/login/RegisterForm/index.js +0 -230
  264. package/es/components/login/RegisterForm/index.js.map +0 -1
  265. package/es/components/login/jwtService.js +0 -232
  266. package/es/components/login/jwtService.js.map +0 -1
  267. package/es/components/login/style.css +0 -158
  268. package/es/components/login/style.scss +0 -260
  269. package/es/components/molecules/slider/index.js +0 -13
  270. package/es/components/molecules/slider/index.js.map +0 -1
  271. package/es/components/molecules/slider/styles.js +0 -2
  272. package/es/components/molecules/slider/styles.js.map +0 -1
  273. package/es/components/molecules/slider/styles.scss +0 -3
  274. package/es/components/myprojects/export.js +0 -5
  275. package/es/components/myprojects/export.js.map +0 -1
  276. package/es/components/myprojects/index.js +0 -446
  277. package/es/components/myprojects/index.js.map +0 -1
  278. package/es/components/myprojects/styles.js +0 -24
  279. package/es/components/myprojects/styles.js.map +0 -1
  280. package/es/components/sidebar/custom-accordion.js +0 -38
  281. package/es/components/sidebar/custom-accordion.js.map +0 -1
  282. package/es/components/sidebar/export.js +0 -14
  283. package/es/components/sidebar/export.js.map +0 -1
  284. package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -65
  285. package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
  286. package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -116
  287. package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
  288. package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -126
  289. package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
  290. package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -251
  291. package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
  292. package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -75
  293. package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
  294. package/es/components/sidebar/panel-element-editor/element-editor.js +0 -878
  295. package/es/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
  296. package/es/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
  297. package/es/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
  298. package/es/components/sidebar/panel-element-editor/panel-element-editor.js +0 -49
  299. package/es/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
  300. package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -118
  301. package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
  302. package/es/components/sidebar/panel-group-editor.js +0 -211
  303. package/es/components/sidebar/panel-group-editor.js.map +0 -1
  304. package/es/components/sidebar/panel-groups.js +0 -267
  305. package/es/components/sidebar/panel-groups.js.map +0 -1
  306. package/es/components/sidebar/panel-guides.js +0 -185
  307. package/es/components/sidebar/panel-guides.js.map +0 -1
  308. package/es/components/sidebar/panel-layer-elements.js +0 -251
  309. package/es/components/sidebar/panel-layer-elements.js.map +0 -1
  310. package/es/components/sidebar/panel-layers.js +0 -340
  311. package/es/components/sidebar/panel-layers.js.map +0 -1
  312. package/es/components/sidebar/panel.js +0 -103
  313. package/es/components/sidebar/panel.js.map +0 -1
  314. package/es/components/sidebar/sidebar.js +0 -109
  315. package/es/components/sidebar/sidebar.js.map +0 -1
  316. package/es/components/sidebar/toolbar-panel.js +0 -164
  317. package/es/components/sidebar/toolbar-panel.js.map +0 -1
  318. package/es/components/sign/export.js +0 -6
  319. package/es/components/sign/export.js.map +0 -1
  320. package/es/components/sign/main/index.js +0 -560
  321. package/es/components/sign/main/index.js.map +0 -1
  322. package/es/components/sign/main/styles.js +0 -20
  323. package/es/components/sign/main/styles.js.map +0 -1
  324. package/es/components/style/button.js +0 -114
  325. package/es/components/style/button.js.map +0 -1
  326. package/es/components/style/cancel-button.js +0 -23
  327. package/es/components/style/cancel-button.js.map +0 -1
  328. package/es/components/style/content-container.js +0 -34
  329. package/es/components/style/content-container.js.map +0 -1
  330. package/es/components/style/content-title.js +0 -30
  331. package/es/components/style/content-title.js.map +0 -1
  332. package/es/components/style/delete-button.js +0 -26
  333. package/es/components/style/delete-button.js.map +0 -1
  334. package/es/components/style/export.js +0 -32
  335. package/es/components/style/export.js.map +0 -1
  336. package/es/components/style/form-block.js +0 -25
  337. package/es/components/style/form-block.js.map +0 -1
  338. package/es/components/style/form-color-input.js +0 -28
  339. package/es/components/style/form-color-input.js.map +0 -1
  340. package/es/components/style/form-label.js +0 -27
  341. package/es/components/style/form-label.js.map +0 -1
  342. package/es/components/style/form-number-input.js +0 -190
  343. package/es/components/style/form-number-input.js.map +0 -1
  344. package/es/components/style/form-number-input_2.js +0 -207
  345. package/es/components/style/form-number-input_2.js.map +0 -1
  346. package/es/components/style/form-select.js +0 -21
  347. package/es/components/style/form-select.js.map +0 -1
  348. package/es/components/style/form-slider.js +0 -46
  349. package/es/components/style/form-slider.js.map +0 -1
  350. package/es/components/style/form-submit-button.js +0 -27
  351. package/es/components/style/form-submit-button.js.map +0 -1
  352. package/es/components/style/form-text-input.js +0 -77
  353. package/es/components/style/form-text-input.js.map +0 -1
  354. package/es/components/toolbar/button/ControlButton.js +0 -69
  355. package/es/components/toolbar/button/ControlButton.js.map +0 -1
  356. package/es/components/toolbar/button/DirectionButton.js +0 -50
  357. package/es/components/toolbar/button/DirectionButton.js.map +0 -1
  358. package/es/components/toolbar/button/RightButton.js +0 -133
  359. package/es/components/toolbar/button/RightButton.js.map +0 -1
  360. package/es/components/toolbar/button/ToggleButton.js +0 -59
  361. package/es/components/toolbar/button/ToggleButton.js.map +0 -1
  362. package/es/components/toolbar/button/index.js +0 -88
  363. package/es/components/toolbar/button/index.js.map +0 -1
  364. package/es/components/toolbar/button/styles.js +0 -14
  365. package/es/components/toolbar/button/styles.js.map +0 -1
  366. package/es/components/toolbar/components/DoorStyleMenu.js +0 -105
  367. package/es/components/toolbar/components/DoorStyleMenu.js.map +0 -1
  368. package/es/components/toolbar/components/Pricing.js +0 -101
  369. package/es/components/toolbar/components/Pricing.js.map +0 -1
  370. package/es/components/toolbar/components/ReviewForQuote.js +0 -476
  371. package/es/components/toolbar/components/ReviewForQuote.js.map +0 -1
  372. package/es/components/toolbar/export.js +0 -14
  373. package/es/components/toolbar/export.js.map +0 -1
  374. package/es/components/toolbar/main/Alert.js +0 -125
  375. package/es/components/toolbar/main/Alert.js.map +0 -1
  376. package/es/components/toolbar/main/TakePictureModal.js +0 -100
  377. package/es/components/toolbar/main/TakePictureModal.js.map +0 -1
  378. package/es/components/toolbar/main/confirm-popup.js +0 -88
  379. package/es/components/toolbar/main/confirm-popup.js.map +0 -1
  380. package/es/components/toolbar/main/index.js +0 -4612
  381. package/es/components/toolbar/main/index.js.map +0 -1
  382. package/es/components/toolbar/main/lShaped.json +0 -311
  383. package/es/components/toolbar/main/longNarrow.json +0 -238
  384. package/es/components/toolbar/main/myComponents.js +0 -118
  385. package/es/components/toolbar/main/myComponents.js.map +0 -1
  386. package/es/components/toolbar/main/oRectangle.json +0 -220
  387. package/es/components/toolbar/main/rectangle.json +0 -238
  388. package/es/components/toolbar/main/style.css +0 -107
  389. package/es/components/toolbar/main/styles.js +0 -64
  390. package/es/components/toolbar/main/styles.js.map +0 -1
  391. package/es/components/toolbar/plugin-item.js +0 -150
  392. package/es/components/toolbar/plugin-item.js.map +0 -1
  393. package/es/components/toolbar/popup/appliance/appliance-category/index.js +0 -77
  394. package/es/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
  395. package/es/components/toolbar/popup/appliance/choose-appliance/index.js +0 -76
  396. package/es/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
  397. package/es/components/toolbar/popup/appliance/index.js +0 -81
  398. package/es/components/toolbar/popup/appliance/index.js.map +0 -1
  399. package/es/components/toolbar/popup/autosaveprompt/index.js +0 -91
  400. package/es/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
  401. package/es/components/toolbar/popup/autosaveprompt/styles.css +0 -64
  402. package/es/components/toolbar/popup/autosaveprompt/styles.js +0 -9
  403. package/es/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
  404. package/es/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -77
  405. package/es/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
  406. package/es/components/toolbar/popup/cabinet/choose-product/index.js +0 -98
  407. package/es/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
  408. package/es/components/toolbar/popup/cabinet/index.js +0 -83
  409. package/es/components/toolbar/popup/cabinet/index.js.map +0 -1
  410. package/es/components/toolbar/popup/doorStyle/choose-style/index.js +0 -50
  411. package/es/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
  412. package/es/components/toolbar/popup/doorStyle/index.js +0 -61
  413. package/es/components/toolbar/popup/doorStyle/index.js.map +0 -1
  414. package/es/components/toolbar/popup/doorStyle/style-category/index.js +0 -143
  415. package/es/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
  416. package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -3
  417. package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
  418. package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -119
  419. package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
  420. package/es/components/toolbar/popup/downloadsummary/index.js +0 -564
  421. package/es/components/toolbar/popup/downloadsummary/index.js.map +0 -1
  422. package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -51
  423. package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
  424. package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -191
  425. package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
  426. package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -245
  427. package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
  428. package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1758
  429. package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
  430. package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -87
  431. package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
  432. package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -116
  433. package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
  434. package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1710
  435. package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
  436. package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -175
  437. package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
  438. package/es/components/toolbar/popup/downloadsummary/showWarranty.js +0 -106
  439. package/es/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
  440. package/es/components/toolbar/popup/downloadsummary/styles.css +0 -177
  441. package/es/components/toolbar/popup/downloadsummary/styles.js +0 -40
  442. package/es/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
  443. package/es/components/toolbar/popup/finishingtouch/category/index.js +0 -35
  444. package/es/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
  445. package/es/components/toolbar/popup/finishingtouch/index.js +0 -47
  446. package/es/components/toolbar/popup/finishingtouch/index.js.map +0 -1
  447. package/es/components/toolbar/popup/finishingtouch/material-edit.js +0 -156
  448. package/es/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
  449. package/es/components/toolbar/popup/finishingtouch/product/index.js +0 -56
  450. package/es/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
  451. package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -116
  452. package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
  453. package/es/components/toolbar/popup/floorplan/choose-floor/index.js +0 -246
  454. package/es/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
  455. package/es/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -311
  456. package/es/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -238
  457. package/es/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -220
  458. package/es/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -238
  459. package/es/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -11
  460. package/es/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
  461. package/es/components/toolbar/popup/floorplan/floor-category/index.js +0 -90
  462. package/es/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
  463. package/es/components/toolbar/popup/floorplan/index.js +0 -49
  464. package/es/components/toolbar/popup/floorplan/index.js.map +0 -1
  465. package/es/components/toolbar/popup/index.js +0 -188
  466. package/es/components/toolbar/popup/index.js.map +0 -1
  467. package/es/components/toolbar/popup/newproject/index.js +0 -67
  468. package/es/components/toolbar/popup/newproject/index.js.map +0 -1
  469. package/es/components/toolbar/popup/newproject/styles.css +0 -64
  470. package/es/components/toolbar/popup/newproject/styles.js +0 -9
  471. package/es/components/toolbar/popup/newproject/styles.js.map +0 -1
  472. package/es/components/toolbar/popup/product/appliance.js +0 -65
  473. package/es/components/toolbar/popup/product/appliance.js.map +0 -1
  474. package/es/components/toolbar/popup/product/cabinetproduct.js +0 -25
  475. package/es/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
  476. package/es/components/toolbar/popup/product/doorstyle.js +0 -50
  477. package/es/components/toolbar/popup/product/doorstyle.js.map +0 -1
  478. package/es/components/toolbar/popup/product/doorstyleproduct.js +0 -51
  479. package/es/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
  480. package/es/components/toolbar/popup/product/floor.js +0 -52
  481. package/es/components/toolbar/popup/product/floor.js.map +0 -1
  482. package/es/components/toolbar/popup/product/floorproduct.js +0 -61
  483. package/es/components/toolbar/popup/product/floorproduct.js.map +0 -1
  484. package/es/components/toolbar/popup/product/index.js +0 -52
  485. package/es/components/toolbar/popup/product/index.js.map +0 -1
  486. package/es/components/toolbar/popup/product/primary.js +0 -63
  487. package/es/components/toolbar/popup/product/primary.js.map +0 -1
  488. package/es/components/toolbar/popup/product/productline.js +0 -120
  489. package/es/components/toolbar/popup/product/productline.js.map +0 -1
  490. package/es/components/toolbar/popup/product/reviewItem.js +0 -338
  491. package/es/components/toolbar/popup/product/reviewItem.js.map +0 -1
  492. package/es/components/toolbar/popup/product/reviewMolding.js +0 -282
  493. package/es/components/toolbar/popup/product/reviewMolding.js.map +0 -1
  494. package/es/components/toolbar/popup/product/style.css +0 -54
  495. package/es/components/toolbar/popup/product/styles.js +0 -71
  496. package/es/components/toolbar/popup/product/styles.js.map +0 -1
  497. package/es/components/toolbar/popup/savedesign/FullPictureForm.js +0 -161
  498. package/es/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
  499. package/es/components/toolbar/popup/savedesign/index.js +0 -508
  500. package/es/components/toolbar/popup/savedesign/index.js.map +0 -1
  501. package/es/components/toolbar/popup/savedesign/savedesign.style.css +0 -16
  502. package/es/components/toolbar/popup/savedesign/styles.js +0 -19
  503. package/es/components/toolbar/popup/savedesign/styles.js.map +0 -1
  504. package/es/components/toolbar/popup/setDoorStyleOption/index.js +0 -57
  505. package/es/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
  506. package/es/components/toolbar/popup/styles.js +0 -98
  507. package/es/components/toolbar/popup/styles.js.map +0 -1
  508. package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -157
  509. package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
  510. package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -85
  511. package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
  512. package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -36
  513. package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
  514. package/es/components/toolbar/popup/submitforquote/StepDots.js +0 -33
  515. package/es/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
  516. package/es/components/toolbar/popup/submitforquote/cart-choice.js +0 -132
  517. package/es/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
  518. package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -43
  519. package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
  520. package/es/components/toolbar/popup/submitforquote/index.js +0 -690
  521. package/es/components/toolbar/popup/submitforquote/index.js.map +0 -1
  522. package/es/components/toolbar/popup/submitforquote/styles.css +0 -105
  523. package/es/components/toolbar/popup/submitforquote/styles.js +0 -31
  524. package/es/components/toolbar/popup/submitforquote/styles.js.map +0 -1
  525. package/es/components/toolbar/popup/submitprompt/index.js +0 -71
  526. package/es/components/toolbar/popup/submitprompt/index.js.map +0 -1
  527. package/es/components/toolbar/popup/submitprompt/styles.css +0 -64
  528. package/es/components/toolbar/popup/submitprompt/styles.js +0 -9
  529. package/es/components/toolbar/popup/submitprompt/styles.js.map +0 -1
  530. package/es/components/toolbar/toolbar-button.js +0 -105
  531. package/es/components/toolbar/toolbar-button.js.map +0 -1
  532. package/es/components/toolbar/toolbar-load-button.js +0 -29
  533. package/es/components/toolbar/toolbar-load-button.js.map +0 -1
  534. package/es/components/toolbar/toolbar-save-button.js +0 -27
  535. package/es/components/toolbar/toolbar-save-button.js.map +0 -1
  536. package/es/components/tutorial-view/Modal.js +0 -498
  537. package/es/components/tutorial-view/Modal.js.map +0 -1
  538. package/es/components/tutorial-view/style.css +0 -111
  539. package/es/components/tutorial-view/styles.js +0 -6
  540. package/es/components/tutorial-view/styles.js.map +0 -1
  541. package/es/components/viewer2d/area.js +0 -83
  542. package/es/components/viewer2d/area.js.map +0 -1
  543. package/es/components/viewer2d/export.js +0 -32
  544. package/es/components/viewer2d/export.js.map +0 -1
  545. package/es/components/viewer2d/grids/grid-horizontal-streak.js +0 -38
  546. package/es/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
  547. package/es/components/viewer2d/grids/grid-streak.js +0 -38
  548. package/es/components/viewer2d/grids/grid-streak.js.map +0 -1
  549. package/es/components/viewer2d/grids/grid-vertical-streak.js +0 -38
  550. package/es/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
  551. package/es/components/viewer2d/grids/grids.js +0 -36
  552. package/es/components/viewer2d/grids/grids.js.map +0 -1
  553. package/es/components/viewer2d/group.js +0 -54
  554. package/es/components/viewer2d/group.js.map +0 -1
  555. package/es/components/viewer2d/item.js +0 -514
  556. package/es/components/viewer2d/item.js.map +0 -1
  557. package/es/components/viewer2d/layer.js +0 -165
  558. package/es/components/viewer2d/layer.js.map +0 -1
  559. package/es/components/viewer2d/line.js +0 -889
  560. package/es/components/viewer2d/line.js.map +0 -1
  561. package/es/components/viewer2d/ruler.js +0 -101
  562. package/es/components/viewer2d/ruler.js.map +0 -1
  563. package/es/components/viewer2d/rulerDist.js +0 -147
  564. package/es/components/viewer2d/rulerDist.js.map +0 -1
  565. package/es/components/viewer2d/rulerX.js +0 -152
  566. package/es/components/viewer2d/rulerX.js.map +0 -1
  567. package/es/components/viewer2d/rulerY.js +0 -154
  568. package/es/components/viewer2d/rulerY.js.map +0 -1
  569. package/es/components/viewer2d/scene.js +0 -141
  570. package/es/components/viewer2d/scene.js.map +0 -1
  571. package/es/components/viewer2d/snap.js +0 -75
  572. package/es/components/viewer2d/snap.js.map +0 -1
  573. package/es/components/viewer2d/state.js +0 -79
  574. package/es/components/viewer2d/state.js.map +0 -1
  575. package/es/components/viewer2d/utils.js +0 -163
  576. package/es/components/viewer2d/utils.js.map +0 -1
  577. package/es/components/viewer2d/vertex.js +0 -67
  578. package/es/components/viewer2d/vertex.js.map +0 -1
  579. package/es/components/viewer2d/viewer2d.js +0 -1402
  580. package/es/components/viewer2d/viewer2d.js.map +0 -1
  581. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2593
  582. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
  583. package/es/components/viewer3d/dcm.js +0 -402
  584. package/es/components/viewer3d/dcm.js.map +0 -1
  585. package/es/components/viewer3d/fbm.js +0 -415
  586. package/es/components/viewer3d/fbm.js.map +0 -1
  587. package/es/components/viewer3d/front3D.js +0 -67
  588. package/es/components/viewer3d/front3D.js.map +0 -1
  589. package/es/components/viewer3d/grid-creator.js +0 -26
  590. package/es/components/viewer3d/grid-creator.js.map +0 -1
  591. package/es/components/viewer3d/grids/grid-horizontal-streak.js +0 -37
  592. package/es/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
  593. package/es/components/viewer3d/grids/grid-streak.js +0 -28
  594. package/es/components/viewer3d/grids/grid-streak.js.map +0 -1
  595. package/es/components/viewer3d/grids/grid-vertical-streak.js +0 -37
  596. package/es/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
  597. package/es/components/viewer3d/libs/first-person-controls.js +0 -68
  598. package/es/components/viewer3d/libs/first-person-controls.js.map +0 -1
  599. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1282
  600. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
  601. package/es/components/viewer3d/libs/mtl-loader.js +0 -358
  602. package/es/components/viewer3d/libs/mtl-loader.js.map +0 -1
  603. package/es/components/viewer3d/libs/obj-loader.js +0 -463
  604. package/es/components/viewer3d/libs/obj-loader.js.map +0 -1
  605. package/es/components/viewer3d/libs/orbit-controls.js +0 -699
  606. package/es/components/viewer3d/libs/orbit-controls.js.map +0 -1
  607. package/es/components/viewer3d/libs/pointer-lock-controls.js +0 -46
  608. package/es/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
  609. package/es/components/viewer3d/lrm.js +0 -306
  610. package/es/components/viewer3d/lrm.js.map +0 -1
  611. package/es/components/viewer3d/model.js +0 -709
  612. package/es/components/viewer3d/model.js.map +0 -1
  613. package/es/components/viewer3d/pointer-lock-navigation.js +0 -116
  614. package/es/components/viewer3d/pointer-lock-navigation.js.map +0 -1
  615. package/es/components/viewer3d/ruler-utils/itemRect.js +0 -62
  616. package/es/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
  617. package/es/components/viewer3d/ruler-utils/layer3D.js +0 -496
  618. package/es/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
  619. package/es/components/viewer3d/ruler-utils/ruler3D.js +0 -228
  620. package/es/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
  621. package/es/components/viewer3d/ruler-utils/scene3D.js +0 -62
  622. package/es/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
  623. package/es/components/viewer3d/ruler-utils/state3D.js +0 -19
  624. package/es/components/viewer3d/ruler-utils/state3D.js.map +0 -1
  625. package/es/components/viewer3d/scene-creator.js +0 -3607
  626. package/es/components/viewer3d/scene-creator.js.map +0 -1
  627. package/es/components/viewer3d/three-memory-cleaner.js +0 -52
  628. package/es/components/viewer3d/three-memory-cleaner.js.map +0 -1
  629. package/es/components/viewer3d/viewer3d-first-person.js +0 -316
  630. package/es/components/viewer3d/viewer3d-first-person.js.map +0 -1
  631. package/es/components/viewer3d/viewer3d.js +0 -2504
  632. package/es/components/viewer3d/viewer3d.js.map +0 -1
  633. package/es/components/wizardstep/button/styles.js +0 -60
  634. package/es/components/wizardstep/button/styles.js.map +0 -1
  635. package/es/components/wizardstep/export.js +0 -5
  636. package/es/components/wizardstep/export.js.map +0 -1
  637. package/es/components/wizardstep/index.js +0 -971
  638. package/es/components/wizardstep/index.js.map +0 -1
  639. package/es/components/wizardstep/styles.js +0 -61
  640. package/es/components/wizardstep/styles.js.map +0 -1
  641. package/es/components/wizardstep/wizardstep-content-button.js +0 -217
  642. package/es/components/wizardstep/wizardstep-content-button.js.map +0 -1
  643. package/es/components/wizardstep/wizardstep-toggle-button.js +0 -126
  644. package/es/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
  645. package/es/constants.js +0 -637
  646. package/es/constants.js.map +0 -1
  647. package/es/hooks/useCheckCart.js +0 -53
  648. package/es/hooks/useCheckCart.js.map +0 -1
  649. package/es/hooks/useGetPricesBySku.js +0 -74
  650. package/es/hooks/useGetPricesBySku.js.map +0 -1
  651. package/es/hooks/useValidateToken.js +0 -201
  652. package/es/hooks/useValidateToken.js.map +0 -1
  653. package/es/index.js +0 -17
  654. package/es/index.js.map +0 -1
  655. package/es/models.js +0 -511
  656. package/es/models.js.map +0 -1
  657. package/es/plugins/SVGLoader.js +0 -1413
  658. package/es/plugins/SVGLoader.js.map +0 -1
  659. package/es/plugins/autosave.js +0 -34
  660. package/es/plugins/autosave.js.map +0 -1
  661. package/es/plugins/console-debugger.js +0 -38
  662. package/es/plugins/console-debugger.js.map +0 -1
  663. package/es/plugins/export.js +0 -10
  664. package/es/plugins/export.js.map +0 -1
  665. package/es/plugins/keyboard.js +0 -102
  666. package/es/plugins/keyboard.js.map +0 -1
  667. package/es/reducers/areas-reducer.js +0 -13
  668. package/es/reducers/areas-reducer.js.map +0 -1
  669. package/es/reducers/export.js +0 -26
  670. package/es/reducers/export.js.map +0 -1
  671. package/es/reducers/groups-reducer.js +0 -39
  672. package/es/reducers/groups-reducer.js.map +0 -1
  673. package/es/reducers/holes-reducer.js +0 -63
  674. package/es/reducers/holes-reducer.js.map +0 -1
  675. package/es/reducers/items-reducer.js +0 -144
  676. package/es/reducers/items-reducer.js.map +0 -1
  677. package/es/reducers/lines-reducer.js +0 -46
  678. package/es/reducers/lines-reducer.js.map +0 -1
  679. package/es/reducers/project-reducer.js +0 -130
  680. package/es/reducers/project-reducer.js.map +0 -1
  681. package/es/reducers/reducer.js +0 -20
  682. package/es/reducers/reducer.js.map +0 -1
  683. package/es/reducers/scene-reducer.js +0 -29
  684. package/es/reducers/scene-reducer.js.map +0 -1
  685. package/es/reducers/user-reducer.js +0 -42
  686. package/es/reducers/user-reducer.js.map +0 -1
  687. package/es/reducers/vertices-reducer.js +0 -20
  688. package/es/reducers/vertices-reducer.js.map +0 -1
  689. package/es/reducers/viewer2d-reducer.js +0 -76
  690. package/es/reducers/viewer2d-reducer.js.map +0 -1
  691. package/es/reducers/viewer3d-reducer.js +0 -57
  692. package/es/reducers/viewer3d-reducer.js.map +0 -1
  693. package/es/shared-style.js +0 -67
  694. package/es/shared-style.js.map +0 -1
  695. package/es/styles/export.js +0 -6
  696. package/es/styles/export.js.map +0 -1
  697. package/es/styles/tabs.css +0 -40
  698. package/es/translator/en.js +0 -105
  699. package/es/translator/en.js.map +0 -1
  700. package/es/translator/it.js +0 -80
  701. package/es/translator/it.js.map +0 -1
  702. package/es/translator/ru.js +0 -80
  703. package/es/translator/ru.js.map +0 -1
  704. package/es/translator/translator.js +0 -85
  705. package/es/translator/translator.js.map +0 -1
  706. package/es/utils/browser.js +0 -34
  707. package/es/utils/browser.js.map +0 -1
  708. package/es/utils/email-validator.js +0 -5
  709. package/es/utils/email-validator.js.map +0 -1
  710. package/es/utils/export.js +0 -26
  711. package/es/utils/export.js.map +0 -1
  712. package/es/utils/geometry.js +0 -2237
  713. package/es/utils/geometry.js.map +0 -1
  714. package/es/utils/get-edges-of-subgraphs.js +0 -27
  715. package/es/utils/get-edges-of-subgraphs.js.map +0 -1
  716. package/es/utils/graph-cycles.js +0 -239
  717. package/es/utils/graph-cycles.js.map +0 -1
  718. package/es/utils/graph-inner-cycles.js +0 -47
  719. package/es/utils/graph-inner-cycles.js.map +0 -1
  720. package/es/utils/graph.js +0 -150
  721. package/es/utils/graph.js.map +0 -1
  722. package/es/utils/helper.js +0 -337
  723. package/es/utils/helper.js.map +0 -1
  724. package/es/utils/history.js +0 -30
  725. package/es/utils/history.js.map +0 -1
  726. package/es/utils/id-broker.js +0 -20
  727. package/es/utils/id-broker.js.map +0 -1
  728. package/es/utils/logger.js +0 -9
  729. package/es/utils/logger.js.map +0 -1
  730. package/es/utils/math.js +0 -51
  731. package/es/utils/math.js.map +0 -1
  732. package/es/utils/molding.js +0 -840
  733. package/es/utils/molding.js.map +0 -1
  734. package/es/utils/name-generator.js +0 -19
  735. package/es/utils/name-generator.js.map +0 -1
  736. package/es/utils/objects-utils.js +0 -51
  737. package/es/utils/objects-utils.js.map +0 -1
  738. package/es/utils/phone-validator.js +0 -5
  739. package/es/utils/phone-validator.js.map +0 -1
  740. package/es/utils/process-black-list.js +0 -19
  741. package/es/utils/process-black-list.js.map +0 -1
  742. package/es/utils/react-if.js +0 -19
  743. package/es/utils/react-if.js.map +0 -1
  744. package/es/utils/snap-scene.js +0 -100
  745. package/es/utils/snap-scene.js.map +0 -1
  746. package/es/utils/snap.js +0 -238
  747. package/es/utils/snap.js.map +0 -1
  748. package/es/utils/threeCSG.es6.js +0 -499
  749. package/es/utils/threeCSG.es6.js.map +0 -1
  750. package/es/version.js +0 -2
  751. package/es/version.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"viewer2d.js","names":["React","useEffect","useRef","useState","PropTypes","ReactSVGPanZoom","TOOL_AUTO","TOOL_NONE","TOOL_PAN","TOOL_ZOOM_IN","TOOL_ZOOM_OUT","zoom","constants","DECIMAL_PLACES_2","LINE_THICKNESS","MIN_ANGLE_DISALLOW_DRAW_WALL","MODE_ELEVATION_VIEW","MODE_IDLE","UNIT_ANGLE","State","SharedStyle","RulerX","RulerY","GeometryUtils","FormNumberInput","convert","Map","formatNumber","isEmpty","pinFlag","sFlag","sPoint","endPoint","current_sel_obj_id","allItemRect","allItemSnap","allLines","allLineRects","allLineSnap","allRect","holeRect","allArea","mode2Tool","mode","MODE_2D_PAN","MODE_2D_ZOOM_IN","MODE_2D_ZOOM_OUT","mode2PointerEvents","MODE_DRAWING_LINE","MODE_DRAWING_HOLE","MODE_DRAWING_ITEM","MODE_DRAGGING_HOLE","MODE_DRAGGING_ITEM","MODE_DRAGGING_LINE","MODE_DRAGGING_VERTEX","pointerEvents","mode2Cursor","cursor","MODE_ROTATING_ITEM","MODE_WAITING_DRAWING_LINE","mode2DetectAutopan","extractElementData","node","attributes","getNamedItem","tagName","parentNode","length","parseFloat","value","part","undefined","layer","prototype","selected","id","direct","Viewer2D","_ref","_ref2","state","width","height","setToolbar","replaceCabinet","viewer2DActions","linesActions","holesActions","verticesActions","itemsActions","areaActions","projectActions","catalog","_useState","_useState2","_slicedToArray","rulerEdit","setRulerEdit","_useState3","_useState4","rulerEditID","setRulerEditID","Viewer","viewer2D","scene","_useState5","_useState6","relatedLines","setRelatedLines","_useState7","_useState8","drawStart","setdrawStart","selectedLayer","layers","get","vertices","bottomX","bottomY","topX","topY","forEach","vertex","x","y","moveX","moveY","current","setPointOnViewerCenter","layerID","wall_thickness","getIn","mapCursorPosition","_ref3","prepareSnap","getAllLines","buildRectFromLines","getAllItems","getAllItemSnap","getAllLineSnap","cur","others","concat","validateSnaps","getAllArea","updateRulerDistAttribute","elementData","newVal","oldVal","thisItem","toJS","oldX","oldY","oldRotRad","rotation","Math","PI","rotRad","delta","newX","cos","newY","sin","updateDraggingItemChanged","updateangleChangeAttribute","verArr","split","oldAngle","newAngle","cenId","verId","x0","y0","x1","y1","beginDraggingVertex","snapMask","updateDraggingVertex","endDraggingVertex","updateRulerAttribute","selectedLine","v_0","v_1","_GeometryUtils$orderV","orderVertices","_GeometryUtils$orderV2","v_a","v_b","v_b_new","extendLine","attributesData","lineLength","_objectSpread","vertexTwo","merge","vertexOne","attributesFormData","setLinesAttributes","lineID","updateTwoHoleRulerAttribute","elementIds","updateLeftHoleRulerAttribute","updateRightHoleRulerAttribute","beginDraggingHole","updateDraggingHoleChanged","endDraggingHole","updateHoleRulerAttribute","updateDraggingHoleRulerChanged","getRelatedLines","tlines","drawingLine","lines","_loop","i","_loop2","j","some","line","push","getEndPoint","selLineID","first","isEndDrag","draggingLine","dragVertexId","vtx","vty","stepUnit","endDrag","absAngle","lineAngle","angleBetweenTwoLines","abs","tmpRelated","tmpAngle","flag","rest","originVerId","findIndex","vertice","ox","oy","res","rotatePointAroundPoint","result","snapAngleByUnit","getProperties","item","property","_item$properties","properties","unit","from","to","point","getDistant","curItemInfo","center_h","center_x1","center_y1","pointArray","rectCenterPoint","centerpoint","Array","isArray","_centerpoint","pt","angle","rectLine","linePassingThroughTwoPoints","minDist","linerect","rect","p0","clone_point","p1","lineFn","ip","twoLinesIntersection","a","b","c","segLen","pointsDistance","distToCenter","baseDist","candidate","min","getCalcRectFromItem","pos","size","_item$pos","w","h","mh","mx","my","m2x","m2y","m3x","m3y","m1x","m1y","calcDistanceArray","items","val","depth","_toConsumableArray","storeDistArray","onMouseMove","viewerEvent","_mapCursorPosition","updateMouseCoord","differs","selectAll","updateDrawingLine","updateDrawingHole","counterTop","uri","updateDrawingItem","_GeometryUtils$calcSn","calcSnap","nx","ny","rot","layoutpos","is_corner","_GeometryUtils$getAll","getAllHoleRect","isSect","snap","interSect","validInterSect","isrectSect","updateRotatingItemChanged","itemInfo","name","includes","updateDraggingHole","updateDraggingLine","_GeometryUtils$calcSn2","_GeometryUtils$getAll2","updateRotatingItem","originalEvent","stopPropagation","onMouseDown","event","_mapCursorPosition2","sCount","areas","holes","nativeEvent","which","rollback","target","beginDraggingLine","beginRotatingItem","selectItem","beginDraggingItem","onMouseUp","bbox","getBoundingClientRect","_mapCursorPosition3","selectArea","remove","setMode","selectLine","selectHole","currentObject","duplicateSelected","unselectAll","_length1","rulerUnit","distanceText1","numberInput1","createElement","style","position","left","top","zIndex","textAlign","paddingRight","fontSize","lineHeight","fontWeight","onChange","_length","_unit","precision","numberInput","_lengthTwoHoleRuler","distanceTextTwoHoleRuler","numberInputTwoHoleRuler","padding","_lengthLeftHoleRuler","distanceTextLeftHoleRuler","toFixed","numberInputLeftHoleRuler","_lengthRulerHole","distanceTextRulerHole","numberInputRulerHole","_lengthRightHoleRuler","distanceTextRightHoleRuler","numberInputRightHoleRuler","_length2","numberInput2","beginDrawingLine","endInfor","endDrawingLine","endDrawingHole","endDrawingItem","endDraggingLine","updateMolding","endRotatingItem","onChangeValue","_zoomValue","parseInt","ZOOM_VARIABLE","Number","isNaN","startX","startY","lastAction","_rulerEdit","document","getElementById","_rect","e","SVGWidth","viewerWidth","f","d","SVGHeight","viewerHeight","updateZoomScale","updateCameraView","onChangeTool","tool","selectToolEdit","selectToolPan","selectToolZoomIn","selectToolZoomOut","onZoom","_state$get$toJS","rulerSize","rulerUnitPixelSize","rulerBgColor","PRIMARY_COLOR","main","rulerFnColor","COLORS","white","rulerMkColor","SECONDARY_COLOR","sceneWidth","sceneHeight","sceneZoom","rulerXElements","ceil","rulerYElements","margin","display","gridRowGap","gridColumnGap","gridTemplateColumns","gridTemplateRows","gridColumn","gridRow","backgroundColor","overflow","unitPixelSize","mouseX","mouse","zeroLeftPosition","fontColor","markerColor","positiveUnitsNumber","negativeUnitsNumber","mouseY","zeroTopPosition","detectAutoPan","miniaturePosition","toolbarPosition","detectPinchGesture","disableDoubleClickZoomWithToolAuto","ref","patternUnits","fill","stroke","strokeWidth","Object","assign","propTypes","object","isRequired","number","contextTypes"],"sources":["../../../src/components/viewer2d/viewer2d.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n ReactSVGPanZoom,\r\n TOOL_AUTO,\r\n TOOL_NONE,\r\n TOOL_PAN,\r\n TOOL_ZOOM_IN,\r\n TOOL_ZOOM_OUT,\r\n zoom\r\n} from 'react-svg-pan-zoom';\r\nimport * as constants from '../../constants';\r\nimport {\r\n DECIMAL_PLACES_2,\r\n LINE_THICKNESS,\r\n MIN_ANGLE_DISALLOW_DRAW_WALL,\r\n MODE_ELEVATION_VIEW,\r\n MODE_IDLE,\r\n UNIT_ANGLE\r\n} from '../../constants';\r\nimport State from './state';\r\nimport * as SharedStyle from '../../shared-style';\r\nimport { RulerX, RulerY } from './export';\r\nimport { GeometryUtils } from '../../utils/export';\r\nimport FormNumberInput from '../style/form-number-input';\r\nimport convert from 'convert-units';\r\nimport { Map } from 'immutable';\r\nimport { formatNumber } from '../../../src/utils/math';\r\nimport { isEmpty } from '../../utils/helper';\r\n\r\n// variables\r\nlet pinFlag = false;\r\nlet sFlag = false; //for all object move\r\nlet sPoint = {}; //for all object move\r\nlet endPoint = {};\r\nlet current_sel_obj_id = null;\r\nlet allItemRect;\r\nlet allItemSnap;\r\nlet allLines;\r\nlet allLineRects;\r\nlet allLineSnap;\r\nlet allRect;\r\nlet holeRect;\r\nlet allArea;\r\n\r\n// /////////\r\nfunction mode2Tool(mode) {\r\n if (pinFlag) {\r\n return TOOL_NONE;\r\n }\r\n switch (mode) {\r\n case constants.MODE_2D_PAN:\r\n return TOOL_PAN;\r\n case constants.MODE_2D_ZOOM_IN:\r\n return TOOL_ZOOM_IN;\r\n case constants.MODE_2D_ZOOM_OUT:\r\n return TOOL_ZOOM_OUT;\r\n case constants.MODE_IDLE:\r\n return TOOL_AUTO;\r\n default:\r\n return TOOL_NONE;\r\n }\r\n}\r\n\r\nfunction mode2PointerEvents(mode) {\r\n switch (mode) {\r\n case constants.MODE_DRAWING_LINE:\r\n case constants.MODE_DRAWING_HOLE:\r\n case constants.MODE_DRAWING_ITEM:\r\n case constants.MODE_DRAGGING_HOLE:\r\n case constants.MODE_DRAGGING_ITEM:\r\n case constants.MODE_DRAGGING_LINE:\r\n case constants.MODE_DRAGGING_VERTEX:\r\n return { pointerEvents: 'none' };\r\n\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction mode2Cursor(mode) {\r\n switch (mode) {\r\n case constants.MODE_DRAGGING_HOLE:\r\n case constants.MODE_DRAGGING_LINE:\r\n case constants.MODE_DRAGGING_VERTEX:\r\n case constants.MODE_DRAGGING_ITEM:\r\n return { cursor: 'move' };\r\n\r\n case constants.MODE_ROTATING_ITEM:\r\n return { cursor: 'ew-resize' };\r\n\r\n case constants.MODE_WAITING_DRAWING_LINE:\r\n case constants.MODE_DRAWING_LINE:\r\n return { cursor: 'crosshair' };\r\n default:\r\n return { cursor: 'default' };\r\n }\r\n}\r\n\r\nfunction mode2DetectAutopan(mode) {\r\n switch (mode) {\r\n case constants.MODE_DRAWING_LINE:\r\n case constants.MODE_DRAGGING_LINE:\r\n case constants.MODE_DRAGGING_VERTEX:\r\n case constants.MODE_DRAGGING_HOLE:\r\n case constants.MODE_DRAGGING_ITEM:\r\n case constants.MODE_DRAWING_HOLE:\r\n case constants.MODE_DRAWING_ITEM:\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nfunction extractElementData(node) {\r\n while (\r\n !node.attributes.getNamedItem('data-element-root') &&\r\n node.tagName !== 'svg'\r\n ) {\r\n node = node.parentNode;\r\n }\r\n if (node.tagName === 'svg') return null;\r\n\r\n return {\r\n length: node.attributes.getNamedItem('data-length')\r\n ? parseFloat(node.attributes.getNamedItem('data-length').value)\r\n : 0,\r\n part: node.attributes.getNamedItem('data-part')\r\n ? node.attributes.getNamedItem('data-part').value\r\n : undefined,\r\n layer: node.attributes.getNamedItem('data-layer').value,\r\n prototype: node.attributes.getNamedItem('data-prototype').value,\r\n selected: node.attributes.getNamedItem('data-selected').value === 'true',\r\n id: node.attributes.getNamedItem('data-id').value,\r\n direct: node.attributes.getNamedItem('data-direct')\r\n ? node.attributes.getNamedItem('data-direct').value\r\n : 0\r\n };\r\n}\r\n\r\nexport default function Viewer2D(\r\n { state, width, height, setToolbar, replaceCabinet },\r\n {\r\n viewer2DActions,\r\n linesActions,\r\n holesActions,\r\n verticesActions,\r\n itemsActions,\r\n areaActions,\r\n projectActions,\r\n catalog\r\n }\r\n) {\r\n const [rulerEdit, setRulerEdit] = useState(null);\r\n const [rulerEditID, setRulerEditID] = useState(null);\r\n const Viewer = useRef(null);\r\n\r\n let { viewer2D, mode, scene } = state;\r\n\r\n // let relatedLines = [];\r\n const [relatedLines, setRelatedLines] = useState([]);\r\n const [drawStart, setdrawStart] = useState(false);\r\n\r\n useEffect(() => {\r\n // move viewer point to center\r\n let selectedLayer = state.scene.layers.get(state.scene.selectedLayer);\r\n\r\n if (!selectedLayer) {\r\n return;\r\n }\r\n\r\n const vertices = selectedLayer.vertices;\r\n\r\n if (vertices.isEmpty()) {\r\n return;\r\n }\r\n\r\n let bottomX = 0,\r\n bottomY = 100000,\r\n topX = 100000,\r\n topY = 0;\r\n\r\n vertices.forEach(vertex => {\r\n if (bottomX < vertex.x) bottomX = vertex.x;\r\n if (bottomY > vertex.y) bottomY = vertex.y;\r\n if (topX > vertex.x) topX = vertex.x;\r\n if (topY < vertex.y) topY = vertex.y;\r\n });\r\n\r\n let moveX = topX + (bottomX - topX) / 2;\r\n let moveY = 2000 - (bottomY + (topY - bottomY) / 2);\r\n\r\n Viewer.current.setPointOnViewerCenter(moveX, moveY, viewer2D.get('a'));\r\n }, []);\r\n\r\n let layerID = scene.selectedLayer;\r\n let wall_thickness = LINE_THICKNESS / 2;\r\n const layer = scene.getIn(['layers', layerID]);\r\n\r\n let mapCursorPosition = ({ x, y }) => {\r\n return { x, y: -y + scene.height };\r\n };\r\n // let pinBackColor = pinFlag ? \"#4488ff\" : \"black\";\r\n // let topRightImg = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? \"/assets/img/svg/topbar/edit_inactive.svg\" : \"/assets/img/svg/topbar/edit_active.svg\";\r\n // let topBtnAction = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? () => linesActions.selectToolDrawingLine(\"wall\") : () => projectActions.setMode(MODE_IDLE);\r\n\r\n let prepareSnap = () => {\r\n let layerID = scene.selectedLayer;\r\n let layer = scene.layers.get(layerID);\r\n\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 allArea = GeometryUtils.getAllArea(layer);\r\n };\r\n\r\n let updateRulerDistAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n let oldVal = elementData.length;\r\n let direct = elementData.direct;\r\n\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'items', elementData.id])\r\n .toJS();\r\n\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n let oldRotRad = (thisItem.rotation / 180) * Math.PI;\r\n\r\n let rotRad = oldRotRad + (direct / 180) * Math.PI;\r\n let delta = oldVal - newVal;\r\n\r\n let newX = oldX + delta * Math.cos(rotRad);\r\n let newY = oldY + delta * Math.sin(rotRad);\r\n\r\n itemsActions.updateDraggingItemChanged(\r\n newX,\r\n newY,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n\r\n setRulerEdit(null);\r\n };\r\n\r\n let updateangleChangeAttribute = (elementData, value) => {\r\n let verArr = elementData.id.split(',');\r\n let oldAngle = elementData.length;\r\n let newAngle = value.getIn(['_length']);\r\n let cenId = verArr[0];\r\n let verId = verArr[1];\r\n let x0 = state.scene.getIn(['layers', layerID, 'vertices', verArr[0], 'x']);\r\n let y0 = state.scene.getIn(['layers', layerID, 'vertices', verArr[0], 'y']);\r\n let x1 = state.scene.getIn(['layers', layerID, 'vertices', verArr[1], 'x']);\r\n let y1 = state.scene.getIn(['layers', layerID, 'vertices', verArr[1], 'y']);\r\n let x, y, delta;\r\n\r\n delta = newAngle - oldAngle;\r\n\r\n if (verArr[2] === 'true') {\r\n delta = -delta;\r\n }\r\n\r\n x =\r\n (x1 - x0) * Math.cos((delta * Math.PI) / 180) -\r\n (y1 - y0) * Math.sin((delta * Math.PI) / 180) +\r\n x0;\r\n y =\r\n (x1 - x0) * Math.sin((delta * Math.PI) / 180) +\r\n (y1 - y0) * Math.cos((delta * Math.PI) / 180) +\r\n y0;\r\n\r\n setRulerEdit(null);\r\n verticesActions.beginDraggingVertex(\r\n elementData.layer,\r\n verArr[1],\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n verticesActions.updateDraggingVertex(x, y, state.snapMask);\r\n verticesActions.endDraggingVertex(x, y, state.snapMask);\r\n };\r\n\r\n let updateRulerAttribute = (elementData, value) => {\r\n const selectedLine = scene\r\n .getIn(['layers', elementData.layer, 'lines', elementData.id])\r\n .toJS();\r\n\r\n let v_0 = scene.getIn([\r\n 'layers',\r\n elementData.layer,\r\n 'vertices',\r\n selectedLine.vertices[0]\r\n ]);\r\n\r\n let v_1 = scene.getIn([\r\n 'layers',\r\n elementData.layer,\r\n 'vertices',\r\n selectedLine.vertices[1]\r\n ]);\r\n\r\n let [v_a, v_b] = GeometryUtils.orderVertices([v_0, v_1]);\r\n let v_b_new = GeometryUtils.extendLine(\r\n v_a.x,\r\n v_a.y,\r\n v_b.x,\r\n v_b.y,\r\n value.get('length'),\r\n 2\r\n );\r\n\r\n // Blocked function that as wall changed, opposite wall should changed together.\r\n // let layer = scene.getIn(['layers', elementData.layer]);\r\n // let allLines = layer.lines.toArray()\r\n // let relatedLine = allLines.filter(line => { return line.vertices.toArray().includes(v_b.id) && line.id != selectedLine.id })[0];\r\n // let relatedVertexID = relatedLine && (relatedLine.vertices.toArray()[0] == v_b.id ? relatedLine.vertices.toArray()[1] : relatedLine.vertices.toArray()[0]);\r\n // let v_d = relatedVertexID && layer.getIn(['vertices', relatedVertexID]);\r\n // let delta = {\r\n // x : v_b_new.x - v_b.x,\r\n // y : v_b_new.y - v_b.y\r\n // };\r\n // let newPosition = {\r\n // x : v_d.x + delta.x,\r\n // y : v_d.y + delta.y\r\n // }\r\n\r\n var attributesData = {\r\n // (v_0 === v_a ? 'vertexTwo' : 'vertexOne') : v_b.merge(v_b_new)),\r\n lineLength: value\r\n };\r\n if (v_0 === v_a) {\r\n attributesData = {\r\n ...attributesData,\r\n vertexTwo: v_b.merge(v_b_new),\r\n vertexOne: v_a\r\n };\r\n } else {\r\n attributesData = {\r\n ...attributesData,\r\n vertexOne: v_b.merge(v_b_new),\r\n vertexTwo: v_a\r\n };\r\n }\r\n let attributesFormData = new Map({\r\n ...attributesData\r\n });\r\n setRulerEdit(null);\r\n projectActions.setLinesAttributes(attributesFormData, true, {\r\n layerID: elementData.layer,\r\n lineID: elementData.id\r\n });\r\n\r\n // Blocked function that as wall changed, opposite wall should changed together.\r\n // verticesActions.beginDraggingVertex(elementData.layer, relatedVertexID, newPosition.x, newPosition.y, state.snapMask);\r\n // verticesActions.updateDraggingVertex(newPosition.x, newPosition.y, state.snapMask);\r\n // verticesActions.endDraggingVertex(newPosition.x, newPosition.y, state.snapMask);\r\n };\r\n\r\n let updateTwoHoleRulerAttribute = (elementData, value) => {\r\n let elementIds = elementData.id.split(',');\r\n elementData.id = elementIds[1];\r\n elementData.length /= 2;\r\n updateLeftHoleRulerAttribute(elementData, value);\r\n elementData.id = elementIds[0];\r\n updateRightHoleRulerAttribute(elementData, value);\r\n };\r\n\r\n let updateLeftHoleRulerAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n let oldVal = elementData.length;\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'holes', elementData.id])\r\n .toJS();\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n let oldRotRad = thisItem.rotation;\r\n let delta = oldVal - newVal;\r\n let newX = oldX - delta * Math.cos(oldRotRad);\r\n let newY = oldY - delta * Math.sin(oldRotRad);\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n newX,\r\n newY\r\n );\r\n holesActions.updateDraggingHoleChanged(\r\n newX,\r\n newY,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n holesActions.endDraggingHole(newX, newY);\r\n setRulerEdit(null);\r\n };\r\n\r\n let updateHoleRulerAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'holes', elementData.id])\r\n .toJS();\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n oldX,\r\n oldY\r\n );\r\n holesActions.updateDraggingHoleRulerChanged(\r\n newVal,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n holesActions.endDraggingHole(oldX, oldY);\r\n setRulerEdit(null);\r\n };\r\n\r\n let updateRightHoleRulerAttribute = (elementData, value) => {\r\n let newVal = value.get('length');\r\n let oldVal = elementData.length;\r\n const thisItem = scene\r\n .getIn(['layers', elementData.layer, 'holes', elementData.id])\r\n .toJS();\r\n let oldX = thisItem.x;\r\n let oldY = thisItem.y;\r\n let oldRotRad = thisItem.rotation;\r\n let delta = oldVal - newVal;\r\n let newX = oldX + delta * Math.cos(oldRotRad);\r\n let newY = oldY + delta * Math.sin(oldRotRad);\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n newX,\r\n newY\r\n );\r\n holesActions.updateDraggingHoleChanged(\r\n newX,\r\n newY,\r\n elementData.layer,\r\n elementData.id\r\n );\r\n holesActions.endDraggingHole(newX, newY);\r\n setRulerEdit(null);\r\n };\r\n\r\n const getRelatedLines = (tlines, drawingLine, vertices, lines) => {\r\n // if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {\r\n for (let i = 0; i < drawingLine.vertices.length; i++) {\r\n let vertex = vertices[drawingLine.vertices[i]];\r\n for (let j = 0; j < vertex.lines.length; j++) {\r\n if (vertex.lines[j] !== drawingLine.id) {\r\n if (!tlines.some(line => line.id === lines[vertex.lines[j]].id)) {\r\n tlines.push(lines[vertex.lines[j]]);\r\n }\r\n }\r\n }\r\n }\r\n // }\r\n };\r\n\r\n const getEndPoint = (vertices, x, y, mode) => {\r\n let selLineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n if (isEmpty(selLineID)) {\r\n return {\r\n isEndDrag: true,\r\n x: x,\r\n y: y\r\n };\r\n }\r\n let draggingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', selLineID])\r\n .toJS();\r\n let allLines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();\r\n let dragVertexId = state.getIn(['draggingSupport', 'vertexID']);\r\n dragVertexId = !isEmpty(dragVertexId)\r\n ? dragVertexId\r\n : draggingLine.vertices[1];\r\n let vtx, vty;\r\n let stepUnit = false;\r\n vtx = vertices[dragVertexId].x;\r\n vty = vertices[dragVertexId].y;\r\n if (!vertices[dragVertexId].lines.some(line => line !== draggingLine.id)) {\r\n stepUnit = true;\r\n }\r\n let endDrag = [];\r\n if (!isEmpty(relatedLines) && mode !== 'DRAGGING_LINE') {\r\n vertices[dragVertexId].x = x;\r\n vertices[dragVertexId].y = y;\r\n }\r\n let absAngle, lineAngle;\r\n if (draggingLine.vertices[0] !== draggingLine.vertices[1]) {\r\n for (let i = 0; i < relatedLines.length; i++) {\r\n let line = relatedLines[i];\r\n lineAngle = GeometryUtils.angleBetweenTwoLines(\r\n line,\r\n draggingLine,\r\n vertices\r\n );\r\n absAngle = Math.abs(lineAngle);\r\n let tmpRelated = [];\r\n GeometryUtils.getRelatedLines(\r\n tmpRelated,\r\n line,\r\n vertices,\r\n allLines,\r\n draggingLine.id\r\n );\r\n for (let j = 0; j < tmpRelated.length; j++) {\r\n let tmpAngle = Math.abs(\r\n GeometryUtils.angleBetweenTwoLines(tmpRelated[j], line, vertices)\r\n );\r\n if (\r\n tmpAngle < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n tmpAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n endDrag.push(false);\r\n } else endDrag.push(true);\r\n }\r\n if (\r\n absAngle < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n absAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n endDrag.push(false);\r\n } else endDrag.push(true);\r\n }\r\n }\r\n\r\n if (!endDrag.some(flag => flag === false)) {\r\n vtx = x;\r\n vty = y;\r\n } else {\r\n let rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absAngle;\r\n // the origin point of rotation(snapping)\r\n let originVerId = draggingLine.vertices.findIndex(\r\n vertice => vertice !== dragVertexId\r\n );\r\n originVerId =\r\n originVerId < 0\r\n ? draggingLine.vertices[0]\r\n : draggingLine.vertices[originVerId];\r\n if (stepUnit) {\r\n let ox = vertices[originVerId].x;\r\n let oy = vertices[originVerId].y;\r\n // determine the direction of rotation.\r\n rest = lineAngle > 0 ? -rest : rest;\r\n // rotate the current point to last point around the first point of drawing line.\r\n let res = GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);\r\n vtx = res.x;\r\n vty = res.y;\r\n }\r\n }\r\n\r\n // angle snapping as a value of UNIT_ANGLE\r\n if (\r\n !endDrag.some(flag => flag === false) &&\r\n !isEmpty(absAngle) &&\r\n absAngle % UNIT_ANGLE !== 0 &&\r\n stepUnit\r\n ) {\r\n let result = GeometryUtils.snapAngleByUnit(\r\n lineAngle,\r\n vertices,\r\n draggingLine,\r\n vtx,\r\n vty,\r\n dragVertexId\r\n );\r\n vtx = result.x;\r\n vty = result.y;\r\n }\r\n\r\n let result = {\r\n isEndDrag: endDrag,\r\n x: vtx,\r\n y: vty\r\n };\r\n return result;\r\n };\r\n\r\n const getProperties = (item, property) => {\r\n if (!item?.properties?.getIn) return 0;\r\n const length = item.properties.getIn([property, '_length']);\r\n const unit = item.properties.getIn([property, '_unit']);\r\n return length && unit ? convert(length).from(unit).to('cm') : 0;\r\n };\r\n\r\n const point = (x, y) => ({ x, y });\r\n\r\n const getDistant = (x, y, rotRad, curItemInfo, allRect) => {\r\n const center_h = (3 * height) / 8;\r\n const center_x1 = x - center_h * Math.sin(rotRad);\r\n const center_y1 = y + center_h * Math.cos(rotRad);\r\n\r\n const pointArray = [];\r\n\r\n curItemInfo.rectCenterPoint.forEach(centerpoint => {\r\n if (!Array.isArray(centerpoint) || centerpoint.length < 2) return;\r\n\r\n const [pt, angle] = centerpoint;\r\n if (!pt) return;\r\n\r\n // line through centerpoint and reference center\r\n const rectLine =\r\n angle === 180 || angle === 0\r\n ? GeometryUtils.linePassingThroughTwoPoints(\r\n pt.x,\r\n pt.y,\r\n center_x1,\r\n center_y1\r\n )\r\n : GeometryUtils.linePassingThroughTwoPoints(pt.x, pt.y, x, y);\r\n\r\n if (!rectLine) return;\r\n\r\n let minDist;\r\n allRect.forEach(linerect => {\r\n if (!linerect?.rect || linerect.rect.length < 4) return;\r\n\r\n const p0 = GeometryUtils.clone_point(linerect.rect[2]);\r\n const p1 = GeometryUtils.clone_point(linerect.rect[3]);\r\n if (!p0 || !p1 || (p0.x === p1.x && p0.y === p1.y)) return;\r\n\r\n const lineFn = GeometryUtils.linePassingThroughTwoPoints(\r\n p0.x,\r\n p0.y,\r\n p1.x,\r\n p1.y\r\n );\r\n if (!lineFn) return;\r\n\r\n const ip = GeometryUtils.twoLinesIntersection(\r\n lineFn.a,\r\n lineFn.b,\r\n lineFn.c,\r\n rectLine.a,\r\n rectLine.b,\r\n rectLine.c\r\n );\r\n if (!ip) return;\r\n\r\n // intersection must lie within line segment\r\n const segLen = GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y);\r\n if (\r\n segLen <= GeometryUtils.pointsDistance(p0.x, p0.y, ip.x, ip.y) ||\r\n segLen <= GeometryUtils.pointsDistance(p1.x, p1.y, ip.x, ip.y)\r\n )\r\n return;\r\n\r\n // ensure intersection is farther than pt→center\r\n const distToCenter = GeometryUtils.pointsDistance(ip.x, ip.y, x, y);\r\n const baseDist = GeometryUtils.pointsDistance(pt.x, pt.y, ip.x, ip.y);\r\n if (distToCenter <= baseDist) return;\r\n\r\n const candidate = baseDist;\r\n minDist =\r\n minDist !== undefined ? Math.min(minDist, candidate) : candidate;\r\n });\r\n\r\n pointArray.push([minDist ?? 0, angle]);\r\n });\r\n\r\n return pointArray;\r\n };\r\n\r\n const getCalcRectFromItem = item => {\r\n if (!item?.pos || !item?.size) return { rectCenterPoint: [] };\r\n\r\n const { x, y } = item.pos;\r\n const w = item.size.width / 2;\r\n const h = item.size.height / 2;\r\n const rotRad = item.rotRad;\r\n const mh = (3 * h) / 4;\r\n\r\n const mx = x - w * Math.cos(rotRad) - mh * Math.sin(rotRad);\r\n const my = y - w * Math.sin(rotRad) + mh * Math.cos(rotRad);\r\n const m2x = x + w * Math.cos(rotRad) - mh * Math.sin(rotRad);\r\n const m2y = y + w * Math.sin(rotRad) + mh * Math.cos(rotRad);\r\n const m3x = x - h * Math.sin(rotRad);\r\n const m3y = y + h * Math.cos(rotRad);\r\n const m1x = x + h * Math.sin(rotRad);\r\n const m1y = y - h * Math.cos(rotRad);\r\n\r\n return {\r\n rectCenterPoint: [\r\n [point(mx, my), 180],\r\n [point(m1x, m1y), -90],\r\n [point(m2x, m2y), 0],\r\n [point(m3x, m3y), 90]\r\n ]\r\n };\r\n };\r\n\r\n const calcDistanceArray = () => {\r\n const items = layer?.get('items');\r\n if (!items) return;\r\n\r\n items.forEach(item => {\r\n if (item?.selected === true) {\r\n const { x, y, rotation, id } = item;\r\n if (x == null || y == null) return;\r\n\r\n const val = {\r\n pos: { x, y },\r\n rotRad: (rotation / 180) * Math.PI\r\n };\r\n\r\n const width = getProperties(item, 'width');\r\n const depth = getProperties(item, 'depth');\r\n val.size = { width, height: depth };\r\n\r\n // collect geometry\r\n const allLines = GeometryUtils.getAllLines(layer) || [];\r\n const allLineRects =\r\n GeometryUtils.buildRectFromLines(layer, allLines) || [];\r\n const allItemRect = GeometryUtils.getAllItems(\r\n scene,\r\n catalog,\r\n allLineRects\r\n ) || { others: [] };\r\n const allRect = [...(allItemRect.others || []), ...allLineRects];\r\n\r\n // current item\r\n const curItemInfo = getCalcRectFromItem(val);\r\n const pointArray = getDistant(x, y, val.rotRad, curItemInfo, allRect);\r\n\r\n // store results safely\r\n if (Array.isArray(pointArray)) {\r\n itemsActions.storeDistArray(layerID, id, pointArray);\r\n }\r\n }\r\n });\r\n };\r\n\r\n let onMouseMove = viewerEvent => {\r\n //workaround that allow imageful component to work\r\n\r\n // let evt = new Event('mousemove-planner-event');\r\n // evt.viewerEvent = viewerEvent;\r\n // document.dispatchEvent(evt);\r\n let { x, y } = mapCursorPosition(viewerEvent);\r\n projectActions.updateMouseCoord({ x, y });\r\n if (sFlag) {\r\n let differs = { x: x - sPoint.x, y: y - sPoint.y };\r\n projectActions.selectAll(differs);\r\n } else\r\n switch (mode) {\r\n case constants.MODE_DRAWING_LINE:\r\n // check whether the drawing line is started.\r\n if (drawStart || state.getIn(['scene', 'setLineAttributes'])) {\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n\r\n let vertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n let lines = state\r\n .getIn(['scene', 'layers', layerID, 'lines'])\r\n .toJS();\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n let tlines = [];\r\n\r\n setdrawStart(false);\r\n // get the lines that have same points with drawing line.\r\n getRelatedLines(tlines, drawingLine, vertices, lines);\r\n setRelatedLines(tlines);\r\n linesActions.updateDrawingLine(x, y, tlines, state.snapMask);\r\n } else {\r\n linesActions.updateDrawingLine(x, y, relatedLines, state.snapMask);\r\n }\r\n // Blocked 90 degree snap.\r\n // let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];\r\n // let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);\r\n // let dx = Math.abs(x - prevVertex.x);\r\n // let dy = Math.abs(y - prevVertex.y);\r\n // if (dx > dy) y = prevVertex.y\r\n // else x = prevVertex.x;\r\n break;\r\n\r\n case constants.MODE_DRAWING_HOLE:\r\n holesActions.updateDrawingHole(layerID, x, y);\r\n break;\r\n\r\n case constants.MODE_DRAWING_ITEM:\r\n calcDistanceArray();\r\n let layer = scene.layers.get(layerID);\r\n let flag = false;\r\n layer.items.some(item => {\r\n if (item.selected) {\r\n item.counterTop.uri = layer.counterTop.uri;\r\n current_sel_obj_id = item.id;\r\n flag = true;\r\n }\r\n });\r\n if (current_sel_obj_id === null || !flag) {\r\n itemsActions.updateDrawingItem(layerID, x, y);\r\n endPoint.x = x;\r\n endPoint.y = y;\r\n } else {\r\n prepareSnap();\r\n var { nx, ny, rot, rotRad } = GeometryUtils.calcSnap(\r\n allItemRect,\r\n allItemSnap,\r\n allLineRects,\r\n allLineSnap,\r\n allRect,\r\n x,\r\n y,\r\n allArea\r\n );\r\n let val = {\r\n pos: { x, y },\r\n rotRad,\r\n size: allItemRect.cur && allItemRect.cur.size,\r\n layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,\r\n is_corner: allItemRect.cur && allItemRect.cur.is_corner\r\n };\r\n let { isSect, snap } = GeometryUtils.getAllHoleRect(scene, val);\r\n if (!isEmpty(snap) && isSect) {\r\n if (snap.length == 1) val.pos = { x: snap[0].x, y: snap[0].y };\r\n else {\r\n if (\r\n (snap[0].x - x) * (snap[0].x - x) +\r\n (snap[0].y - y) * (snap[0].y - y) <\r\n (snap[1].x - x) * (snap[1].x - x) +\r\n (snap[1].y - y) * (snap[1].y - y)\r\n )\r\n val.pos = { x: snap[0].x, y: snap[0].y };\r\n else val.pos = { x: snap[1].x, y: snap[1].y };\r\n }\r\n let interSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (interSect) {\r\n nx = val.pos.x;\r\n ny = val.pos.y;\r\n }\r\n }\r\n\r\n val.pos = { x: nx, y: ny };\r\n let isrectSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (isrectSect && isSect) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n endPoint.x = nx;\r\n endPoint.y = ny;\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('cabinet'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n endPoint.x = nx;\r\n endPoint.y = ny;\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Hood')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Range')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n endPoint.x = nx;\r\n endPoint.y = ny;\r\n }\r\n }\r\n break;\r\n\r\n case constants.MODE_DRAGGING_HOLE:\r\n holesActions.updateDraggingHole(x, y);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_LINE:\r\n linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_VERTEX:\r\n let vertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n let result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');\r\n verticesActions.updateDraggingVertex(\r\n result.x,\r\n result.y,\r\n state.snapMask\r\n );\r\n break;\r\n\r\n case constants.MODE_DRAGGING_ITEM:\r\n calcDistanceArray();\r\n prepareSnap();\r\n var { nx, ny, rot, rotRad } = GeometryUtils.calcSnap(\r\n allItemRect,\r\n allItemSnap,\r\n allLineRects,\r\n allLineSnap,\r\n allRect,\r\n x,\r\n y,\r\n allArea\r\n );\r\n let val = {\r\n pos: { x, y },\r\n rotRad,\r\n size: allItemRect.cur && allItemRect.cur.size,\r\n layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,\r\n is_corner: allItemRect.cur && allItemRect.cur.is_corner\r\n };\r\n let { isSect, snap } = GeometryUtils.getAllHoleRect(scene, val);\r\n if (!isEmpty(snap) && isSect) {\r\n if (snap.length == 1) val.pos = { x: snap[0].x, y: snap[0].y };\r\n else if (snap.length == 2) {\r\n if (\r\n (snap[0].x - x) * (snap[0].x - x) +\r\n (snap[0].y - y) * (snap[0].y - y) <\r\n (snap[1].x - x) * (snap[1].x - x) +\r\n (snap[1].y - y) * (snap[1].y - y)\r\n )\r\n val.pos = { x: snap[0].x, y: snap[0].y };\r\n else val.pos = { x: snap[1].x, y: snap[1].y };\r\n }\r\n let interSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (interSect) {\r\n nx = val.pos.x;\r\n ny = val.pos.y;\r\n }\r\n }\r\n\r\n val.pos = { x: nx, y: ny };\r\n let isrectSect = GeometryUtils.validInterSect(\r\n allItemRect.others,\r\n val\r\n );\r\n if (isrectSect && isSect) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cabinet'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n }\r\n if (\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Hood')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Range')) ||\r\n (allItemRect.cur &&\r\n allItemRect.cur.itemInfo.name.includes('Cook Top'))\r\n ) {\r\n itemsActions.updateDraggingItemChanged(\r\n nx,\r\n ny,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n itemsActions.updateRotatingItemChanged(\r\n rot,\r\n layerID,\r\n current_sel_obj_id\r\n );\r\n }\r\n break;\r\n\r\n case constants.MODE_ROTATING_ITEM:\r\n itemsActions.updateRotatingItem(x, y);\r\n break;\r\n }\r\n\r\n viewerEvent.originalEvent.stopPropagation();\r\n };\r\n\r\n let onMouseDown = viewerEvent => {\r\n let event = viewerEvent.originalEvent;\r\n //workaround that allow imageful component to work\r\n // let evt = new Event('mousedown-planner-event');\r\n // evt.viewerEvent = viewerEvent;\r\n // document.dispatchEvent(evt);\r\n let { x, y } = mapCursorPosition(viewerEvent);\r\n let layer = state.scene.getIn(['layers', state.scene.selectedLayer]);\r\n let sCount =\r\n layer.selected.areas.size +\r\n layer.selected.holes.size +\r\n layer.selected.items.size +\r\n layer.selected.lines.size;\r\n if (mode === constants.MODE_DRAWING_LINE) {\r\n if (event.nativeEvent.which === 3) {\r\n projectActions.rollback();\r\n event.stopPropagation();\r\n return;\r\n }\r\n }\r\n if (mode === constants.MODE_IDLE) {\r\n let elementData = extractElementData(event.target);\r\n if (!elementData) return;\r\n\r\n if (sCount < 2)\r\n switch (elementData.prototype) {\r\n case 'lines':\r\n if (elementData.selected) {\r\n if (elementData.part === 'remove') break;\r\n else if (elementData.part === 'elevation') break;\r\n linesActions.beginDraggingLine(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n }\r\n break;\r\n case 'vertices':\r\n verticesActions.beginDraggingVertex(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n break;\r\n\r\n case 'items':\r\n setToolbar('');\r\n current_sel_obj_id = elementData.id;\r\n if (elementData.part === 'rotation-anchor')\r\n itemsActions.beginRotatingItem(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y\r\n );\r\n else if (elementData.part === 'remove') break;\r\n else if (elementData.part === 'duplicate') break;\r\n else if (elementData.part === 'warning_edit') break;\r\n else {\r\n // closes the setting dialog\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n\r\n itemsActions.selectItem(elementData.layer, elementData.id);\r\n // projectActions.setMode(constants.MODE_DRAGGING_ITEM);\r\n itemsActions.beginDraggingItem(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y\r\n );\r\n replaceCabinet(false);\r\n }\r\n break;\r\n\r\n case 'holes':\r\n if (elementData.selected)\r\n holesActions.beginDraggingHole(\r\n elementData.layer,\r\n elementData.id,\r\n x,\r\n y\r\n );\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n else {\r\n sPoint.x = x;\r\n sPoint.y = y;\r\n sFlag = true;\r\n }\r\n }\r\n event.stopPropagation();\r\n };\r\n\r\n let onMouseUp = viewerEvent => {\r\n //set move all flag false\r\n sFlag = false;\r\n // //////////////////////\r\n // setRulerEdit(null);\r\n let event = viewerEvent.originalEvent;\r\n let bbox = event.target.getBoundingClientRect();\r\n if (!mode.includes('ING')) {\r\n setToolbar('');\r\n }\r\n // bbox.width = event.target.getBBox().width;\r\n // bbox.height = event.target.getBBox().height;\r\n if (event.target.tagName === 'rect') {\r\n if (event.target.id) {\r\n setRulerEditID(event.target.id);\r\n }\r\n }\r\n setRulerEdit(null);\r\n // let evt = new Event('mouseup-planner-event');\r\n // evt.viewerEvent = viewerEvent;\r\n // document.dispatchEvent(evt);\r\n\r\n let { x, y } = mapCursorPosition(viewerEvent);\r\n\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n let lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();\r\n\r\n switch (mode) {\r\n case constants.MODE_IDLE:\r\n let elementData = extractElementData(event.target);\r\n let selectedLayer = scene.getIn(['layers', layerID]);\r\n switch (elementData ? elementData.prototype : 'none') {\r\n case 'areas':\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n areaActions.selectArea(elementData.layer, elementData.id);\r\n break;\r\n\r\n case 'lines':\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n if (elementData.part === 'remove') {\r\n projectActions.remove();\r\n break;\r\n } else if (elementData.part === 'elevation') {\r\n // handle action when click elevation about selected line\r\n let mode = MODE_ELEVATION_VIEW;\r\n projectActions.setMode(mode);\r\n break;\r\n } else {\r\n let tlines = [];\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', elementData.id])\r\n .toJS();\r\n getRelatedLines(tlines, drawingLine, vertices, lines);\r\n setRelatedLines(tlines);\r\n linesActions.selectLine(elementData.layer, elementData.id);\r\n break;\r\n }\r\n\r\n case 'holes':\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n holesActions.selectHole(elementData.layer, elementData.id);\r\n break;\r\n\r\n case 'items':\r\n if (elementData.part === 'duplicate') {\r\n let currentObject = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'items',\r\n elementData.id\r\n ]);\r\n itemsActions.duplicateSelected(currentObject);\r\n break;\r\n } else if (elementData.part === 'remove') {\r\n projectActions.remove();\r\n break;\r\n } else if (elementData.part === 'warning_edit') {\r\n // closes the setting dialog\r\n // document.getElementById('setting_dialog').style.display = 'none';\r\n\r\n itemsActions.selectItem(elementData.layer, elementData.id);\r\n replaceCabinet(true);\r\n break;\r\n } else {\r\n projectActions.unselectAll();\r\n break;\r\n }\r\n case 'rulerDist':\r\n let _length1 = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceText1 = `${formatNumber(_length1, DECIMAL_PLACES_2)}`;\r\n const numberInput1 = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceText1}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateRulerDistAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInput1);\r\n projectActions.unselectAll();\r\n break;\r\n case 'ruler':\r\n let _length = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(selectedLayer.unit);\r\n const numberInput = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={formatNumber(_length, DECIMAL_PLACES_2)}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(selectedLayer.unit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: selectedLayer.unit\r\n });\r\n updateRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInput);\r\n projectActions.unselectAll();\r\n break;\r\n case 'twoHoleRuler':\r\n let _lengthTwoHoleRuler = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextTwoHoleRuler = `${formatNumber(\r\n _lengthTwoHoleRuler,\r\n DECIMAL_PLACES_2\r\n )}`;\r\n const numberInputTwoHoleRuler = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n padding: 'auto',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextTwoHoleRuler}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value / 2)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value / 2,\r\n _unit: scene.rulerUnit\r\n });\r\n updateTwoHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputTwoHoleRuler);\r\n projectActions.unselectAll();\r\n break;\r\n case 'leftHoleRuler':\r\n let _lengthLeftHoleRuler = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextLeftHoleRuler = `${_lengthLeftHoleRuler.toFixed(\r\n 2\r\n )}`;\r\n const numberInputLeftHoleRuler = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextLeftHoleRuler}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateLeftHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputLeftHoleRuler);\r\n projectActions.unselectAll();\r\n break;\r\n case 'rulerHole':\r\n let _lengthRulerHole = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextRulerHole = `${formatNumber(\r\n _lengthRulerHole,\r\n DECIMAL_PLACES_2\r\n )}`;\r\n const numberInputRulerHole = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextRulerHole}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputRulerHole);\r\n projectActions.unselectAll();\r\n break;\r\n case 'rightHoleRuler':\r\n let _lengthRightHoleRuler = convert(elementData.length)\r\n .from(scene.unit)\r\n .to(scene.rulerUnit);\r\n let distanceTextRightHoleRuler = `${_lengthRightHoleRuler.toFixed(\r\n 2\r\n )}`;\r\n const numberInputRightHoleRuler = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 150,\r\n height: 50,\r\n textAlign: 'center',\r\n paddingRight: 10,\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: 600\r\n }}\r\n value={distanceTextRightHoleRuler}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateRightHoleRulerAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInputRightHoleRuler);\r\n projectActions.unselectAll();\r\n break;\r\n case 'angleChange':\r\n let _length2 = elementData.length;\r\n const numberInput2 = (\r\n <div\r\n id=\"ruler_numberInput\"\r\n style={{\r\n position: 'absolute',\r\n left: bbox.left - (150 - bbox.width) / 2,\r\n top: bbox.top - (50 - bbox.height) / 2,\r\n zIndex: 1000\r\n }}\r\n >\r\n <FormNumberInput\r\n style={{\r\n width: 50,\r\n height: 50\r\n }}\r\n value={_length2}\r\n onChange={event => {\r\n const value = new Map({\r\n length: convert(event.target.value)\r\n .from(scene.rulerUnit)\r\n .to(scene.unit),\r\n _length: event.target.value,\r\n _unit: scene.rulerUnit\r\n });\r\n updateangleChangeAttribute(elementData, value);\r\n }}\r\n precision={2}\r\n />\r\n </div>\r\n );\r\n setRulerEdit(numberInput2);\r\n projectActions.unselectAll();\r\n break;\r\n case 'none':\r\n projectActions.unselectAll();\r\n break;\r\n }\r\n break;\r\n\r\n case constants.MODE_WAITING_DRAWING_LINE:\r\n setdrawStart(true);\r\n linesActions.beginDrawingLine(layerID, x, y, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAWING_LINE:\r\n // Blocked 90 degree snap.\r\n // let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];\r\n // let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);\r\n // let dx = Math.abs(x - prevVertex.x);\r\n // let dy = Math.abs(y - prevVertex.y);\r\n // if (dx > dy) y = prevVertex.y\r\n // else x = prevVertex.x;\r\n setdrawStart(true);\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n // get the lines that have same points with drawing line.\r\n let tlines = [];\r\n getRelatedLines(tlines, drawingLine, vertices, lines);\r\n setRelatedLines(tlines);\r\n let endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');\r\n linesActions.endDrawingLine(\r\n endInfor.x,\r\n endInfor.y,\r\n tlines,\r\n state.snapMask\r\n );\r\n linesActions.beginDrawingLine(\r\n layerID,\r\n endInfor.x,\r\n endInfor.y,\r\n state.snapMask\r\n );\r\n break;\r\n\r\n case constants.MODE_DRAWING_HOLE:\r\n holesActions.endDrawingHole(layerID, x, y);\r\n break;\r\n\r\n case constants.MODE_DRAWING_ITEM:\r\n itemsActions.endDrawingItem(layerID, endPoint.x, endPoint.y);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_LINE:\r\n linesActions.endDraggingLine(x, y, relatedLines, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_VERTEX:\r\n let result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');\r\n verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_ITEM:\r\n itemsActions.updateMolding();\r\n projectActions.setMode(MODE_IDLE);\r\n break;\r\n\r\n case constants.MODE_DRAGGING_HOLE:\r\n holesActions.endDraggingHole(x, y);\r\n break;\r\n\r\n case constants.MODE_ROTATING_ITEM:\r\n itemsActions.endRotatingItem(x, y);\r\n break;\r\n }\r\n\r\n event.stopPropagation();\r\n };\r\n\r\n let onChangeValue = value => {\r\n if (sFlag) return;\r\n let _zoomValue = parseInt((value.a - 0.5) / constants.ZOOM_VARIABLE);\r\n if (_zoomValue > 404) return;\r\n if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;\r\n\r\n if (\r\n (rulerEdit !== null && value.startX && value.startY) ||\r\n value.lastAction === 'zoom'\r\n ) {\r\n let _rulerEdit = document.getElementById('ruler_numberInput'),\r\n _rect;\r\n if (rulerEditID !== null) {\r\n _rect = document.getElementById(rulerEditID);\r\n }\r\n let bbox;\r\n if (_rect && _rulerEdit) {\r\n bbox = _rect.getBoundingClientRect();\r\n // bbox.width = _rect.getBBox().width;\r\n // bbox.height = _rect.getBBox().height;\r\n _rulerEdit.style.left = `${bbox.left - (150 - bbox.width) / 2}px`;\r\n _rulerEdit.style.top = `${bbox.top - (50 - bbox.height) / 2}px`;\r\n }\r\n }\r\n\r\n if (\r\n value.e <= 10 &&\r\n value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth &&\r\n value.f <= 80 &&\r\n value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight\r\n ) {\r\n /*let val = Object.assign({}, value);\r\n if (refresh === 2) {\r\n val.a += 0.4; val.d += 0.4;\r\n val.e -= (val.SVGWidth * val.a - val.SVGWidth * (val.a - 0.4)) / 2;\r\n val.f -= (val.SVGHeight * val.d - val.SVGHeight * (val.d - 0.4)) / 2;\r\n console.log('----', val)\r\n }*/\r\n projectActions.updateZoomScale(value.a);\r\n return viewer2DActions.updateCameraView(value);\r\n }\r\n };\r\n\r\n let onChangeTool = tool => {\r\n switch (tool) {\r\n case TOOL_NONE:\r\n projectActions.selectToolEdit();\r\n break;\r\n\r\n case TOOL_PAN:\r\n viewer2DActions.selectToolPan();\r\n break;\r\n\r\n case TOOL_ZOOM_IN:\r\n viewer2DActions.selectToolZoomIn();\r\n break;\r\n\r\n case TOOL_ZOOM_OUT:\r\n viewer2DActions.selectToolZoomOut();\r\n break;\r\n }\r\n };\r\n\r\n let onZoom = value => {\r\n // var nextValue = viewer2D.toJS();\r\n // nextValue = zoom(nextValue, 0, 0, value.a / nextValue.a)\r\n // projectActions.updateZoomScale(nextValue.a);\r\n // return viewer2DActions.updateCameraView(nextValue)\r\n };\r\n\r\n let { e, f, SVGWidth, SVGHeight } = state.get('viewer2D').toJS();\r\n\r\n let rulerSize = 0; //px\r\n let rulerUnitPixelSize = 100;\r\n let rulerBgColor = SharedStyle.PRIMARY_COLOR.main;\r\n let rulerFnColor = SharedStyle.COLORS.white;\r\n let rulerMkColor = SharedStyle.SECONDARY_COLOR.main;\r\n let sceneWidth = SVGWidth || state.getIn(['scene', 'width']);\r\n let sceneHeight = SVGHeight || state.getIn(['scene', 'height']);\r\n let sceneZoom = state.zoom || 1;\r\n let rulerXElements = Math.ceil(sceneWidth / rulerUnitPixelSize) + 1;\r\n let rulerYElements = Math.ceil(sceneHeight / rulerUnitPixelSize) + 1;\r\n return (\r\n <div>\r\n {rulerEdit}\r\n <div\r\n style={{\r\n margin: 0,\r\n padding: 0,\r\n display: 'grid',\r\n gridRowGap: '0',\r\n gridColumnGap: '0',\r\n gridTemplateColumns: `${rulerSize}px ${width - rulerSize}px`,\r\n gridTemplateRows: `${rulerSize}px ${height - rulerSize}px`,\r\n position: 'relative'\r\n }}\r\n >\r\n <div\r\n style={{ gridColumn: 1, gridRow: 1, backgroundColor: rulerBgColor }}\r\n ></div>\r\n <div\r\n style={{\r\n gridRow: 1,\r\n gridColumn: 2,\r\n position: 'relative',\r\n overflow: 'hidden'\r\n }}\r\n id=\"rulerX\"\r\n >\r\n {sceneWidth ? (\r\n <RulerX\r\n unitPixelSize={rulerUnitPixelSize}\r\n zoom={sceneZoom}\r\n mouseX={state.mouse.get('x')}\r\n width={width - rulerSize}\r\n zeroLeftPosition={e || 0}\r\n backgroundColor={rulerBgColor}\r\n fontColor={rulerFnColor}\r\n markerColor={rulerMkColor}\r\n positiveUnitsNumber={rulerXElements}\r\n negativeUnitsNumber={0}\r\n />\r\n ) : null}\r\n </div>\r\n <div\r\n style={{\r\n gridColumn: 1,\r\n gridRow: 2,\r\n position: 'relative',\r\n overflow: 'hidden'\r\n }}\r\n id=\"rulerY\"\r\n >\r\n {sceneHeight ? (\r\n <RulerY\r\n unitPixelSize={rulerUnitPixelSize}\r\n zoom={sceneZoom}\r\n mouseY={state.mouse.get('y')}\r\n height={height - rulerSize}\r\n zeroTopPosition={sceneHeight * sceneZoom + f || 0}\r\n backgroundColor={rulerBgColor}\r\n fontColor={rulerFnColor}\r\n markerColor={rulerMkColor}\r\n positiveUnitsNumber={rulerYElements}\r\n negativeUnitsNumber={0}\r\n />\r\n ) : null}\r\n </div>\r\n <ReactSVGPanZoom\r\n style={{ gridColumn: 2, gridRow: 2 }}\r\n width={width - rulerSize}\r\n height={height - rulerSize}\r\n value={viewer2D.isEmpty() ? null : viewer2D.toJS()}\r\n onChangeValue={onChangeValue}\r\n tool={mode2Tool(mode)}\r\n onChangeTool={onChangeTool}\r\n detectAutoPan={mode2DetectAutopan(mode)}\r\n onMouseDown={onMouseDown}\r\n onMouseMove={onMouseMove}\r\n onMouseUp={onMouseUp}\r\n miniaturePosition=\"none\"\r\n toolbarPosition=\"none\"\r\n detectPinchGesture={false}\r\n disableDoubleClickZoomWithToolAuto={true}\r\n ref={Viewer}\r\n >\r\n <svg width={scene.width} height={scene.height}>\r\n <defs>\r\n <pattern\r\n id=\"diagonalFill\"\r\n patternUnits=\"userSpaceOnUse\"\r\n width=\"4\"\r\n height=\"4\"\r\n fill=\"#FFF\"\r\n >\r\n <rect x=\"0\" y=\"0\" width=\"4\" height=\"4\" fill=\"#FFF\" />\r\n <path\r\n d=\"M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2\"\r\n style={{ stroke: '#8E9BA2', strokeWidth: 1 }}\r\n />\r\n </pattern>\r\n </defs>\r\n <g\r\n style={Object.assign(mode2Cursor(mode), mode2PointerEvents(mode))}\r\n >\r\n <State\r\n state={state}\r\n catalog={catalog}\r\n viewer2DActions={viewer2DActions}\r\n relatedLines={relatedLines}\r\n />\r\n </g>\r\n </svg>\r\n </ReactSVGPanZoom>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nViewer2D.propTypes = {\r\n state: PropTypes.object.isRequired,\r\n width: PropTypes.number.isRequired,\r\n height: PropTypes.number.isRequired\r\n};\r\n\r\nViewer2D.contextTypes = {\r\n viewer2DActions: PropTypes.object.isRequired,\r\n linesActions: PropTypes.object.isRequired,\r\n holesActions: PropTypes.object.isRequired,\r\n verticesActions: PropTypes.object.isRequired,\r\n itemsActions: PropTypes.object.isRequired,\r\n areaActions: PropTypes.object.isRequired,\r\n projectActions: PropTypes.object.isRequired,\r\n catalog: PropTypes.object.isRequired\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC1D,OAAOC,SAAS,MAAM,YAAY;AAClC,SACEC,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,YAAY,EACZC,aAAa,EACbC,IAAI,QACC,oBAAoB;AAC3B,OAAO,KAAKC,SAAS,MAAM,iBAAiB;AAC5C,SACEC,gBAAgB,EAChBC,cAAc,EACdC,4BAA4B,EAC5BC,mBAAmB,EACnBC,SAAS,EACTC,UAAU,QACL,iBAAiB;AACxB,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AACjD,SAASC,MAAM,EAAEC,MAAM,QAAQ,UAAU;AACzC,SAASC,aAAa,QAAQ,oBAAoB;AAClD,OAAOC,eAAe,MAAM,4BAA4B;AACxD,OAAOC,OAAO,MAAM,eAAe;AACnC,SAASC,GAAG,QAAQ,WAAW;AAC/B,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA,IAAIC,OAAO,GAAG,KAAK;AACnB,IAAIC,KAAK,GAAG,KAAK,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,IAAIC,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAIC,kBAAkB,GAAG,IAAI;AAC7B,IAAIC,WAAW;AACf,IAAIC,WAAW;AACf,IAAIC,QAAQ;AACZ,IAAIC,YAAY;AAChB,IAAIC,WAAW;AACf,IAAIC,OAAO;AACX,IAAIC,QAAQ;AACZ,IAAIC,OAAO;;AAEX;AACA,SAASC,SAASA,CAACC,IAAI,EAAE;EACvB,IAAId,OAAO,EAAE;IACX,OAAOtB,SAAS;EAClB;EACA,QAAQoC,IAAI;IACV,KAAK/B,SAAS,CAACgC,WAAW;MACxB,OAAOpC,QAAQ;IACjB,KAAKI,SAAS,CAACiC,eAAe;MAC5B,OAAOpC,YAAY;IACrB,KAAKG,SAAS,CAACkC,gBAAgB;MAC7B,OAAOpC,aAAa;IACtB,KAAKE,SAAS,CAACK,SAAS;MACtB,OAAOX,SAAS;IAClB;MACE,OAAOC,SAAS;EACpB;AACF;AAEA,SAASwC,kBAAkBA,CAACJ,IAAI,EAAE;EAChC,QAAQA,IAAI;IACV,KAAK/B,SAAS,CAACoC,iBAAiB;IAChC,KAAKpC,SAAS,CAACqC,iBAAiB;IAChC,KAAKrC,SAAS,CAACsC,iBAAiB;IAChC,KAAKtC,SAAS,CAACuC,kBAAkB;IACjC,KAAKvC,SAAS,CAACwC,kBAAkB;IACjC,KAAKxC,SAAS,CAACyC,kBAAkB;IACjC,KAAKzC,SAAS,CAAC0C,oBAAoB;MACjC,OAAO;QAAEC,aAAa,EAAE;MAAO,CAAC;IAElC;MACE,OAAO,CAAC,CAAC;EACb;AACF;AAEA,SAASC,WAAWA,CAACb,IAAI,EAAE;EACzB,QAAQA,IAAI;IACV,KAAK/B,SAAS,CAACuC,kBAAkB;IACjC,KAAKvC,SAAS,CAACyC,kBAAkB;IACjC,KAAKzC,SAAS,CAAC0C,oBAAoB;IACnC,KAAK1C,SAAS,CAACwC,kBAAkB;MAC/B,OAAO;QAAEK,MAAM,EAAE;MAAO,CAAC;IAE3B,KAAK7C,SAAS,CAAC8C,kBAAkB;MAC/B,OAAO;QAAED,MAAM,EAAE;MAAY,CAAC;IAEhC,KAAK7C,SAAS,CAAC+C,yBAAyB;IACxC,KAAK/C,SAAS,CAACoC,iBAAiB;MAC9B,OAAO;QAAES,MAAM,EAAE;MAAY,CAAC;IAChC;MACE,OAAO;QAAEA,MAAM,EAAE;MAAU,CAAC;EAChC;AACF;AAEA,SAASG,kBAAkBA,CAACjB,IAAI,EAAE;EAChC,QAAQA,IAAI;IACV,KAAK/B,SAAS,CAACoC,iBAAiB;IAChC,KAAKpC,SAAS,CAACyC,kBAAkB;IACjC,KAAKzC,SAAS,CAAC0C,oBAAoB;IACnC,KAAK1C,SAAS,CAACuC,kBAAkB;IACjC,KAAKvC,SAAS,CAACwC,kBAAkB;IACjC,KAAKxC,SAAS,CAACqC,iBAAiB;IAChC,KAAKrC,SAAS,CAACsC,iBAAiB;MAC9B,OAAO,IAAI;IAEb;MACE,OAAO,KAAK;EAChB;AACF;AAEA,SAASW,kBAAkBA,CAACC,IAAI,EAAE;EAChC,OACE,CAACA,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,mBAAmB,CAAC,IAClDF,IAAI,CAACG,OAAO,KAAK,KAAK,EACtB;IACAH,IAAI,GAAGA,IAAI,CAACI,UAAU;EACxB;EACA,IAAIJ,IAAI,CAACG,OAAO,KAAK,KAAK,EAAE,OAAO,IAAI;EAEvC,OAAO;IACLE,MAAM,EAAEL,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,aAAa,CAAC,GAC/CI,UAAU,CAACN,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,aAAa,CAAC,CAACK,KAAK,CAAC,GAC7D,CAAC;IACLC,IAAI,EAAER,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,WAAW,CAAC,GAC3CF,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,WAAW,CAAC,CAACK,KAAK,GAC/CE,SAAS;IACbC,KAAK,EAAEV,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,YAAY,CAAC,CAACK,KAAK;IACvDI,SAAS,EAAEX,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,gBAAgB,CAAC,CAACK,KAAK;IAC/DK,QAAQ,EAAEZ,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,eAAe,CAAC,CAACK,KAAK,KAAK,MAAM;IACxEM,EAAE,EAAEb,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,SAAS,CAAC,CAACK,KAAK;IACjDO,MAAM,EAAEd,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,aAAa,CAAC,GAC/CF,IAAI,CAACC,UAAU,CAACC,YAAY,CAAC,aAAa,CAAC,CAACK,KAAK,GACjD;EACN,CAAC;AACH;AAEA,eAAe,SAASQ,QAAQA,CAAAC,IAAA,EAAAC,KAAA,EAY9B;EAAA,IAXEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IAAEC,UAAU,GAAAL,IAAA,CAAVK,UAAU;IAAEC,cAAc,GAAAN,IAAA,CAAdM,cAAc;EAAA,IAEhDC,eAAe,GAAAN,KAAA,CAAfM,eAAe;IACfC,YAAY,GAAAP,KAAA,CAAZO,YAAY;IACZC,YAAY,GAAAR,KAAA,CAAZQ,YAAY;IACZC,eAAe,GAAAT,KAAA,CAAfS,eAAe;IACfC,YAAY,GAAAV,KAAA,CAAZU,YAAY;IACZC,WAAW,GAAAX,KAAA,CAAXW,WAAW;IACXC,cAAc,GAAAZ,KAAA,CAAdY,cAAc;IACdC,OAAO,GAAAb,KAAA,CAAPa,OAAO;EAGT,IAAAC,SAAA,GAAkC1F,QAAQ,CAAC,IAAI,CAAC;IAAA2F,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAzCG,SAAS,GAAAF,UAAA;IAAEG,YAAY,GAAAH,UAAA;EAC9B,IAAAI,UAAA,GAAsC/F,QAAQ,CAAC,IAAI,CAAC;IAAAgG,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAA7CE,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAClC,IAAMG,MAAM,GAAGpG,MAAM,CAAC,IAAI,CAAC;EAE3B,IAAMqG,QAAQ,GAAkBvB,KAAK,CAA/BuB,QAAQ;IAAE5D,IAAI,GAAYqC,KAAK,CAArBrC,IAAI;IAAE6D,KAAK,GAAKxB,KAAK,CAAfwB,KAAK;;EAE3B;EACA,IAAAC,UAAA,GAAwCtG,QAAQ,CAAC,EAAE,CAAC;IAAAuG,UAAA,GAAAX,cAAA,CAAAU,UAAA;IAA7CE,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EACpC,IAAAG,UAAA,GAAkC1G,QAAQ,CAAC,KAAK,CAAC;IAAA2G,UAAA,GAAAf,cAAA,CAAAc,UAAA;IAA1CE,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAE9B7G,SAAS,CAAC,YAAM;IACd;IACA,IAAIgH,aAAa,GAAGjC,KAAK,CAACwB,KAAK,CAACU,MAAM,CAACC,GAAG,CAACnC,KAAK,CAACwB,KAAK,CAACS,aAAa,CAAC;IAErE,IAAI,CAACA,aAAa,EAAE;MAClB;IACF;IAEA,IAAMG,QAAQ,GAAGH,aAAa,CAACG,QAAQ;IAEvC,IAAIA,QAAQ,CAACxF,OAAO,CAAC,CAAC,EAAE;MACtB;IACF;IAEA,IAAIyF,OAAO,GAAG,CAAC;MACbC,OAAO,GAAG,MAAM;MAChBC,IAAI,GAAG,MAAM;MACbC,IAAI,GAAG,CAAC;IAEVJ,QAAQ,CAACK,OAAO,CAAC,UAAAC,MAAM,EAAI;MACzB,IAAIL,OAAO,GAAGK,MAAM,CAACC,CAAC,EAAEN,OAAO,GAAGK,MAAM,CAACC,CAAC;MAC1C,IAAIL,OAAO,GAAGI,MAAM,CAACE,CAAC,EAAEN,OAAO,GAAGI,MAAM,CAACE,CAAC;MAC1C,IAAIL,IAAI,GAAGG,MAAM,CAACC,CAAC,EAAEJ,IAAI,GAAGG,MAAM,CAACC,CAAC;MACpC,IAAIH,IAAI,GAAGE,MAAM,CAACE,CAAC,EAAEJ,IAAI,GAAGE,MAAM,CAACE,CAAC;IACtC,CAAC,CAAC;IAEF,IAAIC,KAAK,GAAGN,IAAI,GAAG,CAACF,OAAO,GAAGE,IAAI,IAAI,CAAC;IACvC,IAAIO,KAAK,GAAG,IAAI,IAAIR,OAAO,GAAG,CAACE,IAAI,GAAGF,OAAO,IAAI,CAAC,CAAC;IAEnDhB,MAAM,CAACyB,OAAO,CAACC,sBAAsB,CAACH,KAAK,EAAEC,KAAK,EAAEvB,QAAQ,CAACY,GAAG,CAAC,GAAG,CAAC,CAAC;EACxE,CAAC,EAAE,EAAE,CAAC;EAEN,IAAIc,OAAO,GAAGzB,KAAK,CAACS,aAAa;EACjC,IAAIiB,cAAc,GAAGpH,cAAc,GAAG,CAAC;EACvC,IAAM0D,KAAK,GAAGgC,KAAK,CAAC2B,KAAK,CAAC,CAAC,QAAQ,EAAEF,OAAO,CAAC,CAAC;EAE9C,IAAIG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAAiB;IAAA,IAAXV,CAAC,GAAAU,KAAA,CAADV,CAAC;MAAEC,CAAC,GAAAS,KAAA,CAADT,CAAC;IAC7B,OAAO;MAAED,CAAC,EAADA,CAAC;MAAEC,CAAC,EAAE,CAACA,CAAC,GAAGpB,KAAK,CAACtB;IAAO,CAAC;EACpC,CAAC;EACD;EACA;EACA;;EAEA,IAAIoD,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACtB,IAAIL,OAAO,GAAGzB,KAAK,CAACS,aAAa;IACjC,IAAIzC,KAAK,GAAGgC,KAAK,CAACU,MAAM,CAACC,GAAG,CAACc,OAAO,CAAC;IAErC7F,QAAQ,GAAGb,aAAa,CAACgH,WAAW,CAAC/D,KAAK,CAAC;IAC3CnC,YAAY,GAAGd,aAAa,CAACiH,kBAAkB,CAAChE,KAAK,EAAEpC,QAAQ,CAAC;IAChEF,WAAW,GAAGX,aAAa,CAACkH,WAAW,CAACjC,KAAK,EAAEZ,OAAO,EAAEvD,YAAY,CAAC;IACrEF,WAAW,GAAGZ,aAAa,CAACmH,cAAc,CAACxG,WAAW,CAAC;IACvDI,WAAW,GAAGf,aAAa,CAACoH,cAAc,CAACtG,YAAY,EAAEH,WAAW,CAAC0G,GAAG,CAAC;IACzErG,OAAO,GAAGL,WAAW,CAAC2G,MAAM,CAACC,MAAM,CAACzG,YAAY,CAAC;IACjDF,WAAW,GAAGZ,aAAa,CAACwH,aAAa,CAAC5G,WAAW,EAAEI,OAAO,CAAC;IAC/DD,WAAW,GAAGf,aAAa,CAACwH,aAAa,CAACzG,WAAW,EAAEC,OAAO,CAAC;IAC/DE,OAAO,GAAGlB,aAAa,CAACyH,UAAU,CAACxE,KAAK,CAAC;EAC3C,CAAC;EAED,IAAIyE,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,WAAW,EAAE7E,KAAK,EAAK;IACrD,IAAI8E,MAAM,GAAG9E,KAAK,CAAC8C,GAAG,CAAC,QAAQ,CAAC;IAChC,IAAIiC,MAAM,GAAGF,WAAW,CAAC/E,MAAM;IAC/B,IAAIS,MAAM,GAAGsE,WAAW,CAACtE,MAAM;IAE/B,IAAMyE,QAAQ,GAAG7C,KAAK,CACnB2B,KAAK,CAAC,CAAC,QAAQ,EAAEe,WAAW,CAAC1E,KAAK,EAAE,OAAO,EAAE0E,WAAW,CAACvE,EAAE,CAAC,CAAC,CAC7D2E,IAAI,CAAC,CAAC;IAET,IAAIC,IAAI,GAAGF,QAAQ,CAAC1B,CAAC;IACrB,IAAI6B,IAAI,GAAGH,QAAQ,CAACzB,CAAC;IACrB,IAAI6B,SAAS,GAAIJ,QAAQ,CAACK,QAAQ,GAAG,GAAG,GAAIC,IAAI,CAACC,EAAE;IAEnD,IAAIC,MAAM,GAAGJ,SAAS,GAAI7E,MAAM,GAAG,GAAG,GAAI+E,IAAI,CAACC,EAAE;IACjD,IAAIE,KAAK,GAAGV,MAAM,GAAGD,MAAM;IAE3B,IAAIY,IAAI,GAAGR,IAAI,GAAGO,KAAK,GAAGH,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;IAC1C,IAAII,IAAI,GAAGT,IAAI,GAAGM,KAAK,GAAGH,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC;IAE1CpE,YAAY,CAAC0E,yBAAyB,CACpCJ,IAAI,EACJE,IAAI,EACJf,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EACd,CAAC;IAEDsB,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC;EAED,IAAImE,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAIlB,WAAW,EAAE7E,KAAK,EAAK;IACvD,IAAIgG,MAAM,GAAGnB,WAAW,CAACvE,EAAE,CAAC2F,KAAK,CAAC,GAAG,CAAC;IACtC,IAAIC,QAAQ,GAAGrB,WAAW,CAAC/E,MAAM;IACjC,IAAIqG,QAAQ,GAAGnG,KAAK,CAAC8D,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,IAAIsC,KAAK,GAAGJ,MAAM,CAAC,CAAC,CAAC;IACrB,IAAIK,KAAK,GAAGL,MAAM,CAAC,CAAC,CAAC;IACrB,IAAIM,EAAE,GAAG3F,KAAK,CAACwB,KAAK,CAAC2B,KAAK,CAAC,CAAC,QAAQ,EAAEF,OAAO,EAAE,UAAU,EAAEoC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,IAAIO,EAAE,GAAG5F,KAAK,CAACwB,KAAK,CAAC2B,KAAK,CAAC,CAAC,QAAQ,EAAEF,OAAO,EAAE,UAAU,EAAEoC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,IAAIQ,EAAE,GAAG7F,KAAK,CAACwB,KAAK,CAAC2B,KAAK,CAAC,CAAC,QAAQ,EAAEF,OAAO,EAAE,UAAU,EAAEoC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,IAAIS,EAAE,GAAG9F,KAAK,CAACwB,KAAK,CAAC2B,KAAK,CAAC,CAAC,QAAQ,EAAEF,OAAO,EAAE,UAAU,EAAEoC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,IAAI1C,CAAC,EAAEC,CAAC,EAAEkC,KAAK;IAEfA,KAAK,GAAGU,QAAQ,GAAGD,QAAQ;IAE3B,IAAIF,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;MACxBP,KAAK,GAAG,CAACA,KAAK;IAChB;IAEAnC,CAAC,GACC,CAACkD,EAAE,GAAGF,EAAE,IAAIhB,IAAI,CAACK,GAAG,CAAEF,KAAK,GAAGH,IAAI,CAACC,EAAE,GAAI,GAAG,CAAC,GAC7C,CAACkB,EAAE,GAAGF,EAAE,IAAIjB,IAAI,CAACO,GAAG,CAAEJ,KAAK,GAAGH,IAAI,CAACC,EAAE,GAAI,GAAG,CAAC,GAC7Ce,EAAE;IACJ/C,CAAC,GACC,CAACiD,EAAE,GAAGF,EAAE,IAAIhB,IAAI,CAACO,GAAG,CAAEJ,KAAK,GAAGH,IAAI,CAACC,EAAE,GAAI,GAAG,CAAC,GAC7C,CAACkB,EAAE,GAAGF,EAAE,IAAIjB,IAAI,CAACK,GAAG,CAAEF,KAAK,GAAGH,IAAI,CAACC,EAAE,GAAI,GAAG,CAAC,GAC7CgB,EAAE;IAEJ3E,YAAY,CAAC,IAAI,CAAC;IAClBT,eAAe,CAACuF,mBAAmB,CACjC7B,WAAW,CAAC1E,KAAK,EACjB6F,MAAM,CAAC,CAAC,CAAC,EACT1C,CAAC,EACDC,CAAC,EACD5C,KAAK,CAACgG,QACR,CAAC;IACDxF,eAAe,CAACyF,oBAAoB,CAACtD,CAAC,EAAEC,CAAC,EAAE5C,KAAK,CAACgG,QAAQ,CAAC;IAC1DxF,eAAe,CAAC0F,iBAAiB,CAACvD,CAAC,EAAEC,CAAC,EAAE5C,KAAK,CAACgG,QAAQ,CAAC;EACzD,CAAC;EAED,IAAIG,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIjC,WAAW,EAAE7E,KAAK,EAAK;IACjD,IAAM+G,YAAY,GAAG5E,KAAK,CACvB2B,KAAK,CAAC,CAAC,QAAQ,EAAEe,WAAW,CAAC1E,KAAK,EAAE,OAAO,EAAE0E,WAAW,CAACvE,EAAE,CAAC,CAAC,CAC7D2E,IAAI,CAAC,CAAC;IAET,IAAI+B,GAAG,GAAG7E,KAAK,CAAC2B,KAAK,CAAC,CACpB,QAAQ,EACRe,WAAW,CAAC1E,KAAK,EACjB,UAAU,EACV4G,YAAY,CAAChE,QAAQ,CAAC,CAAC,CAAC,CACzB,CAAC;IAEF,IAAIkE,GAAG,GAAG9E,KAAK,CAAC2B,KAAK,CAAC,CACpB,QAAQ,EACRe,WAAW,CAAC1E,KAAK,EACjB,UAAU,EACV4G,YAAY,CAAChE,QAAQ,CAAC,CAAC,CAAC,CACzB,CAAC;IAEF,IAAAmE,qBAAA,GAAiBhK,aAAa,CAACiK,aAAa,CAAC,CAACH,GAAG,EAAEC,GAAG,CAAC,CAAC;MAAAG,sBAAA,GAAA1F,cAAA,CAAAwF,qBAAA;MAAnDG,GAAG,GAAAD,sBAAA;MAAEE,GAAG,GAAAF,sBAAA;IACb,IAAIG,OAAO,GAAGrK,aAAa,CAACsK,UAAU,CACpCH,GAAG,CAAC/D,CAAC,EACL+D,GAAG,CAAC9D,CAAC,EACL+D,GAAG,CAAChE,CAAC,EACLgE,GAAG,CAAC/D,CAAC,EACLvD,KAAK,CAAC8C,GAAG,CAAC,QAAQ,CAAC,EACnB,CACF,CAAC;;IAED;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA,IAAI2E,cAAc,GAAG;MACnB;MACAC,UAAU,EAAE1H;IACd,CAAC;IACD,IAAIgH,GAAG,KAAKK,GAAG,EAAE;MACfI,cAAc,GAAAE,aAAA,CAAAA,aAAA,KACTF,cAAc;QACjBG,SAAS,EAAEN,GAAG,CAACO,KAAK,CAACN,OAAO,CAAC;QAC7BO,SAAS,EAAET;MAAG,EACf;IACH,CAAC,MAAM;MACLI,cAAc,GAAAE,aAAA,CAAAA,aAAA,KACTF,cAAc;QACjBK,SAAS,EAAER,GAAG,CAACO,KAAK,CAACN,OAAO,CAAC;QAC7BK,SAAS,EAAEP;MAAG,EACf;IACH;IACA,IAAIU,kBAAkB,GAAG,IAAI1K,GAAG,CAAAsK,aAAA,KAC3BF,cAAc,CAClB,CAAC;IACF7F,YAAY,CAAC,IAAI,CAAC;IAClBN,cAAc,CAAC0G,kBAAkB,CAACD,kBAAkB,EAAE,IAAI,EAAE;MAC1DnE,OAAO,EAAEiB,WAAW,CAAC1E,KAAK;MAC1B8H,MAAM,EAAEpD,WAAW,CAACvE;IACtB,CAAC,CAAC;;IAEF;IACA;IACA;IACA;EACF,CAAC;EAED,IAAI4H,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAIrD,WAAW,EAAE7E,KAAK,EAAK;IACxD,IAAImI,UAAU,GAAGtD,WAAW,CAACvE,EAAE,CAAC2F,KAAK,CAAC,GAAG,CAAC;IAC1CpB,WAAW,CAACvE,EAAE,GAAG6H,UAAU,CAAC,CAAC,CAAC;IAC9BtD,WAAW,CAAC/E,MAAM,IAAI,CAAC;IACvBsI,4BAA4B,CAACvD,WAAW,EAAE7E,KAAK,CAAC;IAChD6E,WAAW,CAACvE,EAAE,GAAG6H,UAAU,CAAC,CAAC,CAAC;IAC9BE,6BAA6B,CAACxD,WAAW,EAAE7E,KAAK,CAAC;EACnD,CAAC;EAED,IAAIoI,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAIvD,WAAW,EAAE7E,KAAK,EAAK;IACzD,IAAI8E,MAAM,GAAG9E,KAAK,CAAC8C,GAAG,CAAC,QAAQ,CAAC;IAChC,IAAIiC,MAAM,GAAGF,WAAW,CAAC/E,MAAM;IAC/B,IAAMkF,QAAQ,GAAG7C,KAAK,CACnB2B,KAAK,CAAC,CAAC,QAAQ,EAAEe,WAAW,CAAC1E,KAAK,EAAE,OAAO,EAAE0E,WAAW,CAACvE,EAAE,CAAC,CAAC,CAC7D2E,IAAI,CAAC,CAAC;IACT,IAAIC,IAAI,GAAGF,QAAQ,CAAC1B,CAAC;IACrB,IAAI6B,IAAI,GAAGH,QAAQ,CAACzB,CAAC;IACrB,IAAI6B,SAAS,GAAGJ,QAAQ,CAACK,QAAQ;IACjC,IAAII,KAAK,GAAGV,MAAM,GAAGD,MAAM;IAC3B,IAAIY,IAAI,GAAGR,IAAI,GAAGO,KAAK,GAAGH,IAAI,CAACK,GAAG,CAACP,SAAS,CAAC;IAC7C,IAAIQ,IAAI,GAAGT,IAAI,GAAGM,KAAK,GAAGH,IAAI,CAACO,GAAG,CAACT,SAAS,CAAC;IAC7ClE,YAAY,CAACoH,iBAAiB,CAC5BzD,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACdoF,IAAI,EACJE,IACF,CAAC;IACD1E,YAAY,CAACqH,yBAAyB,CACpC7C,IAAI,EACJE,IAAI,EACJf,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EACd,CAAC;IACDY,YAAY,CAACsH,eAAe,CAAC9C,IAAI,EAAEE,IAAI,CAAC;IACxChE,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC;EAED,IAAI6G,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAI5D,WAAW,EAAE7E,KAAK,EAAK;IACrD,IAAI8E,MAAM,GAAG9E,KAAK,CAAC8C,GAAG,CAAC,QAAQ,CAAC;IAChC,IAAMkC,QAAQ,GAAG7C,KAAK,CACnB2B,KAAK,CAAC,CAAC,QAAQ,EAAEe,WAAW,CAAC1E,KAAK,EAAE,OAAO,EAAE0E,WAAW,CAACvE,EAAE,CAAC,CAAC,CAC7D2E,IAAI,CAAC,CAAC;IACT,IAAIC,IAAI,GAAGF,QAAQ,CAAC1B,CAAC;IACrB,IAAI6B,IAAI,GAAGH,QAAQ,CAACzB,CAAC;IACrBrC,YAAY,CAACoH,iBAAiB,CAC5BzD,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACd4E,IAAI,EACJC,IACF,CAAC;IACDjE,YAAY,CAACwH,8BAA8B,CACzC5D,MAAM,EACND,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EACd,CAAC;IACDY,YAAY,CAACsH,eAAe,CAACtD,IAAI,EAAEC,IAAI,CAAC;IACxCvD,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC;EAED,IAAIyG,6BAA6B,GAAG,SAAhCA,6BAA6BA,CAAIxD,WAAW,EAAE7E,KAAK,EAAK;IAC1D,IAAI8E,MAAM,GAAG9E,KAAK,CAAC8C,GAAG,CAAC,QAAQ,CAAC;IAChC,IAAIiC,MAAM,GAAGF,WAAW,CAAC/E,MAAM;IAC/B,IAAMkF,QAAQ,GAAG7C,KAAK,CACnB2B,KAAK,CAAC,CAAC,QAAQ,EAAEe,WAAW,CAAC1E,KAAK,EAAE,OAAO,EAAE0E,WAAW,CAACvE,EAAE,CAAC,CAAC,CAC7D2E,IAAI,CAAC,CAAC;IACT,IAAIC,IAAI,GAAGF,QAAQ,CAAC1B,CAAC;IACrB,IAAI6B,IAAI,GAAGH,QAAQ,CAACzB,CAAC;IACrB,IAAI6B,SAAS,GAAGJ,QAAQ,CAACK,QAAQ;IACjC,IAAII,KAAK,GAAGV,MAAM,GAAGD,MAAM;IAC3B,IAAIY,IAAI,GAAGR,IAAI,GAAGO,KAAK,GAAGH,IAAI,CAACK,GAAG,CAACP,SAAS,CAAC;IAC7C,IAAIQ,IAAI,GAAGT,IAAI,GAAGM,KAAK,GAAGH,IAAI,CAACO,GAAG,CAACT,SAAS,CAAC;IAC7ClE,YAAY,CAACoH,iBAAiB,CAC5BzD,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACdoF,IAAI,EACJE,IACF,CAAC;IACD1E,YAAY,CAACqH,yBAAyB,CACpC7C,IAAI,EACJE,IAAI,EACJf,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EACd,CAAC;IACDY,YAAY,CAACsH,eAAe,CAAC9C,IAAI,EAAEE,IAAI,CAAC;IACxChE,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC;EAED,IAAM+G,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAM,EAAEC,WAAW,EAAE9F,QAAQ,EAAE+F,KAAK,EAAK;IAAA,IAAAC,KAAA,YAAAA,MAAA,EAEV;MACpD,IAAI1F,MAAM,GAAGN,QAAQ,CAAC8F,WAAW,CAAC9F,QAAQ,CAACiG,CAAC,CAAC,CAAC;MAAC,IAAAC,MAAA,YAAAA,OAAAC,CAAA,EACD;QAC5C,IAAI7F,MAAM,CAACyF,KAAK,CAACI,CAAC,CAAC,KAAKL,WAAW,CAACvI,EAAE,EAAE;UACtC,IAAI,CAACsI,MAAM,CAACO,IAAI,CAAC,UAAAC,IAAI;YAAA,OAAIA,IAAI,CAAC9I,EAAE,KAAKwI,KAAK,CAACzF,MAAM,CAACyF,KAAK,CAACI,CAAC,CAAC,CAAC,CAAC5I,EAAE;UAAA,EAAC,EAAE;YAC/DsI,MAAM,CAACS,IAAI,CAACP,KAAK,CAACzF,MAAM,CAACyF,KAAK,CAACI,CAAC,CAAC,CAAC,CAAC;UACrC;QACF;MACF,CAAC;MAND,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG7F,MAAM,CAACyF,KAAK,CAAChJ,MAAM,EAAEoJ,CAAC,EAAE;QAAAD,MAAA,CAAAC,CAAA;MAAA;IAO9C,CAAC;IAVD;IACA,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,WAAW,CAAC9F,QAAQ,CAACjD,MAAM,EAAEkJ,CAAC,EAAE;MAAAD,KAAA;IAAA;IAUpD;EACF,CAAC;EAED,IAAMO,WAAW,GAAG,SAAdA,WAAWA,CAAIvG,QAAQ,EAAEO,CAAC,EAAEC,CAAC,EAAEjF,IAAI,EAAK;IAC5C,IAAIiL,SAAS,GAAG5I,KAAK,CAClBmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CACxD4F,KAAK,CAAC,CAAC;IACV,IAAIjM,OAAO,CAACgM,SAAS,CAAC,EAAE;MACtB,OAAO;QACLE,SAAS,EAAE,IAAI;QACfnG,CAAC,EAAEA,CAAC;QACJC,CAAC,EAAEA;MACL,CAAC;IACH;IACA,IAAImG,YAAY,GAAG/I,KAAK,CACrBmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,OAAO,EAAE2F,SAAS,CAAC,CAAC,CACvDtE,IAAI,CAAC,CAAC;IACT,IAAIlH,QAAQ,GAAG4C,KAAK,CAACmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,OAAO,CAAC,CAAC,CAACqB,IAAI,CAAC,CAAC;IACxE,IAAI0E,YAAY,GAAGhJ,KAAK,CAACmD,KAAK,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC/D6F,YAAY,GAAG,CAACpM,OAAO,CAACoM,YAAY,CAAC,GACjCA,YAAY,GACZD,YAAY,CAAC3G,QAAQ,CAAC,CAAC,CAAC;IAC5B,IAAI6G,GAAG,EAAEC,GAAG;IACZ,IAAIC,QAAQ,GAAG,KAAK;IACpBF,GAAG,GAAG7G,QAAQ,CAAC4G,YAAY,CAAC,CAACrG,CAAC;IAC9BuG,GAAG,GAAG9G,QAAQ,CAAC4G,YAAY,CAAC,CAACpG,CAAC;IAC9B,IAAI,CAACR,QAAQ,CAAC4G,YAAY,CAAC,CAACb,KAAK,CAACK,IAAI,CAAC,UAAAC,IAAI;MAAA,OAAIA,IAAI,KAAKM,YAAY,CAACpJ,EAAE;IAAA,EAAC,EAAE;MACxEwJ,QAAQ,GAAG,IAAI;IACjB;IACA,IAAIC,OAAO,GAAG,EAAE;IAChB,IAAI,CAACxM,OAAO,CAAC+E,YAAY,CAAC,IAAIhE,IAAI,KAAK,eAAe,EAAE;MACtDyE,QAAQ,CAAC4G,YAAY,CAAC,CAACrG,CAAC,GAAGA,CAAC;MAC5BP,QAAQ,CAAC4G,YAAY,CAAC,CAACpG,CAAC,GAAGA,CAAC;IAC9B;IACA,IAAIyG,QAAQ,EAAEC,SAAS;IACvB,IAAIP,YAAY,CAAC3G,QAAQ,CAAC,CAAC,CAAC,KAAK2G,YAAY,CAAC3G,QAAQ,CAAC,CAAC,CAAC,EAAE;MACzD,KAAK,IAAIiG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG1G,YAAY,CAACxC,MAAM,EAAEkJ,CAAC,EAAE,EAAE;QAC5C,IAAII,IAAI,GAAG9G,YAAY,CAAC0G,CAAC,CAAC;QAC1BiB,SAAS,GAAG/M,aAAa,CAACgN,oBAAoB,CAC5Cd,IAAI,EACJM,YAAY,EACZ3G,QACF,CAAC;QACDiH,QAAQ,GAAG1E,IAAI,CAAC6E,GAAG,CAACF,SAAS,CAAC;QAC9B,IAAIG,UAAU,GAAG,EAAE;QACnBlN,aAAa,CAACyL,eAAe,CAC3ByB,UAAU,EACVhB,IAAI,EACJrG,QAAQ,EACRhF,QAAQ,EACR2L,YAAY,CAACpJ,EACf,CAAC;QACD,KAAK,IAAI4I,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkB,UAAU,CAACtK,MAAM,EAAEoJ,CAAC,EAAE,EAAE;UAC1C,IAAImB,QAAQ,GAAG/E,IAAI,CAAC6E,GAAG,CACrBjN,aAAa,CAACgN,oBAAoB,CAACE,UAAU,CAAClB,CAAC,CAAC,EAAEE,IAAI,EAAErG,QAAQ,CAClE,CAAC;UACD,IACEsH,QAAQ,GAAG3N,4BAA4B,IACvC2N,QAAQ,GAAG,GAAG,GAAG3N,4BAA4B,EAC7C;YACAqN,OAAO,CAACV,IAAI,CAAC,KAAK,CAAC;UACrB,CAAC,MAAMU,OAAO,CAACV,IAAI,CAAC,IAAI,CAAC;QAC3B;QACA,IACEW,QAAQ,GAAGtN,4BAA4B,IACvCsN,QAAQ,GAAG,GAAG,GAAGtN,4BAA4B,EAC7C;UACAqN,OAAO,CAACV,IAAI,CAAC,KAAK,CAAC;QACrB,CAAC,MAAMU,OAAO,CAACV,IAAI,CAAC,IAAI,CAAC;MAC3B;IACF;IAEA,IAAI,CAACU,OAAO,CAACZ,IAAI,CAAC,UAAAmB,IAAI;MAAA,OAAIA,IAAI,KAAK,KAAK;IAAA,EAAC,EAAE;MACzCV,GAAG,GAAGtG,CAAC;MACPuG,GAAG,GAAGtG,CAAC;IACT,CAAC,MAAM;MACL,IAAIgH,IAAI,GAAG7N,4BAA4B,GAAGsN,QAAQ;MAClD;MACA,IAAIQ,WAAW,GAAGd,YAAY,CAAC3G,QAAQ,CAAC0H,SAAS,CAC/C,UAAAC,OAAO;QAAA,OAAIA,OAAO,KAAKf,YAAY;MAAA,CACrC,CAAC;MACDa,WAAW,GACTA,WAAW,GAAG,CAAC,GACXd,YAAY,CAAC3G,QAAQ,CAAC,CAAC,CAAC,GACxB2G,YAAY,CAAC3G,QAAQ,CAACyH,WAAW,CAAC;MACxC,IAAIV,QAAQ,EAAE;QACZ,IAAIa,EAAE,GAAG5H,QAAQ,CAACyH,WAAW,CAAC,CAAClH,CAAC;QAChC,IAAIsH,EAAE,GAAG7H,QAAQ,CAACyH,WAAW,CAAC,CAACjH,CAAC;QAChC;QACAgH,IAAI,GAAGN,SAAS,GAAG,CAAC,GAAG,CAACM,IAAI,GAAGA,IAAI;QACnC;QACA,IAAIM,GAAG,GAAG3N,aAAa,CAAC4N,sBAAsB,CAACxH,CAAC,EAAEC,CAAC,EAAEoH,EAAE,EAAEC,EAAE,EAAEL,IAAI,CAAC;QAClEX,GAAG,GAAGiB,GAAG,CAACvH,CAAC;QACXuG,GAAG,GAAGgB,GAAG,CAACtH,CAAC;MACb;IACF;;IAEA;IACA,IACE,CAACwG,OAAO,CAACZ,IAAI,CAAC,UAAAmB,IAAI;MAAA,OAAIA,IAAI,KAAK,KAAK;IAAA,EAAC,IACrC,CAAC/M,OAAO,CAACyM,QAAQ,CAAC,IAClBA,QAAQ,GAAGnN,UAAU,KAAK,CAAC,IAC3BiN,QAAQ,EACR;MACA,IAAIiB,OAAM,GAAG7N,aAAa,CAAC8N,eAAe,CACxCf,SAAS,EACTlH,QAAQ,EACR2G,YAAY,EACZE,GAAG,EACHC,GAAG,EACHF,YACF,CAAC;MACDC,GAAG,GAAGmB,OAAM,CAACzH,CAAC;MACduG,GAAG,GAAGkB,OAAM,CAACxH,CAAC;IAChB;IAEA,IAAIwH,MAAM,GAAG;MACXtB,SAAS,EAAEM,OAAO;MAClBzG,CAAC,EAAEsG,GAAG;MACNrG,CAAC,EAAEsG;IACL,CAAC;IACD,OAAOkB,MAAM;EACf,CAAC;EAED,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAI,EAAEC,QAAQ,EAAK;IAAA,IAAAC,gBAAA;IACxC,IAAI,EAACF,IAAI,aAAJA,IAAI,gBAAAE,gBAAA,GAAJF,IAAI,CAAEG,UAAU,cAAAD,gBAAA,eAAhBA,gBAAA,CAAkBtH,KAAK,GAAE,OAAO,CAAC;IACtC,IAAMhE,MAAM,GAAGoL,IAAI,CAACG,UAAU,CAACvH,KAAK,CAAC,CAACqH,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3D,IAAMG,IAAI,GAAGJ,IAAI,CAACG,UAAU,CAACvH,KAAK,CAAC,CAACqH,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,OAAOrL,MAAM,IAAIwL,IAAI,GAAGlO,OAAO,CAAC0C,MAAM,CAAC,CAACyL,IAAI,CAACD,IAAI,CAAC,CAACE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;EACjE,CAAC;EAED,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAInI,CAAC,EAAEC,CAAC;IAAA,OAAM;MAAED,CAAC,EAADA,CAAC;MAAEC,CAAC,EAADA;IAAE,CAAC;EAAA,CAAC;EAElC,IAAMmI,UAAU,GAAG,SAAbA,UAAUA,CAAIpI,CAAC,EAAEC,CAAC,EAAEiC,MAAM,EAAEmG,WAAW,EAAEzN,OAAO,EAAK;IACzD,IAAM0N,QAAQ,GAAI,CAAC,GAAG/K,MAAM,GAAI,CAAC;IACjC,IAAMgL,SAAS,GAAGvI,CAAC,GAAGsI,QAAQ,GAAGtG,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC;IACjD,IAAMsG,SAAS,GAAGvI,CAAC,GAAGqI,QAAQ,GAAGtG,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;IAEjD,IAAMuG,UAAU,GAAG,EAAE;IAErBJ,WAAW,CAACK,eAAe,CAAC5I,OAAO,CAAC,UAAA6I,WAAW,EAAI;MACjD,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,IAAIA,WAAW,CAACnM,MAAM,GAAG,CAAC,EAAE;MAE3D,IAAAsM,YAAA,GAAA1K,cAAA,CAAoBuK,WAAW;QAAxBI,EAAE,GAAAD,YAAA;QAAEE,KAAK,GAAAF,YAAA;MAChB,IAAI,CAACC,EAAE,EAAE;;MAET;MACA,IAAME,QAAQ,GACZD,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,CAAC,GACxBpP,aAAa,CAACsP,2BAA2B,CACvCH,EAAE,CAAC/I,CAAC,EACJ+I,EAAE,CAAC9I,CAAC,EACJsI,SAAS,EACTC,SACF,CAAC,GACD5O,aAAa,CAACsP,2BAA2B,CAACH,EAAE,CAAC/I,CAAC,EAAE+I,EAAE,CAAC9I,CAAC,EAAED,CAAC,EAAEC,CAAC,CAAC;MAEjE,IAAI,CAACgJ,QAAQ,EAAE;MAEf,IAAIE,OAAO;MACXvO,OAAO,CAACkF,OAAO,CAAC,UAAAsJ,QAAQ,EAAI;QAC1B,IAAI,EAACA,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEC,IAAI,KAAID,QAAQ,CAACC,IAAI,CAAC7M,MAAM,GAAG,CAAC,EAAE;QAEjD,IAAM8M,EAAE,GAAG1P,aAAa,CAAC2P,WAAW,CAACH,QAAQ,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,IAAMG,EAAE,GAAG5P,aAAa,CAAC2P,WAAW,CAACH,QAAQ,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAACC,EAAE,IAAI,CAACE,EAAE,IAAKF,EAAE,CAACtJ,CAAC,KAAKwJ,EAAE,CAACxJ,CAAC,IAAIsJ,EAAE,CAACrJ,CAAC,KAAKuJ,EAAE,CAACvJ,CAAE,EAAE;QAEpD,IAAMwJ,MAAM,GAAG7P,aAAa,CAACsP,2BAA2B,CACtDI,EAAE,CAACtJ,CAAC,EACJsJ,EAAE,CAACrJ,CAAC,EACJuJ,EAAE,CAACxJ,CAAC,EACJwJ,EAAE,CAACvJ,CACL,CAAC;QACD,IAAI,CAACwJ,MAAM,EAAE;QAEb,IAAMC,EAAE,GAAG9P,aAAa,CAAC+P,oBAAoB,CAC3CF,MAAM,CAACG,CAAC,EACRH,MAAM,CAACI,CAAC,EACRJ,MAAM,CAACK,CAAC,EACRb,QAAQ,CAACW,CAAC,EACVX,QAAQ,CAACY,CAAC,EACVZ,QAAQ,CAACa,CACX,CAAC;QACD,IAAI,CAACJ,EAAE,EAAE;;QAET;QACA,IAAMK,MAAM,GAAGnQ,aAAa,CAACoQ,cAAc,CAACV,EAAE,CAACtJ,CAAC,EAAEsJ,EAAE,CAACrJ,CAAC,EAAEuJ,EAAE,CAACxJ,CAAC,EAAEwJ,EAAE,CAACvJ,CAAC,CAAC;QACnE,IACE8J,MAAM,IAAInQ,aAAa,CAACoQ,cAAc,CAACV,EAAE,CAACtJ,CAAC,EAAEsJ,EAAE,CAACrJ,CAAC,EAAEyJ,EAAE,CAAC1J,CAAC,EAAE0J,EAAE,CAACzJ,CAAC,CAAC,IAC9D8J,MAAM,IAAInQ,aAAa,CAACoQ,cAAc,CAACR,EAAE,CAACxJ,CAAC,EAAEwJ,EAAE,CAACvJ,CAAC,EAAEyJ,EAAE,CAAC1J,CAAC,EAAE0J,EAAE,CAACzJ,CAAC,CAAC,EAE9D;;QAEF;QACA,IAAMgK,YAAY,GAAGrQ,aAAa,CAACoQ,cAAc,CAACN,EAAE,CAAC1J,CAAC,EAAE0J,EAAE,CAACzJ,CAAC,EAAED,CAAC,EAAEC,CAAC,CAAC;QACnE,IAAMiK,QAAQ,GAAGtQ,aAAa,CAACoQ,cAAc,CAACjB,EAAE,CAAC/I,CAAC,EAAE+I,EAAE,CAAC9I,CAAC,EAAEyJ,EAAE,CAAC1J,CAAC,EAAE0J,EAAE,CAACzJ,CAAC,CAAC;QACrE,IAAIgK,YAAY,IAAIC,QAAQ,EAAE;QAE9B,IAAMC,SAAS,GAAGD,QAAQ;QAC1Bf,OAAO,GACLA,OAAO,KAAKvM,SAAS,GAAGoF,IAAI,CAACoI,GAAG,CAACjB,OAAO,EAAEgB,SAAS,CAAC,GAAGA,SAAS;MACpE,CAAC,CAAC;MAEF1B,UAAU,CAAC1C,IAAI,CAAC,CAACoD,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,CAAC,EAAEH,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,OAAOP,UAAU;EACnB,CAAC;EAED,IAAM4B,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGzC,IAAI,EAAI;IAClC,IAAI,EAACA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAE0C,GAAG,KAAI,EAAC1C,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAE2C,IAAI,GAAE,OAAO;MAAE7B,eAAe,EAAE;IAAG,CAAC;IAE7D,IAAA8B,SAAA,GAAiB5C,IAAI,CAAC0C,GAAG;MAAjBtK,CAAC,GAAAwK,SAAA,CAADxK,CAAC;MAAEC,CAAC,GAAAuK,SAAA,CAADvK,CAAC;IACZ,IAAMwK,CAAC,GAAG7C,IAAI,CAAC2C,IAAI,CAACjN,KAAK,GAAG,CAAC;IAC7B,IAAMoN,CAAC,GAAG9C,IAAI,CAAC2C,IAAI,CAAChN,MAAM,GAAG,CAAC;IAC9B,IAAM2E,MAAM,GAAG0F,IAAI,CAAC1F,MAAM;IAC1B,IAAMyI,EAAE,GAAI,CAAC,GAAGD,CAAC,GAAI,CAAC;IAEtB,IAAME,EAAE,GAAG5K,CAAC,GAAGyK,CAAC,GAAGzI,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC,GAAGyI,EAAE,GAAG3I,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC;IAC3D,IAAM2I,EAAE,GAAG5K,CAAC,GAAGwK,CAAC,GAAGzI,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC,GAAGyI,EAAE,GAAG3I,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;IAC3D,IAAM4I,GAAG,GAAG9K,CAAC,GAAGyK,CAAC,GAAGzI,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC,GAAGyI,EAAE,GAAG3I,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC;IAC5D,IAAM6I,GAAG,GAAG9K,CAAC,GAAGwK,CAAC,GAAGzI,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC,GAAGyI,EAAE,GAAG3I,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;IAC5D,IAAM8I,GAAG,GAAGhL,CAAC,GAAG0K,CAAC,GAAG1I,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC;IACpC,IAAM+I,GAAG,GAAGhL,CAAC,GAAGyK,CAAC,GAAG1I,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;IACpC,IAAMgJ,GAAG,GAAGlL,CAAC,GAAG0K,CAAC,GAAG1I,IAAI,CAACO,GAAG,CAACL,MAAM,CAAC;IACpC,IAAMiJ,GAAG,GAAGlL,CAAC,GAAGyK,CAAC,GAAG1I,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;IAEpC,OAAO;MACLwG,eAAe,EAAE,CACf,CAACP,KAAK,CAACyC,EAAE,EAAEC,EAAE,CAAC,EAAE,GAAG,CAAC,EACpB,CAAC1C,KAAK,CAAC+C,GAAG,EAAEC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EACtB,CAAChD,KAAK,CAAC2C,GAAG,EAAEC,GAAG,CAAC,EAAE,CAAC,CAAC,EACpB,CAAC5C,KAAK,CAAC6C,GAAG,EAAEC,GAAG,CAAC,EAAE,EAAE,CAAC;IAEzB,CAAC;EACH,CAAC;EAED,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;IAC9B,IAAMC,KAAK,GAAGxO,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE2C,GAAG,CAAC,OAAO,CAAC;IACjC,IAAI,CAAC6L,KAAK,EAAE;IAEZA,KAAK,CAACvL,OAAO,CAAC,UAAA8H,IAAI,EAAI;MACpB,IAAI,CAAAA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE7K,QAAQ,MAAK,IAAI,EAAE;QAC3B,IAAQiD,CAAC,GAAsB4H,IAAI,CAA3B5H,CAAC;UAAEC,CAAC,GAAmB2H,IAAI,CAAxB3H,CAAC;UAAE8B,QAAQ,GAAS6F,IAAI,CAArB7F,QAAQ;UAAE/E,EAAE,GAAK4K,IAAI,CAAX5K,EAAE;QAC1B,IAAIgD,CAAC,IAAI,IAAI,IAAIC,CAAC,IAAI,IAAI,EAAE;QAE5B,IAAMqL,GAAG,GAAG;UACVhB,GAAG,EAAE;YAAEtK,CAAC,EAADA,CAAC;YAAEC,CAAC,EAADA;UAAE,CAAC;UACbiC,MAAM,EAAGH,QAAQ,GAAG,GAAG,GAAIC,IAAI,CAACC;QAClC,CAAC;QAED,IAAM3E,MAAK,GAAGqK,aAAa,CAACC,IAAI,EAAE,OAAO,CAAC;QAC1C,IAAM2D,KAAK,GAAG5D,aAAa,CAACC,IAAI,EAAE,OAAO,CAAC;QAC1C0D,GAAG,CAACf,IAAI,GAAG;UAAEjN,KAAK,EAALA,MAAK;UAAEC,MAAM,EAAEgO;QAAM,CAAC;;QAEnC;QACA,IAAM9Q,SAAQ,GAAGb,aAAa,CAACgH,WAAW,CAAC/D,KAAK,CAAC,IAAI,EAAE;QACvD,IAAMnC,aAAY,GAChBd,aAAa,CAACiH,kBAAkB,CAAChE,KAAK,EAAEpC,SAAQ,CAAC,IAAI,EAAE;QACzD,IAAMF,YAAW,GAAGX,aAAa,CAACkH,WAAW,CAC3CjC,KAAK,EACLZ,OAAO,EACPvD,aACF,CAAC,IAAI;UAAEwG,MAAM,EAAE;QAAG,CAAC;QACnB,IAAMtG,QAAO,MAAAuG,MAAA,CAAAqK,kBAAA,CAAQjR,YAAW,CAAC2G,MAAM,IAAI,EAAE,GAAAsK,kBAAA,CAAM9Q,aAAY,EAAC;;QAEhE;QACA,IAAM2N,WAAW,GAAGgC,mBAAmB,CAACiB,GAAG,CAAC;QAC5C,IAAM7C,UAAU,GAAGL,UAAU,CAACpI,CAAC,EAAEC,CAAC,EAAEqL,GAAG,CAACpJ,MAAM,EAAEmG,WAAW,EAAEzN,QAAO,CAAC;;QAErE;QACA,IAAIgO,KAAK,CAACC,OAAO,CAACJ,UAAU,CAAC,EAAE;UAC7B3K,YAAY,CAAC2N,cAAc,CAACnL,OAAO,EAAEtD,EAAE,EAAEyL,UAAU,CAAC;QACtD;MACF;IACF,CAAC,CAAC;EACJ,CAAC;EAED,IAAIiD,WAAW,GAAG,SAAdA,WAAWA,CAAGC,WAAW,EAAI;IAC/B;;IAEA;IACA;IACA;IACA,IAAAC,kBAAA,GAAenL,iBAAiB,CAACkL,WAAW,CAAC;MAAvC3L,CAAC,GAAA4L,kBAAA,CAAD5L,CAAC;MAAEC,CAAC,GAAA2L,kBAAA,CAAD3L,CAAC;IACVjC,cAAc,CAAC6N,gBAAgB,CAAC;MAAE7L,CAAC,EAADA,CAAC;MAAEC,CAAC,EAADA;IAAE,CAAC,CAAC;IACzC,IAAI9F,KAAK,EAAE;MACT,IAAI2R,OAAO,GAAG;QAAE9L,CAAC,EAAEA,CAAC,GAAG5F,MAAM,CAAC4F,CAAC;QAAEC,CAAC,EAAEA,CAAC,GAAG7F,MAAM,CAAC6F;MAAE,CAAC;MAClDjC,cAAc,CAAC+N,SAAS,CAACD,OAAO,CAAC;IACnC,CAAC,MACC,QAAQ9Q,IAAI;MACV,KAAK/B,SAAS,CAACoC,iBAAiB;QAC9B;QACA,IAAI+D,SAAS,IAAI/B,KAAK,CAACmD,KAAK,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE;UAC5D,IAAImE,MAAM,GAAGtH,KAAK,CACfmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CACxD4F,KAAK,CAAC,CAAC;UAEV,IAAIzG,SAAQ,GAAGpC,KAAK,CACjBmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,UAAU,CAAC,CAAC,CAC/CqB,IAAI,CAAC,CAAC;UACT,IAAI6D,KAAK,GAAGnI,KAAK,CACdmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,OAAO,CAAC,CAAC,CAC5CqB,IAAI,CAAC,CAAC;UACT,IAAI4D,WAAW,GAAGlI,KAAK,CACpBmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,OAAO,EAAEqE,MAAM,CAAC,CAAC,CACpDhD,IAAI,CAAC,CAAC;UACT,IAAI2D,MAAM,GAAG,EAAE;UAEfjG,YAAY,CAAC,KAAK,CAAC;UACnB;UACAgG,eAAe,CAACC,MAAM,EAAEC,WAAW,EAAE9F,SAAQ,EAAE+F,KAAK,CAAC;UACrDvG,eAAe,CAACqG,MAAM,CAAC;UACvB3H,YAAY,CAACqO,iBAAiB,CAAChM,CAAC,EAAEC,CAAC,EAAEqF,MAAM,EAAEjI,KAAK,CAACgG,QAAQ,CAAC;QAC9D,CAAC,MAAM;UACL1F,YAAY,CAACqO,iBAAiB,CAAChM,CAAC,EAAEC,CAAC,EAAEjB,YAAY,EAAE3B,KAAK,CAACgG,QAAQ,CAAC;QACpE;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;MAEF,KAAKpK,SAAS,CAACqC,iBAAiB;QAC9BsC,YAAY,CAACqO,iBAAiB,CAAC3L,OAAO,EAAEN,CAAC,EAAEC,CAAC,CAAC;QAC7C;MAEF,KAAKhH,SAAS,CAACsC,iBAAiB;QAC9B6P,iBAAiB,CAAC,CAAC;QACnB,IAAIvO,MAAK,GAAGgC,KAAK,CAACU,MAAM,CAACC,GAAG,CAACc,OAAO,CAAC;QACrC,IAAI0G,IAAI,GAAG,KAAK;QAChBnK,MAAK,CAACwO,KAAK,CAACxF,IAAI,CAAC,UAAA+B,IAAI,EAAI;UACvB,IAAIA,IAAI,CAAC7K,QAAQ,EAAE;YACjB6K,IAAI,CAACsE,UAAU,CAACC,GAAG,GAAGtP,MAAK,CAACqP,UAAU,CAACC,GAAG;YAC1C7R,kBAAkB,GAAGsN,IAAI,CAAC5K,EAAE;YAC5BgK,IAAI,GAAG,IAAI;UACb;QACF,CAAC,CAAC;QACF,IAAI1M,kBAAkB,KAAK,IAAI,IAAI,CAAC0M,IAAI,EAAE;UACxClJ,YAAY,CAACsO,iBAAiB,CAAC9L,OAAO,EAAEN,CAAC,EAAEC,CAAC,CAAC;UAC7C5F,QAAQ,CAAC2F,CAAC,GAAGA,CAAC;UACd3F,QAAQ,CAAC4F,CAAC,GAAGA,CAAC;QAChB,CAAC,MAAM;UACLU,WAAW,CAAC,CAAC;UACb,IAAA0L,qBAAA,GAA8BzS,aAAa,CAAC0S,QAAQ,CAClD/R,WAAW,EACXC,WAAW,EACXE,YAAY,EACZC,WAAW,EACXC,OAAO,EACPoF,CAAC,EACDC,CAAC,EACDnF,OACF,CAAC;YATKyR,EAAE,GAAAF,qBAAA,CAAFE,EAAE;YAAEC,EAAE,GAAAH,qBAAA,CAAFG,EAAE;YAAEC,GAAG,GAAAJ,qBAAA,CAAHI,GAAG;YAAEvK,MAAM,GAAAmK,qBAAA,CAANnK,MAAM;UAUzB,IAAIoJ,IAAG,GAAG;YACRhB,GAAG,EAAE;cAAEtK,CAAC,EAADA,CAAC;cAAEC,CAAC,EAADA;YAAE,CAAC;YACbiC,MAAM,EAANA,MAAM;YACNqI,IAAI,EAAEhQ,WAAW,CAAC0G,GAAG,IAAI1G,WAAW,CAAC0G,GAAG,CAACsJ,IAAI;YAC7CmC,SAAS,EAAEnS,WAAW,CAAC0G,GAAG,IAAI1G,WAAW,CAAC0G,GAAG,CAACyL,SAAS;YACvDC,SAAS,EAAEpS,WAAW,CAAC0G,GAAG,IAAI1G,WAAW,CAAC0G,GAAG,CAAC0L;UAChD,CAAC;UACD,IAAAC,qBAAA,GAAuBhT,aAAa,CAACiT,cAAc,CAAChO,KAAK,EAAEyM,IAAG,CAAC;YAAzDwB,OAAM,GAAAF,qBAAA,CAANE,MAAM;YAAEC,KAAI,GAAAH,qBAAA,CAAJG,IAAI;UAClB,IAAI,CAAC9S,OAAO,CAAC8S,KAAI,CAAC,IAAID,OAAM,EAAE;YAC5B,IAAIC,KAAI,CAACvQ,MAAM,IAAI,CAAC,EAAE8O,IAAG,CAAChB,GAAG,GAAG;cAAEtK,CAAC,EAAE+M,KAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC;cAAEC,CAAC,EAAE8M,KAAI,CAAC,CAAC,CAAC,CAAC9M;YAAE,CAAC,CAAC,KAC1D;cACH,IACE,CAAC8M,KAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,KAAK+M,KAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,CAAC,GAC/B,CAAC+M,KAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,KAAK8M,KAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,CAAC,GACnC,CAAC8M,KAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,KAAK+M,KAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,CAAC,GAC/B,CAAC+M,KAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,KAAK8M,KAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,CAAC,EAEnCqL,IAAG,CAAChB,GAAG,GAAG;gBAAEtK,CAAC,EAAE+M,KAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC;gBAAEC,CAAC,EAAE8M,KAAI,CAAC,CAAC,CAAC,CAAC9M;cAAE,CAAC,CAAC,KACtCqL,IAAG,CAAChB,GAAG,GAAG;gBAAEtK,CAAC,EAAE+M,KAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC;gBAAEC,CAAC,EAAE8M,KAAI,CAAC,CAAC,CAAC,CAAC9M;cAAE,CAAC;YAC/C;YACA,IAAI+M,SAAS,GAAGpT,aAAa,CAACqT,cAAc,CAC1C1S,WAAW,CAAC2G,MAAM,EAClBoK,IACF,CAAC;YACD,IAAI0B,SAAS,EAAE;cACbT,EAAE,GAAGjB,IAAG,CAAChB,GAAG,CAACtK,CAAC;cACdwM,EAAE,GAAGlB,IAAG,CAAChB,GAAG,CAACrK,CAAC;YAChB;UACF;UAEAqL,IAAG,CAAChB,GAAG,GAAG;YAAEtK,CAAC,EAAEuM,EAAE;YAAEtM,CAAC,EAAEuM;UAAG,CAAC;UAC1B,IAAIU,WAAU,GAAGtT,aAAa,CAACqT,cAAc,CAC3C1S,WAAW,CAAC2G,MAAM,EAClBoK,IACF,CAAC;UACD,IAAI4B,WAAU,IAAIJ,OAAM,EAAE;YACxBhP,YAAY,CAAC0E,yBAAyB,CACpC+J,EAAE,EACFC,EAAE,EACFlM,OAAO,EACPhG,kBACF,CAAC;YACDwD,YAAY,CAACqP,yBAAyB,CACpCV,GAAG,EACHnM,OAAO,EACPhG,kBACF,CAAC;YACDD,QAAQ,CAAC2F,CAAC,GAAGuM,EAAE;YACflS,QAAQ,CAAC4F,CAAC,GAAGuM,EAAE;UACjB;UACA,IACGjS,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,UAAU,CAAC,IACnD/S,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,SAAS,CAAE,EACpD;YACAxP,YAAY,CAAC0E,yBAAyB,CACpC+J,EAAE,EACFC,EAAE,EACFlM,OAAO,EACPhG,kBACF,CAAC;YACDwD,YAAY,CAACqP,yBAAyB,CACpCV,GAAG,EACHnM,OAAO,EACPhG,kBACF,CAAC;YACDD,QAAQ,CAAC2F,CAAC,GAAGuM,EAAE;YACflS,QAAQ,CAAC4F,CAAC,GAAGuM,EAAE;UACjB;UACA,IACGjS,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,MAAM,CAAC,IAC/C/S,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,OAAO,CAAE,IACjD/S,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,UAAU,CAAE,EACrD;YACAxP,YAAY,CAAC0E,yBAAyB,CACpC+J,EAAE,EACFC,EAAE,EACFlM,OAAO,EACPhG,kBACF,CAAC;YACDwD,YAAY,CAACqP,yBAAyB,CACpCV,GAAG,EACHnM,OAAO,EACPhG,kBACF,CAAC;YACDD,QAAQ,CAAC2F,CAAC,GAAGuM,EAAE;YACflS,QAAQ,CAAC4F,CAAC,GAAGuM,EAAE;UACjB;QACF;QACA;MAEF,KAAKvT,SAAS,CAACuC,kBAAkB;QAC/BoC,YAAY,CAAC2P,kBAAkB,CAACvN,CAAC,EAAEC,CAAC,CAAC;QACrC;MAEF,KAAKhH,SAAS,CAACyC,kBAAkB;QAC/BiC,YAAY,CAAC6P,kBAAkB,CAACxN,CAAC,EAAEC,CAAC,EAAEjB,YAAY,EAAE3B,KAAK,CAACgG,QAAQ,CAAC;QACnE;MAEF,KAAKpK,SAAS,CAAC0C,oBAAoB;QACjC,IAAI8D,QAAQ,GAAGpC,KAAK,CACjBmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,UAAU,CAAC,CAAC,CAC/CqB,IAAI,CAAC,CAAC;QACT,IAAI8F,MAAM,GAAGzB,WAAW,CAACvG,QAAQ,EAAEO,CAAC,EAAEC,CAAC,EAAE,iBAAiB,CAAC;QAC3DpC,eAAe,CAACyF,oBAAoB,CAClCmE,MAAM,CAACzH,CAAC,EACRyH,MAAM,CAACxH,CAAC,EACR5C,KAAK,CAACgG,QACR,CAAC;QACD;MAEF,KAAKpK,SAAS,CAACwC,kBAAkB;QAC/B2P,iBAAiB,CAAC,CAAC;QACnBzK,WAAW,CAAC,CAAC;QACb,IAAA8M,sBAAA,GAA8B7T,aAAa,CAAC0S,QAAQ,CAClD/R,WAAW,EACXC,WAAW,EACXE,YAAY,EACZC,WAAW,EACXC,OAAO,EACPoF,CAAC,EACDC,CAAC,EACDnF,OACF,CAAC;UATKyR,EAAE,GAAAkB,sBAAA,CAAFlB,EAAE;UAAEC,EAAE,GAAAiB,sBAAA,CAAFjB,EAAE;UAAEC,GAAG,GAAAgB,sBAAA,CAAHhB,GAAG;UAAEvK,MAAM,GAAAuL,sBAAA,CAANvL,MAAM;QAUzB,IAAIoJ,GAAG,GAAG;UACRhB,GAAG,EAAE;YAAEtK,CAAC,EAADA,CAAC;YAAEC,CAAC,EAADA;UAAE,CAAC;UACbiC,MAAM,EAANA,MAAM;UACNqI,IAAI,EAAEhQ,WAAW,CAAC0G,GAAG,IAAI1G,WAAW,CAAC0G,GAAG,CAACsJ,IAAI;UAC7CmC,SAAS,EAAEnS,WAAW,CAAC0G,GAAG,IAAI1G,WAAW,CAAC0G,GAAG,CAACyL,SAAS;UACvDC,SAAS,EAAEpS,WAAW,CAAC0G,GAAG,IAAI1G,WAAW,CAAC0G,GAAG,CAAC0L;QAChD,CAAC;QACD,IAAAe,sBAAA,GAAuB9T,aAAa,CAACiT,cAAc,CAAChO,KAAK,EAAEyM,GAAG,CAAC;UAAzDwB,MAAM,GAAAY,sBAAA,CAANZ,MAAM;UAAEC,IAAI,GAAAW,sBAAA,CAAJX,IAAI;QAClB,IAAI,CAAC9S,OAAO,CAAC8S,IAAI,CAAC,IAAID,MAAM,EAAE;UAC5B,IAAIC,IAAI,CAACvQ,MAAM,IAAI,CAAC,EAAE8O,GAAG,CAAChB,GAAG,GAAG;YAAEtK,CAAC,EAAE+M,IAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC;YAAEC,CAAC,EAAE8M,IAAI,CAAC,CAAC,CAAC,CAAC9M;UAAE,CAAC,CAAC,KAC1D,IAAI8M,IAAI,CAACvQ,MAAM,IAAI,CAAC,EAAE;YACzB,IACE,CAACuQ,IAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,KAAK+M,IAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,CAAC,GAC/B,CAAC+M,IAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,KAAK8M,IAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,CAAC,GACnC,CAAC8M,IAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,KAAK+M,IAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC,GAAGA,CAAC,CAAC,GAC/B,CAAC+M,IAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,KAAK8M,IAAI,CAAC,CAAC,CAAC,CAAC9M,CAAC,GAAGA,CAAC,CAAC,EAEnCqL,GAAG,CAAChB,GAAG,GAAG;cAAEtK,CAAC,EAAE+M,IAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC;cAAEC,CAAC,EAAE8M,IAAI,CAAC,CAAC,CAAC,CAAC9M;YAAE,CAAC,CAAC,KACtCqL,GAAG,CAAChB,GAAG,GAAG;cAAEtK,CAAC,EAAE+M,IAAI,CAAC,CAAC,CAAC,CAAC/M,CAAC;cAAEC,CAAC,EAAE8M,IAAI,CAAC,CAAC,CAAC,CAAC9M;YAAE,CAAC;UAC/C;UACA,IAAI+M,UAAS,GAAGpT,aAAa,CAACqT,cAAc,CAC1C1S,WAAW,CAAC2G,MAAM,EAClBoK,GACF,CAAC;UACD,IAAI0B,UAAS,EAAE;YACbT,EAAE,GAAGjB,GAAG,CAAChB,GAAG,CAACtK,CAAC;YACdwM,EAAE,GAAGlB,GAAG,CAAChB,GAAG,CAACrK,CAAC;UAChB;QACF;QAEAqL,GAAG,CAAChB,GAAG,GAAG;UAAEtK,CAAC,EAAEuM,EAAE;UAAEtM,CAAC,EAAEuM;QAAG,CAAC;QAC1B,IAAIU,UAAU,GAAGtT,aAAa,CAACqT,cAAc,CAC3C1S,WAAW,CAAC2G,MAAM,EAClBoK,GACF,CAAC;QACD,IAAI4B,UAAU,IAAIJ,MAAM,EAAE;UACxBhP,YAAY,CAAC0E,yBAAyB,CACpC+J,EAAE,EACFC,EAAE,EACFlM,OAAO,EACPhG,kBACF,CAAC;UACDwD,YAAY,CAACqP,yBAAyB,CACpCV,GAAG,EACHnM,OAAO,EACPhG,kBACF,CAAC;QACH;QACA,IACGC,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,UAAU,CAAC,IACnD/S,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,SAAS,CAAE,EACpD;UACAxP,YAAY,CAAC0E,yBAAyB,CACpC+J,EAAE,EACFC,EAAE,EACFlM,OAAO,EACPhG,kBACF,CAAC;UACDwD,YAAY,CAACqP,yBAAyB,CACpCV,GAAG,EACHnM,OAAO,EACPhG,kBACF,CAAC;QACH;QACA,IACGC,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,MAAM,CAAC,IAC/C/S,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,OAAO,CAAE,IACjD/S,WAAW,CAAC0G,GAAG,IACd1G,WAAW,CAAC0G,GAAG,CAACmM,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,UAAU,CAAE,EACrD;UACAxP,YAAY,CAAC0E,yBAAyB,CACpC+J,EAAE,EACFC,EAAE,EACFlM,OAAO,EACPhG,kBACF,CAAC;UACDwD,YAAY,CAACqP,yBAAyB,CACpCV,GAAG,EACHnM,OAAO,EACPhG,kBACF,CAAC;QACH;QACA;MAEF,KAAKrB,SAAS,CAAC8C,kBAAkB;QAC/B+B,YAAY,CAAC6P,kBAAkB,CAAC3N,CAAC,EAAEC,CAAC,CAAC;QACrC;IACJ;IAEF0L,WAAW,CAACiC,aAAa,CAACC,eAAe,CAAC,CAAC;EAC7C,CAAC;EAED,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAGnC,WAAW,EAAI;IAC/B,IAAIoC,KAAK,GAAGpC,WAAW,CAACiC,aAAa;IACrC;IACA;IACA;IACA;IACA,IAAAI,mBAAA,GAAevN,iBAAiB,CAACkL,WAAW,CAAC;MAAvC3L,CAAC,GAAAgO,mBAAA,CAADhO,CAAC;MAAEC,CAAC,GAAA+N,mBAAA,CAAD/N,CAAC;IACV,IAAIpD,KAAK,GAAGQ,KAAK,CAACwB,KAAK,CAAC2B,KAAK,CAAC,CAAC,QAAQ,EAAEnD,KAAK,CAACwB,KAAK,CAACS,aAAa,CAAC,CAAC;IACpE,IAAI2O,MAAM,GACRpR,KAAK,CAACE,QAAQ,CAACmR,KAAK,CAAC3D,IAAI,GACzB1N,KAAK,CAACE,QAAQ,CAACoR,KAAK,CAAC5D,IAAI,GACzB1N,KAAK,CAACE,QAAQ,CAACsO,KAAK,CAACd,IAAI,GACzB1N,KAAK,CAACE,QAAQ,CAACyI,KAAK,CAAC+E,IAAI;IAC3B,IAAIvP,IAAI,KAAK/B,SAAS,CAACoC,iBAAiB,EAAE;MACxC,IAAI0S,KAAK,CAACK,WAAW,CAACC,KAAK,KAAK,CAAC,EAAE;QACjCrQ,cAAc,CAACsQ,QAAQ,CAAC,CAAC;QACzBP,KAAK,CAACF,eAAe,CAAC,CAAC;QACvB;MACF;IACF;IACA,IAAI7S,IAAI,KAAK/B,SAAS,CAACK,SAAS,EAAE;MAChC,IAAIiI,WAAW,GAAGrF,kBAAkB,CAAC6R,KAAK,CAACQ,MAAM,CAAC;MAClD,IAAI,CAAChN,WAAW,EAAE;MAElB,IAAI0M,MAAM,GAAG,CAAC,EACZ,QAAQ1M,WAAW,CAACzE,SAAS;QAC3B,KAAK,OAAO;UACV,IAAIyE,WAAW,CAACxE,QAAQ,EAAE;YACxB,IAAIwE,WAAW,CAAC5E,IAAI,KAAK,QAAQ,EAAE,MAAM,KACpC,IAAI4E,WAAW,CAAC5E,IAAI,KAAK,WAAW,EAAE;YAC3CgB,YAAY,CAAC6Q,iBAAiB,CAC5BjN,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACdgD,CAAC,EACDC,CAAC,EACD5C,KAAK,CAACgG,QACR,CAAC;UACH;UACA;QACF,KAAK,UAAU;UACbxF,eAAe,CAACuF,mBAAmB,CACjC7B,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACdgD,CAAC,EACDC,CAAC,EACD5C,KAAK,CAACgG,QACR,CAAC;UACD;QAEF,KAAK,OAAO;UACV7F,UAAU,CAAC,EAAE,CAAC;UACdlD,kBAAkB,GAAGiH,WAAW,CAACvE,EAAE;UACnC,IAAIuE,WAAW,CAAC5E,IAAI,KAAK,iBAAiB,EACxCmB,YAAY,CAAC2Q,iBAAiB,CAC5BlN,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACdgD,CAAC,EACDC,CACF,CAAC,CAAC,KACC,IAAIsB,WAAW,CAAC5E,IAAI,KAAK,QAAQ,EAAE,MAAM,KACzC,IAAI4E,WAAW,CAAC5E,IAAI,KAAK,WAAW,EAAE,MAAM,KAC5C,IAAI4E,WAAW,CAAC5E,IAAI,KAAK,cAAc,EAAE,MAAM,KAC/C;YACH;YACA;;YAEAmB,YAAY,CAAC4Q,UAAU,CAACnN,WAAW,CAAC1E,KAAK,EAAE0E,WAAW,CAACvE,EAAE,CAAC;YAC1D;YACAc,YAAY,CAAC6Q,iBAAiB,CAC5BpN,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACdgD,CAAC,EACDC,CACF,CAAC;YACDxC,cAAc,CAAC,KAAK,CAAC;UACvB;UACA;QAEF,KAAK,OAAO;UACV,IAAI8D,WAAW,CAACxE,QAAQ,EACtBa,YAAY,CAACoH,iBAAiB,CAC5BzD,WAAW,CAAC1E,KAAK,EACjB0E,WAAW,CAACvE,EAAE,EACdgD,CAAC,EACDC,CACF,CAAC;UACH;QAEF;UACE;MACJ,CAAC,MACE;QACH7F,MAAM,CAAC4F,CAAC,GAAGA,CAAC;QACZ5F,MAAM,CAAC6F,CAAC,GAAGA,CAAC;QACZ9F,KAAK,GAAG,IAAI;MACd;IACF;IACA4T,KAAK,CAACF,eAAe,CAAC,CAAC;EACzB,CAAC;EAED,IAAIe,SAAS,GAAG,SAAZA,SAASA,CAAGjD,WAAW,EAAI;IAC7B;IACAxR,KAAK,GAAG,KAAK;IACb;IACA;IACA,IAAI4T,KAAK,GAAGpC,WAAW,CAACiC,aAAa;IACrC,IAAIiB,IAAI,GAAGd,KAAK,CAACQ,MAAM,CAACO,qBAAqB,CAAC,CAAC;IAC/C,IAAI,CAAC9T,IAAI,CAACsS,QAAQ,CAAC,KAAK,CAAC,EAAE;MACzB9P,UAAU,CAAC,EAAE,CAAC;IAChB;IACA;IACA;IACA,IAAIuQ,KAAK,CAACQ,MAAM,CAACjS,OAAO,KAAK,MAAM,EAAE;MACnC,IAAIyR,KAAK,CAACQ,MAAM,CAACvR,EAAE,EAAE;QACnB0B,cAAc,CAACqP,KAAK,CAACQ,MAAM,CAACvR,EAAE,CAAC;MACjC;IACF;IACAsB,YAAY,CAAC,IAAI,CAAC;IAClB;IACA;IACA;;IAEA,IAAAyQ,mBAAA,GAAetO,iBAAiB,CAACkL,WAAW,CAAC;MAAvC3L,CAAC,GAAA+O,mBAAA,CAAD/O,CAAC;MAAEC,CAAC,GAAA8O,mBAAA,CAAD9O,CAAC;IAEV,IAAIR,QAAQ,GAAGpC,KAAK,CAACmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,UAAU,CAAC,CAAC,CAACqB,IAAI,CAAC,CAAC;IAC3E,IAAI6D,KAAK,GAAGnI,KAAK,CAACmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,OAAO,CAAC,CAAC,CAACqB,IAAI,CAAC,CAAC;IAErE,QAAQ3G,IAAI;MACV,KAAK/B,SAAS,CAACK,SAAS;QACtB,IAAIiI,WAAW,GAAGrF,kBAAkB,CAAC6R,KAAK,CAACQ,MAAM,CAAC;QAClD,IAAIjP,aAAa,GAAGT,KAAK,CAAC2B,KAAK,CAAC,CAAC,QAAQ,EAAEF,OAAO,CAAC,CAAC;QACpD,QAAQiB,WAAW,GAAGA,WAAW,CAACzE,SAAS,GAAG,MAAM;UAClD,KAAK,OAAO;YACV;YACAiB,WAAW,CAACiR,UAAU,CAACzN,WAAW,CAAC1E,KAAK,EAAE0E,WAAW,CAACvE,EAAE,CAAC;YACzD;UAEF,KAAK,OAAO;YACV;YACA,IAAIuE,WAAW,CAAC5E,IAAI,KAAK,QAAQ,EAAE;cACjCqB,cAAc,CAACiR,MAAM,CAAC,CAAC;cACvB;YACF,CAAC,MAAM,IAAI1N,WAAW,CAAC5E,IAAI,KAAK,WAAW,EAAE;cAC3C;cACA,IAAI3B,KAAI,GAAG3B,mBAAmB;cAC9B2E,cAAc,CAACkR,OAAO,CAAClU,KAAI,CAAC;cAC5B;YACF,CAAC,MAAM;cACL,IAAIsK,OAAM,GAAG,EAAE;cACf,IAAIC,YAAW,GAAGlI,KAAK,CACpBmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,OAAO,EAAEiB,WAAW,CAACvE,EAAE,CAAC,CAAC,CAC5D2E,IAAI,CAAC,CAAC;cACT0D,eAAe,CAACC,OAAM,EAAEC,YAAW,EAAE9F,QAAQ,EAAE+F,KAAK,CAAC;cACrDvG,eAAe,CAACqG,OAAM,CAAC;cACvB3H,YAAY,CAACwR,UAAU,CAAC5N,WAAW,CAAC1E,KAAK,EAAE0E,WAAW,CAACvE,EAAE,CAAC;cAC1D;YACF;UAEF,KAAK,OAAO;YACV;YACAY,YAAY,CAACwR,UAAU,CAAC7N,WAAW,CAAC1E,KAAK,EAAE0E,WAAW,CAACvE,EAAE,CAAC;YAC1D;UAEF,KAAK,OAAO;YACV,IAAIuE,WAAW,CAAC5E,IAAI,KAAK,WAAW,EAAE;cACpC,IAAI0S,aAAa,GAAGhS,KAAK,CAACmD,KAAK,CAAC,CAC9B,OAAO,EACP,QAAQ,EACRF,OAAO,EACP,OAAO,EACPiB,WAAW,CAACvE,EAAE,CACf,CAAC;cACFc,YAAY,CAACwR,iBAAiB,CAACD,aAAa,CAAC;cAC7C;YACF,CAAC,MAAM,IAAI9N,WAAW,CAAC5E,IAAI,KAAK,QAAQ,EAAE;cACxCqB,cAAc,CAACiR,MAAM,CAAC,CAAC;cACvB;YACF,CAAC,MAAM,IAAI1N,WAAW,CAAC5E,IAAI,KAAK,cAAc,EAAE;cAC9C;cACA;;cAEAmB,YAAY,CAAC4Q,UAAU,CAACnN,WAAW,CAAC1E,KAAK,EAAE0E,WAAW,CAACvE,EAAE,CAAC;cAC1DS,cAAc,CAAC,IAAI,CAAC;cACpB;YACF,CAAC,MAAM;cACLO,cAAc,CAACuR,WAAW,CAAC,CAAC;cAC5B;YACF;UACF,KAAK,WAAW;YACd,IAAIC,QAAQ,GAAG1V,OAAO,CAACyH,WAAW,CAAC/E,MAAM,CAAC,CACvCyL,IAAI,CAACpJ,KAAK,CAACmJ,IAAI,CAAC,CAChBE,EAAE,CAACrJ,KAAK,CAAC4Q,SAAS,CAAC;YACtB,IAAIC,aAAa,MAAAvO,MAAA,CAAMnH,YAAY,CAACwV,QAAQ,EAAEtW,gBAAgB,CAAC,CAAE;YACjE,IAAMyW,YAAY,gBAChBtX,KAAA,CAAAuX,aAAA;cACE5S,EAAE,EAAC,mBAAmB;cACtB6S,KAAK,EAAE;gBACLC,QAAQ,EAAE,UAAU;gBACpBC,IAAI,EAAElB,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC;gBACxC0S,GAAG,EAAEnB,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC;gBACtC0S,MAAM,EAAE;cACV;YAAE,gBAEF5X,KAAA,CAAAuX,aAAA,CAAC/V,eAAe;cACdgW,KAAK,EAAE;gBACLvS,KAAK,EAAE,GAAG;gBACVC,MAAM,EAAE,EAAE;gBACV2S,SAAS,EAAE,QAAQ;gBACnBC,YAAY,EAAE,EAAE;gBAChBC,QAAQ,EAAE,MAAM;gBAChBC,UAAU,EAAE,MAAM;gBAClBC,UAAU,EAAE;cACd,CAAE;cACF5T,KAAK,EAAEgT,aAAc;cACrBa,QAAQ,EAAE,SAAVA,QAAQA,CAAExC,KAAK,EAAI;gBACjB,IAAMrR,KAAK,GAAG,IAAI3C,GAAG,CAAC;kBACpByC,MAAM,EAAE1C,OAAO,CAACiU,KAAK,CAACQ,MAAM,CAAC7R,KAAK,CAAC,CAChCuL,IAAI,CAACpJ,KAAK,CAAC4Q,SAAS,CAAC,CACrBvH,EAAE,CAACrJ,KAAK,CAACmJ,IAAI,CAAC;kBACjBwI,OAAO,EAAEzC,KAAK,CAACQ,MAAM,CAAC7R,KAAK;kBAC3B+T,KAAK,EAAE5R,KAAK,CAAC4Q;gBACf,CAAC,CAAC;gBACFnO,wBAAwB,CAACC,WAAW,EAAE7E,KAAK,CAAC;cAC9C,CAAE;cACFgU,SAAS,EAAE;YAAE,CACd,CACE,CACN;YACDpS,YAAY,CAACqR,YAAY,CAAC;YAC1B3R,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;UACF,KAAK,OAAO;YACV,IAAIiB,OAAO,GAAG1W,OAAO,CAACyH,WAAW,CAAC/E,MAAM,CAAC,CACtCyL,IAAI,CAACpJ,KAAK,CAACmJ,IAAI,CAAC,CAChBE,EAAE,CAAC5I,aAAa,CAAC0I,IAAI,CAAC;YACzB,IAAM2I,WAAW,gBACftY,KAAA,CAAAuX,aAAA;cACE5S,EAAE,EAAC,mBAAmB;cACtB6S,KAAK,EAAE;gBACLC,QAAQ,EAAE,UAAU;gBACpBC,IAAI,EAAElB,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC;gBACxC0S,GAAG,EAAEnB,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC;gBACtC0S,MAAM,EAAE;cACV;YAAE,gBAEF5X,KAAA,CAAAuX,aAAA,CAAC/V,eAAe;cACdgW,KAAK,EAAE;gBACLvS,KAAK,EAAE,GAAG;gBACVC,MAAM,EAAE,EAAE;gBACV2S,SAAS,EAAE,QAAQ;gBACnBC,YAAY,EAAE,EAAE;gBAChBC,QAAQ,EAAE,MAAM;gBAChBC,UAAU,EAAE,MAAM;gBAClBC,UAAU,EAAE;cACd,CAAE;cACF5T,KAAK,EAAE1C,YAAY,CAACwW,OAAO,EAAEtX,gBAAgB,CAAE;cAC/CqX,QAAQ,EAAE,SAAVA,QAAQA,CAAExC,KAAK,EAAI;gBACjB,IAAMrR,KAAK,GAAG,IAAI3C,GAAG,CAAC;kBACpByC,MAAM,EAAE1C,OAAO,CAACiU,KAAK,CAACQ,MAAM,CAAC7R,KAAK,CAAC,CAChCuL,IAAI,CAAC3I,aAAa,CAAC0I,IAAI,CAAC,CACxBE,EAAE,CAACrJ,KAAK,CAACmJ,IAAI,CAAC;kBACjBwI,OAAO,EAAEzC,KAAK,CAACQ,MAAM,CAAC7R,KAAK;kBAC3B+T,KAAK,EAAEnR,aAAa,CAAC0I;gBACvB,CAAC,CAAC;gBACFxE,oBAAoB,CAACjC,WAAW,EAAE7E,KAAK,CAAC;cAC1C,CAAE;cACFgU,SAAS,EAAE;YAAE,CACd,CACE,CACN;YACDpS,YAAY,CAACqS,WAAW,CAAC;YACzB3S,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;UACF,KAAK,cAAc;YACjB,IAAIqB,mBAAmB,GAAG9W,OAAO,CAACyH,WAAW,CAAC/E,MAAM,CAAC,CAClDyL,IAAI,CAACpJ,KAAK,CAACmJ,IAAI,CAAC,CAChBE,EAAE,CAACrJ,KAAK,CAAC4Q,SAAS,CAAC;YACtB,IAAIoB,wBAAwB,MAAA1P,MAAA,CAAMnH,YAAY,CAC5C4W,mBAAmB,EACnB1X,gBACF,CAAC,CAAE;YACH,IAAM4X,uBAAuB,gBAC3BzY,KAAA,CAAAuX,aAAA;cACE5S,EAAE,EAAC,mBAAmB;cACtB6S,KAAK,EAAE;gBACLC,QAAQ,EAAE,UAAU;gBACpBC,IAAI,EAAElB,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC;gBACxC0S,GAAG,EAAEnB,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC;gBACtC0S,MAAM,EAAE;cACV;YAAE,gBAEF5X,KAAA,CAAAuX,aAAA,CAAC/V,eAAe;cACdgW,KAAK,EAAE;gBACLvS,KAAK,EAAE,GAAG;gBACVC,MAAM,EAAE,EAAE;gBACV2S,SAAS,EAAE,QAAQ;gBACnBa,OAAO,EAAE,MAAM;gBACfX,QAAQ,EAAE,MAAM;gBAChBC,UAAU,EAAE,MAAM;gBAClBC,UAAU,EAAE;cACd,CAAE;cACF5T,KAAK,EAAEmU,wBAAyB;cAChCN,QAAQ,EAAE,SAAVA,QAAQA,CAAExC,KAAK,EAAI;gBACjB,IAAMrR,KAAK,GAAG,IAAI3C,GAAG,CAAC;kBACpByC,MAAM,EAAE1C,OAAO,CAACiU,KAAK,CAACQ,MAAM,CAAC7R,KAAK,GAAG,CAAC,CAAC,CACpCuL,IAAI,CAACpJ,KAAK,CAAC4Q,SAAS,CAAC,CACrBvH,EAAE,CAACrJ,KAAK,CAACmJ,IAAI,CAAC;kBACjBwI,OAAO,EAAEzC,KAAK,CAACQ,MAAM,CAAC7R,KAAK,GAAG,CAAC;kBAC/B+T,KAAK,EAAE5R,KAAK,CAAC4Q;gBACf,CAAC,CAAC;gBACF7K,2BAA2B,CAACrD,WAAW,EAAE7E,KAAK,CAAC;cACjD,CAAE;cACFgU,SAAS,EAAE;YAAE,CACd,CACE,CACN;YACDpS,YAAY,CAACwS,uBAAuB,CAAC;YACrC9S,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;UACF,KAAK,eAAe;YAClB,IAAIyB,oBAAoB,GAAGlX,OAAO,CAACyH,WAAW,CAAC/E,MAAM,CAAC,CACnDyL,IAAI,CAACpJ,KAAK,CAACmJ,IAAI,CAAC,CAChBE,EAAE,CAACrJ,KAAK,CAAC4Q,SAAS,CAAC;YACtB,IAAIwB,yBAAyB,MAAA9P,MAAA,CAAM6P,oBAAoB,CAACE,OAAO,CAC7D,CACF,CAAC,CAAE;YACH,IAAMC,wBAAwB,gBAC5B9Y,KAAA,CAAAuX,aAAA;cACE5S,EAAE,EAAC,mBAAmB;cACtB6S,KAAK,EAAE;gBACLC,QAAQ,EAAE,UAAU;gBACpBC,IAAI,EAAElB,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC;gBACxC0S,GAAG,EAAEnB,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC;gBACtC0S,MAAM,EAAE;cACV;YAAE,gBAEF5X,KAAA,CAAAuX,aAAA,CAAC/V,eAAe;cACdgW,KAAK,EAAE;gBACLvS,KAAK,EAAE,GAAG;gBACVC,MAAM,EAAE,EAAE;gBACV2S,SAAS,EAAE,QAAQ;gBACnBC,YAAY,EAAE,EAAE;gBAChBC,QAAQ,EAAE,MAAM;gBAChBC,UAAU,EAAE,MAAM;gBAClBC,UAAU,EAAE;cACd,CAAE;cACF5T,KAAK,EAAEuU,yBAA0B;cACjCV,QAAQ,EAAE,SAAVA,QAAQA,CAAExC,KAAK,EAAI;gBACjB,IAAMrR,KAAK,GAAG,IAAI3C,GAAG,CAAC;kBACpByC,MAAM,EAAE1C,OAAO,CAACiU,KAAK,CAACQ,MAAM,CAAC7R,KAAK,CAAC,CAChCuL,IAAI,CAACpJ,KAAK,CAAC4Q,SAAS,CAAC,CACrBvH,EAAE,CAACrJ,KAAK,CAACmJ,IAAI,CAAC;kBACjBwI,OAAO,EAAEzC,KAAK,CAACQ,MAAM,CAAC7R,KAAK;kBAC3B+T,KAAK,EAAE5R,KAAK,CAAC4Q;gBACf,CAAC,CAAC;gBACF3K,4BAA4B,CAACvD,WAAW,EAAE7E,KAAK,CAAC;cAClD,CAAE;cACFgU,SAAS,EAAE;YAAE,CACd,CACE,CACN;YACDpS,YAAY,CAAC6S,wBAAwB,CAAC;YACtCnT,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;UACF,KAAK,WAAW;YACd,IAAI6B,gBAAgB,GAAGtX,OAAO,CAACyH,WAAW,CAAC/E,MAAM,CAAC,CAC/CyL,IAAI,CAACpJ,KAAK,CAACmJ,IAAI,CAAC,CAChBE,EAAE,CAACrJ,KAAK,CAAC4Q,SAAS,CAAC;YACtB,IAAI4B,qBAAqB,MAAAlQ,MAAA,CAAMnH,YAAY,CACzCoX,gBAAgB,EAChBlY,gBACF,CAAC,CAAE;YACH,IAAMoY,oBAAoB,gBACxBjZ,KAAA,CAAAuX,aAAA;cACE5S,EAAE,EAAC,mBAAmB;cACtB6S,KAAK,EAAE;gBACLC,QAAQ,EAAE,UAAU;gBACpBC,IAAI,EAAElB,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC;gBACxC0S,GAAG,EAAEnB,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC;gBACtC0S,MAAM,EAAE;cACV;YAAE,gBAEF5X,KAAA,CAAAuX,aAAA,CAAC/V,eAAe;cACdgW,KAAK,EAAE;gBACLvS,KAAK,EAAE,GAAG;gBACVC,MAAM,EAAE,EAAE;gBACV2S,SAAS,EAAE,QAAQ;gBACnBC,YAAY,EAAE,EAAE;gBAChBC,QAAQ,EAAE,MAAM;gBAChBC,UAAU,EAAE,MAAM;gBAClBC,UAAU,EAAE;cACd,CAAE;cACF5T,KAAK,EAAE2U,qBAAsB;cAC7Bd,QAAQ,EAAE,SAAVA,QAAQA,CAAExC,KAAK,EAAI;gBACjB,IAAMrR,KAAK,GAAG,IAAI3C,GAAG,CAAC;kBACpByC,MAAM,EAAE1C,OAAO,CAACiU,KAAK,CAACQ,MAAM,CAAC7R,KAAK,CAAC,CAChCuL,IAAI,CAACpJ,KAAK,CAAC4Q,SAAS,CAAC,CACrBvH,EAAE,CAACrJ,KAAK,CAACmJ,IAAI,CAAC;kBACjBwI,OAAO,EAAEzC,KAAK,CAACQ,MAAM,CAAC7R,KAAK;kBAC3B+T,KAAK,EAAE5R,KAAK,CAAC4Q;gBACf,CAAC,CAAC;gBACFtK,wBAAwB,CAAC5D,WAAW,EAAE7E,KAAK,CAAC;cAC9C,CAAE;cACFgU,SAAS,EAAE;YAAE,CACd,CACE,CACN;YACDpS,YAAY,CAACgT,oBAAoB,CAAC;YAClCtT,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;UACF,KAAK,gBAAgB;YACnB,IAAIgC,qBAAqB,GAAGzX,OAAO,CAACyH,WAAW,CAAC/E,MAAM,CAAC,CACpDyL,IAAI,CAACpJ,KAAK,CAACmJ,IAAI,CAAC,CAChBE,EAAE,CAACrJ,KAAK,CAAC4Q,SAAS,CAAC;YACtB,IAAI+B,0BAA0B,MAAArQ,MAAA,CAAMoQ,qBAAqB,CAACL,OAAO,CAC/D,CACF,CAAC,CAAE;YACH,IAAMO,yBAAyB,gBAC7BpZ,KAAA,CAAAuX,aAAA;cACE5S,EAAE,EAAC,mBAAmB;cACtB6S,KAAK,EAAE;gBACLC,QAAQ,EAAE,UAAU;gBACpBC,IAAI,EAAElB,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC;gBACxC0S,GAAG,EAAEnB,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC;gBACtC0S,MAAM,EAAE;cACV;YAAE,gBAEF5X,KAAA,CAAAuX,aAAA,CAAC/V,eAAe;cACdgW,KAAK,EAAE;gBACLvS,KAAK,EAAE,GAAG;gBACVC,MAAM,EAAE,EAAE;gBACV2S,SAAS,EAAE,QAAQ;gBACnBC,YAAY,EAAE,EAAE;gBAChBC,QAAQ,EAAE,MAAM;gBAChBC,UAAU,EAAE,MAAM;gBAClBC,UAAU,EAAE;cACd,CAAE;cACF5T,KAAK,EAAE8U,0BAA2B;cAClCjB,QAAQ,EAAE,SAAVA,QAAQA,CAAExC,KAAK,EAAI;gBACjB,IAAMrR,KAAK,GAAG,IAAI3C,GAAG,CAAC;kBACpByC,MAAM,EAAE1C,OAAO,CAACiU,KAAK,CAACQ,MAAM,CAAC7R,KAAK,CAAC,CAChCuL,IAAI,CAACpJ,KAAK,CAAC4Q,SAAS,CAAC,CACrBvH,EAAE,CAACrJ,KAAK,CAACmJ,IAAI,CAAC;kBACjBwI,OAAO,EAAEzC,KAAK,CAACQ,MAAM,CAAC7R,KAAK;kBAC3B+T,KAAK,EAAE5R,KAAK,CAAC4Q;gBACf,CAAC,CAAC;gBACF1K,6BAA6B,CAACxD,WAAW,EAAE7E,KAAK,CAAC;cACnD,CAAE;cACFgU,SAAS,EAAE;YAAE,CACd,CACE,CACN;YACDpS,YAAY,CAACmT,yBAAyB,CAAC;YACvCzT,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;UACF,KAAK,aAAa;YAChB,IAAImC,QAAQ,GAAGnQ,WAAW,CAAC/E,MAAM;YACjC,IAAMmV,YAAY,gBAChBtZ,KAAA,CAAAuX,aAAA;cACE5S,EAAE,EAAC,mBAAmB;cACtB6S,KAAK,EAAE;gBACLC,QAAQ,EAAE,UAAU;gBACpBC,IAAI,EAAElB,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC;gBACxC0S,GAAG,EAAEnB,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC;gBACtC0S,MAAM,EAAE;cACV;YAAE,gBAEF5X,KAAA,CAAAuX,aAAA,CAAC/V,eAAe;cACdgW,KAAK,EAAE;gBACLvS,KAAK,EAAE,EAAE;gBACTC,MAAM,EAAE;cACV,CAAE;cACFb,KAAK,EAAEgV,QAAS;cAChBnB,QAAQ,EAAE,SAAVA,QAAQA,CAAExC,KAAK,EAAI;gBACjB,IAAMrR,KAAK,GAAG,IAAI3C,GAAG,CAAC;kBACpByC,MAAM,EAAE1C,OAAO,CAACiU,KAAK,CAACQ,MAAM,CAAC7R,KAAK,CAAC,CAChCuL,IAAI,CAACpJ,KAAK,CAAC4Q,SAAS,CAAC,CACrBvH,EAAE,CAACrJ,KAAK,CAACmJ,IAAI,CAAC;kBACjBwI,OAAO,EAAEzC,KAAK,CAACQ,MAAM,CAAC7R,KAAK;kBAC3B+T,KAAK,EAAE5R,KAAK,CAAC4Q;gBACf,CAAC,CAAC;gBACFhN,0BAA0B,CAAClB,WAAW,EAAE7E,KAAK,CAAC;cAChD,CAAE;cACFgU,SAAS,EAAE;YAAE,CACd,CACE,CACN;YACDpS,YAAY,CAACqT,YAAY,CAAC;YAC1B3T,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;UACF,KAAK,MAAM;YACTvR,cAAc,CAACuR,WAAW,CAAC,CAAC;YAC5B;QACJ;QACA;MAEF,KAAKtW,SAAS,CAAC+C,yBAAyB;QACtCqD,YAAY,CAAC,IAAI,CAAC;QAClB1B,YAAY,CAACiU,gBAAgB,CAACtR,OAAO,EAAEN,CAAC,EAAEC,CAAC,EAAE5C,KAAK,CAACgG,QAAQ,CAAC;QAC5D;MAEF,KAAKpK,SAAS,CAACoC,iBAAiB;QAC9B;QACA;QACA;QACA;QACA;QACA;QACA;QACAgE,YAAY,CAAC,IAAI,CAAC;QAClB,IAAIsF,MAAM,GAAGtH,KAAK,CACfmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CACxD4F,KAAK,CAAC,CAAC;QACV,IAAIX,WAAW,GAAGlI,KAAK,CACpBmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAEF,OAAO,EAAE,OAAO,EAAEqE,MAAM,CAAC,CAAC,CACpDhD,IAAI,CAAC,CAAC;QACT;QACA,IAAI2D,MAAM,GAAG,EAAE;QACfD,eAAe,CAACC,MAAM,EAAEC,WAAW,EAAE9F,QAAQ,EAAE+F,KAAK,CAAC;QACrDvG,eAAe,CAACqG,MAAM,CAAC;QACvB,IAAIuM,QAAQ,GAAG7L,WAAW,CAACvG,QAAQ,EAAEO,CAAC,EAAEC,CAAC,EAAE,iBAAiB,CAAC;QAC7DtC,YAAY,CAACmU,cAAc,CACzBD,QAAQ,CAAC7R,CAAC,EACV6R,QAAQ,CAAC5R,CAAC,EACVqF,MAAM,EACNjI,KAAK,CAACgG,QACR,CAAC;QACD1F,YAAY,CAACiU,gBAAgB,CAC3BtR,OAAO,EACPuR,QAAQ,CAAC7R,CAAC,EACV6R,QAAQ,CAAC5R,CAAC,EACV5C,KAAK,CAACgG,QACR,CAAC;QACD;MAEF,KAAKpK,SAAS,CAACqC,iBAAiB;QAC9BsC,YAAY,CAACmU,cAAc,CAACzR,OAAO,EAAEN,CAAC,EAAEC,CAAC,CAAC;QAC1C;MAEF,KAAKhH,SAAS,CAACsC,iBAAiB;QAC9BuC,YAAY,CAACkU,cAAc,CAAC1R,OAAO,EAAEjG,QAAQ,CAAC2F,CAAC,EAAE3F,QAAQ,CAAC4F,CAAC,CAAC;QAC5D;MAEF,KAAKhH,SAAS,CAACyC,kBAAkB;QAC/BiC,YAAY,CAACsU,eAAe,CAACjS,CAAC,EAAEC,CAAC,EAAEjB,YAAY,EAAE3B,KAAK,CAACgG,QAAQ,CAAC;QAChE;MAEF,KAAKpK,SAAS,CAAC0C,oBAAoB;QACjC,IAAI8L,MAAM,GAAGzB,WAAW,CAACvG,QAAQ,EAAEO,CAAC,EAAEC,CAAC,EAAE,iBAAiB,CAAC;QAC3DpC,eAAe,CAAC0F,iBAAiB,CAACkE,MAAM,CAACzH,CAAC,EAAEyH,MAAM,CAACxH,CAAC,EAAE5C,KAAK,CAACgG,QAAQ,CAAC;QACrE;MAEF,KAAKpK,SAAS,CAACwC,kBAAkB;QAC/BqC,YAAY,CAACoU,aAAa,CAAC,CAAC;QAC5BlU,cAAc,CAACkR,OAAO,CAAC5V,SAAS,CAAC;QACjC;MAEF,KAAKL,SAAS,CAACuC,kBAAkB;QAC/BoC,YAAY,CAACsH,eAAe,CAAClF,CAAC,EAAEC,CAAC,CAAC;QAClC;MAEF,KAAKhH,SAAS,CAAC8C,kBAAkB;QAC/B+B,YAAY,CAACqU,eAAe,CAACnS,CAAC,EAAEC,CAAC,CAAC;QAClC;IACJ;IAEA8N,KAAK,CAACF,eAAe,CAAC,CAAC;EACzB,CAAC;EAED,IAAIuE,aAAa,GAAG,SAAhBA,aAAaA,CAAG1V,KAAK,EAAI;IAC3B,IAAIvC,KAAK,EAAE;IACX,IAAIkY,UAAU,GAAGC,QAAQ,CAAC,CAAC5V,KAAK,CAACkN,CAAC,GAAG,GAAG,IAAI3Q,SAAS,CAACsZ,aAAa,CAAC;IACpE,IAAIF,UAAU,GAAG,GAAG,EAAE;IACtB,IAAIA,UAAU,GAAG,CAAC,IAAIG,MAAM,CAACC,KAAK,CAACJ,UAAU,CAAC,EAAE;IAEhD,IACGhU,SAAS,KAAK,IAAI,IAAI3B,KAAK,CAACgW,MAAM,IAAIhW,KAAK,CAACiW,MAAM,IACnDjW,KAAK,CAACkW,UAAU,KAAK,MAAM,EAC3B;MACA,IAAIC,UAAU,GAAGC,QAAQ,CAACC,cAAc,CAAC,mBAAmB,CAAC;QAC3DC,KAAK;MACP,IAAIvU,WAAW,KAAK,IAAI,EAAE;QACxBuU,KAAK,GAAGF,QAAQ,CAACC,cAAc,CAACtU,WAAW,CAAC;MAC9C;MACA,IAAIoQ,IAAI;MACR,IAAImE,KAAK,IAAIH,UAAU,EAAE;QACvBhE,IAAI,GAAGmE,KAAK,CAAClE,qBAAqB,CAAC,CAAC;QACpC;QACA;QACA+D,UAAU,CAAChD,KAAK,CAACE,IAAI,MAAA5O,MAAA,CAAM0N,IAAI,CAACkB,IAAI,GAAG,CAAC,GAAG,GAAGlB,IAAI,CAACvR,KAAK,IAAI,CAAC,OAAI;QACjEuV,UAAU,CAAChD,KAAK,CAACG,GAAG,MAAA7O,MAAA,CAAM0N,IAAI,CAACmB,GAAG,GAAG,CAAC,EAAE,GAAGnB,IAAI,CAACtR,MAAM,IAAI,CAAC,OAAI;MACjE;IACF;IAEA,IACEb,KAAK,CAACuW,CAAC,IAAI,EAAE,IACbvW,KAAK,CAACuW,CAAC,GAAGvW,KAAK,CAACkN,CAAC,GAAGlN,KAAK,CAACwW,QAAQ,GAAG,EAAE,IAAIxW,KAAK,CAACyW,WAAW,IAC5DzW,KAAK,CAAC0W,CAAC,IAAI,EAAE,IACb1W,KAAK,CAAC0W,CAAC,GAAG1W,KAAK,CAAC2W,CAAC,GAAG3W,KAAK,CAAC4W,SAAS,GAAG,EAAE,IAAI5W,KAAK,CAAC6W,YAAY,EAC9D;MACA;AACN;AACA;AACA;AACA;AACA;AACA;MACMvV,cAAc,CAACwV,eAAe,CAAC9W,KAAK,CAACkN,CAAC,CAAC;MACvC,OAAOlM,eAAe,CAAC+V,gBAAgB,CAAC/W,KAAK,CAAC;IAChD;EACF,CAAC;EAED,IAAIgX,YAAY,GAAG,SAAfA,YAAYA,CAAGC,IAAI,EAAI;IACzB,QAAQA,IAAI;MACV,KAAK/a,SAAS;QACZoF,cAAc,CAAC4V,cAAc,CAAC,CAAC;QAC/B;MAEF,KAAK/a,QAAQ;QACX6E,eAAe,CAACmW,aAAa,CAAC,CAAC;QAC/B;MAEF,KAAK/a,YAAY;QACf4E,eAAe,CAACoW,gBAAgB,CAAC,CAAC;QAClC;MAEF,KAAK/a,aAAa;QAChB2E,eAAe,CAACqW,iBAAiB,CAAC,CAAC;QACnC;IACJ;EACF,CAAC;EAED,IAAIC,MAAM,GAAG,SAATA,MAAMA,CAAGtX,KAAK,EAAI;IACpB;IACA;IACA;IACA;EAAA,CACD;EAED,IAAAuX,eAAA,GAAoC5W,KAAK,CAACmC,GAAG,CAAC,UAAU,CAAC,CAACmC,IAAI,CAAC,CAAC;IAA1DsR,CAAC,GAAAgB,eAAA,CAADhB,CAAC;IAAEG,CAAC,GAAAa,eAAA,CAADb,CAAC;IAAEF,QAAQ,GAAAe,eAAA,CAARf,QAAQ;IAAEI,SAAS,GAAAW,eAAA,CAATX,SAAS;EAE/B,IAAIY,SAAS,GAAG,CAAC,CAAC,CAAC;EACnB,IAAIC,kBAAkB,GAAG,GAAG;EAC5B,IAAIC,YAAY,GAAG3a,WAAW,CAAC4a,aAAa,CAACC,IAAI;EACjD,IAAIC,YAAY,GAAG9a,WAAW,CAAC+a,MAAM,CAACC,KAAK;EAC3C,IAAIC,YAAY,GAAGjb,WAAW,CAACkb,eAAe,CAACL,IAAI;EACnD,IAAIM,UAAU,GAAG1B,QAAQ,IAAI7V,KAAK,CAACmD,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;EAC5D,IAAIqU,WAAW,GAAGvB,SAAS,IAAIjW,KAAK,CAACmD,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;EAC/D,IAAIsU,SAAS,GAAGzX,KAAK,CAACrE,IAAI,IAAI,CAAC;EAC/B,IAAI+b,cAAc,GAAG/S,IAAI,CAACgT,IAAI,CAACJ,UAAU,GAAGT,kBAAkB,CAAC,GAAG,CAAC;EACnE,IAAIc,cAAc,GAAGjT,IAAI,CAACgT,IAAI,CAACH,WAAW,GAAGV,kBAAkB,CAAC,GAAG,CAAC;EACpE,oBACE9b,KAAA,CAAAuX,aAAA,cACGvR,SAAS,eACVhG,KAAA,CAAAuX,aAAA;IACEC,KAAK,EAAE;MACLqF,MAAM,EAAE,CAAC;MACTnE,OAAO,EAAE,CAAC;MACVoE,OAAO,EAAE,MAAM;MACfC,UAAU,EAAE,GAAG;MACfC,aAAa,EAAE,GAAG;MAClBC,mBAAmB,KAAAnU,MAAA,CAAK+S,SAAS,SAAA/S,MAAA,CAAM7D,KAAK,GAAG4W,SAAS,OAAI;MAC5DqB,gBAAgB,KAAApU,MAAA,CAAK+S,SAAS,SAAA/S,MAAA,CAAM5D,MAAM,GAAG2W,SAAS,OAAI;MAC1DpE,QAAQ,EAAE;IACZ;EAAE,gBAEFzX,KAAA,CAAAuX,aAAA;IACEC,KAAK,EAAE;MAAE2F,UAAU,EAAE,CAAC;MAAEC,OAAO,EAAE,CAAC;MAAEC,eAAe,EAAEtB;IAAa;EAAE,CAChE,CAAC,eACP/b,KAAA,CAAAuX,aAAA;IACEC,KAAK,EAAE;MACL4F,OAAO,EAAE,CAAC;MACVD,UAAU,EAAE,CAAC;MACb1F,QAAQ,EAAE,UAAU;MACpB6F,QAAQ,EAAE;IACZ,CAAE;IACF3Y,EAAE,EAAC;EAAQ,GAEV4X,UAAU,gBACTvc,KAAA,CAAAuX,aAAA,CAAClW,MAAM;IACLkc,aAAa,EAAEzB,kBAAmB;IAClCnb,IAAI,EAAE8b,SAAU;IAChBe,MAAM,EAAExY,KAAK,CAACyY,KAAK,CAACtW,GAAG,CAAC,GAAG,CAAE;IAC7BlC,KAAK,EAAEA,KAAK,GAAG4W,SAAU;IACzB6B,gBAAgB,EAAE9C,CAAC,IAAI,CAAE;IACzByC,eAAe,EAAEtB,YAAa;IAC9B4B,SAAS,EAAEzB,YAAa;IACxB0B,WAAW,EAAEvB,YAAa;IAC1BwB,mBAAmB,EAAEnB,cAAe;IACpCoB,mBAAmB,EAAE;EAAE,CACxB,CAAC,GACA,IACD,CAAC,eACN9d,KAAA,CAAAuX,aAAA;IACEC,KAAK,EAAE;MACL2F,UAAU,EAAE,CAAC;MACbC,OAAO,EAAE,CAAC;MACV3F,QAAQ,EAAE,UAAU;MACpB6F,QAAQ,EAAE;IACZ,CAAE;IACF3Y,EAAE,EAAC;EAAQ,GAEV6X,WAAW,gBACVxc,KAAA,CAAAuX,aAAA,CAACjW,MAAM;IACLic,aAAa,EAAEzB,kBAAmB;IAClCnb,IAAI,EAAE8b,SAAU;IAChBsB,MAAM,EAAE/Y,KAAK,CAACyY,KAAK,CAACtW,GAAG,CAAC,GAAG,CAAE;IAC7BjC,MAAM,EAAEA,MAAM,GAAG2W,SAAU;IAC3BmC,eAAe,EAAExB,WAAW,GAAGC,SAAS,GAAG1B,CAAC,IAAI,CAAE;IAClDsC,eAAe,EAAEtB,YAAa;IAC9B4B,SAAS,EAAEzB,YAAa;IACxB0B,WAAW,EAAEvB,YAAa;IAC1BwB,mBAAmB,EAAEjB,cAAe;IACpCkB,mBAAmB,EAAE;EAAE,CACxB,CAAC,GACA,IACD,CAAC,eACN9d,KAAA,CAAAuX,aAAA,CAAClX,eAAe;IACdmX,KAAK,EAAE;MAAE2F,UAAU,EAAE,CAAC;MAAEC,OAAO,EAAE;IAAE,CAAE;IACrCnY,KAAK,EAAEA,KAAK,GAAG4W,SAAU;IACzB3W,MAAM,EAAEA,MAAM,GAAG2W,SAAU;IAC3BxX,KAAK,EAAEkC,QAAQ,CAAC3E,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG2E,QAAQ,CAAC+C,IAAI,CAAC,CAAE;IACnDyQ,aAAa,EAAEA,aAAc;IAC7BuB,IAAI,EAAE5Y,SAAS,CAACC,IAAI,CAAE;IACtB0Y,YAAY,EAAEA,YAAa;IAC3B4C,aAAa,EAAEra,kBAAkB,CAACjB,IAAI,CAAE;IACxC8S,WAAW,EAAEA,WAAY;IACzBpC,WAAW,EAAEA,WAAY;IACzBkD,SAAS,EAAEA,SAAU;IACrB2H,iBAAiB,EAAC,MAAM;IACxBC,eAAe,EAAC,MAAM;IACtBC,kBAAkB,EAAE,KAAM;IAC1BC,kCAAkC,EAAE,IAAK;IACzCC,GAAG,EAAEhY;EAAO,gBAEZtG,KAAA,CAAAuX,aAAA;IAAKtS,KAAK,EAAEuB,KAAK,CAACvB,KAAM;IAACC,MAAM,EAAEsB,KAAK,CAACtB;EAAO,gBAC5ClF,KAAA,CAAAuX,aAAA,4BACEvX,KAAA,CAAAuX,aAAA;IACE5S,EAAE,EAAC,cAAc;IACjB4Z,YAAY,EAAC,gBAAgB;IAC7BtZ,KAAK,EAAC,GAAG;IACTC,MAAM,EAAC,GAAG;IACVsZ,IAAI,EAAC;EAAM,gBAEXxe,KAAA,CAAAuX,aAAA;IAAM5P,CAAC,EAAC,GAAG;IAACC,CAAC,EAAC,GAAG;IAAC3C,KAAK,EAAC,GAAG;IAACC,MAAM,EAAC,GAAG;IAACsZ,IAAI,EAAC;EAAM,CAAE,CAAC,eACrDxe,KAAA,CAAAuX,aAAA;IACEyD,CAAC,EAAC,mCAAmC;IACrCxD,KAAK,EAAE;MAAEiH,MAAM,EAAE,SAAS;MAAEC,WAAW,EAAE;IAAE;EAAE,CAC9C,CACM,CACL,CAAC,eACP1e,KAAA,CAAAuX,aAAA;IACEC,KAAK,EAAEmH,MAAM,CAACC,MAAM,CAACpb,WAAW,CAACb,IAAI,CAAC,EAAEI,kBAAkB,CAACJ,IAAI,CAAC;EAAE,gBAElE3C,KAAA,CAAAuX,aAAA,CAACpW,KAAK;IACJ6D,KAAK,EAAEA,KAAM;IACbY,OAAO,EAAEA,OAAQ;IACjBP,eAAe,EAAEA,eAAgB;IACjCsB,YAAY,EAAEA;EAAa,CAC5B,CACA,CACA,CACU,CACd,CACF,CAAC;AAEV;AAEA9B,QAAQ,CAACga,SAAS,GAAG;EACnB7Z,KAAK,EAAE5E,SAAS,CAAC0e,MAAM,CAACC,UAAU;EAClC9Z,KAAK,EAAE7E,SAAS,CAAC4e,MAAM,CAACD,UAAU;EAClC7Z,MAAM,EAAE9E,SAAS,CAAC4e,MAAM,CAACD;AAC3B,CAAC;AAEDla,QAAQ,CAACoa,YAAY,GAAG;EACtB5Z,eAAe,EAAEjF,SAAS,CAAC0e,MAAM,CAACC,UAAU;EAC5CzZ,YAAY,EAAElF,SAAS,CAAC0e,MAAM,CAACC,UAAU;EACzCxZ,YAAY,EAAEnF,SAAS,CAAC0e,MAAM,CAACC,UAAU;EACzCvZ,eAAe,EAAEpF,SAAS,CAAC0e,MAAM,CAACC,UAAU;EAC5CtZ,YAAY,EAAErF,SAAS,CAAC0e,MAAM,CAACC,UAAU;EACzCrZ,WAAW,EAAEtF,SAAS,CAAC0e,MAAM,CAACC,UAAU;EACxCpZ,cAAc,EAAEvF,SAAS,CAAC0e,MAAM,CAACC,UAAU;EAC3CnZ,OAAO,EAAExF,SAAS,CAAC0e,MAAM,CAACC;AAC5B,CAAC","ignoreList":[]}