angular-three-soba 2.0.0-beta.4 → 2.0.0-beta.41

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 (323) hide show
  1. package/abstractions/billboard/billboard.d.ts +12 -8
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +24 -12
  4. package/abstractions/grid/grid.d.ts +42 -51
  5. package/abstractions/index.d.ts +1 -7
  6. package/abstractions/text/text.d.ts +10 -4
  7. package/abstractions/text-3d/text-3d.d.ts +51 -41
  8. package/cameras/camera/camera-content.d.ts +1 -1
  9. package/cameras/camera/camera.d.ts +16 -13
  10. package/cameras/cube-camera/cube-camera.d.ts +49 -23
  11. package/cameras/index.d.ts +0 -1
  12. package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
  13. package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
  14. package/controls/orbit-controls/orbit-controls.d.ts +34 -15
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +140 -110
  19. package/esm2022/abstractions/index.mjs +2 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -122
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
  22. package/esm2022/cameras/camera/camera-content.mjs +6 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +120 -100
  25. package/esm2022/cameras/index.mjs +1 -2
  26. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
  27. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
  28. package/esm2022/controls/orbit-controls/orbit-controls.mjs +109 -85
  29. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  30. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +198 -0
  31. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
  32. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
  33. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +151 -0
  34. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
  35. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
  36. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  37. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
  38. package/esm2022/gizmos/index.mjs +4 -0
  39. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +14 -9
  40. package/esm2022/loaders/loader/loader.mjs +92 -87
  41. package/esm2022/loaders/progress/progress.mjs +31 -30
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +20 -15
  43. package/esm2022/materials/index.mjs +2 -1
  44. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  45. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  46. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
  47. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +164 -144
  48. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  49. package/esm2022/materials/point-material/point-material.mjs +50 -0
  50. package/esm2022/misc/animations/animations.mjs +28 -23
  51. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  52. package/esm2022/misc/caustics/caustics.mjs +387 -0
  53. package/esm2022/misc/decal/decal.mjs +187 -0
  54. package/esm2022/misc/depth-buffer/depth-buffer.mjs +41 -37
  55. package/esm2022/misc/example/example.mjs +161 -0
  56. package/esm2022/misc/fbo/fbo.mjs +42 -36
  57. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  58. package/esm2022/misc/html/html.mjs +305 -0
  59. package/esm2022/misc/index.mjs +10 -1
  60. package/esm2022/misc/sampler/sampler.mjs +132 -0
  61. package/esm2022/misc/shadow/shadow.mjs +111 -0
  62. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  63. package/esm2022/misc/trail/trail.mjs +204 -0
  64. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  65. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  66. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  67. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  68. package/esm2022/modifiers/index.mjs +2 -0
  69. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  70. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  71. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  72. package/esm2022/performances/index.mjs +8 -0
  73. package/esm2022/performances/instances/instances.mjs +221 -0
  74. package/esm2022/performances/instances/position-mesh.mjs +52 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +327 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +183 -0
  80. package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
  81. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  82. package/esm2022/shaders/caustics/caustics-projection-material.mjs +32 -0
  83. package/esm2022/shaders/convolution-material/convolution-material.mjs +3 -2
  84. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  85. package/esm2022/shaders/grid-material/grid-material.mjs +30 -14
  86. package/esm2022/shaders/index.mjs +5 -3
  87. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  88. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
  89. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +3 -2
  90. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +7 -4
  91. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  92. package/esm2022/shaders/shader-material/shader-material.mjs +3 -5
  93. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +18 -25
  94. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  95. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +8 -7
  96. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  97. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  98. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +161 -176
  99. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +8 -8
  100. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +129 -129
  101. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  102. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  103. package/esm2022/staging/bounds/bounds.mjs +145 -143
  104. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  105. package/esm2022/staging/center/center.mjs +129 -112
  106. package/esm2022/staging/cloud/cloud.mjs +118 -124
  107. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -136
  108. package/esm2022/staging/environment/assets.mjs +12 -12
  109. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  110. package/esm2022/staging/environment/environment-ground.mjs +17 -19
  111. package/esm2022/staging/environment/environment-input.mjs +98 -85
  112. package/esm2022/staging/environment/environment-map.mjs +33 -33
  113. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  114. package/esm2022/staging/environment/environment.mjs +34 -51
  115. package/esm2022/staging/environment/utils.mjs +40 -17
  116. package/esm2022/staging/float/float.mjs +70 -58
  117. package/esm2022/staging/index.mjs +7 -3
  118. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  119. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  120. package/esm2022/staging/sky/sky.mjs +85 -80
  121. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  122. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  123. package/esm2022/staging/spot-light/shadow-mesh.mjs +267 -0
  124. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  125. package/esm2022/staging/spot-light/spot-light.mjs +51 -63
  126. package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
  127. package/esm2022/staging/stage/stage.mjs +305 -290
  128. package/esm2022/staging/stars/stars.mjs +101 -102
  129. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  130. package/esm2022/staging/wireframe/wireframe.mjs +228 -0
  131. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  132. package/esm2022/utils/constants.mjs +3 -0
  133. package/esm2022/utils/content/content.mjs +15 -0
  134. package/esm2022/utils/index.mjs +3 -0
  135. package/fesm2022/angular-three-soba-abstractions.mjs +504 -2079
  136. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  137. package/fesm2022/angular-three-soba-cameras.mjs +293 -260
  138. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  139. package/fesm2022/angular-three-soba-controls.mjs +108 -83
  140. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  141. package/fesm2022/angular-three-soba-gizmos.mjs +1045 -0
  142. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  143. package/fesm2022/angular-three-soba-loaders.mjs +148 -132
  144. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  145. package/fesm2022/angular-three-soba-materials.mjs +656 -588
  146. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  147. package/fesm2022/angular-three-soba-misc.mjs +2202 -99
  148. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  149. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  150. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  151. package/fesm2022/angular-three-soba-performances.mjs +957 -0
  152. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  153. package/fesm2022/angular-three-soba-shaders.mjs +508 -269
  154. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  155. package/fesm2022/angular-three-soba-staging.mjs +2910 -2573
  156. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  157. package/fesm2022/angular-three-soba-utils.mjs +25 -0
  158. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  159. package/gizmos/README.md +3 -0
  160. package/gizmos/gizmo-helper/gizmo-helper.d.ts +73 -0
  161. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
  162. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
  163. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
  164. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
  165. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
  166. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
  167. package/gizmos/index.d.ts +3 -0
  168. package/loaders/gltf-loader/gltf-loader.d.ts +15 -4
  169. package/loaders/loader/loader.d.ts +19 -17
  170. package/loaders/progress/progress.d.ts +1 -1
  171. package/loaders/texture-loader/texture-loader.d.ts +8 -3
  172. package/materials/index.d.ts +1 -0
  173. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  174. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  175. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  176. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  177. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  178. package/materials/point-material/point-material.d.ts +24 -0
  179. package/metadata.json +1 -0
  180. package/misc/animations/animations.d.ts +6 -4
  181. package/misc/caustics/caustics.d.ts +87 -0
  182. package/misc/decal/decal.d.ts +49 -0
  183. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  184. package/misc/example/example.d.ts +85 -0
  185. package/misc/fbo/fbo.d.ts +2 -2
  186. package/misc/html/html-wrapper.d.ts +559 -0
  187. package/misc/html/html.d.ts +218 -0
  188. package/misc/index.d.ts +9 -0
  189. package/misc/sampler/sampler.d.ts +67 -0
  190. package/misc/shadow/shadow.d.ts +37 -0
  191. package/misc/stats-gl/stats-gl.d.ts +24 -0
  192. package/misc/trail/trail.d.ts +57 -0
  193. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  194. package/misc/trail-texture/trail-texture.d.ts +50 -0
  195. package/modifiers/README.md +3 -0
  196. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  197. package/modifiers/index.d.ts +1 -0
  198. package/package.json +42 -24
  199. package/performances/README.md +3 -0
  200. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  201. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  202. package/performances/index.d.ts +7 -0
  203. package/performances/instances/instances.d.ts +83 -0
  204. package/{performance → performances}/instances/position-mesh.d.ts +1 -1
  205. package/performances/points/points-input.d.ts +32 -0
  206. package/performances/points/points.d.ts +96 -0
  207. package/performances/points/position-point.d.ts +11 -0
  208. package/performances/segments/segment-object.d.ts +7 -0
  209. package/performances/segments/segments.d.ts +128 -0
  210. package/shaders/grid-material/grid-material.d.ts +33 -0
  211. package/shaders/index.d.ts +4 -2
  212. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +173 -6
  213. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  214. package/shaders/shader-material/shader-material.d.ts +2 -2
  215. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  216. package/shaders/sparkles-material/sparkles-material.d.ts +13 -0
  217. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  218. package/shaders/star-field-material/star-field-material.d.ts +9 -0
  219. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  220. package/staging/accumulative-shadows/accumulative-shadows.d.ts +93 -39
  221. package/staging/accumulative-shadows/randomized-lights.d.ts +41 -28
  222. package/staging/backdrop/backdrop.d.ts +30 -0
  223. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  224. package/staging/bounds/bounds.d.ts +105 -25
  225. package/staging/camera-shake/camera-shake.d.ts +30 -19
  226. package/staging/center/center.d.ts +43 -35
  227. package/staging/cloud/cloud.d.ts +27 -24
  228. package/staging/contact-shadows/contact-shadows.d.ts +43 -30
  229. package/staging/environment/assets.d.ts +9 -9
  230. package/staging/environment/environment-cube.d.ts +9 -5
  231. package/staging/environment/environment-ground.d.ts +7 -7
  232. package/staging/environment/environment-input.d.ts +38 -38
  233. package/staging/environment/environment-map.d.ts +10 -5
  234. package/staging/environment/environment-portal.d.ts +10 -5
  235. package/staging/environment/environment.d.ts +0 -4
  236. package/staging/environment/utils.d.ts +2 -2
  237. package/staging/float/float.d.ts +15 -11
  238. package/staging/index.d.ts +6 -2
  239. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  240. package/staging/normal-texture/normal-texture.d.ts +16 -0
  241. package/staging/sky/sky.d.ts +28 -21
  242. package/staging/sparkles/sparkles.d.ts +36 -22
  243. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  244. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  245. package/staging/spot-light/spot-light-input.d.ts +25 -25
  246. package/staging/spot-light/spot-light.d.ts +35 -15
  247. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  248. package/staging/stage/stage.d.ts +89 -65
  249. package/staging/stars/stars.d.ts +28 -17
  250. package/staging/wireframe/wireframe-input.d.ts +65 -0
  251. package/staging/wireframe/wireframe.d.ts +28 -0
  252. package/utils/README.md +3 -0
  253. package/utils/constants.d.ts +1 -0
  254. package/utils/content/content.d.ts +8 -0
  255. package/utils/index.d.ts +2 -0
  256. package/web-types.json +1 -0
  257. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  258. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  259. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  260. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  261. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  262. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  263. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  264. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  265. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  266. package/abstractions/line/line-input.d.ts +0 -42
  267. package/abstractions/line/line.d.ts +0 -35
  268. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  269. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  270. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  271. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  272. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  273. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  274. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  275. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  276. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  277. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  278. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  279. package/esm2022/abstractions/line/line-input.mjs +0 -113
  280. package/esm2022/abstractions/line/line.mjs +0 -165
  281. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  282. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  283. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  284. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  285. package/esm2022/performance/detailed/detailed.mjs +0 -61
  286. package/esm2022/performance/index.mjs +0 -7
  287. package/esm2022/performance/instances/instance.mjs +0 -48
  288. package/esm2022/performance/instances/instances.mjs +0 -189
  289. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  290. package/esm2022/performance/stats/stats.mjs +0 -79
  291. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  292. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  293. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  294. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  295. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
  296. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  297. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  298. package/performance/README.md +0 -3
  299. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  300. package/performance/detailed/detailed.d.ts +0 -20
  301. package/performance/index.d.ts +0 -6
  302. package/performance/instances/instance.d.ts +0 -9
  303. package/performance/instances/instances.d.ts +0 -35
  304. package/performance/stats/stats.d.ts +0 -18
  305. package/plugin/generators.json +0 -19
  306. package/plugin/libs/plugin/README.md +0 -11
  307. package/plugin/package.json +0 -9
  308. package/plugin/src/generators/init/compat.d.ts +0 -2
  309. package/plugin/src/generators/init/compat.js +0 -6
  310. package/plugin/src/generators/init/compat.js.map +0 -1
  311. package/plugin/src/generators/init/init.d.ts +0 -7
  312. package/plugin/src/generators/init/init.js +0 -28
  313. package/plugin/src/generators/init/init.js.map +0 -1
  314. package/plugin/src/generators/init/schema.json +0 -6
  315. package/plugin/src/index.d.ts +0 -1
  316. package/plugin/src/index.js +0 -6
  317. package/plugin/src/index.js.map +0 -1
  318. package/staging/caustics/caustisc.d.ts +0 -70
  319. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  320. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  321. /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
  322. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  323. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-abstractions.mjs","sources":["../../../../libs/soba/abstractions/src/billboard/billboard.ts","../../../../libs/soba/abstractions/src/line/line-input.ts","../../../../libs/soba/abstractions/src/line/line.ts","../../../../libs/soba/abstractions/src/catmull-rom-line/catmull-rom-line.ts","../../../../libs/soba/abstractions/src/cubic-bezier-line/cubic-bezier-line.ts","../../../../libs/soba/abstractions/src/edges/edges.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-helper.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-viewcube/constants.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.ts","../../../../libs/soba/abstractions/src/gizmo-helper/gizmo-viewport/gizmo-viewport.ts","../../../../libs/soba/abstractions/src/grid/grid.ts","../../../../libs/soba/abstractions/src/quadratic-bezier-line/quadratic-bezier-line.ts","../../../../libs/soba/abstractions/src/text-3d/text-3d.ts","../../../../libs/soba/abstractions/src/text/text.ts","../../../../libs/soba/abstractions/src/angular-three-soba-abstractions.ts"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from '@angular/core';\nimport { NgtSignalStore, extend, injectBeforeRender, injectNgtRef, type NgtGroup } from 'angular-three';\nimport { Group } from 'three';\n\nextend({ Group });\n\nexport type NgtsBillboardState = {\n follow?: boolean;\n lockX?: boolean;\n lockY?: boolean;\n lockZ?: boolean;\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ngts-billboard': NgtsBillboardState & NgtGroup;\n }\n}\n\n@Component({\n selector: 'ngts-billboard',\n standalone: true,\n template: `\n <ngt-group ngtCompound [ref]=\"billboardRef\">\n <ng-content />\n </ngt-group>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsBillboard extends NgtSignalStore<NgtsBillboardState> {\n @Input() billboardRef = injectNgtRef<Group>();\n\n @Input() set follow(follow: boolean) {\n this.set({ follow });\n }\n @Input() set lockX(lockX: boolean) {\n this.set({ lockX });\n }\n @Input() set lockY(lockY: boolean) {\n this.set({ lockY });\n }\n @Input() set lockZ(lockZ: boolean) {\n this.set({ lockZ });\n }\n\n constructor() {\n super({ follow: true, lockX: false, lockY: false, lockZ: false });\n injectBeforeRender(({ camera }) => {\n const ref = this.billboardRef.untracked;\n const { follow, lockX, lockY, lockZ } = this.get();\n if (!ref || !follow) return;\n // save previous rotation in case we're locking an axis\n const prevRotation = ref.rotation.clone();\n\n // always face the camera\n camera.getWorldQuaternion(ref.quaternion);\n\n // re-adjust any axis that is locked\n if (lockX) ref.rotation.x = prevRotation.x;\n if (lockY) ref.rotation.y = prevRotation.y;\n if (lockZ) ref.rotation.z = prevRotation.z;\n });\n }\n}\n","import { Directive, Input, computed } from '@angular/core';\nimport { NgtSignalStore } from 'angular-three';\nimport type { LineMaterialParameters } from 'three-stdlib';\n\nexport interface NgtsLineState extends Omit<LineMaterialParameters, 'vertexColors' | 'color'> {\n vertexColors?: Array<THREE.Color | [number, number, number]>;\n lineWidth?: number;\n segments: boolean | number | undefined;\n color: THREE.ColorRepresentation;\n points: Array<THREE.Vector3 | THREE.Vector2 | [number, number, number] | [number, number] | number>;\n}\n\n@Directive()\nexport abstract class NgtsLineInputs extends NgtSignalStore<NgtsLineState> {\n @Input() set vertexColors(vertexColors: NgtsLineState['vertexColors']) {\n this.set({ vertexColors });\n }\n\n @Input() set lineWidth(lineWidth: NgtsLineState['lineWidth']) {\n this.set({ lineWidth });\n }\n\n @Input() set alphaToCoverage(alphaToCoverage: NgtsLineState['alphaToCoverage']) {\n this.set({ alphaToCoverage });\n }\n\n @Input() set color(color: NgtsLineState['color']) {\n this.set({ color });\n }\n\n @Input() set dashed(dashed: NgtsLineState['dashed']) {\n this.set({ dashed });\n }\n\n @Input() set dashScale(dashScale: NgtsLineState['dashScale']) {\n this.set({ dashScale });\n }\n\n @Input() set dashSize(dashSize: NgtsLineState['dashSize']) {\n this.set({ dashSize });\n }\n\n @Input() set dashOffset(dashOffset: NgtsLineState['dashOffset']) {\n this.set({ dashOffset });\n }\n\n @Input() set gapSize(gapSize: NgtsLineState['gapSize']) {\n this.set({ gapSize });\n }\n\n @Input() set resolution(resolution: NgtsLineState['resolution']) {\n this.set({ resolution });\n }\n\n @Input() set wireframe(wireframe: NgtsLineState['wireframe']) {\n this.set({ wireframe });\n }\n\n @Input() set worldUnits(worldUnits: NgtsLineState['worldUnits']) {\n this.set({ worldUnits });\n }\n\n readonly #color = this.select('color');\n readonly #vertexColors = this.select('vertexColors');\n readonly #resolution = this.select('resolution');\n readonly #linewidth = this.select('lineWidth');\n readonly #alphaToCoverage = this.select('alphaToCoverage');\n readonly #dashed = this.select('dashed');\n readonly #dashScale = this.select('dashScale');\n readonly #dashSize = this.select('dashSize');\n readonly #dashOffset = this.select('dashOffset');\n readonly #gapSize = this.select('gapSize');\n readonly #wireframe = this.select('wireframe');\n readonly #worldUnits = this.select('worldUnits');\n\n readonly lineParameters = computed(() => ({\n color: this.#color(),\n vertexColors: this.#vertexColors(),\n resolution: this.#resolution(),\n linewidth: this.#linewidth(),\n alphaToCoverage: this.#alphaToCoverage(),\n dashed: this.#dashed(),\n dashScale: this.#dashScale(),\n dashSize: this.#dashSize(),\n dashOffset: this.#dashOffset(),\n gapSize: this.#gapSize(),\n wireframe: this.#wireframe(),\n worldUnits: this.#worldUnits(),\n }));\n\n constructor() {\n super({ color: 'black' });\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect, inject } from '@angular/core';\nimport { NgtArgs, NgtStore, injectNgtRef, requestAnimationInInjectionContext } from 'angular-three';\nimport * as THREE from 'three';\nimport { Line2, LineGeometry, LineMaterial, LineSegments2, LineSegmentsGeometry } from 'three-stdlib';\nimport { NgtsLineInputs, type NgtsLineState } from './line-input';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ngts-line': NgtsLineState;\n }\n}\n\n@Component({\n selector: 'ngts-line',\n standalone: true,\n template: `\n <ngt-primitive *args=\"[line()]\" [ref]=\"lineRef\" ngtCompound>\n <ngt-primitive *args=\"[lineGeometry()]\" attach=\"geometry\" />\n <ngt-primitive\n *args=\"[lineMaterial]\"\n attach=\"material\"\n [resolution]=\"lineMaterialParameters().resolution\"\n [color]=\"lineMaterialParameters().color\"\n [vertexColors]=\"lineMaterialParameters().vertexColors\"\n [linewidth]=\"lineMaterialParameters().linewidth\"\n [alphaToCoverage]=\"lineMaterialParameters().alphaToCoverage\"\n [dashed]=\"lineMaterialParameters().dashed\"\n [dashScale]=\"lineMaterialParameters().dashScale\"\n [dashSize]=\"lineMaterialParameters().dashSize\"\n [dashOffset]=\"lineMaterialParameters().dashOffset\"\n [gapSize]=\"lineMaterialParameters().gapSize\"\n [wireframe]=\"lineMaterialParameters().wireframe\"\n [worldUnits]=\"lineMaterialParameters().worldUnits\"\n />\n </ngt-primitive>\n `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsLine extends NgtsLineInputs {\n @Input() lineRef = injectNgtRef<LineSegments2 | Line2>();\n\n @Input({ required: true }) set points(\n points: Array<THREE.Vector3 | THREE.Vector2 | [number, number, number] | [number, number] | number>\n ) {\n this.set({ points });\n }\n\n @Input() set segments(segments: boolean) {\n this.set({ segments });\n }\n\n readonly #store = inject(NgtStore);\n readonly #size = this.#store.select('size');\n\n readonly #lineResolution = this.select('resolution');\n readonly #resolution = computed(() =>\n this.#lineResolution() ? this.#lineResolution() : [this.#size().width, this.#size().height]\n );\n\n readonly #points = this.select('points');\n readonly #pointValues = computed(() =>\n this.#points().map((p) => {\n const isArray = Array.isArray(p);\n return p instanceof THREE.Vector3\n ? [p.x, p.y, p.z]\n : p instanceof THREE.Vector2\n ? [p.x, p.y, 0]\n : isArray && p.length === 3\n ? [p[0], p[1], p[2]]\n : isArray && p.length === 2\n ? [p[0], p[1], 0]\n : p;\n })\n );\n\n readonly #vertexColors = this.select('vertexColors');\n readonly #vertexColorValues = computed(() =>\n (this.#vertexColors() || []).map((c) => (c instanceof THREE.Color ? c.toArray() : c))\n );\n\n readonly #segments = this.select('segments');\n readonly lineGeometry = computed(() => {\n const pointValues = this.#pointValues();\n const vertexColors = this.#vertexColorValues();\n\n const geometry = this.#segments() ? new LineSegmentsGeometry() : new LineGeometry();\n geometry.setPositions(pointValues.flat());\n\n if (vertexColors.length) {\n geometry.setColors(vertexColors.flat());\n }\n\n return geometry;\n });\n readonly lineMaterial = new LineMaterial();\n readonly line = computed(() => (this.#segments() ? new LineSegments2() : new Line2()));\n\n readonly lineMaterialParameters = computed(() => {\n const parameters = this.lineParameters();\n const resolution = this.#resolution();\n\n const vertexColors = Boolean(parameters.vertexColors);\n\n if (vertexColors) {\n parameters.color = undefined!;\n }\n\n return {\n ...parameters,\n vertexColors,\n resolution,\n dashScale: parameters.dashScale ?? this.lineMaterial.dashScale,\n dashSize: parameters.dashSize ?? this.lineMaterial.dashSize,\n dashOffset: parameters.dashOffset ?? this.lineMaterial.dashOffset,\n gapSize: parameters.gapSize ?? this.lineMaterial.gapSize,\n wireframe: parameters.wireframe ?? this.lineMaterial.wireframe,\n worldUnits: parameters.worldUnits ?? this.lineMaterial.worldUnits,\n };\n });\n\n constructor() {\n super();\n this.set({ segments: false });\n requestAnimationInInjectionContext(() => {\n this.#disposeGeometry();\n this.#computeLineDistances();\n });\n }\n\n #computeLineDistances() {\n const points = this.select('points');\n const trigger = computed(() => {\n const lineGeometry = this.lineGeometry();\n const line = this.lineRef.nativeElement;\n const children = this.lineRef.children('nonObjects');\n return { points: points(), lineGeometry, line, children: children() };\n });\n effect(() => {\n const { line } = trigger();\n if (!line) return;\n line.computeLineDistances();\n });\n }\n\n #disposeGeometry() {\n effect((onCleanup) => {\n const lineGeometry = this.lineGeometry();\n onCleanup(() => lineGeometry.dispose());\n });\n }\n}\n","import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport { injectNgtRef } from 'angular-three';\nimport * as THREE from 'three';\nimport { CatmullRomCurve3 } from 'three';\nimport { Line2 } from 'three-stdlib';\nimport { NgtsLine } from '../line/line';\nimport { NgtsLineInputs } from '../line/line-input';\n\ndeclare module '../line/line-input' {\n interface NgtsLineState {\n closed: boolean;\n curveType: 'centripetal' | 'chordal' | 'catmullrom';\n tension: number;\n }\n}\n\n@Component({\n selector: 'ngts-catmull-rom-line',\n standalone: true,\n template: `\n <ngts-line\n [lineRef]=\"lineRef\"\n [points]=\"segmentedPoints()\"\n [vertexColors]=\"interpolatedVertexColors()\"\n [color]=\"lineParameters().color\"\n [resolution]=\"lineParameters().resolution\"\n [lineWidth]=\"lineParameters().linewidth\"\n [alphaToCoverage]=\"lineParameters().alphaToCoverage\"\n [dashed]=\"lineParameters().dashed\"\n [dashScale]=\"lineParameters().dashScale\"\n [dashSize]=\"lineParameters().dashSize\"\n [dashOffset]=\"lineParameters().dashOffset\"\n [gapSize]=\"lineParameters().gapSize\"\n [wireframe]=\"lineParameters().wireframe\"\n [worldUnits]=\"lineParameters().worldUnits\"\n />\n `,\n imports: [NgtsLine],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsCatmullRomLine extends NgtsLineInputs {\n @Input() lineRef = injectNgtRef<Line2>();\n\n @Input({ required: true }) set points(\n points: Array<THREE.Vector3 | THREE.Vector2 | [number, number, number] | [number, number] | number>\n ) {\n this.set({ points });\n }\n\n @Input() set closed(closed: boolean) {\n this.set({ closed });\n }\n\n @Input() set curveType(curveType: 'centripetal' | 'chordal' | 'catmullrom') {\n this.set({ curveType });\n }\n\n @Input() set tension(tension: number) {\n this.set({ tension });\n }\n\n @Input() set segments(segments: number) {\n this.set({ segments });\n }\n\n readonly #points = this.select('points');\n readonly #closed = this.select('closed');\n readonly #curveType = this.select('curveType');\n readonly #tension = this.select('tension');\n readonly #vertexColors = this.select('vertexColors');\n\n readonly #curve = computed(() => {\n const mappedPoints = this.#points().map((p) =>\n p instanceof THREE.Vector3 ? p : new THREE.Vector3(...(p as [number, number, number]))\n );\n return new CatmullRomCurve3(mappedPoints, this.#closed(), this.#curveType(), this.#tension());\n });\n\n readonly #segments = this.select('segments');\n readonly segmentedPoints = computed(() => {\n const curve = this.#curve();\n return curve.getPoints(this.#segments() as number);\n });\n\n readonly interpolatedVertexColors = computed(() => {\n const vertexColors = this.#vertexColors();\n const segments = this.#segments() as number;\n\n if (!vertexColors || vertexColors.length < 2) return undefined;\n if (vertexColors.length === segments + 1) return vertexColors;\n\n const mappedColors = vertexColors.map((color: THREE.Color | [number, number, number]) =>\n color instanceof THREE.Color ? color : new THREE.Color(...color)\n );\n if (this.get('closed')) mappedColors.push(mappedColors[0].clone());\n\n const iColors: THREE.Color[] = [mappedColors[0]];\n const divisions = segments / (mappedColors.length - 1);\n for (let i = 0; i < segments; i++) {\n const alpha = (i % divisions) / divisions;\n const colorIndex = Math.floor(i / divisions);\n iColors.push(mappedColors[colorIndex].clone().lerp(mappedColors[colorIndex + 1], alpha));\n }\n iColors.push(mappedColors[mappedColors.length - 1]);\n return iColors;\n });\n\n constructor() {\n super();\n this.set({ closed: false, curveType: 'centripetal', tension: 0.5, segments: 64 });\n }\n}\n","import { Component, Input, computed } from '@angular/core';\nimport { injectNgtRef } from 'angular-three';\nimport * as THREE from 'three';\nimport type { Line2 } from 'three-stdlib';\nimport { NgtsLine } from '../line/line';\nimport { NgtsLineInputs } from '../line/line-input';\n\ndeclare module '../line/line-input' {\n interface NgtsLineState {\n start: THREE.Vector3 | [number, number, number];\n end: THREE.Vector3 | [number, number, number];\n midA: THREE.Vector3 | [number, number, number];\n midB: THREE.Vector3 | [number, number, number];\n }\n}\n\n@Component({\n selector: 'ngts-cubic-bezier-line',\n standalone: true,\n template: `\n <ngts-line\n [lineRef]=\"lineRef\"\n [points]=\"points()\"\n [color]=\"lineParameters().color\"\n [vertexColors]=\"lineParameters().vertexColors\"\n [resolution]=\"lineParameters().resolution\"\n [lineWidth]=\"lineParameters().linewidth\"\n [alphaToCoverage]=\"lineParameters().alphaToCoverage\"\n [dashed]=\"lineParameters().dashed\"\n [dashScale]=\"lineParameters().dashScale\"\n [dashSize]=\"lineParameters().dashSize\"\n [dashOffset]=\"lineParameters().dashOffset\"\n [gapSize]=\"lineParameters().gapSize\"\n [wireframe]=\"lineParameters().wireframe\"\n [worldUnits]=\"lineParameters().worldUnits\"\n />\n `,\n imports: [NgtsLine],\n})\nexport class NgtsCubicBezierLine extends NgtsLineInputs {\n @Input() lineRef = injectNgtRef<Line2>();\n\n @Input({ required: true }) set start(start: THREE.Vector3 | [number, number, number]) {\n this.set({ start });\n }\n\n @Input({ required: true }) set end(end: THREE.Vector3 | [number, number, number]) {\n this.set({ end });\n }\n\n @Input({ required: true }) set midA(midA: THREE.Vector3 | [number, number, number]) {\n this.set({ midA });\n }\n\n @Input({ required: true }) set midB(midB: THREE.Vector3 | [number, number, number]) {\n this.set({ midB });\n }\n\n @Input() set segments(segments: number) {\n this.set({ segments });\n }\n\n readonly #start = this.select('start');\n readonly #end = this.select('end');\n readonly #midA = this.select('midA');\n readonly #midB = this.select('midB');\n readonly #segments = this.select('segments');\n\n readonly points = computed(() => {\n const start = this.#start();\n const end = this.#end();\n const midA = this.#midA();\n const midB = this.#midB();\n const segments = this.#segments() as number;\n\n const startV = start instanceof THREE.Vector3 ? start : new THREE.Vector3(...start);\n const endV = end instanceof THREE.Vector3 ? end : new THREE.Vector3(...end);\n const midAV = midA instanceof THREE.Vector3 ? midA : new THREE.Vector3(...midA);\n const midBV = midB instanceof THREE.Vector3 ? midB : new THREE.Vector3(...midB);\n return new THREE.CubicBezierCurve3(startV, midAV, midBV, endV).getPoints(segments);\n });\n\n constructor() {\n super();\n this.set({ segments: 10 });\n }\n}\n","import { NgIf } from '@angular/common';\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, effect, Input } from '@angular/core';\nimport { extend, injectNgtRef, NgtAnyRecord, NgtSignalStore } from 'angular-three';\nimport * as THREE from 'three';\nimport { LineBasicMaterial, LineSegments } from 'three';\n\nextend({ LineSegments, LineBasicMaterial });\n\nexport interface NgtsEdgesState {\n threshold: number;\n color: THREE.ColorRepresentation;\n geometry: THREE.BufferGeometry;\n userData: NgtAnyRecord;\n}\n\n@Component({\n selector: 'ngts-edges',\n standalone: true,\n template: `\n <ngt-line-segments [ref]=\"edgesRef\" [raycast]=\"noop\" ngtCompound>\n <ng-container *ngIf=\"withChildren; else noChildren\">\n <ng-content />\n </ng-container>\n <ng-template #noChildren>\n <ngt-line-basic-material [color]=\"color\" />\n </ng-template>\n </ngt-line-segments>\n `,\n imports: [NgIf],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsEdges extends NgtSignalStore<NgtsEdgesState> {\n @Input() edgesRef = injectNgtRef<THREE.LineSegments>();\n\n @Input() set threshold(threshold: number) {\n this.set({ threshold });\n }\n\n @Input() set color(color: THREE.ColorRepresentation) {\n this.set({ color });\n }\n\n @Input() set geometry(geometry: THREE.BufferGeometry) {\n this.set({ geometry });\n }\n\n @Input() set userData(userData: NgtAnyRecord) {\n this.set({ userData });\n }\n\n @Input() withChildren = false;\n\n readonly noop = () => null;\n\n constructor() {\n super({\n threshold: 15,\n color: 'black',\n userData: {},\n });\n this.#setupGeometry();\n }\n\n #setupGeometry(): void {\n effect(() => {\n const edges = this.edgesRef.nativeElement;\n if (!edges) return;\n const parent = edges.parent as THREE.Mesh;\n if (parent) {\n const geom = this.get('geometry') || parent.geometry;\n const threshold = this.get('threshold');\n if (geom !== edges.userData['currentGeom'] || threshold !== edges.userData['currentThreshold']) {\n edges.userData['currentGeom'] = geom;\n edges.userData['currentThreshold'] = threshold;\n edges.geometry = new THREE.EdgesGeometry(geom, threshold);\n }\n }\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n computed,\n ContentChild,\n CUSTOM_ELEMENTS_SCHEMA,\n Directive,\n effect,\n EventEmitter,\n inject,\n InjectionToken,\n Input,\n Output,\n Signal,\n TemplateRef,\n} from '@angular/core';\nimport { extend, injectNgtRef, NgtPortal, NgtPortalContent, NgtSignalStore, NgtStore } from 'angular-three';\nimport { NgtsOrthographicCamera } from 'angular-three-soba/cameras';\nimport { Group, Matrix4, Object3D, OrthographicCamera, Quaternion, Vector3 } from 'three';\nimport { OrbitControls } from 'three-stdlib';\n\ntype ControlsProto = { update(): void; target: THREE.Vector3 };\n\nconst isOrbitControls = (controls: ControlsProto): controls is OrbitControls =>\n 'minPolarAngle' in (controls as OrbitControls);\n\nexport type NgtsGizmoHelperApi = (direction: Vector3) => void;\nexport const NGTS_GIZMO_HELPER_API = new InjectionToken<Signal<NgtsGizmoHelperApi>>('NgtsGizmoHelper API');\n\nextend({ Group });\n\nexport interface NgtsGizmoHelperState {\n alignment:\n | 'top-left'\n | 'top-right'\n | 'bottom-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'center-right'\n | 'center-left'\n | 'center-center'\n | 'top-center';\n margin: [number, number];\n renderPriority: number;\n autoClear: boolean;\n}\n\n@Directive({ selector: 'ng-template[ngtsGizmoHelperContent]', standalone: true })\nexport class NgtsGizmoHelperContent {}\n\n@Component({\n selector: 'ngts-gizmo-helper',\n standalone: true,\n template: `\n <ngt-portal [renderPriority]=\"priority()\">\n <ng-template ngtPortalContent>\n <ngts-orthographic-camera\n [cameraRef]=\"virtualCameraRef\"\n [makeDefault]=\"true\"\n [position]=\"[0, 0, 200]\"\n />\n <ngt-group [ref]=\"gizmoRef\" [position]=\"position()\" (beforeRender)=\"onBeforeRender($event.state.delta)\">\n <ng-container *ngTemplateOutlet=\"gizmoHelperContent\" />\n </ngt-group>\n </ng-template>\n </ngt-portal>\n `,\n imports: [NgtPortal, NgtPortalContent, NgtsOrthographicCamera, NgTemplateOutlet],\n providers: [\n { provide: NGTS_GIZMO_HELPER_API, useFactory: (gizmo: NgtsGizmoHelper) => gizmo.api, deps: [NgtsGizmoHelper] },\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoHelper extends NgtSignalStore<NgtsGizmoHelperState> {\n readonly gizmoRef = injectNgtRef<Group>();\n readonly virtualCameraRef = injectNgtRef<OrthographicCamera>();\n\n @Input() set alignment(\n alignment:\n | 'top-left'\n | 'top-right'\n | 'bottom-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'center-right'\n | 'center-left'\n | 'center-center'\n | 'top-center'\n ) {\n this.set({ alignment });\n }\n\n @Input() set margin(margin: [number, number]) {\n this.set({ margin });\n }\n\n @Input() set renderPriority(renderPriority: number) {\n this.set({ renderPriority });\n }\n\n @Input() set autoClear(autoClear: boolean) {\n this.set({ autoClear });\n }\n\n @Output() updated = new EventEmitter<void>();\n\n @ContentChild(NgtsGizmoHelperContent, { static: true, read: TemplateRef })\n gizmoHelperContent!: TemplateRef<unknown>;\n\n readonly #store = inject(NgtStore);\n readonly #camera = this.#store.select('camera');\n readonly #size = this.#store.select('size');\n\n readonly #alignment = this.select('alignment');\n readonly #margin = this.select('margin');\n\n #animating = false;\n #radius = 0;\n #focusPoint = new Vector3(0, 0, 0);\n #q1 = new Quaternion();\n #q2 = new Quaternion();\n #target = new Vector3();\n #targetPosition = new Vector3();\n #dummy = new Object3D();\n\n #defaultUp = new Vector3(0, 0, 0);\n #turnRate = 2 * Math.PI; // turn rate in angles per sec\n #matrix = new Matrix4();\n\n readonly priority = this.select('renderPriority');\n\n readonly position = computed(() => {\n const size = this.#size();\n const alignment = this.#alignment();\n const margin = this.#margin();\n\n const [marginX, marginY] = margin;\n const x = alignment.endsWith('-center')\n ? 0\n : alignment.endsWith('-left')\n ? -size.width / 2 + marginX\n : size.width / 2 - marginX;\n const y = alignment.startsWith('center-')\n ? 0\n : alignment.startsWith('top-')\n ? size.height / 2 - marginY\n : -size.height / 2 + marginY;\n\n return [x, y, 0];\n });\n\n readonly api = computed(() => (direction: THREE.Vector3) => {\n const { controls, camera, invalidate } = this.#store.get();\n const defaultControls = controls as unknown as ControlsProto;\n\n this.#animating = true;\n if (defaultControls) this.#focusPoint = defaultControls.target;\n this.#radius = camera.position.distanceTo(this.#target);\n // rotate from current camera orientation\n this.#q1.copy(camera.quaternion);\n // to new current camera orientation\n this.#targetPosition.copy(direction).multiplyScalar(this.#radius).add(this.#target);\n this.#dummy.lookAt(this.#targetPosition);\n this.#q2.copy(this.#dummy.quaternion);\n invalidate();\n });\n\n constructor() {\n super({ alignment: 'bottom-right', margin: [80, 80], renderPriority: 1 });\n this.#updateDefaultUp();\n }\n\n onBeforeRender(delta: number) {\n if (this.virtualCameraRef.nativeElement && this.gizmoRef.nativeElement) {\n const { controls, camera: mainCamera, invalidate } = this.#store.get();\n const defaultControls = controls as unknown as ControlsProto;\n // Animate step\n if (this.#animating) {\n if (this.#q1.angleTo(this.#q2) < 0.01) {\n this.#animating = false;\n // Orbit controls uses UP vector as the orbit axes,\n // so we need to reset it after the animation is done\n // moving it around for the controls to work correctly\n if (isOrbitControls(defaultControls)) {\n mainCamera.up.copy(this.#defaultUp);\n }\n } else {\n const step = delta * this.#turnRate;\n // animate position by doing a slerp and then scaling the position on the unit sphere\n this.#q1.rotateTowards(this.#q2, step);\n // animate orientation\n mainCamera.position\n .set(0, 0, 1)\n .applyQuaternion(this.#q1)\n .multiplyScalar(this.#radius)\n .add(this.#focusPoint);\n mainCamera.up.set(0, 1, 0).applyQuaternion(this.#q1).normalize();\n mainCamera.quaternion.copy(this.#q1);\n if (this.updated.observed) this.updated.emit();\n else if (defaultControls) {\n defaultControls.update();\n }\n invalidate();\n }\n }\n\n // Sync Gizmo with main camera orientation\n this.#matrix.copy(mainCamera.matrix).invert();\n this.gizmoRef.nativeElement.quaternion.setFromRotationMatrix(this.#matrix);\n }\n }\n\n #updateDefaultUp() {\n effect(() => {\n const camera = this.#camera();\n if (!camera) return;\n this.#defaultUp.copy(camera.up);\n });\n }\n}\n","import * as THREE from 'three';\n\nexport const colors = { bg: '#f0f0f0', hover: '#999', text: 'black', stroke: 'black' };\nexport const defaultFaces = ['Right', 'Left', 'Top', 'Bottom', 'Front', 'Back'];\nconst makePositionVector = (xyz: number[]) => new THREE.Vector3(...xyz).multiplyScalar(0.38);\n\nexport const corners: THREE.Vector3[] = [\n [1, 1, 1],\n [1, 1, -1],\n [1, -1, 1],\n [1, -1, -1],\n [-1, 1, 1],\n [-1, 1, -1],\n [-1, -1, 1],\n [-1, -1, -1],\n].map(makePositionVector);\n\nexport const cornerDimensions = [0.25, 0.25, 0.25] as [number, number, number];\n\nexport const edges: THREE.Vector3[] = [\n [1, 1, 0],\n [1, 0, 1],\n [1, 0, -1],\n [1, -1, 0],\n [0, 1, 1],\n [0, 1, -1],\n [0, -1, 1],\n [0, -1, -1],\n [-1, 1, 0],\n [-1, 0, 1],\n [-1, 0, -1],\n [-1, -1, 0],\n].map(makePositionVector);\n\nexport const edgeDimensions = edges.map(\n (edge) => edge.toArray().map((axis: number): number => (axis == 0 ? 0.5 : 0.25)) as [number, number, number]\n);\n","import { Directive, Input, type EventEmitter } from '@angular/core';\nimport { NgtSignalStore, type NgtThreeEvent } from 'angular-three';\n\nexport interface NgtsGizmoViewCubeInputsState {\n opacity: number;\n hoverColor: string;\n textColor: string;\n strokeColor: string;\n faces: string[];\n font?: string;\n color?: string;\n clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>;\n}\n\n@Directive()\nexport abstract class NgtsGizmoViewcubeInputs extends NgtSignalStore<NgtsGizmoViewCubeInputsState> {\n @Input() set opacity(opacity: number) {\n this.set({ opacity });\n }\n\n @Input() set hoverColor(hoverColor: string) {\n this.set({ hoverColor });\n }\n\n @Input() set textColor(textColor: string) {\n this.set({ textColor });\n }\n\n @Input() set strokeColor(strokeColor: string) {\n this.set({ strokeColor });\n }\n\n @Input() set faces(faces: string[]) {\n this.set({ faces });\n }\n\n @Input() set font(font: string) {\n this.set({ font });\n }\n\n @Input() set color(color: string) {\n this.set({ color });\n }\n\n @Input() set clickEmitter(clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>) {\n this.set({ clickEmitter });\n }\n\n readonly viewcubeHoverColor = this.select('hoverColor');\n readonly viewcubeOpacity = this.select('opacity');\n readonly viewcubeTextColor = this.select('textColor');\n readonly viewcubeStrokeColor = this.select('strokeColor');\n readonly viewcubeFaces = this.select('faces');\n readonly viewcubeFont = this.select('font');\n readonly viewcubeColor = this.select('color');\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input, signal } from '@angular/core';\nimport { extend, NgtArgs, NgtSignalStore, NgtThreeEvent } from 'angular-three';\nimport { BoxGeometry, Mesh, MeshBasicMaterial, Vector3 } from 'three';\nimport { NGTS_GIZMO_HELPER_API } from '../gizmo-helper';\nimport { colors } from './constants';\nimport { NgtsGizmoViewcubeInputs } from './gizmo-viewcube-inputs';\n\nextend({ Mesh, BoxGeometry, MeshBasicMaterial });\n\n@Component({\n selector: 'ngts-gizmo-viewcube-edge-cube',\n standalone: true,\n template: `\n <ngt-mesh\n [scale]=\"1.01\"\n [position]=\"edgePosition()\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerout)=\"onPointerOut($event)\"\n (click)=\"onClick($event)\"\n >\n <ngt-box-geometry *args=\"edgeDimensions()\" />\n <ngt-mesh-basic-material\n [color]=\"hover() ? viewcubeInputs.viewcubeHoverColor() : 'white'\"\n [transparent]=\"true\"\n [opacity]=\"0.6\"\n [visible]=\"hover()\"\n />\n </ngt-mesh>\n `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcubeEdgeCube extends NgtSignalStore<{\n position: THREE.Vector3;\n dimensions: [number, number, number];\n}> {\n readonly #gizmoHelperApi = inject(NGTS_GIZMO_HELPER_API);\n\n protected readonly viewcubeInputs = inject(NgtsGizmoViewcubeInputs);\n\n hover = signal(false);\n\n @Input({ required: true }) set dimensions(dimensions: [number, number, number]) {\n this.set({ dimensions });\n }\n\n @Input({ required: true }) set position(position: Vector3) {\n this.set({ position });\n }\n\n readonly edgePosition = this.select('position');\n readonly edgeDimensions = this.select('dimensions');\n\n constructor() {\n super();\n this.viewcubeInputs.patch({ hoverColor: colors.hover });\n }\n\n onPointerMove(event: NgtThreeEvent<PointerEvent>) {\n event.stopPropagation();\n this.hover.set(true);\n }\n\n onPointerOut(event: NgtThreeEvent<PointerEvent>) {\n event.stopPropagation();\n this.hover.set(false);\n }\n\n onClick(event: NgtThreeEvent<MouseEvent>) {\n if (this.viewcubeInputs.get('clickEmitter')?.observed) {\n this.viewcubeInputs.get('clickEmitter').emit(event);\n } else {\n event.stopPropagation();\n this.#gizmoHelperApi()(this.get('position'));\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, computed, CUSTOM_ELEMENTS_SCHEMA, inject, Input, signal } from '@angular/core';\nimport { extend, NgtRepeat, NgtSignalStore, NgtStore, NgtThreeEvent } from 'angular-three';\nimport { BoxGeometry, CanvasTexture, Mesh, MeshLambertMaterial } from 'three';\nimport { NGTS_GIZMO_HELPER_API } from '../gizmo-helper';\nimport { colors, defaultFaces } from './constants';\nimport { NgtsGizmoViewcubeInputs } from './gizmo-viewcube-inputs';\n\nextend({ MeshLambertMaterial, Mesh, BoxGeometry });\n\n@Component({\n selector: 'ngts-gizmo-viewcube-face-material',\n standalone: true,\n template: `\n <ngt-mesh-lambert-material\n [attach]=\"['material', faceIndex()]\"\n [map]=\"texture()\"\n [color]=\"faceHover() ? viewcubeInputs.viewcubeHoverColor() : viewcubeInputs.viewcubeColor()\"\n [opacity]=\"viewcubeInputs.viewcubeOpacity()\"\n [transparent]=\"true\"\n >\n <ngt-value [rawValue]=\"gl().outputEncoding\" attach=\"map.encoding\" />\n <ngt-value [rawValue]=\"gl().capabilities.getMaxAnisotropy() || 1\" attach=\"map.anisotrophy\" />\n </ngt-mesh-lambert-material>\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcubeFaceMaterial extends NgtSignalStore<{\n index: number;\n hover: boolean;\n}> {\n readonly #document = inject(DOCUMENT);\n readonly #store = inject(NgtStore);\n protected readonly gl = this.#store.select('gl');\n protected readonly viewcubeInputs = inject(NgtsGizmoViewcubeInputs);\n\n @Input({ required: true }) set index(index: number) {\n this.set({ index });\n }\n\n @Input({ required: true }) set hover(hover: boolean) {\n this.set({ hover });\n }\n\n readonly faceIndex = this.select('index');\n readonly faceHover = this.select('hover');\n\n readonly texture = computed(() => {\n const index = this.faceIndex();\n const color = this.viewcubeInputs.viewcubeColor();\n const font = this.viewcubeInputs.viewcubeFont();\n const faces = this.viewcubeInputs.viewcubeFaces();\n const textColor = this.viewcubeInputs.viewcubeTextColor();\n const strokeColor = this.viewcubeInputs.viewcubeStrokeColor();\n\n const canvas = this.#document.createElement('canvas');\n canvas.width = 128;\n canvas.height = 128;\n const context = canvas.getContext('2d')!;\n context.fillStyle = color!;\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.strokeStyle = strokeColor;\n context.strokeRect(0, 0, canvas.width, canvas.height);\n context.font = font!;\n context.textAlign = 'center';\n context.fillStyle = textColor;\n context.fillText(faces[index].toUpperCase(), 64, 76);\n\n return new CanvasTexture(canvas);\n });\n\n constructor() {\n super();\n this.viewcubeInputs.patch({\n color: colors.bg,\n font: '20px Inter var, Arial, sans-serif',\n faces: defaultFaces,\n hoverColor: colors.hover,\n textColor: colors.text,\n strokeColor: colors.stroke,\n opacity: 1,\n });\n }\n}\n\n@Component({\n selector: 'ngts-gizmo-viewcube-face-cube',\n standalone: true,\n template: `\n <ngt-mesh\n (pointermove)=\"onPointerMove($any($event))\"\n (pointerout)=\"onPointerOut($any($event))\"\n (click)=\"onClick($any($event))\"\n >\n <ngt-box-geometry />\n <ngts-gizmo-viewcube-face-material *ngFor=\"let i; repeat: 6\" [hover]=\"hover() === i\" [index]=\"i\" />\n </ngt-mesh>\n `,\n imports: [NgtsGizmoViewcubeFaceMaterial, NgtRepeat],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcubeFaceCube {\n readonly #gizmoHelperApi = inject(NGTS_GIZMO_HELPER_API);\n\n protected readonly viewcubeInputs = inject(NgtsGizmoViewcubeInputs);\n\n hover = signal(-1);\n\n onPointerMove(event: NgtThreeEvent<PointerEvent>) {\n event.stopPropagation();\n this.hover.set(Math.floor(event.faceIndex! / 2));\n }\n\n onPointerOut(event: NgtThreeEvent<PointerEvent>) {\n event.stopPropagation();\n this.hover.set(-1);\n }\n\n onClick(event: NgtThreeEvent<MouseEvent>) {\n if (this.viewcubeInputs.get('clickEmitter')?.observed) {\n this.viewcubeInputs.get('clickEmitter').emit(event);\n } else {\n event.stopPropagation();\n this.#gizmoHelperApi()(event.face!.normal);\n }\n }\n}\n","import { NgFor } from '@angular/common';\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Output } from '@angular/core';\nimport { extend, NgtThreeEvent, requestAnimationInInjectionContext } from 'angular-three';\nimport { AmbientLight, Group, PointLight } from 'three';\nimport { cornerDimensions, corners, edgeDimensions, edges } from './constants';\nimport { NgtsGizmoViewcubeEdgeCube } from './gizmo-viewcube-edge';\nimport { NgtsGizmoViewcubeFaceCube } from './gizmo-viewcube-face';\nimport { NgtsGizmoViewcubeInputs } from './gizmo-viewcube-inputs';\n\nextend({ Group, AmbientLight, PointLight });\n\n@Component({\n selector: 'ngts-gizmo-viewcube',\n standalone: true,\n template: `\n <ngt-group [scale]=\"60\">\n <ngts-gizmo-viewcube-face-cube />\n\n <ngts-gizmo-viewcube-edge-cube\n *ngFor=\"let edge of edges; let i = index\"\n [position]=\"edge\"\n [dimensions]=\"edgeDimensions[i]\"\n />\n\n <ngts-gizmo-viewcube-edge-cube\n *ngFor=\"let corner of corners\"\n [position]=\"corner\"\n [dimensions]=\"cornerDimensions\"\n />\n\n <ngt-ambient-light [intensity]=\"0.5\" />\n <ngt-point-light [position]=\"10\" [intensity]=\"0.5\" />\n </ngt-group>\n `,\n imports: [NgtsGizmoViewcubeEdgeCube, NgtsGizmoViewcubeFaceCube, NgFor],\n providers: [{ provide: NgtsGizmoViewcubeInputs, useExisting: NgtsGizmoViewcube }],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcube extends NgtsGizmoViewcubeInputs {\n readonly edges = edges;\n readonly edgeDimensions = edgeDimensions;\n\n readonly corners = corners;\n readonly cornerDimensions = cornerDimensions;\n\n @Output() clicked = new EventEmitter<NgtThreeEvent<MouseEvent>>();\n\n constructor() {\n super();\n requestAnimationInInjectionContext(() => {\n if (this.clicked.observed) {\n this.set({ clickEmitter: this.clicked });\n }\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, computed, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, signal } from '@angular/core';\nimport { extend, NgtArgs, NgtSignalStore, NgtStore, NgtThreeEvent } from 'angular-three';\nimport { BoxGeometry, CanvasTexture, Group, Mesh, MeshBasicMaterial, Sprite, SpriteMaterial } from 'three';\n\nextend({ Group, Mesh, BoxGeometry, MeshBasicMaterial, Sprite, SpriteMaterial });\n\n@Component({\n selector: 'ngts-gizmo-viewport-axis',\n standalone: true,\n template: `\n <ngt-group [rotation]=\"axisRotation()\">\n <ngt-mesh [position]=\"[0.4, 0, 0]\">\n <ngt-box-geometry *args=\"axisScale()\" />\n <ngt-mesh-basic-material [color]=\"axisColor()\" [toneMapped]=\"false\" />\n </ngt-mesh>\n </ngt-group>\n `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewportAxis extends NgtSignalStore<{\n color: string;\n rotation: [number, number, number];\n scale: [number, number, number];\n}> {\n @Input({ required: true }) set color(color: string) {\n this.set({ color });\n }\n\n @Input({ required: true }) set rotation(rotation: [number, number, number]) {\n this.set({ rotation });\n }\n\n @Input() set scale(scale: [number, number, number]) {\n this.set({ scale });\n }\n\n readonly axisRotation = this.select('rotation');\n readonly axisColor = this.select('color');\n readonly axisScale = this.select('scale');\n\n constructor() {\n super({ scale: [0.8, 0.05, 0.05] });\n }\n}\n\n@Component({\n selector: 'ngts-gizmo-viewport-axis-head',\n standalone: true,\n template: `\n <ngt-sprite\n ngtCompound\n [scale]=\"scale()\"\n (pointerover)=\"onPointerOver($event)\"\n (pointerout)=\"onPointerOut($event)\"\n >\n <ngt-sprite-material\n [map]=\"texture()\"\n [opacity]=\"axisLabel() ? 1 : 0.75\"\n [alphaTest]=\"0.3\"\n [toneMapped]=\"false\"\n >\n <ngt-value [rawValue]=\"gl().outputEncoding\" attach=\"map.encoding\" />\n <ngt-value [rawValue]=\"gl().capabilities.getMaxAnisotropy() || 1\" attach=\"map.anisotropy\" />\n </ngt-sprite-material>\n </ngt-sprite>\n `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewportAxisHead extends NgtSignalStore<{\n arcStyle: string;\n label: string;\n labelColor: string;\n axisHeadScale: number;\n disabled: boolean;\n font: string;\n clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>;\n}> {\n readonly #document = inject(DOCUMENT);\n readonly #store = inject(NgtStore);\n readonly gl = this.#store.select('gl');\n\n @Input() set arcStyle(arcStyle: string) {\n this.set({ arcStyle });\n }\n\n @Input() set label(label: string) {\n this.set({ label });\n }\n\n @Input() set labelColor(labelColor: string) {\n this.set({ labelColor });\n }\n\n @Input() set axisHeadScale(axisHeadScale: number) {\n this.set({ axisHeadScale });\n }\n\n @Input() set disabled(disabled: boolean) {\n this.set({ disabled });\n }\n\n @Input() set font(font: string) {\n this.set({ font });\n }\n\n @Input() set clickEmitter(clickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>) {\n this.set({ clickEmitter });\n }\n\n active = signal(false);\n\n readonly #arcStyle = this.select('arcStyle');\n readonly #labelColor = this.select('labelColor');\n readonly #font = this.select('font');\n readonly #axisHeadScale = this.select('axisHeadScale');\n\n readonly axisLabel = this.select('label');\n\n readonly texture = computed(() => {\n const arcStyle = this.#arcStyle();\n const labelColor = this.#labelColor();\n const font = this.#font();\n const label = this.axisLabel();\n\n const canvas = this.#document.createElement('canvas');\n canvas.width = 64;\n canvas.height = 64;\n\n const context = canvas.getContext('2d')!;\n context.beginPath();\n context.arc(32, 32, 16, 0, 2 * Math.PI);\n context.closePath();\n context.fillStyle = arcStyle;\n context.fill();\n\n if (label) {\n context.font = font;\n context.textAlign = 'center';\n context.fillStyle = labelColor;\n context.fillText(label, 32, 41);\n }\n return new CanvasTexture(canvas);\n });\n\n readonly scale = computed(() => {\n const active = this.active();\n const axisHeadScale = this.#axisHeadScale();\n const label = this.axisLabel();\n return (label ? 1 : 0.75) * (active ? 1.2 : 1) * axisHeadScale;\n });\n\n constructor() {\n super({ axisHeadScale: 1 });\n }\n\n onPointerOver(event: NgtThreeEvent<PointerEvent>) {\n if (!this.get('disabled')) {\n event.stopPropagation();\n this.active.set(true);\n }\n }\n\n onPointerOut(event: NgtThreeEvent<PointerEvent>) {\n if (!this.get('disabled')) {\n if (this.get('clickEmitter')?.observed) {\n this.get('clickEmitter').emit(event);\n } else {\n event.stopPropagation();\n this.active.set(false);\n }\n }\n }\n}\n","import { NgIf } from '@angular/common';\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { extend, NgtSignalStore, NgtThreeEvent } from 'angular-three';\nimport { AmbientLight, Group, PointLight } from 'three';\nimport { NGTS_GIZMO_HELPER_API } from '../gizmo-helper';\nimport { NgtsGizmoViewportAxis, NgtsGizmoViewportAxisHead } from './gizmo-viewport-axis';\n\nextend({ Group, AmbientLight, PointLight });\n\n@Component({\n selector: 'ngts-gizmo-viewport',\n standalone: true,\n template: `\n <ngt-group ngtCompound [scale]=\"40\">\n <ngts-gizmo-viewport-axis\n [color]=\"viewportAxisColors()[0]\"\n [rotation]=\"[0, 0, 0]\"\n [scale]=\"viewportAxisScale()\"\n ></ngts-gizmo-viewport-axis>\n <ngts-gizmo-viewport-axis\n [color]=\"viewportAxisColors()[1]\"\n [rotation]=\"[0, 0, Math.PI / 2]\"\n [scale]=\"viewportAxisScale()\"\n ></ngts-gizmo-viewport-axis>\n <ngts-gizmo-viewport-axis\n [color]=\"viewportAxisColors()[2]\"\n [rotation]=\"[0, -Math.PI / 2, 0]\"\n [scale]=\"viewportAxisScale()\"\n ></ngts-gizmo-viewport-axis>\n <ng-container *ngIf=\"!viewportHideAxisHeads()\">\n <ngts-gizmo-viewport-axis-head\n [arcStyle]=\"viewportAxisColors()[0]\"\n [position]=\"[1, 0, 0]\"\n [label]=\"viewportLabels()[0]\"\n [font]=\"viewportFont()\"\n [disabled]=\"viewportDisabled()\"\n [labelColor]=\"viewportLabelColor()\"\n [clickEmitter]=\"clicked\"\n [axisHeadScale]=\"viewportAxisHeadScale()\"\n (pointerdown)=\"onPointerDown($any($event))\"\n ></ngts-gizmo-viewport-axis-head>\n <ngts-gizmo-viewport-axis-head\n [arcStyle]=\"viewportAxisColors()[1]\"\n [position]=\"[0, 1, 0]\"\n [label]=\"viewportLabels()[1]\"\n [font]=\"viewportFont()\"\n [disabled]=\"viewportDisabled()\"\n [labelColor]=\"viewportLabelColor()\"\n [clickEmitter]=\"clicked\"\n [axisHeadScale]=\"viewportAxisHeadScale()\"\n (pointerdown)=\"onPointerDown($any($event))\"\n ></ngts-gizmo-viewport-axis-head>\n <ngts-gizmo-viewport-axis-head\n [arcStyle]=\"viewportAxisColors()[2]\"\n [position]=\"[0, 0, 1]\"\n [label]=\"viewportLabels()[2]\"\n [font]=\"viewportFont()\"\n [disabled]=\"viewportDisabled()\"\n [labelColor]=\"viewportLabelColor()\"\n [clickEmitter]=\"clicked\"\n [axisHeadScale]=\"viewportAxisHeadScale()\"\n (pointerdown)=\"onPointerDown($any($event))\"\n ></ngts-gizmo-viewport-axis-head>\n <ng-container *ngIf=\"!viewportHideNegativeAxes()\">\n <ngts-gizmo-viewport-axis-head\n [arcStyle]=\"viewportAxisColors()[0]\"\n [position]=\"[-1, 0, 0]\"\n [font]=\"viewportFont()\"\n [disabled]=\"viewportDisabled()\"\n [labelColor]=\"viewportLabelColor()\"\n [clickEmitter]=\"clicked\"\n [axisHeadScale]=\"viewportAxisHeadScale()\"\n (pointerdown)=\"onPointerDown($any($event))\"\n ></ngts-gizmo-viewport-axis-head>\n <ngts-gizmo-viewport-axis-head\n [arcStyle]=\"viewportAxisColors()[1]\"\n [position]=\"[0, -1, 0]\"\n [font]=\"viewportFont()\"\n [disabled]=\"viewportDisabled()\"\n [labelColor]=\"viewportLabelColor()\"\n [clickEmitter]=\"clicked\"\n [axisHeadScale]=\"viewportAxisHeadScale()\"\n (pointerdown)=\"onPointerDown($any($event))\"\n ></ngts-gizmo-viewport-axis-head>\n <ngts-gizmo-viewport-axis-head\n [arcStyle]=\"viewportAxisColors()[2]\"\n [position]=\"[0, 0, -1]\"\n [font]=\"viewportFont()\"\n [disabled]=\"viewportDisabled()\"\n [labelColor]=\"viewportLabelColor()\"\n [clickEmitter]=\"clicked\"\n [axisHeadScale]=\"viewportAxisHeadScale()\"\n (pointerdown)=\"onPointerDown($any($event))\"\n ></ngts-gizmo-viewport-axis-head>\n </ng-container>\n </ng-container>\n <ngt-ambient-light intensity=\"0.5\"></ngt-ambient-light>\n <ngt-point-light position=\"10\" intensity=\"0.5\"></ngt-point-light>\n </ngt-group>\n `,\n imports: [NgtsGizmoViewportAxis, NgtsGizmoViewportAxisHead, NgIf],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewport extends NgtSignalStore<{\n axisColors: [string, string, string];\n axisScale: [number, number, number];\n labels: [string, string, string];\n axisHeadScale: number;\n labelColor: string;\n hideNegativeAxes: boolean;\n hideAxisHeads: boolean;\n disabled: boolean;\n font: string;\n}> {\n readonly #gizmoHelperApi = inject(NGTS_GIZMO_HELPER_API);\n\n readonly Math = Math;\n\n @Input() set axisColors(axisColors: [string, string, string]) {\n this.set({ axisColors });\n }\n\n @Input() set axisScale(axisScale: [number, number, number]) {\n this.set({ axisScale });\n }\n\n @Input() set labels(labels: [string, string, string]) {\n this.set({ labels });\n }\n\n @Input() set axisHeadScale(axisHeadScale: number) {\n this.set({ axisHeadScale });\n }\n\n @Input() set labelColor(labelColor: string) {\n this.set({ labelColor });\n }\n\n @Input() set hideNegativeAxes(hideNegativeAxes: boolean) {\n this.set({ hideNegativeAxes });\n }\n\n @Input() set hideAxisHeads(hideAxisHeads: boolean) {\n this.set({ hideAxisHeads });\n }\n\n @Input() set disabled(disabled: boolean) {\n this.set({ disabled });\n }\n\n @Input() set font(font: string) {\n this.set({ font });\n }\n\n @Output() clicked = new EventEmitter<NgtThreeEvent<MouseEvent>>();\n\n readonly viewportAxisColors = this.select('axisColors');\n readonly viewportAxisScale = this.select('axisScale');\n readonly viewportLabels = this.select('labels');\n readonly viewportAxisHeadScale = this.select('axisHeadScale');\n readonly viewportLabelColor = this.select('labelColor');\n readonly viewportHideNegativeAxes = this.select('hideNegativeAxes');\n readonly viewportHideAxisHeads = this.select('hideAxisHeads');\n readonly viewportDisabled = this.select('disabled');\n readonly viewportFont = this.select('font');\n\n constructor() {\n super({\n font: '18px Inter var, Arial, sans-serif',\n axisColors: ['#ff2060', '#20df80', '#2080ff'],\n axisHeadScale: 1,\n labels: ['X', 'Y', 'Z'],\n labelColor: '#000',\n });\n }\n\n onPointerDown(event: NgtThreeEvent<PointerEvent>) {\n if (!this.get('disabled')) {\n event.stopPropagation();\n this.#gizmoHelperApi()(event.object.position);\n }\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from '@angular/core';\nimport { NgtArgs, NgtSignalStore, extend, injectNgtRef } from 'angular-three';\nimport { GridMaterial } from 'angular-three-soba/shaders';\nimport * as THREE from 'three';\nimport { Mesh, PlaneGeometry } from 'three';\n\nextend({ Mesh, GridMaterial, PlaneGeometry });\n\nexport interface NgtsGridState {\n /** Cell size, default: 0.5 */\n cellSize: number;\n /** Cell thickness, default: 0.5 */\n cellThickness: number;\n /** Cell color, default: black */\n cellColor: THREE.ColorRepresentation;\n /** Section size, default: 1 */\n sectionSize: number;\n /** Section thickness, default: 1 */\n sectionThickness: number;\n /** Section color, default: #2080ff */\n sectionColor: THREE.ColorRepresentation;\n /** Follow camera, default: false */\n followCamera: boolean;\n /** Display the grid infinitely, default: false */\n infiniteGrid: boolean;\n /** Fade distance, default: 100 */\n fadeDistance: number;\n /** Fade strength, default: 1 */\n fadeStrength: number;\n /** Material side, default: THREE.BackSide */\n side: THREE.Side;\n /** Default plane-geometry arguments */\n args: ConstructorParameters<typeof THREE.PlaneGeometry>;\n}\n\n@Component({\n selector: 'ngts-grid',\n standalone: true,\n template: `\n <ngt-mesh ngtCompound [ref]=\"gridRef\" [frustumCulled]=\"false\">\n <ngt-grid-material\n [transparent]=\"true\"\n [side]=\"gridSide()\"\n [cellSize]=\"gridCellSize()\"\n [sectionSize]=\"gridSectionSize()\"\n [cellColor]=\"gridCellColor()\"\n [sectionColor]=\"gridSectionColor()\"\n [cellThickness]=\"gridCellThickness()\"\n [sectionThickness]=\"gridSectionThickness()\"\n [fadeDistance]=\"gridFadeDistance()\"\n [fadeStrength]=\"gridFadeStrength()\"\n [infiniteGrid]=\"gridInfiniteGrid()\"\n [followCamera]=\"gridFollowCamera()\"\n />\n <ngt-plane-geometry *args=\"gridArgs()\" />\n </ngt-mesh>\n `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGrid extends NgtSignalStore<NgtsGridState> {\n @Input() gridRef = injectNgtRef<THREE.Mesh>();\n @Input() set cellSize(cellSize: NgtsGridState['cellSize']) {\n this.set({ cellSize });\n }\n\n @Input() set cellThickness(cellThickness: NgtsGridState['cellThickness']) {\n this.set({ cellThickness });\n }\n\n @Input() set cellColor(cellColor: NgtsGridState['cellColor']) {\n this.set({ cellColor });\n }\n\n @Input() set sectionSize(sectionSize: NgtsGridState['sectionSize']) {\n this.set({ sectionSize });\n }\n\n @Input() set sectionThickness(sectionThickness: NgtsGridState['sectionThickness']) {\n this.set({ sectionThickness });\n }\n\n @Input() set sectionColor(sectionColor: NgtsGridState['sectionColor']) {\n this.set({ sectionColor });\n }\n\n @Input() set followCamera(followCamera: NgtsGridState['followCamera']) {\n this.set({ followCamera });\n }\n\n @Input() set infiniteGrid(infiniteGrid: NgtsGridState['infiniteGrid']) {\n this.set({ infiniteGrid });\n }\n\n @Input() set fadeDistance(fadeDistance: NgtsGridState['fadeDistance']) {\n this.set({ fadeDistance });\n }\n\n @Input() set fadeStrength(fadeStrength: NgtsGridState['fadeStrength']) {\n this.set({ fadeStrength });\n }\n\n @Input() set side(side: NgtsGridState['side']) {\n this.set({ side });\n }\n\n @Input() set args(args: NgtsGridState['args']) {\n this.set({ args });\n }\n\n readonly gridCellSize = this.select('cellSize');\n readonly gridSectionSize = this.select('sectionSize');\n readonly gridFadeDistance = this.select('fadeDistance');\n readonly gridFadeStrength = this.select('fadeStrength');\n readonly gridCellThickness = this.select('cellThickness');\n readonly gridSectionThickness = this.select('sectionThickness');\n readonly gridInfiniteGrid = this.select('infiniteGrid');\n readonly gridFollowCamera = this.select('followCamera');\n readonly gridCellColor = this.select('cellColor');\n readonly gridSectionColor = this.select('sectionColor');\n readonly gridSide = this.select('side');\n readonly gridArgs = this.select('args');\n\n constructor() {\n super({\n cellSize: 0.5,\n sectionSize: 1,\n fadeDistance: 100,\n fadeStrength: 1,\n cellThickness: 0.5,\n sectionThickness: 1,\n infiniteGrid: false,\n followCamera: false,\n cellColor: '#000000',\n sectionColor: '#2080ff',\n side: THREE.BackSide,\n args: [1, 1, 1],\n });\n }\n}\n","import { Component, Input, computed, effect } from '@angular/core';\nimport { injectNgtRef } from 'angular-three';\nimport * as THREE from 'three';\nimport { Line2 } from 'three-stdlib';\nimport { NgtsLine } from '../line/line';\nimport { NgtsLineInputs } from '../line/line-input';\n\ndeclare module '../line/line-input' {\n interface NgtsLineState {\n start: THREE.Vector3 | [number, number, number];\n end: THREE.Vector3 | [number, number, number];\n mid?: THREE.Vector3 | [number, number, number];\n }\n}\n\nconst v = new THREE.Vector3();\n\n@Component({\n selector: 'ngts-quadratic-bezier-line',\n standalone: true,\n template: `\n <ngts-line\n [lineRef]=\"lineRef\"\n [points]=\"points()\"\n [color]=\"lineParameters().color\"\n [vertexColors]=\"lineParameters().vertexColors\"\n [resolution]=\"lineParameters().resolution\"\n [lineWidth]=\"lineParameters().linewidth\"\n [alphaToCoverage]=\"lineParameters().alphaToCoverage\"\n [dashed]=\"lineParameters().dashed\"\n [dashScale]=\"lineParameters().dashScale\"\n [dashSize]=\"lineParameters().dashSize\"\n [dashOffset]=\"lineParameters().dashOffset\"\n [gapSize]=\"lineParameters().gapSize\"\n [wireframe]=\"lineParameters().wireframe\"\n [worldUnits]=\"lineParameters().worldUnits\"\n />\n `,\n imports: [NgtsLine],\n})\nexport class NgtsQuadraticBezierLine extends NgtsLineInputs {\n @Input() lineRef = injectNgtRef<Line2>();\n\n @Input() set start(start: THREE.Vector3 | [number, number, number]) {\n this.set({ start });\n }\n\n @Input() set end(end: THREE.Vector3 | [number, number, number]) {\n this.set({ end });\n }\n\n @Input() set mid(mid: THREE.Vector3 | [number, number, number]) {\n this.set({ mid });\n }\n\n @Input() set segments(segments: number) {\n this.set({ segments });\n }\n\n readonly #curve = new THREE.QuadraticBezierCurve3(undefined!, undefined!, undefined!);\n\n readonly #start = this.select('start');\n readonly #end = this.select('end');\n readonly #mid = this.select('mid');\n readonly #segments = this.select('segments');\n readonly points = computed(() =>\n this.#getPoints(this.#start(), this.#end(), this.#mid(), this.#segments() as number)\n );\n\n constructor() {\n super();\n this.set({ start: [0, 0, 0], end: [0, 0, 0], segments: 20 });\n this.#replaceSetPoints();\n }\n\n #replaceSetPoints() {\n effect(() => {\n const line = this.lineRef.nativeElement;\n if (!line) return;\n (\n line as unknown as {\n setPoints: (\n start: THREE.Vector3 | [number, number, number],\n end: THREE.Vector3 | [number, number, number],\n mid: THREE.Vector3 | [number, number, number]\n ) => void;\n }\n ).setPoints = (start, end, mid) => {\n const points = this.#getPoints(start, end, mid);\n if (line.geometry) {\n line.geometry.setPositions(points.map((p) => p.toArray()).flat());\n }\n };\n });\n }\n\n #getPoints(\n start: THREE.Vector3 | [number, number, number],\n end: THREE.Vector3 | [number, number, number],\n mid?: THREE.Vector3 | [number, number, number],\n segments = 20\n ) {\n if (start instanceof THREE.Vector3) this.#curve.v0.copy(start);\n else this.#curve.v0.set(...(start as [number, number, number]));\n if (end instanceof THREE.Vector3) this.#curve.v2.copy(end);\n else this.#curve.v2.set(...(end as [number, number, number]));\n if (mid instanceof THREE.Vector3) {\n this.#curve.v1.copy(mid);\n } else {\n this.#curve.v1.copy(\n this.#curve.v0\n .clone()\n .add(this.#curve.v2.clone().sub(this.#curve.v0))\n .add(v.set(0, this.#curve.v0.y - this.#curve.v2.y, 0))\n );\n }\n return this.#curve.getPoints(segments);\n }\n}\n","import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { extend, injectNgtRef, NgtArgs, NgtSignalStore, type NgtMesh } from 'angular-three';\nimport { map, of, switchMap } from 'rxjs';\nimport { Mesh } from 'three';\nimport { FontLoader, TextGeometry } from 'three-stdlib';\n\ndeclare type Glyph = { _cachedOutline: string[]; ha: number; o: string };\n\ndeclare type FontData = {\n boundingBox: { yMax: number; yMin: number };\n familyName: string;\n glyphs: { [k: string]: Glyph };\n resolution: number;\n underlineThickness: number;\n};\n\nextend({ Mesh, TextGeometry });\n\nexport type NgtsText3DState = {\n font: FontData | string;\n text: string;\n letterSpacing: number;\n lineHeight: number;\n size: number;\n height: number;\n bevelThickness: number;\n bevelSize: number;\n bevelEnabled: boolean;\n bevelOffset: number;\n bevelSegments: number;\n curveSegments: number;\n smooth?: number;\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ngts-text-3d': NgtsText3DState & NgtMesh;\n }\n}\n\n@Component({\n selector: 'ngts-text-3d',\n standalone: true,\n template: `\n <ngt-mesh ngtCompound [ref]=\"textRef\">\n <ngt-text-geometry *args=\"geometryArgs()\" />\n <ng-content />\n </ngt-mesh>\n `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsText3D extends NgtSignalStore<NgtsText3DState> {\n @Input() textRef = injectNgtRef<Mesh>();\n\n @Input({ required: true }) set font(font: FontData | string) {\n this.set({ font });\n }\n\n @Input({ required: true }) set text(text: string) {\n this.set({ text });\n }\n\n @Input() set bevelEnabled(bevelEnabled: boolean) {\n this.set({ bevelEnabled });\n }\n\n @Input() set bevelOffset(bevelOffset: number) {\n this.set({ bevelOffset });\n }\n\n @Input() set bevelSize(bevelSize: number) {\n this.set({ bevelSize });\n }\n\n @Input() set bevelThickness(bevelThickness: number) {\n this.set({ bevelThickness });\n }\n\n @Input() set curveSegments(curveSegments: number) {\n this.set({ curveSegments });\n }\n\n @Input() set bevelSegments(bevelSegments: number) {\n this.set({ bevelSegments });\n }\n\n @Input() set height(height: number) {\n this.set({ height });\n }\n\n @Input() set size(size: number) {\n this.set({ size });\n }\n\n @Input() set lineHeight(lineHeight: number) {\n this.set({ lineHeight });\n }\n\n @Input() set letterSpacing(letterSpacing: number) {\n this.set({ letterSpacing });\n }\n\n @Input() set smooth(smooth: number) {\n this.set({ smooth });\n }\n\n constructor() {\n super({\n lineHeight: 1,\n letterSpacing: 0,\n size: 1,\n height: 0.2,\n bevelThickness: 0.1,\n bevelSize: 0.01,\n bevelEnabled: false,\n bevelOffset: 0,\n bevelSegments: 4,\n curveSegments: 8,\n });\n }\n\n readonly #fontData = toSignal(\n toObservable(this.select('font')).pipe(\n switchMap((font) => {\n if (typeof font === 'string') return fetch(font).then((res) => res.json()) as Promise<FontData>;\n return of(font as FontData);\n }),\n map((fontData) => new FontLoader().parse(fontData))\n )\n );\n\n readonly #text = this.select('text');\n readonly #size = this.select('size');\n readonly #height = this.select('height');\n readonly #bevelThickness = this.select('bevelThickness');\n readonly #bevelSize = this.select('bevelSize');\n readonly #bevelEnabled = this.select('bevelEnabled');\n readonly #bevelSegments = this.select('bevelSegments');\n readonly #bevelOffset = this.select('bevelOffset');\n readonly #curveSegments = this.select('curveSegments');\n readonly #letterSpacing = this.select('letterSpacing');\n readonly #lineHeight = this.select('lineHeight');\n readonly geometryArgs = computed(() => {\n const fontData = this.#fontData();\n if (!fontData) return null;\n\n return [\n this.#text(),\n {\n font: fontData,\n size: this.#size(),\n height: this.#height(),\n bevelThickness: this.#bevelThickness(),\n bevelSize: this.#bevelSize(),\n bevelSegments: this.#bevelSegments(),\n bevelEnabled: this.#bevelEnabled(),\n bevelOffset: this.#bevelOffset(),\n curveSegments: this.#curveSegments(),\n letterSpacing: this.#letterSpacing(),\n lineHeight: this.#lineHeight(),\n },\n ];\n });\n}\n","import {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n Output,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { NgtArgs, NgtSignalStore, NgtStore, injectNgtRef, type NgtMesh } from 'angular-three';\n\n// @ts-expect-error: no type def for troika-three-text\nimport { Text, preloadFont } from 'troika-three-text';\n\nexport type NgtsTextState = {\n text: string;\n /** Font size, default: 1 */\n fontSize: number;\n anchorX: number | 'left' | 'center' | 'right';\n anchorY: number | 'top' | 'top-baseline' | 'middle' | 'bottom-baseline' | 'bottom';\n sdfGlyphSize: number;\n font?: string;\n characters?: string;\n color?: THREE.ColorRepresentation;\n maxWidth?: number;\n lineHeight?: number;\n letterSpacing?: number;\n textAlign?: 'left' | 'right' | 'center' | 'justify';\n clipRect?: [number, number, number, number];\n depthOffset?: number;\n direction?: 'auto' | 'ltr' | 'rtl';\n overflowWrap?: 'normal' | 'break-word';\n whiteSpace?: 'normal' | 'overflowWrap' | 'nowrap';\n outlineWidth?: number | string;\n outlineOffsetX?: number | string;\n outlineOffsetY?: number | string;\n outlineBlur?: number | string;\n outlineColor?: THREE.ColorRepresentation;\n outlineOpacity?: number;\n strokeWidth?: number | string;\n strokeColor?: THREE.ColorRepresentation;\n strokeOpacity?: number;\n fillOpacity?: number;\n debugSDF?: boolean;\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ngts-text': NgtsTextState & NgtMesh;\n }\n}\n\n@Component({\n selector: 'ngts-text',\n standalone: true,\n template: `\n <ngt-primitive\n ngtCompound\n *args=\"[troikaText]\"\n [ref]=\"textRef\"\n [text]=\"state().text\"\n [anchorX]=\"state().anchorX\"\n [anchorY]=\"state().anchorY\"\n [font]=\"state().font\"\n [fontSize]=\"state().fontSize\"\n [sdfGlyphSize]=\"state().sdfGlyphSize\"\n [characters]=\"state().characters\"\n [color]=\"state().color\"\n [maxWidth]=\"state().maxWidth\"\n [lineHeight]=\"state().lineHeight\"\n [letterSpacing]=\"state().letterSpacing\"\n [textAlign]=\"state().textAlign\"\n [clipRect]=\"state().clipRect\"\n [depthOffset]=\"state().depthOffset\"\n [direction]=\"state().direction\"\n [overflowWrap]=\"state().overflowWrap\"\n [whiteSpace]=\"state().whiteSpace\"\n [outlineWidth]=\"state().outlineWidth\"\n [outlineOffsetX]=\"state().outlineOffsetX\"\n [outlineOffsetY]=\"state().outlineOffsetY\"\n [outlineBlur]=\"state().outlineBlur\"\n [outlineColor]=\"state().outlineColor\"\n [outlineOpacity]=\"state().outlineOpacity\"\n [strokeWidth]=\"state().strokeWidth\"\n [strokeColor]=\"state().strokeColor\"\n [strokeOpacity]=\"state().strokeOpacity\"\n [fillOpacity]=\"state().fillOpacity\"\n [debugSDF]=\"state().debugSDF\"\n >\n <ng-content />\n </ngt-primitive>\n `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsText extends NgtSignalStore<NgtsTextState> {\n @Input() textRef = injectNgtRef<Text>();\n\n @Input({ required: true }) set text(text: string) {\n this.set({ text });\n }\n\n @Input() set font(font: string) {\n this.set({ font });\n }\n\n @Input() set fontSize(fontSize: number) {\n this.set({ fontSize });\n }\n\n @Input() set anchorX(anchorX: number | 'left' | 'center' | 'right') {\n this.set({ anchorX });\n }\n\n @Input() set anchorY(anchorY: number | 'top' | 'top-baseline' | 'middle' | 'bottom-baseline' | 'bottom') {\n this.set({ anchorY });\n }\n\n @Input() set sdfGlyphSize(sdfGlyphSize: number) {\n this.set({ sdfGlyphSize });\n }\n\n @Input() set characters(characters: string) {\n this.set({ characters });\n }\n\n @Input() set color(color: THREE.ColorRepresentation) {\n this.set({ color });\n }\n\n @Input() set maxWidth(maxWidth: number) {\n this.set({ maxWidth });\n }\n\n @Input() set lineHeight(lineHeight: number) {\n this.set({ lineHeight });\n }\n\n @Input() set letterSpacing(letterSpacing: number) {\n this.set({ letterSpacing });\n }\n\n @Input() set textAlign(textAlign: 'left' | 'right' | 'center' | 'justify') {\n this.set({ textAlign });\n }\n\n @Input() set clipRect(clipRect: [number, number, number, number]) {\n this.set({ clipRect });\n }\n\n @Input() set depthOffset(depthOffset: number) {\n this.set({ depthOffset });\n }\n\n @Input() set direction(direction: 'auto' | 'ltr' | 'rtl') {\n this.set({ direction });\n }\n\n @Input() set overflowWrap(overflowWrap: 'normal' | 'break-word') {\n this.set({ overflowWrap });\n }\n\n @Input() set whiteSpace(whiteSpace: 'normal' | 'overflowWrap' | 'nowrap') {\n this.set({ whiteSpace });\n }\n\n @Input() set outlineWidth(outlineWidth: number | string) {\n this.set({ outlineWidth });\n }\n\n @Input() set outlineOffsetX(outlineOffsetX: number | string) {\n this.set({ outlineOffsetX });\n }\n\n @Input() set outlineOffsetY(outlineOffsetY: number | string) {\n this.set({ outlineOffsetY });\n }\n\n @Input() set outlineBlur(outlineBlur: number | string) {\n this.set({ outlineBlur });\n }\n\n @Input() set outlineColor(outlineColor: THREE.ColorRepresentation) {\n this.set({ outlineColor });\n }\n\n @Input() set outlineOpacity(outlineOpacity: number) {\n this.set({ outlineOpacity });\n }\n\n @Input() set strokeWidth(strokeWidth: number | string) {\n this.set({ strokeWidth });\n }\n\n @Input() set strokeColor(strokeColor: THREE.ColorRepresentation) {\n this.set({ strokeColor });\n }\n\n @Input() set strokeOpacity(strokeOpacity: number) {\n this.set({ strokeOpacity });\n }\n\n @Input() set fillOpacity(fillOpacity: number) {\n this.set({ fillOpacity });\n }\n\n @Input() set debugSDF(debugSDF: boolean) {\n this.set({ debugSDF });\n }\n\n @Output() sync = new EventEmitter<Text>();\n\n readonly troikaText = new Text();\n\n readonly #store = inject(NgtStore);\n\n constructor() {\n super({ fontSize: 1, sdfGlyphSize: 64, anchorX: 'center', anchorY: 'middle' });\n inject(DestroyRef).onDestroy(() => {\n this.troikaText.dispose();\n });\n this.#preloadFont();\n this.#syncText();\n }\n\n #preloadFont() {\n const font = this.select('font');\n const characters = this.select('characters');\n const trigger = computed(() => ({ font: font(), characters: characters() }));\n\n effect(() => {\n const { font, characters } = trigger();\n const invalidate = this.#store.get('invalidate');\n preloadFont({ font, characters }, () => invalidate());\n });\n }\n\n #syncText() {\n effect(() => {\n this.state();\n const invalidate = this.#store.get('invalidate');\n this.troikaText.sync(() => {\n invalidate();\n if (this.sync.observed) {\n this.sync.emit(this.troikaText);\n }\n });\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIA,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAelB,MAUa,aAAc,SAAQ,cAAkC,CAAA;IAGjE,IAAa,MAAM,CAAC,MAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IACD,IAAa,KAAK,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IACD,IAAa,KAAK,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IACD,IAAa,KAAK,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;AAED,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAhB7D,IAAY,CAAA,YAAA,GAAG,YAAY,EAAS,CAAC;AAiB1C,QAAA,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAI;AAC9B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACxC,YAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACnD,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,OAAO;;YAE5B,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;;AAG1C,YAAA,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;AAG1C,YAAA,IAAI,KAAK;gBAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAC3C,YAAA,IAAI,KAAK;gBAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAC3C,YAAA,IAAI,KAAK;gBAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;KACN;8GAjCQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAPZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGQ,aAAa,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAEY,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAGO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAGO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAGO,KAAK,EAAA,CAAA;sBAAjB,KAAK;;;AC7BV,MACsB,cAAe,SAAQ,cAA6B,CAAA;IACtE,IAAa,YAAY,CAAC,YAA2C,EAAA;AACjE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,SAAS,CAAC,SAAqC,EAAA;AACxD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,eAAe,CAAC,eAAiD,EAAA;AAC1E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACjC;IAED,IAAa,KAAK,CAAC,KAA6B,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,MAAM,CAAC,MAA+B,EAAA;AAC/C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,SAAS,CAAC,SAAqC,EAAA;AACxD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,QAAQ,CAAC,QAAmC,EAAA;AACrD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,UAAU,CAAC,UAAuC,EAAA;AAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,OAAO,CAAC,OAAiC,EAAA;AAClD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KACzB;IAED,IAAa,UAAU,CAAC,UAAuC,EAAA;AAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,SAAS,CAAC,SAAqC,EAAA;AACxD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,UAAU,CAAC,UAAuC,EAAA;AAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;AAEQ,IAAA,MAAM,CAAwB;AAC9B,IAAA,aAAa,CAA+B;AAC5C,IAAA,WAAW,CAA6B;AACxC,IAAA,UAAU,CAA4B;AACtC,IAAA,gBAAgB,CAAkC;AAClD,IAAA,OAAO,CAAyB;AAChC,IAAA,UAAU,CAA4B;AACtC,IAAA,SAAS,CAA2B;AACpC,IAAA,WAAW,CAA6B;AACxC,IAAA,QAAQ,CAA0B;AAClC,IAAA,UAAU,CAA4B;AACtC,IAAA,WAAW,CAA6B;AAiBjD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AA7BrB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAExC,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,OAAO;AACtC,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;AACpB,YAAA,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE;AAClC,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;AAC5B,YAAA,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACxC,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;AACtB,YAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;AAC5B,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;AACxB,YAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;AAC5B,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;AACjC,SAAA,CAAC,CAAC,CAAC;KAIH;8GA/EiB,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;0EAEO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,eAAe,EAAA,CAAA;sBAA3B,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;;;AC9CV,MA2Ba,QAAS,SAAQ,cAAc,CAAA;IAGxC,IAA+B,MAAM,CACjC,MAAmG,EAAA;AAEnG,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,QAAQ,CAAC,QAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;AAEQ,IAAA,MAAM,CAAoB;AAC1B,IAAA,KAAK,CAA8B;AAEnC,IAAA,eAAe,CAA6B;AAC5C,IAAA,WAAW,CAElB;AAEO,IAAA,OAAO,CAAyB;AAChC,IAAA,YAAY,CAanB;AAEO,IAAA,aAAa,CAA+B;AAC5C,IAAA,kBAAkB,CAEzB;AAEO,IAAA,SAAS,CAA2B;AAwC7C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QAlFH,IAAO,CAAA,OAAA,GAAG,YAAY,EAAyB,CAAC;AAYhD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEnC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAC5B,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAC9F,CAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAC7B,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,YAAA,OAAO,CAAC,YAAY,KAAK,CAAC,OAAO;AAC7B,kBAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjB,kBAAE,CAAC,YAAY,KAAK,CAAC,OAAO;sBAC1B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACf,sBAAE,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AAC3B,0BAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,0BAAE,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AAC3B,8BAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;8BACf,CAAC,CAAC;SACX,CAAC,CACL,CAAC;AAEO,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MACnC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CACxF,CAAC;AAEO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACxC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE/C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,oBAAoB,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;YACpF,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAE1C,IAAI,YAAY,CAAC,MAAM,EAAE;gBACrB,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3C,aAAA;AAED,YAAA,OAAO,QAAQ,CAAC;AACpB,SAAC,CAAC,CAAC;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,aAAa,EAAE,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AAE9E,QAAA,IAAA,CAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;AAC5C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACzC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEtD,YAAA,IAAI,YAAY,EAAE;AACd,gBAAA,UAAU,CAAC,KAAK,GAAG,SAAU,CAAC;AACjC,aAAA;YAED,OAAO;AACH,gBAAA,GAAG,UAAU;gBACb,YAAY;gBACZ,UAAU;gBACV,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS;gBAC9D,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ;gBAC3D,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU;gBACjE,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO;gBACxD,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS;gBAC9D,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU;aACpE,CAAC;AACN,SAAC,CAAC,CAAC;QAIC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9B,kCAAkC,CAAC,MAAK;YACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACjC,SAAC,CAAC,CAAC;KACN;IAED,qBAAqB,GAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC1B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACzC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACrD,YAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC1E,SAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAChC,SAAC,CAAC,CAAC;KACN;IAED,gBAAgB,GAAA;AACZ,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACjB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,SAAS,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACN;8GA/GQ,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAxBP,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;AAoBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBA3BpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;AAoBT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEyB,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAMZ,QAAQ,EAAA,CAAA;sBAApB,KAAK;;;AChCV,MAwBa,kBAAmB,SAAQ,cAAc,CAAA;IAGlD,IAA+B,MAAM,CACjC,MAAmG,EAAA;AAEnG,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,MAAM,CAAC,MAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,SAAS,CAAC,SAAmD,EAAA;AACtE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,OAAO,CAAC,OAAe,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KACzB;IAED,IAAa,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;AAEQ,IAAA,OAAO,CAAyB;AAChC,IAAA,OAAO,CAAyB;AAChC,IAAA,UAAU,CAA4B;AACtC,IAAA,QAAQ,CAA0B;AAClC,IAAA,aAAa,CAA+B;AAE5C,IAAA,MAAM,CAKZ;AAEM,IAAA,SAAS,CAA2B;AA6B7C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QAnEH,IAAO,CAAA,OAAA,GAAG,YAAY,EAAS,CAAC;AAwBhC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC5B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KACtC,CAAC,YAAY,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAI,CAA8B,CAAC,CACzF,CAAC;YACF,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClG,SAAC,CAAC,CAAC;AAEM,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAY,CAAC,CAAC;AACvD,SAAC,CAAC,CAAC;AAEM,QAAA,IAAA,CAAA,wBAAwB,GAAG,QAAQ,CAAC,MAAK;AAC9C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAY,CAAC;AAE5C,YAAA,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;AAAE,gBAAA,OAAO,SAAS,CAAC;AAC/D,YAAA,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,GAAG,CAAC;AAAE,gBAAA,OAAO,YAAY,CAAC;AAE9D,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAA6C,KAChF,KAAK,YAAY,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CACnE,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAEnE,MAAM,OAAO,GAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC;gBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5F,aAAA;AACD,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,YAAA,OAAO,OAAO,CAAC;AACnB,SAAC,CAAC,CAAC;QAIC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;KACrF;8GAtEQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EArBjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGT,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAxB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,QAAQ,CAAC;oBACnB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEyB,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAMZ,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;;;AC7CV,MAuBa,mBAAoB,SAAQ,cAAc,CAAA;IAGnD,IAA+B,KAAK,CAAC,KAA+C,EAAA;AAChF,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAA+B,GAAG,CAAC,GAA6C,EAAA;AAC5E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACrB;IAED,IAA+B,IAAI,CAAC,IAA8C,EAAA;AAC9E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAA+B,IAAI,CAAC,IAA8C,EAAA;AAC9E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;AAEQ,IAAA,MAAM,CAAwB;AAC9B,IAAA,IAAI,CAAsB;AAC1B,IAAA,KAAK,CAAuB;AAC5B,IAAA,KAAK,CAAuB;AAC5B,IAAA,SAAS,CAA2B;AAgB7C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QA3CH,IAAO,CAAA,OAAA,GAAG,YAAY,EAAS,CAAC;AAsBhC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEpC,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC5B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC5B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACxB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAY,CAAC;YAE5C,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YACpF,MAAM,IAAI,GAAG,GAAG,YAAY,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,YAAY,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,IAAI,YAAY,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAChF,YAAA,OAAO,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACvF,SAAC,CAAC,CAAC;QAIC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;KAC9B;8GA9CQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EApBlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAvB/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,QAAQ,CAAC;AACtB,iBAAA,CAAA;0EAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEyB,KAAK,EAAA,CAAA;sBAAnC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIM,GAAG,EAAA,CAAA;sBAAjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIM,IAAI,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIM,IAAI,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIZ,QAAQ,EAAA,CAAA;sBAApB,KAAK;;;ACpDV,MAAM,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAS5C,MAgBa,SAAU,SAAQ,cAA8B,CAAA;IAGzD,IAAa,SAAS,CAAC,SAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,KAAK,CAAC,KAAgC,EAAA;AAC/C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,QAAQ,CAAC,QAA8B,EAAA;AAChD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,QAAQ,CAAC,QAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC;AACF,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,EAAE;AACf,SAAA,CAAC,CAAC;QA3BE,IAAQ,CAAA,QAAA,GAAG,YAAY,EAAsB,CAAC;QAkB9C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAErB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,IAAI,CAAC;QAQvB,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,cAAc,GAAA;QACV,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC1C,YAAA,IAAI,CAAC,KAAK;gBAAE,OAAO;AACnB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAoB,CAAC;AAC1C,YAAA,IAAI,MAAM,EAAE;AACR,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC;gBACrD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACxC,gBAAA,IAAI,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAC5F,oBAAA,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;AACrC,oBAAA,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;AAC/C,oBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7D,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;KACN;8GA/CQ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAbR,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;AAST,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,SAAS,EAAA,UAAA,EAAA,CAAA;kBAhBrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AAST,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAEY,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;AC3BV,MAAM,eAAe,GAAG,CAAC,QAAuB,KAC5C,eAAe,IAAK,QAA0B,CAAC;MAGtC,qBAAqB,GAAG,IAAI,cAAc,CAA6B,qBAAqB,EAAE;AAE3G,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAkBlB,MACa,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,qCAAqC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;;AAGhF,MAuBa,eAAgB,SAAQ,cAAoC,CAAA;IAIrE,IAAa,SAAS,CAClB,SASkB,EAAA;AAElB,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,MAAM,CAAC,MAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,cAAc,CAAC,cAAsB,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KAChC;IAED,IAAa,SAAS,CAAC,SAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;AAOQ,IAAA,MAAM,CAAoB;AAC1B,IAAA,OAAO,CAAgC;AACvC,IAAA,KAAK,CAA8B;AAEnC,IAAA,UAAU,CAA4B;AACtC,IAAA,OAAO,CAAyB;AAEzC,IAAA,UAAU,CAAS;AACnB,IAAA,OAAO,CAAK;AACZ,IAAA,WAAW,CAAwB;AACnC,IAAA,GAAG,CAAoB;AACvB,IAAA,GAAG,CAAoB;AACvB,IAAA,OAAO,CAAiB;AACxB,IAAA,eAAe,CAAiB;AAChC,IAAA,MAAM,CAAkB;AAExB,IAAA,UAAU,CAAwB;IAClC,SAAS,CAAe;AACxB,IAAA,OAAO,CAAiB;AAwCxB,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QA9FrE,IAAQ,CAAA,QAAA,GAAG,YAAY,EAAS,CAAC;QACjC,IAAgB,CAAA,gBAAA,GAAG,YAAY,EAAsB,CAAC;AA6BrD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;AAKpC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAW,CAAA,WAAA,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAExB,IAAU,CAAA,UAAA,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,IAAS,CAAA,SAAA,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAEf,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC9B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACpC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAE9B,YAAA,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;AAClC,YAAA,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACnC,kBAAE,CAAC;AACH,kBAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;sBAC3B,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO;sBACzB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC;AAC/B,YAAA,MAAM,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;AACrC,kBAAE,CAAC;AACH,kBAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;AAC9B,sBAAE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO;sBACzB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC;AAEjC,YAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,SAAC,CAAC,CAAC;QAEM,IAAG,CAAA,GAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAwB,KAAI;AACvD,YAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAC3D,MAAM,eAAe,GAAG,QAAoC,CAAC;AAE7D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,eAAe;AAAE,gBAAA,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;AAC/D,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;YAExD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;;YAEjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtC,YAAA,UAAU,EAAE,CAAC;AACjB,SAAC,CAAC,CAAC;QAIC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;QACxB,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AACpE,YAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACvE,MAAM,eAAe,GAAG,QAAoC,CAAC;;YAE7D,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE;AACnC,oBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;;;;AAIxB,oBAAA,IAAI,eAAe,CAAC,eAAe,CAAC,EAAE;wBAClC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,qBAAA;AACJ,iBAAA;AAAM,qBAAA;AACH,oBAAA,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;;oBAEpC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;AAEvC,oBAAA,UAAU,CAAC,QAAQ;AACd,yBAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,yBAAA,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;AACzB,yBAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,yBAAA,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;oBACjE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,oBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;AAAE,wBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC1C,yBAAA,IAAI,eAAe,EAAE;wBACtB,eAAe,CAAC,MAAM,EAAE,CAAC;AAC5B,qBAAA;AACD,oBAAA,UAAU,EAAE,CAAC;AAChB,iBAAA;AACJ,aAAA;;AAGD,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9C,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9E,SAAA;KACJ;IAED,gBAAgB,GAAA;QACZ,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACpC,SAAC,CAAC,CAAC;KACN;8GAjJQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EALb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;YACP,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,KAAsB,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE;SACjH,EAoCa,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EArD7D,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,SAAS,EAAE,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,iHAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMtE,eAAe,EAAA,UAAA,EAAA,CAAA;kBAvB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;AAaT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC;AAChF,oBAAA,SAAS,EAAE;AACP,wBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,KAAsB,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE;AACjH,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAKgB,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAeO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIO,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAII,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAGP,kBAAkB,EAAA,CAAA;sBADjB,YAAY;uBAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;;;ACxGtE,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAChF,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAChF,MAAM,kBAAkB,GAAG,CAAC,GAAa,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAEtF,MAAM,OAAO,GAAoB;AACpC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACX,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACX,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACf,CAAA,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAEnB,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAA6B,CAAC;AAExE,MAAM,KAAK,GAAoB;AAClC,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACX,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACV,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACX,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,CAAA,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAEnB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CACnC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAY,MAAc,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAA6B,CAC/G;;ACtBD,MACsB,uBAAwB,SAAQ,cAA4C,CAAA;AADlG,IAAA,WAAA,GAAA;;AAkCa,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjD,KAAA;IAvCG,IAAa,OAAO,CAAC,OAAe,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KACzB;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,SAAS,CAAC,SAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,WAAW,CAAC,WAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,KAAK,CAAC,KAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,IAAI,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,KAAK,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,YAAY,CAAC,YAAqD,EAAA;AAC3E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;8GA/BiB,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAD5C,SAAS;8BAEO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;;;ACrCV,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAEjD,MAuBa,yBAA0B,SAAQ,cAG7C,CAAA;AACW,IAAA,eAAe,CAAiC;IAMzD,IAA+B,UAAU,CAAC,UAAoC,EAAA;AAC1E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAA+B,QAAQ,CAAC,QAAiB,EAAA;AACrD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;AAKD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAlBH,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEtC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAEpE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAUb,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAIhD,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAC3D;AAED,IAAA,aAAa,CAAC,KAAkC,EAAA;QAC5C,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACxB;AAED,IAAA,YAAY,CAAC,KAAkC,EAAA;QAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACzB;AAED,IAAA,OAAO,CAAC,KAAgC,EAAA;QACpC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE;AACnD,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;YACH,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AAChD,SAAA;KACJ;8GA3CQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EApBxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;AAgBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGR,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAvBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAWkC,UAAU,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIM,QAAQ,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;ACtC7B,MAAM,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAEnD,MAiBa,6BAA8B,SAAQ,cAGjD,CAAA;AACW,IAAA,SAAS,CAAoB;AAC7B,IAAA,MAAM,CAAoB;IAInC,IAA+B,KAAK,CAAC,KAAa,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAA+B,KAAK,CAAC,KAAc,EAAA;AAC/C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;AA6BD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAzCH,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAE,CAAA,EAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAU3D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAEjC,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC7B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;YAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACtD,YAAA,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;AACnB,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;AACzC,YAAA,OAAO,CAAC,SAAS,GAAG,KAAM,CAAC;AAC3B,YAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACpD,YAAA,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;AAClC,YAAA,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACtD,YAAA,OAAO,CAAC,IAAI,GAAG,IAAK,CAAC;AACrB,YAAA,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC7B,YAAA,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,YAAA,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAErD,YAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;AAIC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,YAAA,IAAI,EAAE,mCAAmC;AACzC,YAAA,KAAK,EAAE,YAAY;YACnB,UAAU,EAAE,MAAM,CAAC,KAAK;YACxB,SAAS,EAAE,MAAM,CAAC,IAAI;YACtB,WAAW,EAAE,MAAM,CAAC,MAAM;AAC1B,YAAA,OAAO,EAAE,CAAC;AACb,SAAA,CAAC,CAAC;KACN;8GAvDQ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAd5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGQ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAjBzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAUkC,KAAK,EAAA,CAAA;sBAAnC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIM,KAAK,EAAA,CAAA;sBAAnC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;AA6C7B,MAgBa,yBAAyB,CAAA;AAhBtC,IAAA,WAAA,GAAA;AAiBa,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEtC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAEpE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAoBtB,KAAA;AAxBY,IAAA,eAAe,CAAiC;AAMzD,IAAA,aAAa,CAAC,KAAkC,EAAA;QAC5C,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAU,GAAG,CAAC,CAAC,CAAC,CAAC;KACpD;AAED,IAAA,YAAY,CAAC,KAAkC,EAAA;QAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACtB;AAED,IAAA,OAAO,CAAC,KAAgC,EAAA;QACpC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE;AACnD,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;YACH,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;AAC9C,SAAA;KACJ;8GAxBQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAbxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;KAST,EAtEQ,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,6BAA6B,0GAuEG,SAAS,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGzC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAhBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AAST,IAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC;oBACnD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;;;AC3FD,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5C,MA2Ba,iBAAkB,SAAQ,uBAAuB,CAAA;AAS1D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QATH,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;QACd,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAEhC,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;QAClB,IAAgB,CAAA,gBAAA,GAAG,gBAAgB,CAAC;AAEnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAA6B,CAAC;QAI9D,kCAAkC,CAAC,MAAK;AACpC,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvB,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5C,aAAA;AACL,SAAC,CAAC,CAAC;KACN;8GAhBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAHf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EArBvE,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,yBAAyB,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI5D,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA3B7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,IAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,KAAK,CAAC;oBACtE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAmB,iBAAA,EAAE,CAAC;oBACjF,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAQa,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;ACxCX,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;AAEhF,MAca,qBAAsB,SAAQ,cAIzC,CAAA;IACE,IAA+B,KAAK,CAAC,KAAa,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAA+B,QAAQ,CAAC,QAAkC,EAAA;AACtE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,KAAK,CAAC,KAA+B,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAL/B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAIzC;8GAvBQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAXpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;AAOT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGR,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;AAOT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAMkC,KAAK,EAAA,CAAA;sBAAnC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIM,QAAQ,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIZ,KAAK,EAAA,CAAA;sBAAjB,KAAK;;AAaV,MAwBa,yBAA0B,SAAQ,cAQ7C,CAAA;AACW,IAAA,SAAS,CAAoB;AAC7B,IAAA,MAAM,CAAoB;IAGnC,IAAa,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,KAAK,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,aAAa,CAAC,aAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,QAAQ,CAAC,QAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,IAAI,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,YAAY,CAAC,YAAqD,EAAA;AAC3E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;AAIQ,IAAA,SAAS,CAA2B;AACpC,IAAA,WAAW,CAA6B;AACxC,IAAA,KAAK,CAAuB;AAC5B,IAAA,cAAc,CAAgC;AAqCvD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AA3EvB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAE,CAAA,EAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AA8BvC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAEd,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAEjC,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC7B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAClC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACtD,YAAA,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;AAClB,YAAA,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;YACzC,OAAO,CAAC,SAAS,EAAE,CAAC;AACpB,YAAA,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,SAAS,EAAE,CAAC;AACpB,YAAA,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC7B,OAAO,CAAC,IAAI,EAAE,CAAC;AAEf,YAAA,IAAI,KAAK,EAAE;AACP,gBAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,gBAAA,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC7B,gBAAA,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC;gBAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,aAAA;AACD,YAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;AAEM,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AAC3B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7B,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5C,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;AACnE,SAAC,CAAC,CAAC;KAIF;AAED,IAAA,aAAa,CAAC,KAAkC,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;KACJ;AAED,IAAA,YAAY,CAAC,KAAkC,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE;gBACpC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,aAAA;AAAM,iBAAA;gBACH,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAA;AACJ,SAAA;KACJ;8GAvGQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EArBxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIQ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAxBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAcgB,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;;;ACrGV,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5C,MA8Fa,iBAAkB,SAAQ,cAUrC,CAAA;AACW,IAAA,eAAe,CAAiC;IAIzD,IAAa,UAAU,CAAC,UAAoC,EAAA;AACxD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,SAAS,CAAC,SAAmC,EAAA;AACtD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,MAAM,CAAC,MAAgC,EAAA;AAChD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,aAAa,CAAC,aAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,gBAAgB,CAAC,gBAAyB,EAAA;AACnD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAClC;IAED,IAAa,aAAa,CAAC,aAAsB,EAAA;AAC7C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,QAAQ,CAAC,QAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,IAAI,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;AAcD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC;AACF,YAAA,IAAI,EAAE,mCAAmC;AACzC,YAAA,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAC7C,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACvB,YAAA,UAAU,EAAE,MAAM;AACrB,SAAA,CAAC,CAAC;AA3DE,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEhD,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC;AAsCX,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAA6B,CAAC;AAEzD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAU3C;AAED,IAAA,aAAa,CAAC,KAAkC,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjD,SAAA;KACJ;8GA9EQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EA3FhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,qBAAqB,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,eAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGvD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA9F7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFT,IAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,IAAI,CAAC;oBACjE,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAgBgB,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAII,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;ACpJX,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;AA6B9C,MAyBa,QAAS,SAAQ,cAA6B,CAAA;IAEvD,IAAa,QAAQ,CAAC,QAAmC,EAAA;AACrD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,aAAa,CAAC,aAA6C,EAAA;AACpE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,SAAS,CAAC,SAAqC,EAAA;AACxD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,WAAW,CAAC,WAAyC,EAAA;AAC9D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,gBAAgB,CAAC,gBAAmD,EAAA;AAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAClC;IAED,IAAa,YAAY,CAAC,YAA2C,EAAA;AACjE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,YAAY,CAAC,YAA2C,EAAA;AACjE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,YAAY,CAAC,YAA2C,EAAA;AACjE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,YAAY,CAAC,YAA2C,EAAA;AACjE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,YAAY,CAAC,YAA2C,EAAA;AACjE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,IAAI,CAAC,IAA2B,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,IAAI,CAAC,IAA2B,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;AAeD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC;AACF,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,YAAY,EAAE,GAAG;AACjB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,aAAa,EAAE,GAAG;AAClB,YAAA,gBAAgB,EAAE,CAAC;AACnB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,KAAK,CAAC,QAAQ;AACpB,YAAA,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClB,SAAA,CAAC,CAAC;QA5EE,IAAO,CAAA,OAAA,GAAG,YAAY,EAAc,CAAC;AAiDrC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACvD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAiBvC;8GA9EQ,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAtBP,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;AAkBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAzBpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;AAkBT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,gBAAgB,EAAA,CAAA;sBAA5B,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;;;AC3FV,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AAE9B,MAuBa,uBAAwB,SAAQ,cAAc,CAAA;IAGvD,IAAa,KAAK,CAAC,KAA+C,EAAA;AAC9D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,GAAG,CAAC,GAA6C,EAAA;AAC1D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACrB;IAED,IAAa,GAAG,CAAC,GAA6C,EAAA;AAC1D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACrB;IAED,IAAa,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;AAEQ,IAAA,MAAM,CAAuE;AAE7E,IAAA,MAAM,CAAwB;AAC9B,IAAA,IAAI,CAAsB;AAC1B,IAAA,IAAI,CAAsB;AAC1B,IAAA,SAAS,CAA2B;AAK7C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QA7BH,IAAO,CAAA,OAAA,GAAG,YAAY,EAAS,CAAC;AAkBhC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,SAAU,EAAE,SAAU,EAAE,SAAU,CAAC,CAAC;AAE7E,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,EAAY,CAAC,CACvF,CAAC;AAIE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,iBAAiB,GAAA;QACb,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACxC,YAAA,IAAI,CAAC,IAAI;gBAAE,OAAO;YAEd,IAOH,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,KAAI;AAC9B,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACrE,iBAAA;AACL,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACN;IAED,UAAU,CACN,KAA+C,EAC/C,GAA6C,EAC7C,GAA8C,EAC9C,QAAQ,GAAG,EAAE,EAAA;AAEb,QAAA,IAAI,KAAK,YAAY,KAAK,CAAC,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAI,KAAkC,CAAC,CAAC;AAChE,QAAA,IAAI,GAAG,YAAY,KAAK,CAAC,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YACtD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAI,GAAgC,CAAC,CAAC;AAC9D,QAAA,IAAI,GAAG,YAAY,KAAK,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CACf,IAAI,CAAC,MAAM,CAAC,EAAE;AACT,iBAAA,KAAK,EAAE;AACP,iBAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;AACL,SAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC1C;8GA7EQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EApBtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAvBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,QAAQ,CAAC;AACtB,iBAAA,CAAA;0EAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,GAAG,EAAA,CAAA;sBAAf,KAAK;gBAIO,GAAG,EAAA,CAAA;sBAAf,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;;;ACtCV,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AAwB/B,MAYa,UAAW,SAAQ,cAA+B,CAAA;IAG3D,IAA+B,IAAI,CAAC,IAAuB,EAAA;AACvD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAA+B,IAAI,CAAC,IAAY,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,YAAY,CAAC,YAAqB,EAAA;AAC3C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,WAAW,CAAC,WAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,SAAS,CAAC,SAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,cAAc,CAAC,cAAsB,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KAChC;IAED,IAAa,aAAa,CAAC,aAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,aAAa,CAAC,aAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,MAAM,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,IAAI,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,aAAa,CAAC,aAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,MAAM,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;AAED,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC;AACF,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,cAAc,EAAE,GAAG;AACnB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,aAAa,EAAE,CAAC;AACnB,SAAA,CAAC,CAAC;QAlEE,IAAO,CAAA,OAAA,GAAG,YAAY,EAAQ,CAAC;QAqE/B,IAAS,CAAA,SAAA,GAAG,QAAQ,CACzB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAClC,SAAS,CAAC,CAAC,IAAI,KAAI;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;AAChG,YAAA,OAAO,EAAE,CAAC,IAAgB,CAAC,CAAC;SAC/B,CAAC,EACF,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACtD,CACJ,CAAC;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,QAAQ;AAAE,gBAAA,OAAO,IAAI,CAAC;YAE3B,OAAO;gBACH,IAAI,CAAC,KAAK,EAAE;AACZ,gBAAA;AACI,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AAClB,oBAAA,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;AACtB,oBAAA,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE;AACtC,oBAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;AAC5B,oBAAA,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE;AACpC,oBAAA,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE;AAClC,oBAAA,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE;AAChC,oBAAA,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE;AACpC,oBAAA,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE;AACpC,oBAAA,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;AACjC,iBAAA;aACJ,CAAC;AACN,SAAC,CAAC,CAAC;KA3CF;AAEQ,IAAA,SAAS,CAQhB;AAEO,IAAA,KAAK,CAAuB;AAC5B,IAAA,KAAK,CAAuB;AAC5B,IAAA,OAAO,CAAyB;AAChC,IAAA,eAAe,CAAiC;AAChD,IAAA,UAAU,CAA4B;AACtC,IAAA,aAAa,CAA+B;AAC5C,IAAA,cAAc,CAAgC;AAC9C,IAAA,YAAY,CAA8B;AAC1C,IAAA,cAAc,CAAgC;AAC9C,IAAA,cAAc,CAAgC;AAC9C,IAAA,WAAW,CAA6B;8GA1FxC,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EATT,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;AAKT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGR,UAAU,EAAA,UAAA,EAAA,CAAA;kBAZtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;AAKT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEyB,IAAI,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIM,IAAI,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIZ,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;;;AClDV,MA2Ca,QAAS,SAAQ,cAA6B,CAAA;IAGvD,IAA+B,IAAI,CAAC,IAAY,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,IAAI,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,OAAO,CAAC,OAA6C,EAAA;AAC9D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KACzB;IAED,IAAa,OAAO,CAAC,OAAkF,EAAA;AACnG,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KACzB;IAED,IAAa,YAAY,CAAC,YAAoB,EAAA;AAC1C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,KAAK,CAAC,KAAgC,EAAA;AAC/C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,aAAa,CAAC,aAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,SAAS,CAAC,SAAkD,EAAA;AACrE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,QAAQ,CAAC,QAA0C,EAAA;AAC5D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,WAAW,CAAC,WAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,SAAS,CAAC,SAAiC,EAAA;AACpD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,YAAY,CAAC,YAAqC,EAAA;AAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,UAAU,CAAC,UAAgD,EAAA;AACpE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,YAAY,CAAC,YAA6B,EAAA;AACnD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,cAAc,CAAC,cAA+B,EAAA;AACvD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KAChC;IAED,IAAa,cAAc,CAAC,cAA+B,EAAA;AACvD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KAChC;IAED,IAAa,WAAW,CAAC,WAA4B,EAAA;AACjD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,YAAY,CAAC,YAAuC,EAAA;AAC7D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;IAED,IAAa,cAAc,CAAC,cAAsB,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KAChC;IAED,IAAa,WAAW,CAAC,WAA4B,EAAA;AACjD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,WAAW,CAAC,WAAsC,EAAA;AAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,aAAa,CAAC,aAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KAC/B;IAED,IAAa,WAAW,CAAC,WAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,QAAQ,CAAC,QAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;AAMQ,IAAA,MAAM,CAAoB;AAEnC,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAzH1E,IAAO,CAAA,OAAA,GAAG,YAAY,EAAQ,CAAC;AAkH9B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEjC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAExB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAI/B,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;IAED,YAAY,GAAA;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QAE7E,MAAM,CAAC,MAAK;YACR,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACjD,YAAA,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,UAAU,EAAE,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;KACN;IAED,SAAS,GAAA;QACL,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAK;AACtB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnC,iBAAA;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;8GAzJQ,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAxCP,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBA3CpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCT,IAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;0EAEY,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEyB,IAAI,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIZ,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAIO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAIO,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIO,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAII,IAAI,EAAA,CAAA;sBAAb,MAAM;;;ACpNX;;AAEG;;;;"}
1
+ {"version":3,"file":"angular-three-soba-abstractions.mjs","sources":["../../../../libs/soba/abstractions/src/billboard/billboard.ts","../../../../libs/soba/abstractions/src/detailed/detailed.ts","../../../../libs/soba/abstractions/src/edges/edges.ts","../../../../libs/soba/abstractions/src/grid/grid.ts","../../../../libs/soba/abstractions/src/text-3d/text-3d.ts","../../../../libs/soba/abstractions/src/text/text.ts","../../../../libs/soba/abstractions/src/angular-three-soba-abstractions.ts"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from '@angular/core';\nimport { extend, injectBeforeRender, injectNgtRef, signalStore, type NgtGroup } from 'angular-three';\nimport { Group } from 'three';\n\nextend({ Group });\n\nexport type NgtsBillboardState = {\n\tfollow?: boolean;\n\tlockX?: boolean;\n\tlockY?: boolean;\n\tlockZ?: boolean;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-group\n\t\t */\n\t\t'ngts-billboard': NgtsBillboardState & NgtGroup;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-billboard',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group ngtCompound [ref]=\"billboardRef\">\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsBillboard {\n\tprivate inputs = signalStore<NgtsBillboardState>({ follow: true, lockX: false, lockY: false, lockZ: false });\n\n\t@Input() billboardRef = injectNgtRef<Group>();\n\n\t@Input({ alias: 'follow' }) set _follow(follow: boolean) {\n\t\tthis.inputs.set({ follow });\n\t}\n\n\t@Input({ alias: 'lockX' }) set _lockX(lockX: boolean) {\n\t\tthis.inputs.set({ lockX });\n\t}\n\n\t@Input({ alias: 'lockY' }) set _lockY(lockY: boolean) {\n\t\tthis.inputs.set({ lockY });\n\t}\n\n\t@Input({ alias: 'lockZ' }) set _lockZ(lockZ: boolean) {\n\t\tthis.inputs.set({ lockZ });\n\t}\n\n\tconstructor() {\n\t\tinjectBeforeRender(({ camera }) => {\n\t\t\tconst ref = this.billboardRef.untracked;\n\t\t\tconst { follow, lockX, lockY, lockZ } = this.inputs.get();\n\t\t\tif (!ref || !follow) return;\n\t\t\t// save previous rotation in case we're locking an axis\n\t\t\tconst prevRotation = ref.rotation.clone();\n\n\t\t\t// always face the camera\n\t\t\tcamera.getWorldQuaternion(ref.quaternion);\n\n\t\t\t// re-adjust any axis that is locked\n\t\t\tif (lockX) ref.rotation.x = prevRotation.x;\n\t\t\tif (lockY) ref.rotation.y = prevRotation.y;\n\t\t\tif (lockZ) ref.rotation.z = prevRotation.z;\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, effect } from '@angular/core';\nimport { extend, injectNgtRef, signalStore, type NgtBeforeRenderEvent, type NgtLOD } from 'angular-three';\nimport { LOD } from 'three';\n\nextend({ LOD });\n\nexport type NgtsDetailedState = {\n\thysteresis: number;\n\tdistances: number[];\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-lOD\n\t\t */\n\t\t'ngts-detailed': NgtsDetailedState & NgtLOD;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-detailed',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-lOD ngtCompound [ref]=\"lodRef\" (beforeRender)=\"onBeforeRender($event)\">\n\t\t\t<ng-content />\n\t\t</ngt-lOD>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsDetailed {\n\tprivate inputs = signalStore<NgtsDetailedState>({ hysteresis: 0 });\n\n\t@Input() lodRef = injectNgtRef<LOD>();\n\n\t@Input({ required: true, alias: 'distances' }) set _distances(distances: number[]) {\n\t\tthis.inputs.set({ distances });\n\t}\n\n\t@Input({ alias: 'hysteresis' }) set _hysteresis(hysteresis: number) {\n\t\tthis.inputs.set({ hysteresis });\n\t}\n\n\tconstructor() {\n\t\tthis.updateChildren();\n\t}\n\n\tonBeforeRender({ object, state }: NgtBeforeRenderEvent<LOD>) {\n\t\tobject.update(state.camera);\n\t}\n\n\tprivate updateChildren() {\n\t\tconst lodChildren = this.lodRef.children();\n\t\tconst _distances = this.inputs.select('distances');\n\t\tconst _hysteresis = this.inputs.select('hysteresis');\n\n\t\teffect(() => {\n\t\t\tconst lod = this.lodRef.nativeElement;\n\t\t\tif (!lod) return;\n\t\t\tconst [distances, hysteresis, children] = [_distances(), _hysteresis(), lodChildren()];\n\t\t\tlod.levels.length = 0;\n\t\t\tchildren.forEach((child, index) => {\n\t\t\t\tlod.addLevel(child, distances[index], hysteresis);\n\t\t\t});\n\t\t});\n\t}\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, Input, TemplateRef, effect } from '@angular/core';\nimport { extend, injectNgtRef, signalStore, type NgtAnyRecord, type NgtLineSegments } from 'angular-three';\nimport { NgtsSobaContent } from 'angular-three-soba/utils';\nimport * as THREE from 'three';\nimport { LineBasicMaterial, LineSegments } from 'three';\n\nexport type NgtsEdgesState = {\n\tthreshold: number;\n\tcolor: THREE.ColorRepresentation;\n\tgeometry: THREE.BufferGeometry;\n\tuserData: NgtAnyRecord;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-line-segments\n\t\t */\n\t\t'ngts-edges': NgtsEdgesState & NgtLineSegments;\n\t}\n}\n\nextend({ LineSegments, LineBasicMaterial });\n\n@Component({\n\tselector: 'ngts-edges',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-line-segments [ref]=\"edgesRef\" [raycast]=\"nullRaycast\" ngtCompound>\n\t\t\t<ng-container *ngIf=\"content; else defaultMaterial\" [ngTemplateOutlet]=\"content\" />\n\t\t\t<ng-template #defaultMaterial>\n\t\t\t\t<ngt-line-basic-material [color]=\"color()\" />\n\t\t\t</ng-template>\n\t\t</ngt-line-segments>\n\t`,\n\timports: [NgIf, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsEdges {\n\tnullRaycast = () => null;\n\n\t@ContentChild(NgtsSobaContent, { read: TemplateRef }) content?: TemplateRef<unknown>;\n\n\tprivate inputs = signalStore<NgtsEdgesState>({ threshold: 15, color: 'black' });\n\n\t@Input() edgesRef = injectNgtRef<LineSegments>();\n\n\t@Input({ alias: 'threshold' }) set _threshold(threshold: number) {\n\t\tthis.inputs.set({ threshold });\n\t}\n\n\t@Input({ alias: 'color' }) set _color(color: THREE.ColorRepresentation) {\n\t\tthis.inputs.set({ color });\n\t}\n\n\t@Input({ alias: 'geometry' }) set _geometry(geometry: THREE.BufferGeometry) {\n\t\tthis.inputs.set({ geometry });\n\t}\n\n\t@Input({ alias: 'userData' }) set _userData(userData: NgtAnyRecord) {\n\t\tthis.inputs.set({ userData });\n\t}\n\n\tprivate geometry = this.inputs.select('geometry');\n\tprivate threshold = this.inputs.select('threshold');\n\n\tcolor = this.inputs.select('color');\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst edges = this.edgesRef.nativeElement;\n\t\t\tif (!edges) return;\n\t\t\tconst parent = this.edgesRef.nativeElement.parent as THREE.Mesh;\n\t\t\tif (parent) {\n\t\t\t\tconst [geometry, threshold] = [this.geometry() || parent.geometry, this.threshold()];\n\t\t\t\tif (geometry !== edges.userData['currentGeom'] || threshold !== edges.userData['currentThreshold']) {\n\t\t\t\t\tedges.userData['currentGeom'] = geometry;\n\t\t\t\t\tedges.userData['currentThreshold'] = threshold;\n\t\t\t\t\tedges.geometry = new THREE.EdgesGeometry(geometry, threshold);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from '@angular/core';\nimport { NgtArgs, extend, injectBeforeRender, injectNgtRef, signalStore, type NgtMesh } from 'angular-three';\nimport { GridMaterial, type NgtGridMaterialState } from 'angular-three-soba/shaders';\nimport * as THREE from 'three';\nimport { Mesh, PlaneGeometry } from 'three';\n\nextend({ GridMaterial, Mesh, PlaneGeometry });\n\nexport type NgtsGridState = {\n\t/** Default plane-geometry arguments */\n\targs: ConstructorParameters<typeof THREE.PlaneGeometry>;\n} & NgtGridMaterialState;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-mesh\n\t\t */\n\t\t'ngts-grid': NgtsGridState & NgtMesh;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-grid',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh ngtCompound [ref]=\"gridRef\" [frustumCulled]=\"false\">\n\t\t\t<ngt-plane-geometry *args=\"args()\" />\n\t\t\t<ngt-grid-material\n\t\t\t\t[transparent]=\"true\"\n\t\t\t\t[side]=\"side()\"\n\t\t\t\t[cellSize]=\"cellSize()\"\n\t\t\t\t[cellColor]=\"cellColor()\"\n\t\t\t\t[cellThickness]=\"cellThickness()\"\n\t\t\t\t[sectionSize]=\"sectionSize()\"\n\t\t\t\t[sectionColor]=\"sectionColor()\"\n\t\t\t\t[sectionThickness]=\"sectionThickness()\"\n\t\t\t\t[fadeDistance]=\"fadeDistance()\"\n\t\t\t\t[fadeStrength]=\"fadeStrength()\"\n\t\t\t\t[infiniteGrid]=\"infiniteGrid()\"\n\t\t\t\t[followCamera]=\"followCamera()\"\n\t\t\t>\n\t\t\t\t<ngt-value attach=\"extensions.derivatives\" [rawValue]=\"false\" />\n\t\t\t</ngt-grid-material>\n\t\t\t<ng-content />\n\t\t</ngt-mesh>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGrid {\n\tprivate inputs = signalStore<NgtsGridState>({\n\t\tcellColor: '#000000',\n\t\tsectionColor: '#2080ff',\n\t\tcellSize: 0.5,\n\t\tsectionSize: 1,\n\t\tfollowCamera: false,\n\t\tinfiniteGrid: false,\n\t\tfadeDistance: 100,\n\t\tfadeStrength: 1,\n\t\tcellThickness: 0.5,\n\t\tsectionThickness: 1,\n\t\tside: THREE.BackSide,\n\t\targs: [1, 1, 1, 1],\n\t});\n\n\t@Input() gridRef = injectNgtRef<THREE.Mesh>();\n\t@Input({ alias: 'cellSize' }) set _cellSize(cellSize: NgtsGridState['cellSize']) {\n\t\tthis.inputs.set({ cellSize });\n\t}\n\n\t@Input({ alias: 'cellThickness' }) set _cellThickness(cellThickness: NgtsGridState['cellThickness']) {\n\t\tthis.inputs.set({ cellThickness });\n\t}\n\n\t@Input({ alias: 'cellColor' }) set _cellColor(cellColor: NgtsGridState['cellColor']) {\n\t\tthis.inputs.set({ cellColor });\n\t}\n\n\t@Input({ alias: 'sectionSize' }) set _sectionSize(sectionSize: NgtsGridState['sectionSize']) {\n\t\tthis.inputs.set({ sectionSize });\n\t}\n\n\t@Input({ alias: 'sectionThickness' }) set _sectionThickness(sectionThickness: NgtsGridState['sectionThickness']) {\n\t\tthis.inputs.set({ sectionThickness });\n\t}\n\n\t@Input({ alias: 'sectionColor' }) set _sectionColor(sectionColor: NgtsGridState['sectionColor']) {\n\t\tthis.inputs.set({ sectionColor });\n\t}\n\n\t@Input({ alias: 'followCamera' }) set _followCamera(followCamera: NgtsGridState['followCamera']) {\n\t\tthis.inputs.set({ followCamera });\n\t}\n\n\t@Input({ alias: 'infiniteGrid' }) set _infiniteGrid(infiniteGrid: NgtsGridState['infiniteGrid']) {\n\t\tthis.inputs.set({ infiniteGrid });\n\t}\n\n\t@Input({ alias: 'fadeDistance' }) set _fadeDistance(fadeDistance: NgtsGridState['fadeDistance']) {\n\t\tthis.inputs.set({ fadeDistance });\n\t}\n\n\t@Input({ alias: 'fadeStrength' }) set _fadeStrength(fadeStrength: NgtsGridState['fadeStrength']) {\n\t\tthis.inputs.set({ fadeStrength });\n\t}\n\n\t@Input({ alias: 'side' }) set _side(side: NgtsGridState['side']) {\n\t\tthis.inputs.set({ side });\n\t}\n\n\t@Input({ alias: 'args' }) set _args(args: NgtsGridState['args']) {\n\t\tthis.inputs.set({ args });\n\t}\n\n\tcellSize = this.inputs.select('cellSize');\n\tsectionSize = this.inputs.select('sectionSize');\n\tfadeDistance = this.inputs.select('fadeDistance');\n\tfadeStrength = this.inputs.select('fadeStrength');\n\tcellThickness = this.inputs.select('cellThickness');\n\tsectionThickness = this.inputs.select('sectionThickness');\n\tinfiniteGrid = this.inputs.select('infiniteGrid');\n\tfollowCamera = this.inputs.select('followCamera');\n\tcellColor = this.inputs.select('cellColor');\n\tsectionColor = this.inputs.select('sectionColor');\n\tside = this.inputs.select('side');\n\targs = this.inputs.select('args');\n\n\tprivate plane = new THREE.Plane();\n\tprivate upVector = new THREE.Vector3(0, 1, 0);\n\tprivate zeroVector = new THREE.Vector3(0, 0, 0);\n\n\tconstructor() {\n\t\tinjectBeforeRender(({ camera }) => {\n\t\t\tthis.plane\n\t\t\t\t.setFromNormalAndCoplanarPoint(this.upVector, this.zeroVector)\n\t\t\t\t.applyMatrix4(this.gridRef.nativeElement.matrixWorld);\n\n\t\t\tconst gridMaterial = this.gridRef.nativeElement.material as THREE.ShaderMaterial;\n\t\t\tconst worldCamProjPosition = gridMaterial.uniforms['worldCamProjPosition'] as THREE.Uniform<THREE.Vector3>;\n\t\t\tconst worldPlanePosition = gridMaterial.uniforms['worldPlanePosition'] as THREE.Uniform<THREE.Vector3>;\n\n\t\t\tthis.plane.projectPoint(camera.position, worldCamProjPosition.value);\n\t\t\tworldPlanePosition.value.set(0, 0, 0).applyMatrix4(this.gridRef.nativeElement.matrixWorld);\n\t\t});\n\t}\n}\n","import {\n\tChangeDetectorRef,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tinject,\n\tInput,\n\tsignal,\n} from '@angular/core';\nimport { extend, injectNgtRef, NgtArgs, signalStore, type NgtMesh } from 'angular-three';\nimport { Mesh } from 'three';\nimport { Font, FontLoader, TextGeometry, type TextGeometryParameters } from 'three-stdlib';\n\ndeclare type Glyph = { _cachedOutline: string[]; ha: number; o: string };\n\ndeclare type FontData = {\n\tboundingBox: { yMax: number; yMin: number };\n\tfamilyName: string;\n\tglyphs: { [k: string]: Glyph };\n\tresolution: number;\n\tunderlineThickness: number;\n};\n\nextend({ Mesh, TextGeometry });\n\nexport type NgtsText3DState = {\n\tfont: FontData | string;\n\ttext: string;\n\tbevelSegments?: number;\n\tsmooth?: number;\n} & Omit<TextGeometryParameters, 'font'>;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-mesh\n\t\t * @extends three-stdlib|TextGeometryParameters\n\t\t */\n\t\t'ngts-text-3d': NgtsText3DState & NgtMesh;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-text-3d',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh ngtCompound [ref]=\"textRef\">\n\t\t\t<ngt-text-geometry *args=\"geometryArgs()\" />\n\t\t\t<ng-content />\n\t\t</ngt-mesh>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsText3D {\n\tprivate inputs = signalStore<NgtsText3DState>({\n\t\tlineHeight: 1,\n\t\tletterSpacing: 0,\n\t\tsize: 1,\n\t\theight: 0.2,\n\t\tbevelThickness: 0.1,\n\t\tbevelSize: 0.01,\n\t\tbevelEnabled: false,\n\t\tbevelOffset: 0,\n\t\tbevelSegments: 4,\n\t\tcurveSegments: 8,\n\t});\n\n\t@Input() textRef = injectNgtRef<Mesh>();\n\n\t@Input({ required: true, alias: 'font' }) set _font(font: FontData | string) {\n\t\tthis.inputs.set({ font });\n\t}\n\n\t@Input({ required: true, alias: 'text' }) set _text(text: string) {\n\t\tthis.inputs.set({ text });\n\t}\n\n\t@Input({ alias: 'bevelEnabled' }) set _bevelEnabled(bevelEnabled: boolean) {\n\t\tthis.inputs.set({ bevelEnabled });\n\t}\n\n\t@Input({ alias: 'bevelOffset' }) set _bevelOffset(bevelOffset: number) {\n\t\tthis.inputs.set({ bevelOffset });\n\t}\n\n\t@Input({ alias: 'bevelSize' }) set _bevelSize(bevelSize: number) {\n\t\tthis.inputs.set({ bevelSize });\n\t}\n\n\t@Input({ alias: 'bevelThickness' }) set _bevelThickness(bevelThickness: number) {\n\t\tthis.inputs.set({ bevelThickness });\n\t}\n\n\t@Input({ alias: 'curveSegments' }) set _curveSegments(curveSegments: number) {\n\t\tthis.inputs.set({ curveSegments });\n\t}\n\n\t@Input({ alias: 'bevelSegments' }) set _bevelSegments(bevelSegments: number) {\n\t\tthis.inputs.set({ bevelSegments });\n\t}\n\n\t@Input({ alias: 'height' }) set _height(height: number) {\n\t\tthis.inputs.set({ height });\n\t}\n\n\t@Input({ alias: 'size' }) set _size(size: number) {\n\t\tthis.inputs.set({ size });\n\t}\n\n\t@Input({ alias: 'lineHeight' }) set _lineHeight(lineHeight: number) {\n\t\tthis.inputs.set({ lineHeight });\n\t}\n\n\t@Input({ alias: 'letterSpacing' }) set _letterSpacing(letterSpacing: number) {\n\t\tthis.inputs.set({ letterSpacing });\n\t}\n\n\t@Input({ alias: 'smooth' }) set _smooth(smooth: number) {\n\t\tthis.inputs.set({ smooth });\n\t}\n\n\tprivate cdr = inject(ChangeDetectorRef);\n\n\tprivate fontData = signal<Font | null>(null);\n\n\tprivate font = this.inputs.select('font');\n\tprivate text = this.inputs.select('text');\n\tprivate size = this.inputs.select('size');\n\tprivate height = this.inputs.select('height');\n\tprivate bevelThickness = this.inputs.select('bevelThickness');\n\tprivate bevelSize = this.inputs.select('bevelSize');\n\tprivate bevelEnabled = this.inputs.select('bevelEnabled');\n\tprivate bevelSegments = this.inputs.select('bevelSegments');\n\tprivate bevelOffset = this.inputs.select('bevelOffset');\n\tprivate curveSegments = this.inputs.select('curveSegments');\n\tprivate letterSpacing = this.inputs.select('letterSpacing');\n\tprivate lineHeight = this.inputs.select('lineHeight');\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst font = this.font();\n\t\t\tif (typeof font === 'string') {\n\t\t\t\tfetch(font)\n\t\t\t\t\t.then((res) => res.json())\n\t\t\t\t\t.then((fontData) => {\n\t\t\t\t\t\tthis.fontData.set(new FontLoader().parse(fontData));\n\t\t\t\t\t\tthis.cdr.detectChanges();\n\t\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tgeometryArgs = computed(() => {\n\t\tconst fontData: Font = this.fontData() || (this.font() as unknown as Font);\n\t\tif (!fontData || !fontData.data) return null;\n\n\t\treturn [\n\t\t\tthis.text(),\n\t\t\t{\n\t\t\t\tfont: fontData,\n\t\t\t\tsize: this.size(),\n\t\t\t\theight: this.height(),\n\t\t\t\tbevelThickness: this.bevelThickness(),\n\t\t\t\tbevelSize: this.bevelSize(),\n\t\t\t\tbevelSegments: this.bevelSegments(),\n\t\t\t\tbevelEnabled: this.bevelEnabled(),\n\t\t\t\tbevelOffset: this.bevelOffset(),\n\t\t\t\tcurveSegments: this.curveSegments(),\n\t\t\t\tletterSpacing: this.letterSpacing(),\n\t\t\t\tlineHeight: this.lineHeight(),\n\t\t\t},\n\t\t];\n\t});\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tComponent,\n\tDestroyRef,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\teffect,\n\tinject,\n} from '@angular/core';\nimport { NgtArgs, injectNgtRef, injectNgtStore, signalStore, type NgtMesh } from 'angular-three';\n\n// @ts-expect-error: no type def for troika-three-text\nimport { Text, preloadFont } from 'troika-three-text';\n\nexport type NgtsTextState = {\n\ttext: string;\n\t/** Font size, default: 1 */\n\tfontSize: number;\n\tanchorX: number | 'left' | 'center' | 'right';\n\tanchorY: number | 'top' | 'top-baseline' | 'middle' | 'bottom-baseline' | 'bottom';\n\tsdfGlyphSize: number;\n\tfont?: string;\n\tcharacters?: string;\n\tcolor?: THREE.ColorRepresentation;\n\tmaxWidth?: number;\n\tlineHeight?: number;\n\tletterSpacing?: number;\n\ttextAlign?: 'left' | 'right' | 'center' | 'justify';\n\tclipRect?: [number, number, number, number];\n\tdepthOffset?: number;\n\tdirection?: 'auto' | 'ltr' | 'rtl';\n\toverflowWrap?: 'normal' | 'break-word';\n\twhiteSpace?: 'normal' | 'overflowWrap' | 'nowrap';\n\toutlineWidth?: number | string;\n\toutlineOffsetX?: number | string;\n\toutlineOffsetY?: number | string;\n\toutlineBlur?: number | string;\n\toutlineColor?: THREE.ColorRepresentation;\n\toutlineOpacity?: number;\n\tstrokeWidth?: number | string;\n\tstrokeColor?: THREE.ColorRepresentation;\n\tstrokeOpacity?: number;\n\tfillOpacity?: number;\n\tdebugSDF?: boolean;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-mesh\n\t\t */\n\t\t'ngts-text': NgtsTextState & NgtMesh;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-text',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive\n\t\t\tngtCompound\n\t\t\t*args=\"[troikaText]\"\n\t\t\t[ref]=\"textRef\"\n\t\t\t[text]=\"inputs.state().text\"\n\t\t\t[anchorX]=\"inputs.state().anchorX\"\n\t\t\t[anchorY]=\"inputs.state().anchorY\"\n\t\t\t[font]=\"inputs.state().font\"\n\t\t\t[fontSize]=\"inputs.state().fontSize\"\n\t\t\t[sdfGlyphSize]=\"inputs.state().sdfGlyphSize\"\n\t\t\t[characters]=\"inputs.state().characters\"\n\t\t\t[color]=\"inputs.state().color\"\n\t\t\t[maxWidth]=\"inputs.state().maxWidth\"\n\t\t\t[lineHeight]=\"inputs.state().lineHeight\"\n\t\t\t[letterSpacing]=\"inputs.state().letterSpacing\"\n\t\t\t[textAlign]=\"inputs.state().textAlign\"\n\t\t\t[clipRect]=\"inputs.state().clipRect\"\n\t\t\t[depthOffset]=\"inputs.state().depthOffset\"\n\t\t\t[direction]=\"inputs.state().direction\"\n\t\t\t[overflowWrap]=\"inputs.state().overflowWrap\"\n\t\t\t[whiteSpace]=\"inputs.state().whiteSpace\"\n\t\t\t[outlineWidth]=\"inputs.state().outlineWidth\"\n\t\t\t[outlineOffsetX]=\"inputs.state().outlineOffsetX\"\n\t\t\t[outlineOffsetY]=\"inputs.state().outlineOffsetY\"\n\t\t\t[outlineBlur]=\"inputs.state().outlineBlur\"\n\t\t\t[outlineColor]=\"inputs.state().outlineColor\"\n\t\t\t[outlineOpacity]=\"inputs.state().outlineOpacity\"\n\t\t\t[strokeWidth]=\"inputs.state().strokeWidth\"\n\t\t\t[strokeColor]=\"inputs.state().strokeColor\"\n\t\t\t[strokeOpacity]=\"inputs.state().strokeOpacity\"\n\t\t\t[fillOpacity]=\"inputs.state().fillOpacity\"\n\t\t\t[debugSDF]=\"inputs.state().debugSDF\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsText {\n\tprotected inputs = signalStore<NgtsTextState>({\n\t\tfontSize: 1,\n\t\tsdfGlyphSize: 64,\n\t\tanchorX: 'center',\n\t\tanchorY: 'middle',\n\t});\n\n\t@Input() textRef = injectNgtRef<Text>();\n\n\t@Input({ required: true }) set text(text: string) {\n\t\tthis.inputs.set({ text });\n\t}\n\n\t@Input() set font(font: string) {\n\t\tthis.inputs.set({ font });\n\t}\n\n\t@Input() set fontSize(fontSize: number) {\n\t\tthis.inputs.set({ fontSize });\n\t}\n\n\t@Input() set anchorX(anchorX: number | 'left' | 'center' | 'right') {\n\t\tthis.inputs.set({ anchorX });\n\t}\n\n\t@Input() set anchorY(anchorY: number | 'top' | 'top-baseline' | 'middle' | 'bottom-baseline' | 'bottom') {\n\t\tthis.inputs.set({ anchorY });\n\t}\n\n\t@Input() set sdfGlyphSize(sdfGlyphSize: number) {\n\t\tthis.inputs.set({ sdfGlyphSize });\n\t}\n\n\t@Input() set characters(characters: string) {\n\t\tthis.inputs.set({ characters });\n\t}\n\n\t@Input() set color(color: THREE.ColorRepresentation) {\n\t\tthis.inputs.set({ color });\n\t}\n\n\t@Input() set maxWidth(maxWidth: number) {\n\t\tthis.inputs.set({ maxWidth });\n\t}\n\n\t@Input() set lineHeight(lineHeight: number) {\n\t\tthis.inputs.set({ lineHeight });\n\t}\n\n\t@Input() set letterSpacing(letterSpacing: number) {\n\t\tthis.inputs.set({ letterSpacing });\n\t}\n\n\t@Input() set textAlign(textAlign: 'left' | 'right' | 'center' | 'justify') {\n\t\tthis.inputs.set({ textAlign });\n\t}\n\n\t@Input() set clipRect(clipRect: [number, number, number, number]) {\n\t\tthis.inputs.set({ clipRect });\n\t}\n\n\t@Input() set depthOffset(depthOffset: number) {\n\t\tthis.inputs.set({ depthOffset });\n\t}\n\n\t@Input() set direction(direction: 'auto' | 'ltr' | 'rtl') {\n\t\tthis.inputs.set({ direction });\n\t}\n\n\t@Input() set overflowWrap(overflowWrap: 'normal' | 'break-word') {\n\t\tthis.inputs.set({ overflowWrap });\n\t}\n\n\t@Input() set whiteSpace(whiteSpace: 'normal' | 'overflowWrap' | 'nowrap') {\n\t\tthis.inputs.set({ whiteSpace });\n\t}\n\n\t@Input() set outlineWidth(outlineWidth: number | string) {\n\t\tthis.inputs.set({ outlineWidth });\n\t}\n\n\t@Input() set outlineOffsetX(outlineOffsetX: number | string) {\n\t\tthis.inputs.set({ outlineOffsetX });\n\t}\n\n\t@Input() set outlineOffsetY(outlineOffsetY: number | string) {\n\t\tthis.inputs.set({ outlineOffsetY });\n\t}\n\n\t@Input() set outlineBlur(outlineBlur: number | string) {\n\t\tthis.inputs.set({ outlineBlur });\n\t}\n\n\t@Input() set outlineColor(outlineColor: THREE.ColorRepresentation) {\n\t\tthis.inputs.set({ outlineColor });\n\t}\n\n\t@Input() set outlineOpacity(outlineOpacity: number) {\n\t\tthis.inputs.set({ outlineOpacity });\n\t}\n\n\t@Input() set strokeWidth(strokeWidth: number | string) {\n\t\tthis.inputs.set({ strokeWidth });\n\t}\n\n\t@Input() set strokeColor(strokeColor: THREE.ColorRepresentation) {\n\t\tthis.inputs.set({ strokeColor });\n\t}\n\n\t@Input() set strokeOpacity(strokeOpacity: number) {\n\t\tthis.inputs.set({ strokeOpacity });\n\t}\n\n\t@Input() set fillOpacity(fillOpacity: number) {\n\t\tthis.inputs.set({ fillOpacity });\n\t}\n\n\t@Input() set debugSDF(debugSDF: boolean) {\n\t\tthis.inputs.set({ debugSDF });\n\t}\n\n\t@Output() sync = new EventEmitter<Text>();\n\n\ttroikaText = new Text();\n\n\tprivate store = injectNgtStore();\n\n\tconstructor() {\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.troikaText.dispose();\n\t\t});\n\t\tthis.preloadFont();\n\t\tthis.syncText();\n\t}\n\n\tprivate preloadFont() {\n\t\tconst _font = this.inputs.select('font');\n\t\tconst _characters = this.inputs.select('characters');\n\n\t\teffect(() => {\n\t\t\tconst [font, characters] = [_font(), _characters()];\n\t\t\tconst invalidate = this.store.get('invalidate');\n\t\t\tpreloadFont({ font, characters }, () => invalidate());\n\t\t});\n\t}\n\n\tprivate syncText() {\n\t\teffect(() => {\n\t\t\tconst [invalidate] = [this.store.get('invalidate'), this.inputs.state()];\n\t\t\tthis.troikaText.sync(() => {\n\t\t\t\tinvalidate();\n\t\t\t\tif (this.sync.observed) {\n\t\t\t\t\tthis.sync.emit(this.troikaText);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}