@babylonjs/viewer 7.42.0 → 7.43.0

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 (619) hide show
  1. package/assets/photoStudio.env +0 -0
  2. package/dist/babylon-viewer.esm.js +2 -0
  3. package/dist/babylon-viewer.esm.js.map +1 -0
  4. package/dist/babylon-viewer.esm.min.js +2 -0
  5. package/dist/babylon-viewer.esm.min.js.map +1 -0
  6. package/dist/chunks/EXT_lights_ies-Ci-qFwA1.esm.js +84 -0
  7. package/dist/chunks/EXT_lights_ies-Ci-qFwA1.esm.js.map +1 -0
  8. package/dist/chunks/EXT_lights_ies-D-YMOrZ9.esm.min.js +2 -0
  9. package/dist/chunks/EXT_lights_ies-D-YMOrZ9.esm.min.js.map +1 -0
  10. package/dist/chunks/EXT_lights_image_based-BHM1RTkE.esm.js +171 -0
  11. package/dist/chunks/EXT_lights_image_based-BHM1RTkE.esm.js.map +1 -0
  12. package/dist/chunks/EXT_lights_image_based-Cc-adXKP.esm.min.js +2 -0
  13. package/dist/chunks/EXT_lights_image_based-Cc-adXKP.esm.min.js.map +1 -0
  14. package/dist/chunks/EXT_mesh_gpu_instancing-TlOmZRvU.esm.min.js +2 -0
  15. package/dist/chunks/EXT_mesh_gpu_instancing-TlOmZRvU.esm.min.js.map +1 -0
  16. package/dist/chunks/EXT_mesh_gpu_instancing-dsUXxxp2.esm.js +86 -0
  17. package/dist/chunks/EXT_mesh_gpu_instancing-dsUXxxp2.esm.js.map +1 -0
  18. package/dist/chunks/EXT_meshopt_compression-CeEGmudK.esm.js +134 -0
  19. package/dist/chunks/EXT_meshopt_compression-CeEGmudK.esm.js.map +1 -0
  20. package/dist/chunks/EXT_meshopt_compression-D7y66yTe.esm.min.js +2 -0
  21. package/dist/chunks/EXT_meshopt_compression-D7y66yTe.esm.min.js.map +1 -0
  22. package/dist/chunks/EXT_texture_avif-BWTybLH0.esm.js +44 -0
  23. package/dist/chunks/EXT_texture_avif-BWTybLH0.esm.js.map +1 -0
  24. package/dist/chunks/EXT_texture_avif-mNqeOu2P.esm.min.js +2 -0
  25. package/dist/chunks/EXT_texture_avif-mNqeOu2P.esm.min.js.map +1 -0
  26. package/dist/chunks/EXT_texture_webp-DKLxrFm7.esm.js +43 -0
  27. package/dist/chunks/EXT_texture_webp-DKLxrFm7.esm.js.map +1 -0
  28. package/dist/chunks/EXT_texture_webp-DMNVMbSq.esm.min.js +2 -0
  29. package/dist/chunks/EXT_texture_webp-DMNVMbSq.esm.min.js.map +1 -0
  30. package/dist/chunks/ExtrasAsMetadata-CBhNQpn1.esm.min.js +2 -0
  31. package/dist/chunks/ExtrasAsMetadata-CBhNQpn1.esm.min.js.map +1 -0
  32. package/dist/chunks/ExtrasAsMetadata-O_XjMSvf.esm.js +64 -0
  33. package/dist/chunks/ExtrasAsMetadata-O_XjMSvf.esm.js.map +1 -0
  34. package/dist/chunks/KHR_animation_pointer-DLUPu-Bm.esm.min.js +2 -0
  35. package/dist/chunks/KHR_animation_pointer-DLUPu-Bm.esm.min.js.map +1 -0
  36. package/dist/chunks/KHR_animation_pointer-Dylfi9Fz.esm.js +352 -0
  37. package/dist/chunks/KHR_animation_pointer-Dylfi9Fz.esm.js.map +1 -0
  38. package/dist/chunks/KHR_draco_mesh_compression-CJEnvO4M.esm.js +610 -0
  39. package/dist/chunks/KHR_draco_mesh_compression-CJEnvO4M.esm.js.map +1 -0
  40. package/dist/chunks/KHR_draco_mesh_compression-wPFohS1o.esm.min.js +2 -0
  41. package/dist/chunks/KHR_draco_mesh_compression-wPFohS1o.esm.min.js.map +1 -0
  42. package/dist/chunks/KHR_interactivity-C4yQpsT1.esm.js +4033 -0
  43. package/dist/chunks/KHR_interactivity-C4yQpsT1.esm.js.map +1 -0
  44. package/dist/chunks/KHR_interactivity-oxFHxHco.esm.min.js +2 -0
  45. package/dist/chunks/KHR_interactivity-oxFHxHco.esm.min.js.map +1 -0
  46. package/dist/chunks/KHR_lights_punctual-B5ZwFshR.esm.min.js +2 -0
  47. package/dist/chunks/KHR_lights_punctual-B5ZwFshR.esm.min.js.map +1 -0
  48. package/dist/chunks/KHR_lights_punctual-W_G6_MHv.esm.js +581 -0
  49. package/dist/chunks/KHR_lights_punctual-W_G6_MHv.esm.js.map +1 -0
  50. package/dist/chunks/KHR_materials_anisotropy-DK3FaAoV.esm.js +65 -0
  51. package/dist/chunks/KHR_materials_anisotropy-DK3FaAoV.esm.js.map +1 -0
  52. package/dist/chunks/KHR_materials_anisotropy-DUxcWb0i.esm.min.js +2 -0
  53. package/dist/chunks/KHR_materials_anisotropy-DUxcWb0i.esm.min.js.map +1 -0
  54. package/dist/chunks/KHR_materials_clearcoat-D5F-K-o5.esm.js +96 -0
  55. package/dist/chunks/KHR_materials_clearcoat-D5F-K-o5.esm.js.map +1 -0
  56. package/dist/chunks/KHR_materials_clearcoat-kfqxn6o-.esm.min.js +2 -0
  57. package/dist/chunks/KHR_materials_clearcoat-kfqxn6o-.esm.min.js.map +1 -0
  58. package/dist/chunks/KHR_materials_diffuse_transmission-D1WjCvvs.esm.min.js +2 -0
  59. package/dist/chunks/KHR_materials_diffuse_transmission-D1WjCvvs.esm.min.js.map +1 -0
  60. package/dist/chunks/KHR_materials_diffuse_transmission-cD1yGJWP.esm.js +97 -0
  61. package/dist/chunks/KHR_materials_diffuse_transmission-cD1yGJWP.esm.js.map +1 -0
  62. package/dist/chunks/KHR_materials_dispersion-B44irn68.esm.js +62 -0
  63. package/dist/chunks/KHR_materials_dispersion-B44irn68.esm.js.map +1 -0
  64. package/dist/chunks/KHR_materials_dispersion-CJGSNg9e.esm.min.js +2 -0
  65. package/dist/chunks/KHR_materials_dispersion-CJGSNg9e.esm.min.js.map +1 -0
  66. package/dist/chunks/KHR_materials_emissive_strength-1FZ9WYNt.esm.min.js +2 -0
  67. package/dist/chunks/KHR_materials_emissive_strength-1FZ9WYNt.esm.min.js.map +1 -0
  68. package/dist/chunks/KHR_materials_emissive_strength-Dg92vLBQ.esm.js +55 -0
  69. package/dist/chunks/KHR_materials_emissive_strength-Dg92vLBQ.esm.js.map +1 -0
  70. package/dist/chunks/KHR_materials_ior-DU4QoLjV.esm.js +64 -0
  71. package/dist/chunks/KHR_materials_ior-DU4QoLjV.esm.js.map +1 -0
  72. package/dist/chunks/KHR_materials_ior-ZPFVJPej.esm.min.js +2 -0
  73. package/dist/chunks/KHR_materials_ior-ZPFVJPej.esm.min.js.map +1 -0
  74. package/dist/chunks/KHR_materials_iridescence-svCLgR8L.esm.min.js +2 -0
  75. package/dist/chunks/KHR_materials_iridescence-svCLgR8L.esm.min.js.map +1 -0
  76. package/dist/chunks/KHR_materials_iridescence-xbPLtspB.esm.js +72 -0
  77. package/dist/chunks/KHR_materials_iridescence-xbPLtspB.esm.js.map +1 -0
  78. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-5J94x_nS.esm.min.js +2 -0
  79. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-5J94x_nS.esm.min.js.map +1 -0
  80. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BqSOB3-L.esm.js +81 -0
  81. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BqSOB3-L.esm.js.map +1 -0
  82. package/dist/chunks/KHR_materials_sheen-DT3JvVfx.esm.min.js +2 -0
  83. package/dist/chunks/KHR_materials_sheen-DT3JvVfx.esm.min.js.map +1 -0
  84. package/dist/chunks/KHR_materials_sheen-DkNlwIOo.esm.js +85 -0
  85. package/dist/chunks/KHR_materials_sheen-DkNlwIOo.esm.js.map +1 -0
  86. package/dist/chunks/KHR_materials_specular-Cd7Yq-Qq.esm.js +75 -0
  87. package/dist/chunks/KHR_materials_specular-Cd7Yq-Qq.esm.js.map +1 -0
  88. package/dist/chunks/KHR_materials_specular-PEPk4kix.esm.min.js +2 -0
  89. package/dist/chunks/KHR_materials_specular-PEPk4kix.esm.min.js.map +1 -0
  90. package/dist/chunks/KHR_materials_transmission-Bm7YFHmd.esm.js +307 -0
  91. package/dist/chunks/KHR_materials_transmission-Bm7YFHmd.esm.js.map +1 -0
  92. package/dist/chunks/KHR_materials_transmission-COBZwOAj.esm.min.js +2 -0
  93. package/dist/chunks/KHR_materials_transmission-COBZwOAj.esm.min.js.map +1 -0
  94. package/dist/chunks/KHR_materials_unlit-CHjp-ZT-.esm.min.js +2 -0
  95. package/dist/chunks/KHR_materials_unlit-CHjp-ZT-.esm.min.js.map +1 -0
  96. package/dist/chunks/KHR_materials_unlit-CZsUA6bf.esm.js +74 -0
  97. package/dist/chunks/KHR_materials_unlit-CZsUA6bf.esm.js.map +1 -0
  98. package/dist/chunks/KHR_materials_variants-BtTrg0hj.esm.min.js +2 -0
  99. package/dist/chunks/KHR_materials_variants-BtTrg0hj.esm.min.js.map +1 -0
  100. package/dist/chunks/KHR_materials_variants-iMOKYfNg.esm.js +262 -0
  101. package/dist/chunks/KHR_materials_variants-iMOKYfNg.esm.js.map +1 -0
  102. package/dist/chunks/KHR_materials_volume-ILasb3uO.esm.js +87 -0
  103. package/dist/chunks/KHR_materials_volume-ILasb3uO.esm.js.map +1 -0
  104. package/dist/chunks/KHR_materials_volume-temcLNI_.esm.min.js +2 -0
  105. package/dist/chunks/KHR_materials_volume-temcLNI_.esm.min.js.map +1 -0
  106. package/dist/chunks/KHR_mesh_quantization-C0asm1JG.esm.js +26 -0
  107. package/dist/chunks/KHR_mesh_quantization-C0asm1JG.esm.js.map +1 -0
  108. package/dist/chunks/KHR_mesh_quantization-DCthIdAs.esm.min.js +2 -0
  109. package/dist/chunks/KHR_mesh_quantization-DCthIdAs.esm.min.js.map +1 -0
  110. package/dist/chunks/KHR_node_hoverability-DnKiDE4Y.esm.min.js +2 -0
  111. package/dist/chunks/KHR_node_hoverability-DnKiDE4Y.esm.min.js.map +1 -0
  112. package/dist/chunks/KHR_node_hoverability-GSuiVlP1.esm.js +39 -0
  113. package/dist/chunks/KHR_node_hoverability-GSuiVlP1.esm.js.map +1 -0
  114. package/dist/chunks/KHR_node_visibility-5t4xtV-j.esm.js +46 -0
  115. package/dist/chunks/KHR_node_visibility-5t4xtV-j.esm.js.map +1 -0
  116. package/dist/chunks/KHR_node_visibility-BNok3d5m.esm.min.js +2 -0
  117. package/dist/chunks/KHR_node_visibility-BNok3d5m.esm.min.js.map +1 -0
  118. package/dist/chunks/KHR_texture_basisu-BTPFSG8m.esm.js +43 -0
  119. package/dist/chunks/KHR_texture_basisu-BTPFSG8m.esm.js.map +1 -0
  120. package/dist/chunks/KHR_texture_basisu-C_ka3xk0.esm.min.js +2 -0
  121. package/dist/chunks/KHR_texture_basisu-C_ka3xk0.esm.min.js.map +1 -0
  122. package/dist/chunks/KHR_texture_transform-B0AkmUrF.esm.js +63 -0
  123. package/dist/chunks/KHR_texture_transform-B0AkmUrF.esm.js.map +1 -0
  124. package/dist/chunks/KHR_texture_transform-DC15W9__.esm.min.js +2 -0
  125. package/dist/chunks/KHR_texture_transform-DC15W9__.esm.min.js.map +1 -0
  126. package/dist/chunks/KHR_xmp_json_ld-B3DsueWv.esm.min.js +2 -0
  127. package/dist/chunks/KHR_xmp_json_ld-B3DsueWv.esm.min.js.map +1 -0
  128. package/dist/chunks/KHR_xmp_json_ld-bAm-G6--.esm.js +51 -0
  129. package/dist/chunks/KHR_xmp_json_ld-bAm-G6--.esm.js.map +1 -0
  130. package/dist/chunks/MSFT_audio_emitter-Cc8T59W1.esm.min.js +2 -0
  131. package/dist/chunks/MSFT_audio_emitter-Cc8T59W1.esm.min.js.map +1 -0
  132. package/dist/chunks/MSFT_audio_emitter-CjhcZQN6.esm.js +2201 -0
  133. package/dist/chunks/MSFT_audio_emitter-CjhcZQN6.esm.js.map +1 -0
  134. package/dist/chunks/MSFT_lod-9wYPotTW.esm.js +337 -0
  135. package/dist/chunks/MSFT_lod-9wYPotTW.esm.js.map +1 -0
  136. package/dist/chunks/MSFT_lod-DP_X1_EM.esm.min.js +2 -0
  137. package/dist/chunks/MSFT_lod-DP_X1_EM.esm.min.js.map +1 -0
  138. package/dist/chunks/MSFT_minecraftMesh-B9bJiUgM.esm.min.js +2 -0
  139. package/dist/chunks/MSFT_minecraftMesh-B9bJiUgM.esm.min.js.map +1 -0
  140. package/dist/chunks/MSFT_minecraftMesh-CvZswzMQ.esm.js +46 -0
  141. package/dist/chunks/MSFT_minecraftMesh-CvZswzMQ.esm.js.map +1 -0
  142. package/dist/chunks/MSFT_sRGBFactors-CnwV85sg.esm.js +47 -0
  143. package/dist/chunks/MSFT_sRGBFactors-CnwV85sg.esm.js.map +1 -0
  144. package/dist/chunks/MSFT_sRGBFactors-D5yYcWKM.esm.min.js +2 -0
  145. package/dist/chunks/MSFT_sRGBFactors-D5yYcWKM.esm.min.js.map +1 -0
  146. package/dist/chunks/animationGroup-UgOvLa4g.esm.min.js +2 -0
  147. package/dist/chunks/animationGroup-UgOvLa4g.esm.min.js.map +1 -0
  148. package/dist/chunks/animationGroup-gDPM36g-.esm.js +2482 -0
  149. package/dist/chunks/animationGroup-gDPM36g-.esm.js.map +1 -0
  150. package/dist/chunks/assetContainer-CiUr-DU0.esm.min.js +2 -0
  151. package/dist/chunks/assetContainer-CiUr-DU0.esm.min.js.map +1 -0
  152. package/dist/chunks/assetContainer-epG4BKLL.esm.js +1786 -0
  153. package/dist/chunks/assetContainer-epG4BKLL.esm.js.map +1 -0
  154. package/dist/chunks/audioEngine-D4b-CKFM.esm.js +305 -0
  155. package/dist/chunks/audioEngine-D4b-CKFM.esm.js.map +1 -0
  156. package/dist/chunks/audioEngine-DidpdM17.esm.min.js +2 -0
  157. package/dist/chunks/audioEngine-DidpdM17.esm.min.js.map +1 -0
  158. package/dist/chunks/bakedVertexAnimation-BFhBHOvw.esm.min.js +2 -0
  159. package/dist/chunks/bakedVertexAnimation-BFhBHOvw.esm.min.js.map +1 -0
  160. package/dist/chunks/bakedVertexAnimation-N6nxhIqv.esm.js +114 -0
  161. package/dist/chunks/bakedVertexAnimation-N6nxhIqv.esm.js.map +1 -0
  162. package/dist/chunks/basisTextureLoader-OcrREqOq.esm.min.js +2 -0
  163. package/dist/chunks/basisTextureLoader-OcrREqOq.esm.min.js.map +1 -0
  164. package/dist/chunks/basisTextureLoader-ZCapEI_F.esm.js +600 -0
  165. package/dist/chunks/basisTextureLoader-ZCapEI_F.esm.js.map +1 -0
  166. package/dist/chunks/dds-B9WWIQim.esm.min.js +2 -0
  167. package/dist/chunks/dds-B9WWIQim.esm.min.js.map +1 -0
  168. package/dist/chunks/dds-ByKU9VsP.esm.js +540 -0
  169. package/dist/chunks/dds-ByKU9VsP.esm.js.map +1 -0
  170. package/dist/chunks/ddsTextureLoader-BkpPcu9k.esm.min.js +2 -0
  171. package/dist/chunks/ddsTextureLoader-BkpPcu9k.esm.min.js.map +1 -0
  172. package/dist/chunks/ddsTextureLoader-diChHKRj.esm.js +88 -0
  173. package/dist/chunks/ddsTextureLoader-diChHKRj.esm.js.map +1 -0
  174. package/dist/chunks/decalFragment-C8xhSOdE.esm.min.js +2 -0
  175. package/dist/chunks/decalFragment-C8xhSOdE.esm.min.js.map +1 -0
  176. package/dist/chunks/decalFragment-DmO1AHNB.esm.js +18 -0
  177. package/dist/chunks/decalFragment-DmO1AHNB.esm.js.map +1 -0
  178. package/dist/chunks/default.fragment-D1Z8A0b9.esm.js +515 -0
  179. package/dist/chunks/default.fragment-D1Z8A0b9.esm.js.map +1 -0
  180. package/dist/chunks/default.fragment-D5PPQsVZ.esm.min.js +2 -0
  181. package/dist/chunks/default.fragment-D5PPQsVZ.esm.min.js.map +1 -0
  182. package/dist/chunks/default.fragment-DBRikXsn.esm.min.js +2 -0
  183. package/dist/chunks/default.fragment-DBRikXsn.esm.min.js.map +1 -0
  184. package/dist/chunks/default.fragment-IZCYw7lv.esm.js +446 -0
  185. package/dist/chunks/default.fragment-IZCYw7lv.esm.js.map +1 -0
  186. package/dist/chunks/default.vertex-CN6R1EzX.esm.min.js +2 -0
  187. package/dist/chunks/default.vertex-CN6R1EzX.esm.min.js.map +1 -0
  188. package/dist/chunks/default.vertex-DRFPuY9g.esm.min.js +2 -0
  189. package/dist/chunks/default.vertex-DRFPuY9g.esm.min.js.map +1 -0
  190. package/dist/chunks/default.vertex-Dc5DNUqC.esm.js +190 -0
  191. package/dist/chunks/default.vertex-Dc5DNUqC.esm.js.map +1 -0
  192. package/dist/chunks/default.vertex-DxExVglD.esm.js +211 -0
  193. package/dist/chunks/default.vertex-DxExVglD.esm.js.map +1 -0
  194. package/dist/chunks/defaultUboDeclaration-BDbgDSi_.esm.js +15 -0
  195. package/dist/chunks/defaultUboDeclaration-BDbgDSi_.esm.js.map +1 -0
  196. package/dist/chunks/defaultUboDeclaration-CDULXhFz.esm.min.js +2 -0
  197. package/dist/chunks/defaultUboDeclaration-CDULXhFz.esm.min.js.map +1 -0
  198. package/dist/chunks/defaultUboDeclaration-Cvosattz.esm.min.js +2 -0
  199. package/dist/chunks/defaultUboDeclaration-Cvosattz.esm.min.js.map +1 -0
  200. package/dist/chunks/defaultUboDeclaration-DSe85PIb.esm.js +13 -0
  201. package/dist/chunks/defaultUboDeclaration-DSe85PIb.esm.js.map +1 -0
  202. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
  203. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
  204. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
  205. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
  206. package/dist/chunks/dumpTools-C_ehjdNT.esm.js +200 -0
  207. package/dist/chunks/dumpTools-C_ehjdNT.esm.js.map +1 -0
  208. package/dist/chunks/dumpTools-Diwqq1BX.esm.min.js +2 -0
  209. package/dist/chunks/dumpTools-Diwqq1BX.esm.min.js.map +1 -0
  210. package/dist/chunks/engine-BDZAwPiJ.esm.min.js +2 -0
  211. package/dist/chunks/engine-BDZAwPiJ.esm.min.js.map +1 -0
  212. package/dist/chunks/engine-CSI4kOyy.esm.js +2213 -0
  213. package/dist/chunks/engine-CSI4kOyy.esm.js.map +1 -0
  214. package/dist/chunks/engine.common-1urMt7JH.esm.min.js +2 -0
  215. package/dist/chunks/engine.common-1urMt7JH.esm.min.js.map +1 -0
  216. package/dist/chunks/engine.common-Cx-p9h0M.esm.js +1162 -0
  217. package/dist/chunks/engine.common-Cx-p9h0M.esm.js.map +1 -0
  218. package/dist/chunks/envTextureLoader-CJ9i14ko.esm.js +64 -0
  219. package/dist/chunks/envTextureLoader-CJ9i14ko.esm.js.map +1 -0
  220. package/dist/chunks/envTextureLoader-fH2Y0DYt.esm.min.js +2 -0
  221. package/dist/chunks/envTextureLoader-fH2Y0DYt.esm.min.js.map +1 -0
  222. package/dist/chunks/environmentTextureTools-CyrSAo3I.esm.min.js +2 -0
  223. package/dist/chunks/environmentTextureTools-CyrSAo3I.esm.min.js.map +1 -0
  224. package/dist/chunks/environmentTextureTools-DkS7FrDn.esm.js +382 -0
  225. package/dist/chunks/environmentTextureTools-DkS7FrDn.esm.js.map +1 -0
  226. package/dist/chunks/exrTextureLoader-Dh89s-Px.esm.min.js +2 -0
  227. package/dist/chunks/exrTextureLoader-Dh89s-Px.esm.min.js.map +1 -0
  228. package/dist/chunks/exrTextureLoader-h76VLpFY.esm.js +1683 -0
  229. package/dist/chunks/exrTextureLoader-h76VLpFY.esm.js.map +1 -0
  230. package/dist/chunks/fogFragment-Blf9OOMy.esm.js +101 -0
  231. package/dist/chunks/fogFragment-Blf9OOMy.esm.js.map +1 -0
  232. package/dist/chunks/fogFragment-BuGde4iy.esm.js +102 -0
  233. package/dist/chunks/fogFragment-BuGde4iy.esm.js.map +1 -0
  234. package/dist/chunks/fogFragment-CPdfBwJk.esm.min.js +2 -0
  235. package/dist/chunks/fogFragment-CPdfBwJk.esm.min.js.map +1 -0
  236. package/dist/chunks/fogFragment-CbywlrtD.esm.min.js +2 -0
  237. package/dist/chunks/fogFragment-CbywlrtD.esm.min.js.map +1 -0
  238. package/dist/chunks/fresnelFunction-Cwev8OVa.esm.js +12 -0
  239. package/dist/chunks/fresnelFunction-Cwev8OVa.esm.js.map +1 -0
  240. package/dist/chunks/fresnelFunction-xRcQNMft.esm.min.js +2 -0
  241. package/dist/chunks/fresnelFunction-xRcQNMft.esm.min.js.map +1 -0
  242. package/dist/chunks/glTFLoader-B92-LNra.esm.js +7723 -0
  243. package/dist/chunks/glTFLoader-B92-LNra.esm.js.map +1 -0
  244. package/dist/chunks/glTFLoader-DmRkkAjY.esm.min.js +2 -0
  245. package/dist/chunks/glTFLoader-DmRkkAjY.esm.min.js.map +1 -0
  246. package/dist/chunks/glTFLoaderAnimation-DlQTES98.esm.min.js +2 -0
  247. package/dist/chunks/glTFLoaderAnimation-DlQTES98.esm.min.js.map +1 -0
  248. package/dist/chunks/glTFLoaderAnimation-yKmr8v-6.esm.js +77 -0
  249. package/dist/chunks/glTFLoaderAnimation-yKmr8v-6.esm.js.map +1 -0
  250. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  251. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  252. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  253. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  254. package/dist/chunks/harmonicsFunctions-9EUqqTT7.esm.js +34 -0
  255. package/dist/chunks/harmonicsFunctions-9EUqqTT7.esm.js.map +1 -0
  256. package/dist/chunks/harmonicsFunctions-BTVfdwIa.esm.min.js +2 -0
  257. package/dist/chunks/harmonicsFunctions-BTVfdwIa.esm.min.js.map +1 -0
  258. package/dist/chunks/harmonicsFunctions-DKAFEgQi.esm.js +35 -0
  259. package/dist/chunks/harmonicsFunctions-DKAFEgQi.esm.js.map +1 -0
  260. package/dist/chunks/harmonicsFunctions-DlEPeDam.esm.min.js +2 -0
  261. package/dist/chunks/harmonicsFunctions-DlEPeDam.esm.min.js.map +1 -0
  262. package/dist/chunks/hdrTextureLoader-CMgKJ5Lq.esm.min.js +2 -0
  263. package/dist/chunks/hdrTextureLoader-CMgKJ5Lq.esm.min.js.map +1 -0
  264. package/dist/chunks/hdrTextureLoader-sW1qHH0B.esm.js +253 -0
  265. package/dist/chunks/hdrTextureLoader-sW1qHH0B.esm.js.map +1 -0
  266. package/dist/chunks/helperFunctions-BEU4o2m9.esm.min.js +2 -0
  267. package/dist/chunks/helperFunctions-BEU4o2m9.esm.min.js.map +1 -0
  268. package/dist/chunks/helperFunctions-BLAIRbtb.esm.js +110 -0
  269. package/dist/chunks/helperFunctions-BLAIRbtb.esm.js.map +1 -0
  270. package/dist/chunks/helperFunctions-C02MI6jo.esm.js +83 -0
  271. package/dist/chunks/helperFunctions-C02MI6jo.esm.js.map +1 -0
  272. package/dist/chunks/helperFunctions-DLaQtqyl.esm.min.js +2 -0
  273. package/dist/chunks/helperFunctions-DLaQtqyl.esm.min.js.map +1 -0
  274. package/dist/chunks/iesTextureLoader-BBeVYwxO.esm.js +189 -0
  275. package/dist/chunks/iesTextureLoader-BBeVYwxO.esm.js.map +1 -0
  276. package/dist/chunks/iesTextureLoader-CIarrWps.esm.min.js +2 -0
  277. package/dist/chunks/iesTextureLoader-CIarrWps.esm.min.js.map +1 -0
  278. package/dist/chunks/index-CGxy146H.esm.js +75019 -0
  279. package/dist/chunks/index-CGxy146H.esm.js.map +1 -0
  280. package/dist/chunks/index-dIbBUsdh.esm.min.js +57 -0
  281. package/dist/chunks/index-dIbBUsdh.esm.min.js.map +1 -0
  282. package/dist/chunks/ktxTextureLoader-LTFpQzZ9.esm.min.js +2 -0
  283. package/dist/chunks/ktxTextureLoader-LTFpQzZ9.esm.min.js.map +1 -0
  284. package/dist/chunks/ktxTextureLoader-d7KamU-V.esm.js +814 -0
  285. package/dist/chunks/ktxTextureLoader-d7KamU-V.esm.js.map +1 -0
  286. package/dist/chunks/logDepthDeclaration-BtuU_j2d.esm.js +11 -0
  287. package/dist/chunks/logDepthDeclaration-BtuU_j2d.esm.js.map +1 -0
  288. package/dist/chunks/logDepthDeclaration-CCI41SlH.esm.js +35 -0
  289. package/dist/chunks/logDepthDeclaration-CCI41SlH.esm.js.map +1 -0
  290. package/dist/chunks/logDepthDeclaration-DXoafQJg.esm.min.js +2 -0
  291. package/dist/chunks/logDepthDeclaration-DXoafQJg.esm.min.js.map +1 -0
  292. package/dist/chunks/logDepthDeclaration-DlxjEksr.esm.min.js +2 -0
  293. package/dist/chunks/logDepthDeclaration-DlxjEksr.esm.min.js.map +1 -0
  294. package/dist/chunks/logDepthVertex-BovLqk3n.esm.js +77 -0
  295. package/dist/chunks/logDepthVertex-BovLqk3n.esm.js.map +1 -0
  296. package/dist/chunks/logDepthVertex-CINV9_-e.esm.js +81 -0
  297. package/dist/chunks/logDepthVertex-CINV9_-e.esm.js.map +1 -0
  298. package/dist/chunks/logDepthVertex-CWwjB0Kr.esm.min.js +2 -0
  299. package/dist/chunks/logDepthVertex-CWwjB0Kr.esm.min.js.map +1 -0
  300. package/dist/chunks/logDepthVertex-cml69Ko5.esm.min.js +2 -0
  301. package/dist/chunks/logDepthVertex-cml69Ko5.esm.min.js.map +1 -0
  302. package/dist/chunks/mainUVVaryingDeclaration-3ioKJJn6.esm.min.js +2 -0
  303. package/dist/chunks/mainUVVaryingDeclaration-3ioKJJn6.esm.min.js.map +1 -0
  304. package/dist/chunks/mainUVVaryingDeclaration-Bm4sW0lo.esm.js +11 -0
  305. package/dist/chunks/mainUVVaryingDeclaration-Bm4sW0lo.esm.js.map +1 -0
  306. package/dist/chunks/mainUVVaryingDeclaration-K5Od0dkn.esm.js +11 -0
  307. package/dist/chunks/mainUVVaryingDeclaration-K5Od0dkn.esm.js.map +1 -0
  308. package/dist/chunks/mainUVVaryingDeclaration-m-PGJghl.esm.min.js +2 -0
  309. package/dist/chunks/mainUVVaryingDeclaration-m-PGJghl.esm.min.js.map +1 -0
  310. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +119 -0
  311. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +1 -0
  312. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +2 -0
  313. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +1 -0
  314. package/dist/chunks/meshUboDeclaration-BH4HWAOu.esm.min.js +2 -0
  315. package/dist/chunks/meshUboDeclaration-BH4HWAOu.esm.min.js.map +1 -0
  316. package/dist/chunks/meshUboDeclaration-Cas60IPQ.esm.js +26 -0
  317. package/dist/chunks/meshUboDeclaration-Cas60IPQ.esm.js.map +1 -0
  318. package/dist/chunks/objFileLoader-0_4yycA7.esm.js +1338 -0
  319. package/dist/chunks/objFileLoader-0_4yycA7.esm.js.map +1 -0
  320. package/dist/chunks/objFileLoader-Dz96Brl-.esm.min.js +2 -0
  321. package/dist/chunks/objFileLoader-Dz96Brl-.esm.min.js.map +1 -0
  322. package/dist/chunks/oitFragment-BpZOgKPO.esm.js +1078 -0
  323. package/dist/chunks/oitFragment-BpZOgKPO.esm.js.map +1 -0
  324. package/dist/chunks/oitFragment-D8XoJ_dZ.esm.js +1240 -0
  325. package/dist/chunks/oitFragment-D8XoJ_dZ.esm.js.map +1 -0
  326. package/dist/chunks/oitFragment-DFqlxMMu.esm.min.js +2 -0
  327. package/dist/chunks/oitFragment-DFqlxMMu.esm.min.js.map +1 -0
  328. package/dist/chunks/oitFragment-Dt_IcdBr.esm.min.js +2 -0
  329. package/dist/chunks/oitFragment-Dt_IcdBr.esm.min.js.map +1 -0
  330. package/dist/chunks/pass.fragment-BO_tZwR2.esm.min.js +2 -0
  331. package/dist/chunks/pass.fragment-BO_tZwR2.esm.min.js.map +1 -0
  332. package/dist/chunks/pass.fragment-CAJ07AKA.esm.min.js +2 -0
  333. package/dist/chunks/pass.fragment-CAJ07AKA.esm.min.js.map +1 -0
  334. package/dist/chunks/pass.fragment-DOM_xot6.esm.js +15 -0
  335. package/dist/chunks/pass.fragment-DOM_xot6.esm.js.map +1 -0
  336. package/dist/chunks/pass.fragment-oWdDflqj.esm.js +15 -0
  337. package/dist/chunks/pass.fragment-oWdDflqj.esm.js.map +1 -0
  338. package/dist/chunks/pbr.fragment-2NnS8PUn.esm.js +3222 -0
  339. package/dist/chunks/pbr.fragment-2NnS8PUn.esm.js.map +1 -0
  340. package/dist/chunks/pbr.fragment-DUrXnqv0.esm.js +3269 -0
  341. package/dist/chunks/pbr.fragment-DUrXnqv0.esm.js.map +1 -0
  342. package/dist/chunks/pbr.fragment-D_P4qV3f.esm.min.js +2 -0
  343. package/dist/chunks/pbr.fragment-D_P4qV3f.esm.min.js.map +1 -0
  344. package/dist/chunks/pbr.fragment-DjvjnXcU.esm.min.js +2 -0
  345. package/dist/chunks/pbr.fragment-DjvjnXcU.esm.min.js.map +1 -0
  346. package/dist/chunks/pbr.vertex-BwLZiVwu.esm.js +223 -0
  347. package/dist/chunks/pbr.vertex-BwLZiVwu.esm.js.map +1 -0
  348. package/dist/chunks/pbr.vertex-CSlE6Bb5.esm.min.js +2 -0
  349. package/dist/chunks/pbr.vertex-CSlE6Bb5.esm.min.js.map +1 -0
  350. package/dist/chunks/pbr.vertex-_S0iW8hg.esm.js +348 -0
  351. package/dist/chunks/pbr.vertex-_S0iW8hg.esm.js.map +1 -0
  352. package/dist/chunks/pbr.vertex-bRBmAyIj.esm.min.js +2 -0
  353. package/dist/chunks/pbr.vertex-bRBmAyIj.esm.min.js.map +1 -0
  354. package/dist/chunks/postprocess.vertex-BEv5EbQb.esm.js +20 -0
  355. package/dist/chunks/postprocess.vertex-BEv5EbQb.esm.js.map +1 -0
  356. package/dist/chunks/postprocess.vertex-n6pxYySV.esm.min.js +2 -0
  357. package/dist/chunks/postprocess.vertex-n6pxYySV.esm.min.js.map +1 -0
  358. package/dist/chunks/rawTexture-BgtfUTRv.esm.min.js +2 -0
  359. package/dist/chunks/rawTexture-BgtfUTRv.esm.min.js.map +1 -0
  360. package/dist/chunks/rawTexture-BnsEq6X_.esm.js +191 -0
  361. package/dist/chunks/rawTexture-BnsEq6X_.esm.js.map +1 -0
  362. package/dist/chunks/ray-BQbaIsoE.esm.min.js +2 -0
  363. package/dist/chunks/ray-BQbaIsoE.esm.min.js.map +1 -0
  364. package/dist/chunks/ray-kQ-7mA3p.esm.js +946 -0
  365. package/dist/chunks/ray-kQ-7mA3p.esm.js.map +1 -0
  366. package/dist/chunks/rgbdDecode.fragment-C-0r70dB.esm.min.js +2 -0
  367. package/dist/chunks/rgbdDecode.fragment-C-0r70dB.esm.min.js.map +1 -0
  368. package/dist/chunks/rgbdDecode.fragment-Cj_9_E4J.esm.min.js +2 -0
  369. package/dist/chunks/rgbdDecode.fragment-Cj_9_E4J.esm.min.js.map +1 -0
  370. package/dist/chunks/rgbdDecode.fragment-L6gnomkF.esm.js +13 -0
  371. package/dist/chunks/rgbdDecode.fragment-L6gnomkF.esm.js.map +1 -0
  372. package/dist/chunks/rgbdDecode.fragment-WOXNR51s.esm.js +13 -0
  373. package/dist/chunks/rgbdDecode.fragment-WOXNR51s.esm.js.map +1 -0
  374. package/dist/chunks/rgbdEncode.fragment-BSIZlh5E.esm.min.js +2 -0
  375. package/dist/chunks/rgbdEncode.fragment-BSIZlh5E.esm.min.js.map +1 -0
  376. package/dist/chunks/rgbdEncode.fragment-CAD4FyJj.esm.min.js +2 -0
  377. package/dist/chunks/rgbdEncode.fragment-CAD4FyJj.esm.min.js.map +1 -0
  378. package/dist/chunks/rgbdEncode.fragment-Coxf0-4F.esm.js +13 -0
  379. package/dist/chunks/rgbdEncode.fragment-Coxf0-4F.esm.js.map +1 -0
  380. package/dist/chunks/rgbdEncode.fragment-DBrZrw_R.esm.js +13 -0
  381. package/dist/chunks/rgbdEncode.fragment-DBrZrw_R.esm.js.map +1 -0
  382. package/dist/chunks/splatFileLoader-CmGRvDRg.esm.min.js +2 -0
  383. package/dist/chunks/splatFileLoader-CmGRvDRg.esm.min.js.map +1 -0
  384. package/dist/chunks/splatFileLoader-u73ZVkHS.esm.js +3384 -0
  385. package/dist/chunks/splatFileLoader-u73ZVkHS.esm.js.map +1 -0
  386. package/dist/chunks/spotLight-Cl-epVPn.esm.min.js +2 -0
  387. package/dist/chunks/spotLight-Cl-epVPn.esm.min.js.map +1 -0
  388. package/dist/chunks/spotLight-CugB1ldf.esm.js +701 -0
  389. package/dist/chunks/spotLight-CugB1ldf.esm.js.map +1 -0
  390. package/dist/chunks/standardMaterial-B1nhnycu.esm.min.js +2 -0
  391. package/dist/chunks/standardMaterial-B1nhnycu.esm.min.js.map +1 -0
  392. package/dist/chunks/standardMaterial-Byp5a_xI.esm.js +1812 -0
  393. package/dist/chunks/standardMaterial-Byp5a_xI.esm.js.map +1 -0
  394. package/dist/chunks/stlFileLoader-C4d3X1kg.esm.min.js +2 -0
  395. package/dist/chunks/stlFileLoader-C4d3X1kg.esm.min.js.map +1 -0
  396. package/dist/chunks/stlFileLoader-WWP9BrO0.esm.js +238 -0
  397. package/dist/chunks/stlFileLoader-WWP9BrO0.esm.js.map +1 -0
  398. package/dist/chunks/tgaTextureLoader-BoDMkE2j.esm.min.js +2 -0
  399. package/dist/chunks/tgaTextureLoader-BoDMkE2j.esm.min.js.map +1 -0
  400. package/dist/chunks/tgaTextureLoader-CcC1LAm5.esm.js +349 -0
  401. package/dist/chunks/tgaTextureLoader-CcC1LAm5.esm.js.map +1 -0
  402. package/dist/chunks/thinEngine-BdxPwWMb.esm.js +3848 -0
  403. package/dist/chunks/thinEngine-BdxPwWMb.esm.js.map +1 -0
  404. package/dist/chunks/thinEngine-RfQy4waT.esm.min.js +2 -0
  405. package/dist/chunks/thinEngine-RfQy4waT.esm.min.js.map +1 -0
  406. package/dist/chunks/thinInstanceMesh-DTHGILgM.esm.js +314 -0
  407. package/dist/chunks/thinInstanceMesh-DTHGILgM.esm.js.map +1 -0
  408. package/dist/chunks/thinInstanceMesh-mO1lgq0p.esm.min.js +2 -0
  409. package/dist/chunks/thinInstanceMesh-mO1lgq0p.esm.min.js.map +1 -0
  410. package/dist/chunks/vertexColorMixing-BNtmTN8e.esm.js +550 -0
  411. package/dist/chunks/vertexColorMixing-BNtmTN8e.esm.js.map +1 -0
  412. package/dist/chunks/vertexColorMixing-CP-o9oSE.esm.js +440 -0
  413. package/dist/chunks/vertexColorMixing-CP-o9oSE.esm.js.map +1 -0
  414. package/dist/chunks/vertexColorMixing-LW0x2Gpk.esm.min.js +2 -0
  415. package/dist/chunks/vertexColorMixing-LW0x2Gpk.esm.min.js.map +1 -0
  416. package/dist/chunks/vertexColorMixing-jX14Vi25.esm.min.js +2 -0
  417. package/dist/chunks/vertexColorMixing-jX14Vi25.esm.min.js.map +1 -0
  418. package/dist/chunks/webgpuEngine-BznfuvIT.esm.min.js +2 -0
  419. package/dist/chunks/webgpuEngine-BznfuvIT.esm.min.js.map +1 -0
  420. package/dist/chunks/webgpuEngine-YSuuE7dI.esm.js +11542 -0
  421. package/dist/chunks/webgpuEngine-YSuuE7dI.esm.js.map +1 -0
  422. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  423. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  424. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  425. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  426. package/lib/index.d.ts +596 -0
  427. package/lib/index.js +2168 -0
  428. package/lib/index.js.map +1 -0
  429. package/package.json +38 -24
  430. package/readme.md +28 -28
  431. package/configuration/configuration.d.ts +0 -107
  432. package/configuration/configuration.js +0 -16
  433. package/configuration/configuration.js.map +0 -1
  434. package/configuration/configurationCompatibility.d.ts +0 -8
  435. package/configuration/configurationCompatibility.js +0 -66
  436. package/configuration/configurationCompatibility.js.map +0 -1
  437. package/configuration/configurationContainer.d.ts +0 -10
  438. package/configuration/configurationContainer.js +0 -10
  439. package/configuration/configurationContainer.js.map +0 -1
  440. package/configuration/globals.d.ts +0 -6
  441. package/configuration/globals.js +0 -18
  442. package/configuration/globals.js.map +0 -1
  443. package/configuration/index.d.ts +0 -2
  444. package/configuration/index.js +0 -4
  445. package/configuration/index.js.map +0 -1
  446. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  447. package/configuration/interfaces/cameraConfiguration.js +0 -2
  448. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  449. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  450. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  451. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  452. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  453. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  454. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  455. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  456. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  457. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  458. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  459. package/configuration/interfaces/groundConfiguration.js +0 -2
  460. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  461. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  462. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  463. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  464. package/configuration/interfaces/index.d.ts +0 -15
  465. package/configuration/interfaces/index.js +0 -16
  466. package/configuration/interfaces/index.js.map +0 -1
  467. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  468. package/configuration/interfaces/lightConfiguration.js +0 -2
  469. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  470. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  471. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  472. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  473. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  474. package/configuration/interfaces/modelConfiguration.js +0 -2
  475. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  476. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  477. package/configuration/interfaces/observersConfiguration.js +0 -2
  478. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  479. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  480. package/configuration/interfaces/sceneConfiguration.js +0 -2
  481. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  482. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  483. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  484. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  485. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  486. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  487. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  488. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  489. package/configuration/interfaces/templateConfiguration.js +0 -2
  490. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  491. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  492. package/configuration/interfaces/vrConfiguration.js +0 -2
  493. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  494. package/configuration/loader.d.ts +0 -4
  495. package/configuration/loader.js +0 -17
  496. package/configuration/loader.js.map +0 -1
  497. package/configuration/mappers.d.ts +0 -43
  498. package/configuration/mappers.js +0 -193
  499. package/configuration/mappers.js.map +0 -1
  500. package/configuration/renderOnlyLoader.d.ts +0 -33
  501. package/configuration/renderOnlyLoader.js +0 -162
  502. package/configuration/renderOnlyLoader.js.map +0 -1
  503. package/configuration/types/default.d.ts +0 -6
  504. package/configuration/types/default.js +0 -121
  505. package/configuration/types/default.js.map +0 -1
  506. package/configuration/types/environmentMap.d.ts +0 -5
  507. package/configuration/types/environmentMap.js +0 -14
  508. package/configuration/types/environmentMap.js.map +0 -1
  509. package/configuration/types/extended.d.ts +0 -6
  510. package/configuration/types/extended.js +0 -317
  511. package/configuration/types/extended.js.map +0 -1
  512. package/configuration/types/index.d.ts +0 -14
  513. package/configuration/types/index.js +0 -51
  514. package/configuration/types/index.js.map +0 -1
  515. package/configuration/types/minimal.d.ts +0 -6
  516. package/configuration/types/minimal.js +0 -43
  517. package/configuration/types/minimal.js.map +0 -1
  518. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  519. package/configuration/types/renderOnlyDefault.js +0 -31
  520. package/configuration/types/renderOnlyDefault.js.map +0 -1
  521. package/configuration/types/shadowLight.d.ts +0 -9
  522. package/configuration/types/shadowLight.js +0 -64
  523. package/configuration/types/shadowLight.js.map +0 -1
  524. package/helper/index.d.ts +0 -29
  525. package/helper/index.js +0 -66
  526. package/helper/index.js.map +0 -1
  527. package/index.d.ts +0 -30
  528. package/index.js +0 -46
  529. package/index.js.map +0 -1
  530. package/initializer.d.ts +0 -11
  531. package/initializer.js +0 -35
  532. package/initializer.js.map +0 -1
  533. package/interfaces.d.ts +0 -5
  534. package/interfaces.js +0 -7
  535. package/interfaces.js.map +0 -1
  536. package/labs/environmentSerializer.d.ts +0 -126
  537. package/labs/environmentSerializer.js +0 -191
  538. package/labs/environmentSerializer.js.map +0 -1
  539. package/labs/texture.d.ts +0 -183
  540. package/labs/texture.js +0 -351
  541. package/labs/texture.js.map +0 -1
  542. package/labs/viewerLabs.d.ts +0 -51
  543. package/labs/viewerLabs.js +0 -134
  544. package/labs/viewerLabs.js.map +0 -1
  545. package/loader/modelLoader.d.ts +0 -56
  546. package/loader/modelLoader.js +0 -202
  547. package/loader/modelLoader.js.map +0 -1
  548. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  549. package/loader/plugins/applyMaterialConfig.js +0 -16
  550. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  551. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  552. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  553. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  554. package/loader/plugins/index.d.ts +0 -19
  555. package/loader/plugins/index.js +0 -44
  556. package/loader/plugins/index.js.map +0 -1
  557. package/loader/plugins/loaderPlugin.d.ts +0 -24
  558. package/loader/plugins/loaderPlugin.js +0 -2
  559. package/loader/plugins/loaderPlugin.js.map +0 -1
  560. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  561. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  562. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  563. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  564. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  565. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  566. package/managers/observablesManager.d.ts +0 -66
  567. package/managers/observablesManager.js +0 -35
  568. package/managers/observablesManager.js.map +0 -1
  569. package/managers/sceneManager.d.ts +0 -245
  570. package/managers/sceneManager.js +0 -1375
  571. package/managers/sceneManager.js.map +0 -1
  572. package/managers/telemetryManager.d.ts +0 -78
  573. package/managers/telemetryManager.js +0 -117
  574. package/managers/telemetryManager.js.map +0 -1
  575. package/model/modelAnimation.d.ts +0 -215
  576. package/model/modelAnimation.js +0 -237
  577. package/model/modelAnimation.js.map +0 -1
  578. package/model/viewerModel.d.ts +0 -233
  579. package/model/viewerModel.js +0 -673
  580. package/model/viewerModel.js.map +0 -1
  581. package/optimizer/custom/extended.d.ts +0 -13
  582. package/optimizer/custom/extended.js +0 -101
  583. package/optimizer/custom/extended.js.map +0 -1
  584. package/optimizer/custom/index.d.ts +0 -9
  585. package/optimizer/custom/index.js +0 -26
  586. package/optimizer/custom/index.js.map +0 -1
  587. package/renderOnlyIndex.d.ts +0 -11
  588. package/renderOnlyIndex.js +0 -18
  589. package/renderOnlyIndex.js.map +0 -1
  590. package/templating/eventManager.d.ts +0 -35
  591. package/templating/eventManager.js +0 -66
  592. package/templating/eventManager.js.map +0 -1
  593. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  594. package/templating/plugins/hdButtonPlugin.js +0 -22
  595. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  596. package/templating/plugins/printButton.d.ts +0 -9
  597. package/templating/plugins/printButton.js +0 -41
  598. package/templating/plugins/printButton.js.map +0 -1
  599. package/templating/templateManager.d.ts +0 -197
  600. package/templating/templateManager.js +0 -561
  601. package/templating/templateManager.js.map +0 -1
  602. package/templating/viewerTemplatePlugin.d.ts +0 -21
  603. package/templating/viewerTemplatePlugin.js +0 -69
  604. package/templating/viewerTemplatePlugin.js.map +0 -1
  605. package/viewer/defaultViewer.d.ts +0 -130
  606. package/viewer/defaultViewer.js +0 -672
  607. package/viewer/defaultViewer.js.map +0 -1
  608. package/viewer/renderOnlyViewer.d.ts +0 -9
  609. package/viewer/renderOnlyViewer.js +0 -46
  610. package/viewer/renderOnlyViewer.js.map +0 -1
  611. package/viewer/viewer.d.ts +0 -258
  612. package/viewer/viewer.js +0 -783
  613. package/viewer/viewer.js.map +0 -1
  614. package/viewer/viewerManager.d.ts +0 -58
  615. package/viewer/viewerManager.js +0 -91
  616. package/viewer/viewerManager.js.map +0 -1
  617. package/viewer/viewerWithTemplate.d.ts +0 -9
  618. package/viewer/viewerWithTemplate.js +0 -20
  619. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotLight-CugB1ldf.esm.js","sources":["../../../../../dev/core/dist/Lights/shadowLight.js","../../../../../dev/core/dist/Lights/spotLight.js"],"sourcesContent":["import { __decorate } from \"tslib\";\nimport { serialize, serializeAsVector3 } from \"../Misc/decorators\";\nimport { Matrix, TmpVectors, Vector3 } from \"../Maths/math.vector\";\nimport { Light } from \"./light\";\nimport { Axis } from \"../Maths/math.axis\";\nimport { Constants } from \"core/Engines/constants\";\n/**\n * Base implementation IShadowLight\n * It groups all the common behaviour in order to reduce duplication and better follow the DRY pattern.\n */\nexport class ShadowLight extends Light {\n constructor() {\n super(...arguments);\n this._needProjectionMatrixCompute = true;\n this._viewMatrix = Matrix.Identity();\n this._projectionMatrix = Matrix.Identity();\n }\n _setPosition(value) {\n this._position = value;\n }\n /**\n * Sets the position the shadow will be casted from. Also use as the light position for both\n * point and spot lights.\n */\n get position() {\n return this._position;\n }\n /**\n * Sets the position the shadow will be casted from. Also use as the light position for both\n * point and spot lights.\n */\n set position(value) {\n this._setPosition(value);\n }\n _setDirection(value) {\n this._direction = value;\n }\n /**\n * In 2d mode (needCube being false), gets the direction used to cast the shadow.\n * Also use as the light direction on spot and directional lights.\n */\n get direction() {\n return this._direction;\n }\n /**\n * In 2d mode (needCube being false), sets the direction used to cast the shadow.\n * Also use as the light direction on spot and directional lights.\n */\n set direction(value) {\n this._setDirection(value);\n }\n /**\n * Gets the shadow projection clipping minimum z value.\n */\n get shadowMinZ() {\n return this._shadowMinZ;\n }\n /**\n * Sets the shadow projection clipping minimum z value.\n */\n set shadowMinZ(value) {\n this._shadowMinZ = value;\n this.forceProjectionMatrixCompute();\n }\n /**\n * Sets the shadow projection clipping maximum z value.\n */\n get shadowMaxZ() {\n return this._shadowMaxZ;\n }\n /**\n * Gets the shadow projection clipping maximum z value.\n */\n set shadowMaxZ(value) {\n this._shadowMaxZ = value;\n this.forceProjectionMatrixCompute();\n }\n /**\n * Computes the transformed information (transformedPosition and transformedDirection in World space) of the current light\n * @returns true if the information has been computed, false if it does not need to (no parenting)\n */\n computeTransformedInformation() {\n if (this.parent && this.parent.getWorldMatrix) {\n if (!this.transformedPosition) {\n this.transformedPosition = Vector3.Zero();\n }\n Vector3.TransformCoordinatesToRef(this.position, this.parent.getWorldMatrix(), this.transformedPosition);\n // In case the direction is present.\n if (this.direction) {\n if (!this.transformedDirection) {\n this.transformedDirection = Vector3.Zero();\n }\n Vector3.TransformNormalToRef(this.direction, this.parent.getWorldMatrix(), this.transformedDirection);\n }\n return true;\n }\n return false;\n }\n /**\n * Return the depth scale used for the shadow map.\n * @returns the depth scale.\n */\n getDepthScale() {\n return 50.0;\n }\n /**\n * Get the direction to use to render the shadow map. In case of cube texture, the face index can be passed.\n * @param faceIndex The index of the face we are computed the direction to generate shadow\n * @returns The set direction in 2d mode otherwise the direction to the cubemap face if needCube() is true\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getShadowDirection(faceIndex) {\n return this.transformedDirection ? this.transformedDirection : this.direction;\n }\n /**\n * If computeTransformedInformation has been called, returns the ShadowLight absolute position in the world. Otherwise, returns the local position.\n * @returns the position vector in world space\n */\n getAbsolutePosition() {\n return this.transformedPosition ? this.transformedPosition : this.position;\n }\n /**\n * Sets the ShadowLight direction toward the passed target.\n * @param target The point to target in local space\n * @returns the updated ShadowLight direction\n */\n setDirectionToTarget(target) {\n this.direction = Vector3.Normalize(target.subtract(this.position));\n return this.direction;\n }\n /**\n * Returns the light rotation in euler definition.\n * @returns the x y z rotation in local space.\n */\n getRotation() {\n this.direction.normalize();\n const xaxis = Vector3.Cross(this.direction, Axis.Y);\n const yaxis = Vector3.Cross(xaxis, this.direction);\n return Vector3.RotationFromAxis(xaxis, yaxis, this.direction);\n }\n /**\n * Returns whether or not the shadow generation require a cube texture or a 2d texture.\n * @returns true if a cube texture needs to be use\n */\n needCube() {\n return false;\n }\n /**\n * Detects if the projection matrix requires to be recomputed this frame.\n * @returns true if it requires to be recomputed otherwise, false.\n */\n needProjectionMatrixCompute() {\n return this._needProjectionMatrixCompute;\n }\n /**\n * Forces the shadow generator to recompute the projection matrix even if position and direction did not changed.\n */\n forceProjectionMatrixCompute() {\n this._needProjectionMatrixCompute = true;\n }\n /** @internal */\n _initCache() {\n super._initCache();\n this._cache.position = Vector3.Zero();\n }\n /** @internal */\n _isSynchronized() {\n if (!this._cache.position.equals(this.position)) {\n return false;\n }\n return true;\n }\n /**\n * Computes the world matrix of the node\n * @param force defines if the cache version should be invalidated forcing the world matrix to be created from scratch\n * @returns the world matrix\n */\n computeWorldMatrix(force) {\n if (!force && this.isSynchronized()) {\n this._currentRenderId = this.getScene().getRenderId();\n return this._worldMatrix;\n }\n this._updateCache();\n this._cache.position.copyFrom(this.position);\n if (!this._worldMatrix) {\n this._worldMatrix = Matrix.Identity();\n }\n Matrix.TranslationToRef(this.position.x, this.position.y, this.position.z, this._worldMatrix);\n if (this.parent && this.parent.getWorldMatrix) {\n this._worldMatrix.multiplyToRef(this.parent.getWorldMatrix(), this._worldMatrix);\n this._markSyncedWithParent();\n }\n // Cache the determinant\n this._worldMatrixDeterminantIsDirty = true;\n return this._worldMatrix;\n }\n /**\n * Gets the minZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the min for\n * @returns the depth min z\n */\n getDepthMinZ(activeCamera) {\n return this.shadowMinZ !== undefined ? this.shadowMinZ : activeCamera?.minZ || Constants.ShadowMinZ;\n }\n /**\n * Gets the maxZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the max for\n * @returns the depth max z\n */\n getDepthMaxZ(activeCamera) {\n return this.shadowMaxZ !== undefined ? this.shadowMaxZ : activeCamera?.maxZ || Constants.ShadowMaxZ;\n }\n /**\n * Sets the shadow projection matrix in parameter to the generated projection matrix.\n * @param matrix The matrix to updated with the projection information\n * @param viewMatrix The transform matrix of the light\n * @param renderList The list of mesh to render in the map\n * @returns The current light\n */\n setShadowProjectionMatrix(matrix, viewMatrix, renderList) {\n if (this.customProjectionMatrixBuilder) {\n this.customProjectionMatrixBuilder(viewMatrix, renderList, matrix);\n }\n else {\n this._setDefaultShadowProjectionMatrix(matrix, viewMatrix, renderList);\n }\n return this;\n }\n /** @internal */\n _syncParentEnabledState() {\n super._syncParentEnabledState();\n if (!this.parent || !this.parent.getWorldMatrix) {\n this.transformedPosition = null;\n this.transformedDirection = null;\n }\n }\n /**\n * Returns the view matrix.\n * @param faceIndex The index of the face for which we want to extract the view matrix. Only used for point light types.\n * @returns The view matrix. Can be null, if a view matrix cannot be defined for the type of light considered (as for a hemispherical light, for example).\n */\n getViewMatrix(faceIndex) {\n const lightDirection = TmpVectors.Vector3[0];\n let lightPosition = this.position;\n if (this.computeTransformedInformation()) {\n lightPosition = this.transformedPosition;\n }\n Vector3.NormalizeToRef(this.getShadowDirection(faceIndex), lightDirection);\n if (Math.abs(Vector3.Dot(lightDirection, Vector3.Up())) === 1.0) {\n lightDirection.z = 0.0000000000001; // Required to avoid perfectly perpendicular light\n }\n const lightTarget = TmpVectors.Vector3[1];\n lightPosition.addToRef(lightDirection, lightTarget);\n Matrix.LookAtLHToRef(lightPosition, lightTarget, Vector3.Up(), this._viewMatrix);\n return this._viewMatrix;\n }\n /**\n * Returns the projection matrix.\n * Note that viewMatrix and renderList are optional and are only used by lights that calculate the projection matrix from a list of meshes (e.g. directional lights with automatic extents calculation).\n * @param viewMatrix The view transform matrix of the light (optional).\n * @param renderList The list of meshes to take into account when calculating the projection matrix (optional).\n * @returns The projection matrix. Can be null, if a projection matrix cannot be defined for the type of light considered (as for a hemispherical light, for example).\n */\n getProjectionMatrix(viewMatrix, renderList) {\n this.setShadowProjectionMatrix(this._projectionMatrix, viewMatrix ?? this._viewMatrix, renderList ?? []);\n return this._projectionMatrix;\n }\n}\n__decorate([\n serializeAsVector3()\n], ShadowLight.prototype, \"position\", null);\n__decorate([\n serializeAsVector3()\n], ShadowLight.prototype, \"direction\", null);\n__decorate([\n serialize()\n], ShadowLight.prototype, \"shadowMinZ\", null);\n__decorate([\n serialize()\n], ShadowLight.prototype, \"shadowMaxZ\", null);\n//# sourceMappingURL=shadowLight.js.map","import { __decorate } from \"tslib\";\nimport { serialize, serializeAsTexture } from \"../Misc/decorators\";\nimport { Matrix, Vector3 } from \"../Maths/math.vector\";\nimport { Node } from \"../node\";\nimport { Light } from \"./light\";\nimport { ShadowLight } from \"./shadowLight\";\nimport { Texture } from \"../Materials/Textures/texture\";\nimport { RegisterClass } from \"../Misc/typeStore\";\nimport { Constants } from \"core/Engines/constants\";\nNode.AddNodeConstructor(\"Light_Type_2\", (name, scene) => {\n return () => new SpotLight(name, Vector3.Zero(), Vector3.Zero(), 0, 0, scene);\n});\n/**\n * A spot light is defined by a position, a direction, an angle, and an exponent.\n * These values define a cone of light starting from the position, emitting toward the direction.\n * The angle, in radians, defines the size (field of illumination) of the spotlight's conical beam,\n * and the exponent defines the speed of the decay of the light with distance (reach).\n * Documentation: https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction\n */\nexport class SpotLight extends ShadowLight {\n /**\n * Gets or sets the IES profile texture used to create the spotlight\n * #UIAXAU#1\n */\n get iesProfileTexture() {\n return this._iesProfileTexture;\n }\n set iesProfileTexture(value) {\n if (this._iesProfileTexture === value) {\n return;\n }\n this._iesProfileTexture = value;\n if (this._iesProfileTexture && SpotLight._IsTexture(this._iesProfileTexture)) {\n this._iesProfileTexture.onLoadObservable.addOnce(() => {\n this._markMeshesAsLightDirty();\n });\n }\n }\n /**\n * Gets the cone angle of the spot light in Radians.\n */\n get angle() {\n return this._angle;\n }\n /**\n * Sets the cone angle of the spot light in Radians.\n */\n set angle(value) {\n this._angle = value;\n this._cosHalfAngle = Math.cos(value * 0.5);\n this._projectionTextureProjectionLightDirty = true;\n this.forceProjectionMatrixCompute();\n this._computeAngleValues();\n }\n /**\n * Only used in gltf falloff mode, this defines the angle where\n * the directional falloff will start before cutting at angle which could be seen\n * as outer angle.\n */\n get innerAngle() {\n return this._innerAngle;\n }\n /**\n * Only used in gltf falloff mode, this defines the angle where\n * the directional falloff will start before cutting at angle which could be seen\n * as outer angle.\n */\n set innerAngle(value) {\n this._innerAngle = value;\n this._computeAngleValues();\n }\n /**\n * Allows scaling the angle of the light for shadow generation only.\n */\n get shadowAngleScale() {\n return this._shadowAngleScale;\n }\n /**\n * Allows scaling the angle of the light for shadow generation only.\n */\n set shadowAngleScale(value) {\n this._shadowAngleScale = value;\n this.forceProjectionMatrixCompute();\n }\n /**\n * Allows reading the projection texture\n */\n get projectionTextureMatrix() {\n return this._projectionTextureMatrix;\n }\n /**\n * Gets the near clip of the Spotlight for texture projection.\n */\n get projectionTextureLightNear() {\n return this._projectionTextureLightNear;\n }\n /**\n * Sets the near clip of the Spotlight for texture projection.\n */\n set projectionTextureLightNear(value) {\n this._projectionTextureLightNear = value;\n this._projectionTextureProjectionLightDirty = true;\n }\n /**\n * Gets the far clip of the Spotlight for texture projection.\n */\n get projectionTextureLightFar() {\n return this._projectionTextureLightFar;\n }\n /**\n * Sets the far clip of the Spotlight for texture projection.\n */\n set projectionTextureLightFar(value) {\n this._projectionTextureLightFar = value;\n this._projectionTextureProjectionLightDirty = true;\n }\n /**\n * Gets the Up vector of the Spotlight for texture projection.\n */\n get projectionTextureUpDirection() {\n return this._projectionTextureUpDirection;\n }\n /**\n * Sets the Up vector of the Spotlight for texture projection.\n */\n set projectionTextureUpDirection(value) {\n this._projectionTextureUpDirection = value;\n this._projectionTextureProjectionLightDirty = true;\n }\n /**\n * Gets the projection texture of the light.\n */\n get projectionTexture() {\n return this._projectionTexture;\n }\n /**\n * Sets the projection texture of the light.\n */\n set projectionTexture(value) {\n if (this._projectionTexture === value) {\n return;\n }\n this._projectionTexture = value;\n this._projectionTextureDirty = true;\n if (this._projectionTexture && !this._projectionTexture.isReady()) {\n if (SpotLight._IsProceduralTexture(this._projectionTexture)) {\n this._projectionTexture.getEffect().executeWhenCompiled(() => {\n this._markMeshesAsLightDirty();\n });\n }\n else if (SpotLight._IsTexture(this._projectionTexture)) {\n this._projectionTexture.onLoadObservable.addOnce(() => {\n this._markMeshesAsLightDirty();\n });\n }\n }\n }\n static _IsProceduralTexture(texture) {\n return texture.onGeneratedObservable !== undefined;\n }\n static _IsTexture(texture) {\n return texture.onLoadObservable !== undefined;\n }\n /**\n * Gets or sets the light projection matrix as used by the projection texture\n */\n get projectionTextureProjectionLightMatrix() {\n return this._projectionTextureProjectionLightMatrix;\n }\n set projectionTextureProjectionLightMatrix(projection) {\n this._projectionTextureProjectionLightMatrix = projection;\n this._projectionTextureProjectionLightDirty = false;\n this._projectionTextureDirty = true;\n }\n /**\n * Creates a SpotLight object in the scene. A spot light is a simply light oriented cone.\n * It can cast shadows.\n * Documentation : https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction\n * @param name The light friendly name\n * @param position The position of the spot light in the scene\n * @param direction The direction of the light in the scene\n * @param angle The cone angle of the light in Radians\n * @param exponent The light decay speed with the distance from the emission spot\n * @param scene The scene the lights belongs to\n */\n constructor(name, position, direction, angle, exponent, scene) {\n super(name, scene);\n this._innerAngle = 0;\n this._iesProfileTexture = null;\n this._projectionTextureMatrix = Matrix.Zero();\n this._projectionTextureLightNear = 1e-6;\n this._projectionTextureLightFar = 1000.0;\n this._projectionTextureUpDirection = Vector3.Up();\n this._projectionTextureViewLightDirty = true;\n this._projectionTextureProjectionLightDirty = true;\n this._projectionTextureDirty = true;\n this._projectionTextureViewTargetVector = Vector3.Zero();\n this._projectionTextureViewLightMatrix = Matrix.Zero();\n this._projectionTextureProjectionLightMatrix = Matrix.Zero();\n this._projectionTextureScalingMatrix = Matrix.FromValues(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);\n this.position = position;\n this.direction = direction;\n this.angle = angle;\n this.exponent = exponent;\n }\n /**\n * Returns the string \"SpotLight\".\n * @returns the class name\n */\n getClassName() {\n return \"SpotLight\";\n }\n /**\n * Returns the integer 2.\n * @returns The light Type id as a constant defines in Light.LIGHTTYPEID_x\n */\n getTypeID() {\n return Light.LIGHTTYPEID_SPOTLIGHT;\n }\n /**\n * Overrides the direction setter to recompute the projection texture view light Matrix.\n * @param value\n */\n _setDirection(value) {\n super._setDirection(value);\n this._projectionTextureViewLightDirty = true;\n }\n /**\n * Overrides the position setter to recompute the projection texture view light Matrix.\n * @param value\n */\n _setPosition(value) {\n super._setPosition(value);\n this._projectionTextureViewLightDirty = true;\n }\n /**\n * Sets the passed matrix \"matrix\" as perspective projection matrix for the shadows and the passed view matrix with the fov equal to the SpotLight angle and and aspect ratio of 1.0.\n * Returns the SpotLight.\n * @param matrix\n * @param viewMatrix\n * @param renderList\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _setDefaultShadowProjectionMatrix(matrix, viewMatrix, renderList) {\n const activeCamera = this.getScene().activeCamera;\n if (!activeCamera) {\n return;\n }\n this._shadowAngleScale = this._shadowAngleScale || 1;\n const angle = this._shadowAngleScale * this._angle;\n const minZ = this.shadowMinZ !== undefined ? this.shadowMinZ : activeCamera.minZ;\n const maxZ = this.shadowMaxZ !== undefined ? this.shadowMaxZ : activeCamera.maxZ;\n const useReverseDepthBuffer = this.getScene().getEngine().useReverseDepthBuffer;\n Matrix.PerspectiveFovLHToRef(angle, 1.0, useReverseDepthBuffer ? maxZ : minZ, useReverseDepthBuffer ? minZ : maxZ, matrix, true, this._scene.getEngine().isNDCHalfZRange, undefined, useReverseDepthBuffer);\n }\n _computeProjectionTextureViewLightMatrix() {\n this._projectionTextureViewLightDirty = false;\n this._projectionTextureDirty = true;\n this.getAbsolutePosition().addToRef(this.getShadowDirection(), this._projectionTextureViewTargetVector);\n Matrix.LookAtLHToRef(this.getAbsolutePosition(), this._projectionTextureViewTargetVector, this._projectionTextureUpDirection, this._projectionTextureViewLightMatrix);\n }\n _computeProjectionTextureProjectionLightMatrix() {\n this._projectionTextureProjectionLightDirty = false;\n this._projectionTextureDirty = true;\n const lightFar = this.projectionTextureLightFar;\n const lightNear = this.projectionTextureLightNear;\n const P = lightFar / (lightFar - lightNear);\n const Q = -P * lightNear;\n const S = 1.0 / Math.tan(this._angle / 2.0);\n const A = 1.0;\n Matrix.FromValuesToRef(S / A, 0.0, 0.0, 0.0, 0.0, S, 0.0, 0.0, 0.0, 0.0, P, 1.0, 0.0, 0.0, Q, 0.0, this._projectionTextureProjectionLightMatrix);\n }\n /**\n * Main function for light texture projection matrix computing.\n */\n _computeProjectionTextureMatrix() {\n this._projectionTextureDirty = false;\n this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix, this._projectionTextureMatrix);\n if (this._projectionTexture instanceof Texture) {\n const u = this._projectionTexture.uScale / 2.0;\n const v = this._projectionTexture.vScale / 2.0;\n Matrix.FromValuesToRef(u, 0.0, 0.0, 0.0, 0.0, v, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0, this._projectionTextureScalingMatrix);\n }\n this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix, this._projectionTextureMatrix);\n }\n _buildUniformLayout() {\n this._uniformBuffer.addUniform(\"vLightData\", 4);\n this._uniformBuffer.addUniform(\"vLightDiffuse\", 4);\n this._uniformBuffer.addUniform(\"vLightSpecular\", 4);\n this._uniformBuffer.addUniform(\"vLightDirection\", 3);\n this._uniformBuffer.addUniform(\"vLightFalloff\", 4);\n this._uniformBuffer.addUniform(\"shadowsInfo\", 3);\n this._uniformBuffer.addUniform(\"depthValues\", 2);\n this._uniformBuffer.create();\n }\n _computeAngleValues() {\n this._lightAngleScale = 1.0 / Math.max(0.001, Math.cos(this._innerAngle * 0.5) - this._cosHalfAngle);\n this._lightAngleOffset = -this._cosHalfAngle * this._lightAngleScale;\n }\n /**\n * Sets the passed Effect \"effect\" with the Light textures.\n * @param effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The light\n */\n transferTexturesToEffect(effect, lightIndex) {\n if (this.projectionTexture && this.projectionTexture.isReady()) {\n if (this._projectionTextureViewLightDirty) {\n this._computeProjectionTextureViewLightMatrix();\n }\n if (this._projectionTextureProjectionLightDirty) {\n this._computeProjectionTextureProjectionLightMatrix();\n }\n if (this._projectionTextureDirty) {\n this._computeProjectionTextureMatrix();\n }\n effect.setMatrix(\"textureProjectionMatrix\" + lightIndex, this._projectionTextureMatrix);\n effect.setTexture(\"projectionLightTexture\" + lightIndex, this.projectionTexture);\n }\n if (this._iesProfileTexture && this._iesProfileTexture.isReady()) {\n effect.setTexture(\"iesLightTexture\" + lightIndex, this._iesProfileTexture);\n }\n return this;\n }\n /**\n * Sets the passed Effect object with the SpotLight transformed position (or position if not parented) and normalized direction.\n * @param effect The effect to update\n * @param lightIndex The index of the light in the effect to update\n * @returns The spot light\n */\n transferToEffect(effect, lightIndex) {\n let normalizeDirection;\n if (this.computeTransformedInformation()) {\n this._uniformBuffer.updateFloat4(\"vLightData\", this.transformedPosition.x, this.transformedPosition.y, this.transformedPosition.z, this.exponent, lightIndex);\n normalizeDirection = Vector3.Normalize(this.transformedDirection);\n }\n else {\n this._uniformBuffer.updateFloat4(\"vLightData\", this.position.x, this.position.y, this.position.z, this.exponent, lightIndex);\n normalizeDirection = Vector3.Normalize(this.direction);\n }\n this._uniformBuffer.updateFloat4(\"vLightDirection\", normalizeDirection.x, normalizeDirection.y, normalizeDirection.z, this._cosHalfAngle, lightIndex);\n this._uniformBuffer.updateFloat4(\"vLightFalloff\", this.range, this._inverseSquaredRange, this._lightAngleScale, this._lightAngleOffset, lightIndex);\n return this;\n }\n transferToNodeMaterialEffect(effect, lightDataUniformName) {\n let normalizeDirection;\n if (this.computeTransformedInformation()) {\n normalizeDirection = Vector3.Normalize(this.transformedDirection);\n }\n else {\n normalizeDirection = Vector3.Normalize(this.direction);\n }\n if (this.getScene().useRightHandedSystem) {\n effect.setFloat3(lightDataUniformName, -normalizeDirection.x, -normalizeDirection.y, -normalizeDirection.z);\n }\n else {\n effect.setFloat3(lightDataUniformName, normalizeDirection.x, normalizeDirection.y, normalizeDirection.z);\n }\n return this;\n }\n /**\n * Disposes the light and the associated resources.\n */\n dispose() {\n super.dispose();\n if (this._projectionTexture) {\n this._projectionTexture.dispose();\n }\n if (this._iesProfileTexture) {\n this._iesProfileTexture.dispose();\n this._iesProfileTexture = null;\n }\n }\n /**\n * Gets the minZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the min for\n * @returns the depth min z\n */\n getDepthMinZ(activeCamera) {\n const engine = this._scene.getEngine();\n const minZ = this.shadowMinZ !== undefined ? this.shadowMinZ : (activeCamera?.minZ ?? Constants.ShadowMinZ);\n return engine.useReverseDepthBuffer && engine.isNDCHalfZRange ? minZ : this._scene.getEngine().isNDCHalfZRange ? 0 : minZ;\n }\n /**\n * Gets the maxZ used for shadow according to both the scene and the light.\n * @param activeCamera The camera we are returning the max for\n * @returns the depth max z\n */\n getDepthMaxZ(activeCamera) {\n const engine = this._scene.getEngine();\n const maxZ = this.shadowMaxZ !== undefined ? this.shadowMaxZ : (activeCamera?.maxZ ?? Constants.ShadowMaxZ);\n return engine.useReverseDepthBuffer && engine.isNDCHalfZRange ? 0 : maxZ;\n }\n /**\n * Prepares the list of defines specific to the light type.\n * @param defines the list of defines\n * @param lightIndex defines the index of the light for the effect\n */\n prepareLightSpecificDefines(defines, lightIndex) {\n defines[\"SPOTLIGHT\" + lightIndex] = true;\n defines[\"PROJECTEDLIGHTTEXTURE\" + lightIndex] = this.projectionTexture && this.projectionTexture.isReady() ? true : false;\n defines[\"IESLIGHTTEXTURE\" + lightIndex] = this._iesProfileTexture && this._iesProfileTexture.isReady() ? true : false;\n }\n}\n__decorate([\n serialize()\n], SpotLight.prototype, \"angle\", null);\n__decorate([\n serialize()\n], SpotLight.prototype, \"innerAngle\", null);\n__decorate([\n serialize()\n], SpotLight.prototype, \"shadowAngleScale\", null);\n__decorate([\n serialize()\n], SpotLight.prototype, \"exponent\", void 0);\n__decorate([\n serialize()\n], SpotLight.prototype, \"projectionTextureLightNear\", null);\n__decorate([\n serialize()\n], SpotLight.prototype, \"projectionTextureLightFar\", null);\n__decorate([\n serialize()\n], SpotLight.prototype, \"projectionTextureUpDirection\", null);\n__decorate([\n serializeAsTexture(\"projectedLightTexture\")\n], SpotLight.prototype, \"_projectionTexture\", void 0);\n// Register Class Name\nRegisterClass(\"BABYLON.SpotLight\", SpotLight);\n//# sourceMappingURL=spotLight.js.map"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{an as e,ao as t,ap as i,aq as s,ar as r,as as a,R as o,al as n,z as l,s as u,at as h,a5 as E,au as T,av as f,aw as d,ax as _,ay as c,az as p,aA as m,aB as A,C as R,aC as P,t as x,J as S,K as I,N as C,aD as g,aE as L,Q as b,aF as M,aG as v,aH as O,W as N,X as F,aI as D,aJ as y,Z as U,aK as B,$ as G,aL as H,a0 as k,a1 as V,aM as X,a2 as w,aN as Y,V as z}from"./index-dIbBUsdh.esm.min.js";const W={effect:null,subMesh:null};class Q extends w{constructor(e){super(e),this.MAINUV1=!1,this.MAINUV2=!1,this.MAINUV3=!1,this.MAINUV4=!1,this.MAINUV5=!1,this.MAINUV6=!1,this.DIFFUSE=!1,this.DIFFUSEDIRECTUV=0,this.BAKED_VERTEX_ANIMATION_TEXTURE=!1,this.AMBIENT=!1,this.AMBIENTDIRECTUV=0,this.OPACITY=!1,this.OPACITYDIRECTUV=0,this.OPACITYRGB=!1,this.REFLECTION=!1,this.EMISSIVE=!1,this.EMISSIVEDIRECTUV=0,this.SPECULAR=!1,this.SPECULARDIRECTUV=0,this.BUMP=!1,this.BUMPDIRECTUV=0,this.PARALLAX=!1,this.PARALLAX_RHS=!1,this.PARALLAXOCCLUSION=!1,this.SPECULAROVERALPHA=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.ALPHAFROMDIFFUSE=!1,this.POINTSIZE=!1,this.FOG=!1,this.SPECULARTERM=!1,this.DIFFUSEFRESNEL=!1,this.OPACITYFRESNEL=!1,this.REFLECTIONFRESNEL=!1,this.REFRACTIONFRESNEL=!1,this.EMISSIVEFRESNEL=!1,this.FRESNEL=!1,this.NORMAL=!1,this.TANGENT=!1,this.UV1=!1,this.UV2=!1,this.UV3=!1,this.UV4=!1,this.UV5=!1,this.UV6=!1,this.VERTEXCOLOR=!1,this.VERTEXALPHA=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.BONETEXTURE=!1,this.BONES_VELOCITY_ENABLED=!1,this.INSTANCES=!1,this.THIN_INSTANCES=!1,this.INSTANCESCOLOR=!1,this.GLOSSINESS=!1,this.ROUGHNESS=!1,this.EMISSIVEASILLUMINATION=!1,this.LINKEMISSIVEWITHDIFFUSE=!1,this.REFLECTIONFRESNELFROMSPECULAR=!1,this.LIGHTMAP=!1,this.LIGHTMAPDIRECTUV=0,this.OBJECTSPACE_NORMALMAP=!1,this.USELIGHTMAPASSHADOWMAP=!1,this.REFLECTIONMAP_3D=!1,this.REFLECTIONMAP_SPHERICAL=!1,this.REFLECTIONMAP_PLANAR=!1,this.REFLECTIONMAP_CUBIC=!1,this.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,this.USE_LOCAL_REFRACTIONMAP_CUBIC=!1,this.REFLECTIONMAP_PROJECTION=!1,this.REFLECTIONMAP_SKYBOX=!1,this.REFLECTIONMAP_EXPLICIT=!1,this.REFLECTIONMAP_EQUIRECTANGULAR=!1,this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,this.REFLECTIONMAP_OPPOSITEZ=!1,this.INVERTCUBICMAP=!1,this.LOGARITHMICDEPTH=!1,this.REFRACTION=!1,this.REFRACTIONMAP_3D=!1,this.REFLECTIONOVERALPHA=!1,this.TWOSIDEDLIGHTING=!1,this.SHADOWFLOAT=!1,this.MORPHTARGETS=!1,this.MORPHTARGETS_POSITION=!1,this.MORPHTARGETS_NORMAL=!1,this.MORPHTARGETS_TANGENT=!1,this.MORPHTARGETS_UV=!1,this.MORPHTARGETS_UV2=!1,this.MORPHTARGETTEXTURE_HASPOSITIONS=!1,this.MORPHTARGETTEXTURE_HASNORMALS=!1,this.MORPHTARGETTEXTURE_HASTANGENTS=!1,this.MORPHTARGETTEXTURE_HASUVS=!1,this.MORPHTARGETTEXTURE_HASUV2S=!1,this.NUM_MORPH_INFLUENCERS=0,this.MORPHTARGETS_TEXTURE=!1,this.NONUNIFORMSCALING=!1,this.PREMULTIPLYALPHA=!1,this.ALPHATEST_AFTERALLALPHACOMPUTATIONS=!1,this.ALPHABLEND=!0,this.PREPASS=!1,this.PREPASS_COLOR=!1,this.PREPASS_COLOR_INDEX=-1,this.PREPASS_IRRADIANCE=!1,this.PREPASS_IRRADIANCE_INDEX=-1,this.PREPASS_ALBEDO=!1,this.PREPASS_ALBEDO_INDEX=-1,this.PREPASS_ALBEDO_SQRT=!1,this.PREPASS_ALBEDO_SQRT_INDEX=-1,this.PREPASS_DEPTH=!1,this.PREPASS_DEPTH_INDEX=-1,this.PREPASS_SCREENSPACE_DEPTH=!1,this.PREPASS_SCREENSPACE_DEPTH_INDEX=-1,this.PREPASS_NORMAL=!1,this.PREPASS_NORMAL_INDEX=-1,this.PREPASS_NORMAL_WORLDSPACE=!1,this.PREPASS_WORLD_NORMAL=!1,this.PREPASS_WORLD_NORMAL_INDEX=-1,this.PREPASS_POSITION=!1,this.PREPASS_POSITION_INDEX=-1,this.PREPASS_LOCAL_POSITION=!1,this.PREPASS_LOCAL_POSITION_INDEX=-1,this.PREPASS_VELOCITY=!1,this.PREPASS_VELOCITY_INDEX=-1,this.PREPASS_VELOCITY_LINEAR=!1,this.PREPASS_VELOCITY_LINEAR_INDEX=-1,this.PREPASS_REFLECTIVITY=!1,this.PREPASS_REFLECTIVITY_INDEX=-1,this.SCENE_MRT_COUNT=0,this.RGBDLIGHTMAP=!1,this.RGBDREFLECTION=!1,this.RGBDREFRACTION=!1,this.IMAGEPROCESSING=!1,this.VIGNETTE=!1,this.VIGNETTEBLENDMODEMULTIPLY=!1,this.VIGNETTEBLENDMODEOPAQUE=!1,this.TONEMAPPING=0,this.CONTRAST=!1,this.COLORCURVES=!1,this.COLORGRADING=!1,this.COLORGRADING3D=!1,this.SAMPLER3DGREENDEPTH=!1,this.SAMPLER3DBGRMAP=!1,this.DITHER=!1,this.IMAGEPROCESSINGPOSTPROCESS=!1,this.SKIPFINALCOLORCLAMP=!1,this.MULTIVIEW=!1,this.ORDER_INDEPENDENT_TRANSPARENCY=!1,this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS=!1,this.CAMERA_ORTHOGRAPHIC=!1,this.CAMERA_PERSPECTIVE=!1,this.IS_REFLECTION_LINEAR=!1,this.IS_REFRACTION_LINEAR=!1,this.EXPOSURE=!1,this.DECAL_AFTER_DETAIL=!1,this.rebuild()}setReflectionMode(e){const t=["REFLECTIONMAP_CUBIC","REFLECTIONMAP_EXPLICIT","REFLECTIONMAP_PLANAR","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_SKYBOX","REFLECTIONMAP_SPHERICAL","REFLECTIONMAP_EQUIRECTANGULAR","REFLECTIONMAP_EQUIRECTANGULAR_FIXED","REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED"];for(const i of t)this[i]=i===e}}class K extends l{get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()}_attachImageProcessingConfiguration(e){e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration=e||this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add((()=>{this._markAllSubMeshesAsImageProcessingDirty()}))))}get isPrePassCapable(){return!this.disableDepthWrite}get cameraColorCurvesEnabled(){return this.imageProcessingConfiguration.colorCurvesEnabled}set cameraColorCurvesEnabled(e){this.imageProcessingConfiguration.colorCurvesEnabled=e}get cameraColorGradingEnabled(){return this.imageProcessingConfiguration.colorGradingEnabled}set cameraColorGradingEnabled(e){this.imageProcessingConfiguration.colorGradingEnabled=e}get cameraToneMappingEnabled(){return this._imageProcessingConfiguration.toneMappingEnabled}set cameraToneMappingEnabled(e){this._imageProcessingConfiguration.toneMappingEnabled=e}get cameraExposure(){return this._imageProcessingConfiguration.exposure}set cameraExposure(e){this._imageProcessingConfiguration.exposure=e}get cameraContrast(){return this._imageProcessingConfiguration.contrast}set cameraContrast(e){this._imageProcessingConfiguration.contrast=e}get cameraColorGradingTexture(){return this._imageProcessingConfiguration.colorGradingTexture}set cameraColorGradingTexture(e){this._imageProcessingConfiguration.colorGradingTexture=e}get cameraColorCurves(){return this._imageProcessingConfiguration.colorCurves}set cameraColorCurves(e){this._imageProcessingConfiguration.colorCurves=e}get canRenderToMRT(){return!0}constructor(e,t,i=!1){super(e,t,void 0,i||K.ForceGLSL),this._diffuseTexture=null,this._ambientTexture=null,this._opacityTexture=null,this._reflectionTexture=null,this._emissiveTexture=null,this._specularTexture=null,this._bumpTexture=null,this._lightmapTexture=null,this._refractionTexture=null,this.ambientColor=new u(0,0,0),this.diffuseColor=new u(1,1,1),this.specularColor=new u(1,1,1),this.emissiveColor=new u(0,0,0),this.specularPower=64,this._useAlphaFromDiffuseTexture=!1,this._useEmissiveAsIllumination=!1,this._linkEmissiveWithDiffuse=!1,this._useSpecularOverAlpha=!1,this._useReflectionOverAlpha=!1,this._disableLighting=!1,this._useObjectSpaceNormalMap=!1,this._useParallax=!1,this._useParallaxOcclusion=!1,this.parallaxScaleBias=.05,this._roughness=0,this.indexOfRefraction=.98,this.invertRefractionY=!0,this.alphaCutOff=.4,this._useLightmapAsShadowmap=!1,this._useReflectionFresnelFromSpecular=!1,this._useGlossinessFromSpecularMapAlpha=!1,this._maxSimultaneousLights=4,this._invertNormalMapX=!1,this._invertNormalMapY=!1,this._twoSidedLighting=!1,this._applyDecalMapAfterDetailMap=!1,this._shadersLoaded=!1,this._renderTargets=new h(16),this._worldViewProjectionMatrix=E.Zero(),this._globalAmbientColor=new u(0,0,0),this._cacheHasRenderTargetTextures=!1,this.detailMap=new T(this),this._attachImageProcessingConfiguration(null),this.prePassConfiguration=new f,this.getRenderTargetTextures=()=>(this._renderTargets.reset(),K.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._renderTargets.push(this._reflectionTexture),K.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget&&this._renderTargets.push(this._refractionTexture),this._eventInfo.renderTargets=this._renderTargets,this._callbackPluginEventFillRenderTargetTextures(this._eventInfo),this._renderTargets)}get hasRenderTargetTextures(){return!!(K.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget)||(!!(K.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget)||this._cacheHasRenderTargetTextures)}getClassName(){return"StandardMaterial"}needAlphaBlending(){return!this._disableAlphaBlending&&(this.alpha<1||null!=this._opacityTexture||this._shouldUseAlphaFromDiffuseTexture()||this._opacityFresnelParameters&&this._opacityFresnelParameters.isEnabled)}needAlphaTesting(){return!!this._forceAlphaTest||this._hasAlphaChannel()&&(null==this._transparencyMode||this._transparencyMode===d.MATERIAL_ALPHATEST)}_shouldUseAlphaFromDiffuseTexture(){return null!=this._diffuseTexture&&this._diffuseTexture.hasAlpha&&this._useAlphaFromDiffuseTexture&&this._transparencyMode!==d.MATERIAL_OPAQUE}_hasAlphaChannel(){return null!=this._diffuseTexture&&this._diffuseTexture.hasAlpha||null!=this._opacityTexture}getAlphaTestTexture(){return this._diffuseTexture}isReadyForSubMesh(e,t,i=!1){this._uniformBufferLayoutBuilt||this.buildUniformLayout();const s=t._drawWrapper;if(s.effect&&this.isFrozen&&s._wasPreviouslyReady&&s._wasPreviouslyUsingInstances===i)return!0;t.materialDefines||(this._callbackPluginEventGeneric(4,this._eventInfo),t.materialDefines=new Q(this._eventInfo.defineNames));const r=this.getScene(),a=t.materialDefines;if(this._isReadyForSubMesh(t))return!0;const o=r.getEngine();a._needNormals=_(r,e,a,!0,this._maxSimultaneousLights,this._disableLighting),c(r,a);const n=this.needAlphaBlendingForMesh(e)&&this.getScene().useOrderIndependentTransparency;if(p(r,a,this.canRenderToMRT&&!n),m(r,a,n),A.PrepareDefines(o.currentRenderPassId,e,a),a._areTexturesDirty){this._eventInfo.hasRenderTargetTextures=!1,this._callbackPluginEventHasRenderTargetTextures(this._eventInfo),this._cacheHasRenderTargetTextures=this._eventInfo.hasRenderTargetTextures,a._needUVs=!1;for(let e=1;e<=R.MAX_SUPPORTED_UV_SETS;++e)a["MAINUV"+e]=!1;if(r.texturesEnabled){if(a.DIFFUSEDIRECTUV=0,a.BUMPDIRECTUV=0,a.AMBIENTDIRECTUV=0,a.OPACITYDIRECTUV=0,a.EMISSIVEDIRECTUV=0,a.SPECULARDIRECTUV=0,a.LIGHTMAPDIRECTUV=0,this._diffuseTexture&&K.DiffuseTextureEnabled){if(!this._diffuseTexture.isReadyOrNotBlocking())return!1;P(this._diffuseTexture,a,"DIFFUSE")}else a.DIFFUSE=!1;if(this._ambientTexture&&K.AmbientTextureEnabled){if(!this._ambientTexture.isReadyOrNotBlocking())return!1;P(this._ambientTexture,a,"AMBIENT")}else a.AMBIENT=!1;if(this._opacityTexture&&K.OpacityTextureEnabled){if(!this._opacityTexture.isReadyOrNotBlocking())return!1;P(this._opacityTexture,a,"OPACITY"),a.OPACITYRGB=this._opacityTexture.getAlphaFromRGB}else a.OPACITY=!1;if(this._reflectionTexture&&K.ReflectionTextureEnabled){if(!this._reflectionTexture.isReadyOrNotBlocking())return!1;switch(a._needNormals=!0,a.REFLECTION=!0,a.ROUGHNESS=this._roughness>0,a.REFLECTIONOVERALPHA=this._useReflectionOverAlpha,a.INVERTCUBICMAP=this._reflectionTexture.coordinatesMode===x.INVCUBIC_MODE,a.REFLECTIONMAP_3D=this._reflectionTexture.isCube,a.REFLECTIONMAP_OPPOSITEZ=a.REFLECTIONMAP_3D&&this.getScene().useRightHandedSystem?!this._reflectionTexture.invertZ:this._reflectionTexture.invertZ,a.RGBDREFLECTION=this._reflectionTexture.isRGBD,this._reflectionTexture.coordinatesMode){case x.EXPLICIT_MODE:a.setReflectionMode("REFLECTIONMAP_EXPLICIT");break;case x.PLANAR_MODE:a.setReflectionMode("REFLECTIONMAP_PLANAR");break;case x.PROJECTION_MODE:a.setReflectionMode("REFLECTIONMAP_PROJECTION");break;case x.SKYBOX_MODE:a.setReflectionMode("REFLECTIONMAP_SKYBOX");break;case x.SPHERICAL_MODE:a.setReflectionMode("REFLECTIONMAP_SPHERICAL");break;case x.EQUIRECTANGULAR_MODE:a.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR");break;case x.FIXED_EQUIRECTANGULAR_MODE:a.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR_FIXED");break;case x.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:a.setReflectionMode("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED");break;case x.CUBIC_MODE:case x.INVCUBIC_MODE:default:a.setReflectionMode("REFLECTIONMAP_CUBIC")}a.USE_LOCAL_REFLECTIONMAP_CUBIC=!!this._reflectionTexture.boundingBoxSize}else a.REFLECTION=!1,a.REFLECTIONMAP_OPPOSITEZ=!1;if(this._emissiveTexture&&K.EmissiveTextureEnabled){if(!this._emissiveTexture.isReadyOrNotBlocking())return!1;P(this._emissiveTexture,a,"EMISSIVE")}else a.EMISSIVE=!1;if(this._lightmapTexture&&K.LightmapTextureEnabled){if(!this._lightmapTexture.isReadyOrNotBlocking())return!1;P(this._lightmapTexture,a,"LIGHTMAP"),a.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,a.RGBDLIGHTMAP=this._lightmapTexture.isRGBD}else a.LIGHTMAP=!1;if(this._specularTexture&&K.SpecularTextureEnabled){if(!this._specularTexture.isReadyOrNotBlocking())return!1;P(this._specularTexture,a,"SPECULAR"),a.GLOSSINESS=this._useGlossinessFromSpecularMapAlpha}else a.SPECULAR=!1;if(r.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&K.BumpTextureEnabled){if(!this._bumpTexture.isReady())return!1;P(this._bumpTexture,a,"BUMP"),a.PARALLAX=this._useParallax,a.PARALLAX_RHS=r.useRightHandedSystem,a.PARALLAXOCCLUSION=this._useParallaxOcclusion,a.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap}else a.BUMP=!1,a.PARALLAX=!1,a.PARALLAX_RHS=!1,a.PARALLAXOCCLUSION=!1;if(this._refractionTexture&&K.RefractionTextureEnabled){if(!this._refractionTexture.isReadyOrNotBlocking())return!1;a._needUVs=!0,a.REFRACTION=!0,a.REFRACTIONMAP_3D=this._refractionTexture.isCube,a.RGBDREFRACTION=this._refractionTexture.isRGBD,a.USE_LOCAL_REFRACTIONMAP_CUBIC=!!this._refractionTexture.boundingBoxSize}else a.REFRACTION=!1;a.TWOSIDEDLIGHTING=!this._backFaceCulling&&this._twoSidedLighting}else a.DIFFUSE=!1,a.AMBIENT=!1,a.OPACITY=!1,a.REFLECTION=!1,a.EMISSIVE=!1,a.LIGHTMAP=!1,a.BUMP=!1,a.REFRACTION=!1;a.ALPHAFROMDIFFUSE=this._shouldUseAlphaFromDiffuseTexture(),a.EMISSIVEASILLUMINATION=this._useEmissiveAsIllumination,a.LINKEMISSIVEWITHDIFFUSE=this._linkEmissiveWithDiffuse,a.SPECULAROVERALPHA=this._useSpecularOverAlpha,a.PREMULTIPLYALPHA=this.alphaMode===R.ALPHA_PREMULTIPLIED||this.alphaMode===R.ALPHA_PREMULTIPLIED_PORTERDUFF,a.ALPHATEST_AFTERALLALPHACOMPUTATIONS=null!==this.transparencyMode,a.ALPHABLEND=null===this.transparencyMode||this.needAlphaBlendingForMesh(e)}if(this._eventInfo.isReadyForSubMesh=!0,this._eventInfo.defines=a,this._eventInfo.subMesh=t,this._callbackPluginEventIsReadyForSubMesh(this._eventInfo),!this._eventInfo.isReadyForSubMesh)return!1;if(a._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(a),a.IS_REFLECTION_LINEAR=null!=this.reflectionTexture&&!this.reflectionTexture.gammaSpace,a.IS_REFRACTION_LINEAR=null!=this.refractionTexture&&!this.refractionTexture.gammaSpace}a._areFresnelDirty&&(K.FresnelEnabled?(this._diffuseFresnelParameters||this._opacityFresnelParameters||this._emissiveFresnelParameters||this._refractionFresnelParameters||this._reflectionFresnelParameters)&&(a.DIFFUSEFRESNEL=this._diffuseFresnelParameters&&this._diffuseFresnelParameters.isEnabled,a.OPACITYFRESNEL=this._opacityFresnelParameters&&this._opacityFresnelParameters.isEnabled,a.REFLECTIONFRESNEL=this._reflectionFresnelParameters&&this._reflectionFresnelParameters.isEnabled,a.REFLECTIONFRESNELFROMSPECULAR=this._useReflectionFresnelFromSpecular,a.REFRACTIONFRESNEL=this._refractionFresnelParameters&&this._refractionFresnelParameters.isEnabled,a.EMISSIVEFRESNEL=this._emissiveFresnelParameters&&this._emissiveFresnelParameters.isEnabled,a._needNormals=!0,a.FRESNEL=!0):a.FRESNEL=!1),S(e,r,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e)||this._forceAlphaTest,a,this._applyDecalMapAfterDetailMap),I(r,o,this,a,i,null,t.getRenderingMesh().hasThinInstances),this._eventInfo.defines=a,this._eventInfo.mesh=e,this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo),C(e,a,!0,!0,!0),this._callbackPluginEventPrepareDefines(this._eventInfo);let l=!1;if(a.isDirty){const i=a._areLightsDisposed;a.markAsProcessed();const s=new Y;a.REFLECTION&&s.addFallback(0,"REFLECTION"),a.SPECULAR&&s.addFallback(0,"SPECULAR"),a.BUMP&&s.addFallback(0,"BUMP"),a.PARALLAX&&s.addFallback(1,"PARALLAX"),a.PARALLAX_RHS&&s.addFallback(1,"PARALLAX_RHS"),a.PARALLAXOCCLUSION&&s.addFallback(0,"PARALLAXOCCLUSION"),a.SPECULAROVERALPHA&&s.addFallback(0,"SPECULAROVERALPHA"),a.FOG&&s.addFallback(1,"FOG"),a.POINTSIZE&&s.addFallback(0,"POINTSIZE"),a.LOGARITHMICDEPTH&&s.addFallback(0,"LOGARITHMICDEPTH"),g(a,s,this._maxSimultaneousLights),a.SPECULARTERM&&s.addFallback(0,"SPECULARTERM"),a.DIFFUSEFRESNEL&&s.addFallback(1,"DIFFUSEFRESNEL"),a.OPACITYFRESNEL&&s.addFallback(2,"OPACITYFRESNEL"),a.REFLECTIONFRESNEL&&s.addFallback(3,"REFLECTIONFRESNEL"),a.EMISSIVEFRESNEL&&s.addFallback(4,"EMISSIVEFRESNEL"),a.FRESNEL&&s.addFallback(4,"FRESNEL"),a.MULTIVIEW&&s.addFallback(0,"MULTIVIEW");const n=[z.PositionKind];a.NORMAL&&n.push(z.NormalKind),a.TANGENT&&n.push(z.TangentKind);for(let e=1;e<=R.MAX_SUPPORTED_UV_SETS;++e)a["UV"+e]&&n.push(`uv${1===e?"":e}`);a.VERTEXCOLOR&&n.push(z.ColorKind),L(n,e,a,s),b(n,a),M(n,e,a),v(n,e,a);let u="default";const h=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vDiffuseColor","vSpecularColor","vEmissiveColor","visibility","vFogInfos","vFogColor","pointSize","vDiffuseInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vEmissiveInfos","vSpecularInfos","vBumpInfos","vLightmapInfos","vRefractionInfos","mBones","diffuseMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","specularMatrix","bumpMatrix","normalMatrix","lightmapMatrix","refractionMatrix","diffuseLeftColor","diffuseRightColor","opacityParts","reflectionLeftColor","reflectionRightColor","emissiveLeftColor","emissiveRightColor","refractionLeftColor","refractionRightColor","vReflectionPosition","vReflectionSize","vRefractionPosition","vRefractionSize","logarithmicDepthConstant","vTangentSpaceParams","alphaCutOff","boneTextureWidth","morphTargetTextureInfo","morphTargetTextureIndices"],E=["diffuseSampler","ambientSampler","opacitySampler","reflectionCubeSampler","reflection2DSampler","emissiveSampler","specularSampler","bumpSampler","lightmapSampler","refractionCubeSampler","refraction2DSampler","boneSampler","morphTargets","oitDepthSampler","oitFrontColorSampler"],T=["Material","Scene","Mesh"],d={maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:a.NUM_MORPH_INFLUENCERS};this._eventInfo.fallbacks=s,this._eventInfo.fallbackRank=0,this._eventInfo.defines=a,this._eventInfo.uniforms=h,this._eventInfo.attributes=n,this._eventInfo.samplers=E,this._eventInfo.uniformBuffersNames=T,this._eventInfo.customCode=void 0,this._eventInfo.mesh=e,this._eventInfo.indexParameters=d,this._callbackPluginEventGeneric(128,this._eventInfo),A.AddUniformsAndSamplers(h,E),f.AddUniforms(h),O&&(O.PrepareUniforms(h,a),O.PrepareSamplers(E,a)),N({uniformsNames:h,uniformBuffersNames:T,samplers:E,defines:a,maxSimultaneousLights:this._maxSimultaneousLights}),F(h);const _={};this.customShaderNameResolve&&(u=this.customShaderNameResolve(u,h,T,E,a,n,_));const c=a.toString(),p=t.effect;let m=r.getEngine().createEffect(u,{attributes:n,uniformsNames:h,uniformBuffersNames:T,samplers:E,defines:c,fallbacks:s,onCompiled:this.onCompiled,onError:this.onError,indexParameters:d,processFinalCode:_.processFinalCode,processCodeAfterIncludes:this._eventInfo.customCode,multiTarget:a.PREPASS,shaderLanguage:this._shaderLanguage,extraInitializationsAsync:this._shadersLoaded?void 0:async()=>{1===this._shaderLanguage?await Promise.all([import("./default.vertex-CN6R1EzX.esm.min.js"),import("./default.fragment-DBRikXsn.esm.min.js")]):await Promise.all([import("./default.vertex-DRFPuY9g.esm.min.js"),import("./default.fragment-D5PPQsVZ.esm.min.js")]),this._shadersLoaded=!0}},o);if(this._eventInfo.customCode=void 0,m)if(this._onEffectCreatedObservable&&(W.effect=m,W.subMesh=t,this._onEffectCreatedObservable.notifyObservers(W)),this.allowShaderHotSwapping&&p&&!m.isReady()){if(m=p,a.markAsUnprocessed(),l=this.isFrozen,i)return a._areLightsDisposed=!0,!1}else r.resetCachedMaterial(),t.setEffect(m,a,this._materialContext)}return!(!t.effect||!t.effect.isReady())&&(a._renderId=r.getRenderId(),s._wasPreviouslyReady=!l,s._wasPreviouslyUsingInstances=i,this._checkScenePerformancePriority(),!0)}buildUniformLayout(){const e=this._uniformBuffer;e.addUniform("diffuseLeftColor",4),e.addUniform("diffuseRightColor",4),e.addUniform("opacityParts",4),e.addUniform("reflectionLeftColor",4),e.addUniform("reflectionRightColor",4),e.addUniform("refractionLeftColor",4),e.addUniform("refractionRightColor",4),e.addUniform("emissiveLeftColor",4),e.addUniform("emissiveRightColor",4),e.addUniform("vDiffuseInfos",2),e.addUniform("vAmbientInfos",2),e.addUniform("vOpacityInfos",2),e.addUniform("vReflectionInfos",2),e.addUniform("vReflectionPosition",3),e.addUniform("vReflectionSize",3),e.addUniform("vEmissiveInfos",2),e.addUniform("vLightmapInfos",2),e.addUniform("vSpecularInfos",2),e.addUniform("vBumpInfos",3),e.addUniform("diffuseMatrix",16),e.addUniform("ambientMatrix",16),e.addUniform("opacityMatrix",16),e.addUniform("reflectionMatrix",16),e.addUniform("emissiveMatrix",16),e.addUniform("lightmapMatrix",16),e.addUniform("specularMatrix",16),e.addUniform("bumpMatrix",16),e.addUniform("vTangentSpaceParams",2),e.addUniform("pointSize",1),e.addUniform("alphaCutOff",1),e.addUniform("refractionMatrix",16),e.addUniform("vRefractionInfos",4),e.addUniform("vRefractionPosition",3),e.addUniform("vRefractionSize",3),e.addUniform("vSpecularColor",4),e.addUniform("vEmissiveColor",3),e.addUniform("vDiffuseColor",4),e.addUniform("vAmbientColor",3),super.buildUniformLayout()}bindForSubMesh(e,t,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const a=i.effect;if(!a)return;this._activeEffect=a,t.getMeshUniformBuffer().bindToEffect(a,"Mesh"),t.transferToEffect(e),this._uniformBuffer.bindToEffect(a,"Material"),this.prePassConfiguration.bindForSubMesh(this._activeEffect,s,t,e,this.isFrozen),A.Bind(s.getEngine().currentRenderPassId,this._activeEffect,t,e),this._eventInfo.subMesh=i,this._callbackPluginEventHardBindForSubMesh(this._eventInfo),r.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));const o=this._mustRebind(s,a,i,t.visibility);D(t,a);const l=this._uniformBuffer;if(o){if(this.bindViewProjection(a),!l.useUbo||!this.isFrozen||!l.isSync||i._drawWrapper._forceRebindOnNextCall){if(K.FresnelEnabled&&r.FRESNEL&&(this.diffuseFresnelParameters&&this.diffuseFresnelParameters.isEnabled&&(l.updateColor4("diffuseLeftColor",this.diffuseFresnelParameters.leftColor,this.diffuseFresnelParameters.power),l.updateColor4("diffuseRightColor",this.diffuseFresnelParameters.rightColor,this.diffuseFresnelParameters.bias)),this.opacityFresnelParameters&&this.opacityFresnelParameters.isEnabled&&l.updateColor4("opacityParts",new u(this.opacityFresnelParameters.leftColor.toLuminance(),this.opacityFresnelParameters.rightColor.toLuminance(),this.opacityFresnelParameters.bias),this.opacityFresnelParameters.power),this.reflectionFresnelParameters&&this.reflectionFresnelParameters.isEnabled&&(l.updateColor4("reflectionLeftColor",this.reflectionFresnelParameters.leftColor,this.reflectionFresnelParameters.power),l.updateColor4("reflectionRightColor",this.reflectionFresnelParameters.rightColor,this.reflectionFresnelParameters.bias)),this.refractionFresnelParameters&&this.refractionFresnelParameters.isEnabled&&(l.updateColor4("refractionLeftColor",this.refractionFresnelParameters.leftColor,this.refractionFresnelParameters.power),l.updateColor4("refractionRightColor",this.refractionFresnelParameters.rightColor,this.refractionFresnelParameters.bias)),this.emissiveFresnelParameters&&this.emissiveFresnelParameters.isEnabled&&(l.updateColor4("emissiveLeftColor",this.emissiveFresnelParameters.leftColor,this.emissiveFresnelParameters.power),l.updateColor4("emissiveRightColor",this.emissiveFresnelParameters.rightColor,this.emissiveFresnelParameters.bias))),s.texturesEnabled){if(this._diffuseTexture&&K.DiffuseTextureEnabled&&(l.updateFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),y(this._diffuseTexture,l,"diffuse")),this._ambientTexture&&K.AmbientTextureEnabled&&(l.updateFloat2("vAmbientInfos",this._ambientTexture.coordinatesIndex,this._ambientTexture.level),y(this._ambientTexture,l,"ambient")),this._opacityTexture&&K.OpacityTextureEnabled&&(l.updateFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),y(this._opacityTexture,l,"opacity")),this._hasAlphaChannel()&&l.updateFloat("alphaCutOff",this.alphaCutOff),this._reflectionTexture&&K.ReflectionTextureEnabled&&(l.updateFloat2("vReflectionInfos",this._reflectionTexture.level,this.roughness),l.updateMatrix("reflectionMatrix",this._reflectionTexture.getReflectionTextureMatrix()),this._reflectionTexture.boundingBoxSize)){const e=this._reflectionTexture;l.updateVector3("vReflectionPosition",e.boundingBoxPosition),l.updateVector3("vReflectionSize",e.boundingBoxSize)}if(this._emissiveTexture&&K.EmissiveTextureEnabled&&(l.updateFloat2("vEmissiveInfos",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),y(this._emissiveTexture,l,"emissive")),this._lightmapTexture&&K.LightmapTextureEnabled&&(l.updateFloat2("vLightmapInfos",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),y(this._lightmapTexture,l,"lightmap")),this._specularTexture&&K.SpecularTextureEnabled&&(l.updateFloat2("vSpecularInfos",this._specularTexture.coordinatesIndex,this._specularTexture.level),y(this._specularTexture,l,"specular")),this._bumpTexture&&s.getEngine().getCaps().standardDerivatives&&K.BumpTextureEnabled&&(l.updateFloat3("vBumpInfos",this._bumpTexture.coordinatesIndex,1/this._bumpTexture.level,this.parallaxScaleBias),y(this._bumpTexture,l,"bump"),s._mirroredCameraPosition?l.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):l.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1)),this._refractionTexture&&K.RefractionTextureEnabled){let e=1;if(this._refractionTexture.isCube||(l.updateMatrix("refractionMatrix",this._refractionTexture.getReflectionTextureMatrix()),this._refractionTexture.depth&&(e=this._refractionTexture.depth)),l.updateFloat4("vRefractionInfos",this._refractionTexture.level,this.indexOfRefraction,e,this.invertRefractionY?-1:1),this._refractionTexture.boundingBoxSize){const e=this._refractionTexture;l.updateVector3("vRefractionPosition",e.boundingBoxPosition),l.updateVector3("vRefractionSize",e.boundingBoxSize)}}}this.pointsCloud&&l.updateFloat("pointSize",this.pointSize),l.updateColor4("vSpecularColor",this.specularColor,this.specularPower),l.updateColor3("vEmissiveColor",K.EmissiveTextureEnabled?this.emissiveColor:u.BlackReadOnly),l.updateColor4("vDiffuseColor",this.diffuseColor,this.alpha),s.ambientColor.multiplyToRef(this.ambientColor,this._globalAmbientColor),l.updateColor3("vAmbientColor",this._globalAmbientColor)}s.texturesEnabled&&(this._diffuseTexture&&K.DiffuseTextureEnabled&&a.setTexture("diffuseSampler",this._diffuseTexture),this._ambientTexture&&K.AmbientTextureEnabled&&a.setTexture("ambientSampler",this._ambientTexture),this._opacityTexture&&K.OpacityTextureEnabled&&a.setTexture("opacitySampler",this._opacityTexture),this._reflectionTexture&&K.ReflectionTextureEnabled&&(this._reflectionTexture.isCube?a.setTexture("reflectionCubeSampler",this._reflectionTexture):a.setTexture("reflection2DSampler",this._reflectionTexture)),this._emissiveTexture&&K.EmissiveTextureEnabled&&a.setTexture("emissiveSampler",this._emissiveTexture),this._lightmapTexture&&K.LightmapTextureEnabled&&a.setTexture("lightmapSampler",this._lightmapTexture),this._specularTexture&&K.SpecularTextureEnabled&&a.setTexture("specularSampler",this._specularTexture),this._bumpTexture&&s.getEngine().getCaps().standardDerivatives&&K.BumpTextureEnabled&&a.setTexture("bumpSampler",this._bumpTexture),this._refractionTexture&&K.RefractionTextureEnabled&&(this._refractionTexture.isCube?a.setTexture("refractionCubeSampler",this._refractionTexture):a.setTexture("refraction2DSampler",this._refractionTexture))),this.getScene().useOrderIndependentTransparency&&this.needAlphaBlendingForMesh(t)&&this.getScene().depthPeelingRenderer.bind(a),this._eventInfo.subMesh=i,this._callbackPluginEventBindForSubMesh(this._eventInfo),U(a,this,s),this.bindEyePosition(a)}else s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._needToBindSceneUbo=!0);!o&&this.isFrozen||(s.lightsEnabled&&!this._disableLighting&&B(s,t,a,r,this._maxSimultaneousLights),(s.fogEnabled&&t.applyFog&&s.fogMode!==n.FOGMODE_NONE||this._reflectionTexture||this._refractionTexture||t.receiveShadows||r.PREPASS)&&this.bindView(a),G(s,t,a),r.NUM_MORPH_INFLUENCERS&&H(t,a),r.BAKED_VERTEX_ANIMATION_TEXTURE&&t.bakedVertexAnimationManager?.bind(a,r.INSTANCES),this.useLogarithmicDepth&&k(r,a,s),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(this._activeEffect)),this._afterBind(t,this._activeEffect,i),l.update()}getAnimatables(){const e=super.getAnimatables();return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&e.push(this._diffuseTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._specularTexture&&this._specularTexture.animations&&this._specularTexture.animations.length>0&&e.push(this._specularTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&e.push(this._refractionTexture),e}getActiveTextures(){const e=super.getActiveTextures();return this._diffuseTexture&&e.push(this._diffuseTexture),this._ambientTexture&&e.push(this._ambientTexture),this._opacityTexture&&e.push(this._opacityTexture),this._reflectionTexture&&e.push(this._reflectionTexture),this._emissiveTexture&&e.push(this._emissiveTexture),this._specularTexture&&e.push(this._specularTexture),this._bumpTexture&&e.push(this._bumpTexture),this._lightmapTexture&&e.push(this._lightmapTexture),this._refractionTexture&&e.push(this._refractionTexture),e}hasTexture(e){return!!super.hasTexture(e)||(this._diffuseTexture===e||(this._ambientTexture===e||(this._opacityTexture===e||(this._reflectionTexture===e||(this._emissiveTexture===e||(this._specularTexture===e||(this._bumpTexture===e||(this._lightmapTexture===e||this._refractionTexture===e))))))))}dispose(e,t){t&&(this._diffuseTexture?.dispose(),this._ambientTexture?.dispose(),this._opacityTexture?.dispose(),this._reflectionTexture?.dispose(),this._emissiveTexture?.dispose(),this._specularTexture?.dispose(),this._bumpTexture?.dispose(),this._lightmapTexture?.dispose(),this._refractionTexture?.dispose()),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),super.dispose(e,t)}clone(e,t=!0,i=""){const s=V.Clone((()=>new K(e,this.getScene())),this,{cloneTexturesOnlyOnce:t});return s.name=e,s.id=e,this.stencil.copyTo(s.stencil),this._clonePlugins(s,i),s}static Parse(e,t,i){const s=V.Parse((()=>new K(e.name,t)),e,t,i);return e.stencil&&s.stencil.parse(e.stencil,t,i),d._ParsePlugins(e,s,t,i),s}static get DiffuseTextureEnabled(){return X.DiffuseTextureEnabled}static set DiffuseTextureEnabled(e){X.DiffuseTextureEnabled=e}static get DetailTextureEnabled(){return X.DetailTextureEnabled}static set DetailTextureEnabled(e){X.DetailTextureEnabled=e}static get AmbientTextureEnabled(){return X.AmbientTextureEnabled}static set AmbientTextureEnabled(e){X.AmbientTextureEnabled=e}static get OpacityTextureEnabled(){return X.OpacityTextureEnabled}static set OpacityTextureEnabled(e){X.OpacityTextureEnabled=e}static get ReflectionTextureEnabled(){return X.ReflectionTextureEnabled}static set ReflectionTextureEnabled(e){X.ReflectionTextureEnabled=e}static get EmissiveTextureEnabled(){return X.EmissiveTextureEnabled}static set EmissiveTextureEnabled(e){X.EmissiveTextureEnabled=e}static get SpecularTextureEnabled(){return X.SpecularTextureEnabled}static set SpecularTextureEnabled(e){X.SpecularTextureEnabled=e}static get BumpTextureEnabled(){return X.BumpTextureEnabled}static set BumpTextureEnabled(e){X.BumpTextureEnabled=e}static get LightmapTextureEnabled(){return X.LightmapTextureEnabled}static set LightmapTextureEnabled(e){X.LightmapTextureEnabled=e}static get RefractionTextureEnabled(){return X.RefractionTextureEnabled}static set RefractionTextureEnabled(e){X.RefractionTextureEnabled=e}static get ColorGradingTextureEnabled(){return X.ColorGradingTextureEnabled}static set ColorGradingTextureEnabled(e){X.ColorGradingTextureEnabled=e}static get FresnelEnabled(){return X.FresnelEnabled}static set FresnelEnabled(e){X.FresnelEnabled=e}}K.ForceGLSL=!1,e([t("diffuseTexture")],K.prototype,"_diffuseTexture",void 0),e([i("_markAllSubMeshesAsTexturesAndMiscDirty")],K.prototype,"diffuseTexture",void 0),e([t("ambientTexture")],K.prototype,"_ambientTexture",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"ambientTexture",void 0),e([t("opacityTexture")],K.prototype,"_opacityTexture",void 0),e([i("_markAllSubMeshesAsTexturesAndMiscDirty")],K.prototype,"opacityTexture",void 0),e([t("reflectionTexture")],K.prototype,"_reflectionTexture",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"reflectionTexture",void 0),e([t("emissiveTexture")],K.prototype,"_emissiveTexture",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"emissiveTexture",void 0),e([t("specularTexture")],K.prototype,"_specularTexture",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"specularTexture",void 0),e([t("bumpTexture")],K.prototype,"_bumpTexture",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"bumpTexture",void 0),e([t("lightmapTexture")],K.prototype,"_lightmapTexture",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"lightmapTexture",void 0),e([t("refractionTexture")],K.prototype,"_refractionTexture",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"refractionTexture",void 0),e([s("ambient")],K.prototype,"ambientColor",void 0),e([s("diffuse")],K.prototype,"diffuseColor",void 0),e([s("specular")],K.prototype,"specularColor",void 0),e([s("emissive")],K.prototype,"emissiveColor",void 0),e([r()],K.prototype,"specularPower",void 0),e([r("useAlphaFromDiffuseTexture")],K.prototype,"_useAlphaFromDiffuseTexture",void 0),e([i("_markAllSubMeshesAsTexturesAndMiscDirty")],K.prototype,"useAlphaFromDiffuseTexture",void 0),e([r("useEmissiveAsIllumination")],K.prototype,"_useEmissiveAsIllumination",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useEmissiveAsIllumination",void 0),e([r("linkEmissiveWithDiffuse")],K.prototype,"_linkEmissiveWithDiffuse",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"linkEmissiveWithDiffuse",void 0),e([r("useSpecularOverAlpha")],K.prototype,"_useSpecularOverAlpha",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useSpecularOverAlpha",void 0),e([r("useReflectionOverAlpha")],K.prototype,"_useReflectionOverAlpha",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useReflectionOverAlpha",void 0),e([r("disableLighting")],K.prototype,"_disableLighting",void 0),e([i("_markAllSubMeshesAsLightsDirty")],K.prototype,"disableLighting",void 0),e([r("useObjectSpaceNormalMap")],K.prototype,"_useObjectSpaceNormalMap",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useObjectSpaceNormalMap",void 0),e([r("useParallax")],K.prototype,"_useParallax",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useParallax",void 0),e([r("useParallaxOcclusion")],K.prototype,"_useParallaxOcclusion",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useParallaxOcclusion",void 0),e([r()],K.prototype,"parallaxScaleBias",void 0),e([r("roughness")],K.prototype,"_roughness",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"roughness",void 0),e([r()],K.prototype,"indexOfRefraction",void 0),e([r()],K.prototype,"invertRefractionY",void 0),e([r()],K.prototype,"alphaCutOff",void 0),e([r("useLightmapAsShadowmap")],K.prototype,"_useLightmapAsShadowmap",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useLightmapAsShadowmap",void 0),e([a("diffuseFresnelParameters")],K.prototype,"_diffuseFresnelParameters",void 0),e([i("_markAllSubMeshesAsFresnelDirty")],K.prototype,"diffuseFresnelParameters",void 0),e([a("opacityFresnelParameters")],K.prototype,"_opacityFresnelParameters",void 0),e([i("_markAllSubMeshesAsFresnelAndMiscDirty")],K.prototype,"opacityFresnelParameters",void 0),e([a("reflectionFresnelParameters")],K.prototype,"_reflectionFresnelParameters",void 0),e([i("_markAllSubMeshesAsFresnelDirty")],K.prototype,"reflectionFresnelParameters",void 0),e([a("refractionFresnelParameters")],K.prototype,"_refractionFresnelParameters",void 0),e([i("_markAllSubMeshesAsFresnelDirty")],K.prototype,"refractionFresnelParameters",void 0),e([a("emissiveFresnelParameters")],K.prototype,"_emissiveFresnelParameters",void 0),e([i("_markAllSubMeshesAsFresnelDirty")],K.prototype,"emissiveFresnelParameters",void 0),e([r("useReflectionFresnelFromSpecular")],K.prototype,"_useReflectionFresnelFromSpecular",void 0),e([i("_markAllSubMeshesAsFresnelDirty")],K.prototype,"useReflectionFresnelFromSpecular",void 0),e([r("useGlossinessFromSpecularMapAlpha")],K.prototype,"_useGlossinessFromSpecularMapAlpha",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"useGlossinessFromSpecularMapAlpha",void 0),e([r("maxSimultaneousLights")],K.prototype,"_maxSimultaneousLights",void 0),e([i("_markAllSubMeshesAsLightsDirty")],K.prototype,"maxSimultaneousLights",void 0),e([r("invertNormalMapX")],K.prototype,"_invertNormalMapX",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"invertNormalMapX",void 0),e([r("invertNormalMapY")],K.prototype,"_invertNormalMapY",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"invertNormalMapY",void 0),e([r("twoSidedLighting")],K.prototype,"_twoSidedLighting",void 0),e([i("_markAllSubMeshesAsTexturesDirty")],K.prototype,"twoSidedLighting",void 0),e([r("applyDecalMapAfterDetailMap")],K.prototype,"_applyDecalMapAfterDetailMap",void 0),e([i("_markAllSubMeshesAsMiscDirty")],K.prototype,"applyDecalMapAfterDetailMap",void 0),o("BABYLON.StandardMaterial",K),n.DefaultMaterialFactory=e=>new K("default material",e);export{K as S};
2
+ //# sourceMappingURL=standardMaterial-B1nhnycu.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standardMaterial-B1nhnycu.esm.min.js","sources":["../../../../../dev/core/dist/Materials/standardMaterial.js"],"sourcesContent":["import { __decorate } from \"tslib\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize, serializeAsColor3, expandToProperty, serializeAsFresnelParameters, serializeAsTexture } from \"../Misc/decorators\";\nimport { SmartArray } from \"../Misc/smartArray\";\nimport { Scene } from \"../scene\";\nimport { Matrix } from \"../Maths/math.vector\";\nimport { Color3 } from \"../Maths/math.color\";\nimport { VertexBuffer } from \"../Buffers/buffer\";\nimport { PrePassConfiguration } from \"./prePassConfiguration\";\nimport { ImageProcessingConfiguration } from \"./imageProcessingConfiguration\";\nimport { Material } from \"../Materials/material\";\nimport { MaterialDefines } from \"../Materials/materialDefines\";\nimport { PushMaterial } from \"./pushMaterial\";\nimport { Texture } from \"../Materials/Textures/texture\";\nimport { RegisterClass } from \"../Misc/typeStore\";\nimport { MaterialFlags } from \"./materialFlags\";\nimport { Constants } from \"../Engines/constants\";\nimport { EffectFallbacks } from \"./effectFallbacks\";\nimport { DetailMapConfiguration } from \"./material.detailMapConfiguration\";\nimport { addClipPlaneUniforms, bindClipPlane } from \"./clipPlaneMaterialHelper\";\nimport { BindBonesParameters, BindFogParameters, BindLights, BindLogDepth, BindMorphTargetParameters, BindTextureMatrix, HandleFallbacksForShadows, PrepareAttributesForBakedVertexAnimation, PrepareAttributesForBones, PrepareAttributesForInstances, PrepareAttributesForMorphTargets, PrepareDefinesForAttributes, PrepareDefinesForFrameBoundValues, PrepareDefinesForLights, PrepareDefinesForMergedUV, PrepareDefinesForMisc, PrepareDefinesForMultiview, PrepareDefinesForOIT, PrepareDefinesForPrePass, PrepareUniformsAndSamplersList, } from \"./materialHelper.functions\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\nimport { MaterialHelperGeometryRendering } from \"./materialHelper.geometryrendering\";\nconst onCreatedEffectParameters = { effect: null, subMesh: null };\n/** @internal */\nexport class StandardMaterialDefines extends MaterialDefines {\n /**\n * Initializes the Standard Material defines.\n * @param externalProperties The external properties\n */\n constructor(externalProperties) {\n super(externalProperties);\n this.MAINUV1 = false;\n this.MAINUV2 = false;\n this.MAINUV3 = false;\n this.MAINUV4 = false;\n this.MAINUV5 = false;\n this.MAINUV6 = false;\n this.DIFFUSE = false;\n this.DIFFUSEDIRECTUV = 0;\n this.BAKED_VERTEX_ANIMATION_TEXTURE = false;\n this.AMBIENT = false;\n this.AMBIENTDIRECTUV = 0;\n this.OPACITY = false;\n this.OPACITYDIRECTUV = 0;\n this.OPACITYRGB = false;\n this.REFLECTION = false;\n this.EMISSIVE = false;\n this.EMISSIVEDIRECTUV = 0;\n this.SPECULAR = false;\n this.SPECULARDIRECTUV = 0;\n this.BUMP = false;\n this.BUMPDIRECTUV = 0;\n this.PARALLAX = false;\n this.PARALLAX_RHS = false;\n this.PARALLAXOCCLUSION = false;\n this.SPECULAROVERALPHA = false;\n this.CLIPPLANE = false;\n this.CLIPPLANE2 = false;\n this.CLIPPLANE3 = false;\n this.CLIPPLANE4 = false;\n this.CLIPPLANE5 = false;\n this.CLIPPLANE6 = false;\n this.ALPHATEST = false;\n this.DEPTHPREPASS = false;\n this.ALPHAFROMDIFFUSE = false;\n this.POINTSIZE = false;\n this.FOG = false;\n this.SPECULARTERM = false;\n this.DIFFUSEFRESNEL = false;\n this.OPACITYFRESNEL = false;\n this.REFLECTIONFRESNEL = false;\n this.REFRACTIONFRESNEL = false;\n this.EMISSIVEFRESNEL = false;\n this.FRESNEL = false;\n this.NORMAL = false;\n this.TANGENT = false;\n this.UV1 = false;\n this.UV2 = false;\n this.UV3 = false;\n this.UV4 = false;\n this.UV5 = false;\n this.UV6 = false;\n this.VERTEXCOLOR = false;\n this.VERTEXALPHA = false;\n this.NUM_BONE_INFLUENCERS = 0;\n this.BonesPerMesh = 0;\n this.BONETEXTURE = false;\n this.BONES_VELOCITY_ENABLED = false;\n this.INSTANCES = false;\n this.THIN_INSTANCES = false;\n this.INSTANCESCOLOR = false;\n this.GLOSSINESS = false;\n this.ROUGHNESS = false;\n this.EMISSIVEASILLUMINATION = false;\n this.LINKEMISSIVEWITHDIFFUSE = false;\n this.REFLECTIONFRESNELFROMSPECULAR = false;\n this.LIGHTMAP = false;\n this.LIGHTMAPDIRECTUV = 0;\n this.OBJECTSPACE_NORMALMAP = false;\n this.USELIGHTMAPASSHADOWMAP = false;\n this.REFLECTIONMAP_3D = false;\n this.REFLECTIONMAP_SPHERICAL = false;\n this.REFLECTIONMAP_PLANAR = false;\n this.REFLECTIONMAP_CUBIC = false;\n this.USE_LOCAL_REFLECTIONMAP_CUBIC = false;\n this.USE_LOCAL_REFRACTIONMAP_CUBIC = false;\n this.REFLECTIONMAP_PROJECTION = false;\n this.REFLECTIONMAP_SKYBOX = false;\n this.REFLECTIONMAP_EXPLICIT = false;\n this.REFLECTIONMAP_EQUIRECTANGULAR = false;\n this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = false;\n this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = false;\n this.REFLECTIONMAP_OPPOSITEZ = false;\n this.INVERTCUBICMAP = false;\n this.LOGARITHMICDEPTH = false;\n this.REFRACTION = false;\n this.REFRACTIONMAP_3D = false;\n this.REFLECTIONOVERALPHA = false;\n this.TWOSIDEDLIGHTING = false;\n this.SHADOWFLOAT = false;\n this.MORPHTARGETS = false;\n this.MORPHTARGETS_POSITION = false;\n this.MORPHTARGETS_NORMAL = false;\n this.MORPHTARGETS_TANGENT = false;\n this.MORPHTARGETS_UV = false;\n this.MORPHTARGETS_UV2 = false;\n this.MORPHTARGETTEXTURE_HASPOSITIONS = false;\n this.MORPHTARGETTEXTURE_HASNORMALS = false;\n this.MORPHTARGETTEXTURE_HASTANGENTS = false;\n this.MORPHTARGETTEXTURE_HASUVS = false;\n this.MORPHTARGETTEXTURE_HASUV2S = false;\n this.NUM_MORPH_INFLUENCERS = 0;\n this.MORPHTARGETS_TEXTURE = false;\n this.NONUNIFORMSCALING = false; // https://playground.babylonjs.com#V6DWIH\n this.PREMULTIPLYALPHA = false; // https://playground.babylonjs.com#LNVJJ7\n this.ALPHATEST_AFTERALLALPHACOMPUTATIONS = false;\n this.ALPHABLEND = true;\n this.PREPASS = false;\n this.PREPASS_COLOR = false;\n this.PREPASS_COLOR_INDEX = -1;\n this.PREPASS_IRRADIANCE = false;\n this.PREPASS_IRRADIANCE_INDEX = -1;\n this.PREPASS_ALBEDO = false;\n this.PREPASS_ALBEDO_INDEX = -1;\n this.PREPASS_ALBEDO_SQRT = false;\n this.PREPASS_ALBEDO_SQRT_INDEX = -1;\n this.PREPASS_DEPTH = false;\n this.PREPASS_DEPTH_INDEX = -1;\n this.PREPASS_SCREENSPACE_DEPTH = false;\n this.PREPASS_SCREENSPACE_DEPTH_INDEX = -1;\n this.PREPASS_NORMAL = false;\n this.PREPASS_NORMAL_INDEX = -1;\n this.PREPASS_NORMAL_WORLDSPACE = false;\n this.PREPASS_WORLD_NORMAL = false;\n this.PREPASS_WORLD_NORMAL_INDEX = -1;\n this.PREPASS_POSITION = false;\n this.PREPASS_POSITION_INDEX = -1;\n this.PREPASS_LOCAL_POSITION = false;\n this.PREPASS_LOCAL_POSITION_INDEX = -1;\n this.PREPASS_VELOCITY = false;\n this.PREPASS_VELOCITY_INDEX = -1;\n this.PREPASS_VELOCITY_LINEAR = false;\n this.PREPASS_VELOCITY_LINEAR_INDEX = -1;\n this.PREPASS_REFLECTIVITY = false;\n this.PREPASS_REFLECTIVITY_INDEX = -1;\n this.SCENE_MRT_COUNT = 0;\n this.RGBDLIGHTMAP = false;\n this.RGBDREFLECTION = false;\n this.RGBDREFRACTION = false;\n this.IMAGEPROCESSING = false;\n this.VIGNETTE = false;\n this.VIGNETTEBLENDMODEMULTIPLY = false;\n this.VIGNETTEBLENDMODEOPAQUE = false;\n this.TONEMAPPING = 0;\n this.CONTRAST = false;\n this.COLORCURVES = false;\n this.COLORGRADING = false;\n this.COLORGRADING3D = false;\n this.SAMPLER3DGREENDEPTH = false;\n this.SAMPLER3DBGRMAP = false;\n this.DITHER = false;\n this.IMAGEPROCESSINGPOSTPROCESS = false;\n this.SKIPFINALCOLORCLAMP = false;\n this.MULTIVIEW = false;\n this.ORDER_INDEPENDENT_TRANSPARENCY = false;\n this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS = false;\n this.CAMERA_ORTHOGRAPHIC = false;\n this.CAMERA_PERSPECTIVE = false;\n /**\n * If the reflection texture on this material is in linear color space\n * @internal\n */\n this.IS_REFLECTION_LINEAR = false;\n /**\n * If the refraction texture on this material is in linear color space\n * @internal\n */\n this.IS_REFRACTION_LINEAR = false;\n this.EXPOSURE = false;\n this.DECAL_AFTER_DETAIL = false;\n this.rebuild();\n }\n setReflectionMode(modeToEnable) {\n const modes = [\n \"REFLECTIONMAP_CUBIC\",\n \"REFLECTIONMAP_EXPLICIT\",\n \"REFLECTIONMAP_PLANAR\",\n \"REFLECTIONMAP_PROJECTION\",\n \"REFLECTIONMAP_PROJECTION\",\n \"REFLECTIONMAP_SKYBOX\",\n \"REFLECTIONMAP_SPHERICAL\",\n \"REFLECTIONMAP_EQUIRECTANGULAR\",\n \"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\",\n \"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\",\n ];\n for (const mode of modes) {\n this[mode] = mode === modeToEnable;\n }\n }\n}\n/**\n * This is the default material used in Babylon. It is the best trade off between quality\n * and performances.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction\n */\nexport class StandardMaterial extends PushMaterial {\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(value) {\n this._attachImageProcessingConfiguration(value);\n // Ensure the effect will be rebuilt.\n this._markAllSubMeshesAsTexturesDirty();\n }\n /**\n * Attaches a new image processing configuration to the Standard Material.\n * @param configuration\n */\n _attachImageProcessingConfiguration(configuration) {\n if (configuration === this._imageProcessingConfiguration) {\n return;\n }\n // Detaches observer\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\n }\n // Pick the scene configuration if needed\n if (!configuration) {\n this._imageProcessingConfiguration = this.getScene().imageProcessingConfiguration;\n }\n else {\n this._imageProcessingConfiguration = configuration;\n }\n // Attaches observer\n if (this._imageProcessingConfiguration) {\n this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._markAllSubMeshesAsImageProcessingDirty();\n });\n }\n }\n /**\n * Can this material render to prepass\n */\n get isPrePassCapable() {\n return !this.disableDepthWrite;\n }\n /**\n * Gets whether the color curves effect is enabled.\n */\n get cameraColorCurvesEnabled() {\n return this.imageProcessingConfiguration.colorCurvesEnabled;\n }\n /**\n * Sets whether the color curves effect is enabled.\n */\n set cameraColorCurvesEnabled(value) {\n this.imageProcessingConfiguration.colorCurvesEnabled = value;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n get cameraColorGradingEnabled() {\n return this.imageProcessingConfiguration.colorGradingEnabled;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n set cameraColorGradingEnabled(value) {\n this.imageProcessingConfiguration.colorGradingEnabled = value;\n }\n /**\n * Gets whether tonemapping is enabled or not.\n */\n get cameraToneMappingEnabled() {\n return this._imageProcessingConfiguration.toneMappingEnabled;\n }\n /**\n * Sets whether tonemapping is enabled or not\n */\n set cameraToneMappingEnabled(value) {\n this._imageProcessingConfiguration.toneMappingEnabled = value;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n get cameraExposure() {\n return this._imageProcessingConfiguration.exposure;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n set cameraExposure(value) {\n this._imageProcessingConfiguration.exposure = value;\n }\n /**\n * Gets The camera contrast used on this material.\n */\n get cameraContrast() {\n return this._imageProcessingConfiguration.contrast;\n }\n /**\n * Sets The camera contrast used on this material.\n */\n set cameraContrast(value) {\n this._imageProcessingConfiguration.contrast = value;\n }\n /**\n * Gets the Color Grading 2D Lookup Texture.\n */\n get cameraColorGradingTexture() {\n return this._imageProcessingConfiguration.colorGradingTexture;\n }\n /**\n * Sets the Color Grading 2D Lookup Texture.\n */\n set cameraColorGradingTexture(value) {\n this._imageProcessingConfiguration.colorGradingTexture = value;\n }\n /**\n * The color grading curves provide additional color adjustmnent that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n get cameraColorCurves() {\n return this._imageProcessingConfiguration.colorCurves;\n }\n /**\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n set cameraColorCurves(value) {\n this._imageProcessingConfiguration.colorCurves = value;\n }\n /**\n * Can this material render to several textures at once\n */\n get canRenderToMRT() {\n return true;\n }\n /**\n * Instantiates a new standard material.\n * This is the default material used in Babylon. It is the best trade off between quality\n * and performances.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction\n * @param name Define the name of the material in the scene\n * @param scene Define the scene the material belong to\n * @param forceGLSL Use the GLSL code generation for the shader (even on WebGPU). Default is false\n */\n constructor(name, scene, forceGLSL = false) {\n super(name, scene, undefined, forceGLSL || StandardMaterial.ForceGLSL);\n this._diffuseTexture = null;\n this._ambientTexture = null;\n this._opacityTexture = null;\n this._reflectionTexture = null;\n this._emissiveTexture = null;\n this._specularTexture = null;\n this._bumpTexture = null;\n this._lightmapTexture = null;\n this._refractionTexture = null;\n /**\n * The color of the material lit by the environmental background lighting.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction#ambient-color-example\n */\n this.ambientColor = new Color3(0, 0, 0);\n /**\n * The basic color of the material as viewed under a light.\n */\n this.diffuseColor = new Color3(1, 1, 1);\n /**\n * Define how the color and intensity of the highlight given by the light in the material.\n */\n this.specularColor = new Color3(1, 1, 1);\n /**\n * Define the color of the material as if self lit.\n * This will be mixed in the final result even in the absence of light.\n */\n this.emissiveColor = new Color3(0, 0, 0);\n /**\n * Defines how sharp are the highlights in the material.\n * The bigger the value the sharper giving a more glossy feeling to the result.\n * Reversely, the smaller the value the blurrier giving a more rough feeling to the result.\n */\n this.specularPower = 64;\n this._useAlphaFromDiffuseTexture = false;\n this._useEmissiveAsIllumination = false;\n this._linkEmissiveWithDiffuse = false;\n this._useSpecularOverAlpha = false;\n this._useReflectionOverAlpha = false;\n this._disableLighting = false;\n this._useObjectSpaceNormalMap = false;\n this._useParallax = false;\n this._useParallaxOcclusion = false;\n /**\n * Apply a scaling factor that determine which \"depth\" the height map should reprensent. A value between 0.05 and 0.1 is reasonnable in Parallax, you can reach 0.2 using Parallax Occlusion.\n */\n this.parallaxScaleBias = 0.05;\n this._roughness = 0;\n /**\n * In case of refraction, define the value of the index of refraction.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#how-to-obtain-reflections-and-refractions\n */\n this.indexOfRefraction = 0.98;\n /**\n * Invert the refraction texture alongside the y axis.\n * It can be useful with procedural textures or probe for instance.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#how-to-obtain-reflections-and-refractions\n */\n this.invertRefractionY = true;\n /**\n * Defines the alpha limits in alpha test mode.\n */\n this.alphaCutOff = 0.4;\n this._useLightmapAsShadowmap = false;\n this._useReflectionFresnelFromSpecular = false;\n this._useGlossinessFromSpecularMapAlpha = false;\n this._maxSimultaneousLights = 4;\n this._invertNormalMapX = false;\n this._invertNormalMapY = false;\n this._twoSidedLighting = false;\n this._applyDecalMapAfterDetailMap = false;\n this._shadersLoaded = false;\n this._renderTargets = new SmartArray(16);\n this._worldViewProjectionMatrix = Matrix.Zero();\n this._globalAmbientColor = new Color3(0, 0, 0);\n this._cacheHasRenderTargetTextures = false;\n this.detailMap = new DetailMapConfiguration(this);\n // Setup the default processing configuration to the scene.\n this._attachImageProcessingConfiguration(null);\n this.prePassConfiguration = new PrePassConfiguration();\n this.getRenderTargetTextures = () => {\n this._renderTargets.reset();\n if (StandardMaterial.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget) {\n this._renderTargets.push(this._reflectionTexture);\n }\n if (StandardMaterial.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget) {\n this._renderTargets.push(this._refractionTexture);\n }\n this._eventInfo.renderTargets = this._renderTargets;\n this._callbackPluginEventFillRenderTargetTextures(this._eventInfo);\n return this._renderTargets;\n };\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n */\n get hasRenderTargetTextures() {\n if (StandardMaterial.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget) {\n return true;\n }\n if (StandardMaterial.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget) {\n return true;\n }\n return this._cacheHasRenderTargetTextures;\n }\n /**\n * Gets the current class name of the material e.g. \"StandardMaterial\"\n * Mainly use in serialization.\n * @returns the class name\n */\n getClassName() {\n return \"StandardMaterial\";\n }\n /**\n * Specifies if the material will require alpha blending\n * @returns a boolean specifying if alpha blending is needed\n */\n needAlphaBlending() {\n if (this._disableAlphaBlending) {\n return false;\n }\n return (this.alpha < 1.0 ||\n this._opacityTexture != null ||\n this._shouldUseAlphaFromDiffuseTexture() ||\n (this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled));\n }\n /**\n * Specifies if this material should be rendered in alpha test mode\n * @returns a boolean specifying if an alpha test is needed.\n */\n needAlphaTesting() {\n if (this._forceAlphaTest) {\n return true;\n }\n return this._hasAlphaChannel() && (this._transparencyMode == null || this._transparencyMode === Material.MATERIAL_ALPHATEST);\n }\n /**\n * @returns whether or not the alpha value of the diffuse texture should be used for alpha blending.\n */\n _shouldUseAlphaFromDiffuseTexture() {\n return this._diffuseTexture != null && this._diffuseTexture.hasAlpha && this._useAlphaFromDiffuseTexture && this._transparencyMode !== Material.MATERIAL_OPAQUE;\n }\n /**\n * @returns whether or not there is a usable alpha channel for transparency.\n */\n _hasAlphaChannel() {\n return (this._diffuseTexture != null && this._diffuseTexture.hasAlpha) || this._opacityTexture != null;\n }\n /**\n * Get the texture used for alpha test purpose.\n * @returns the diffuse texture in case of the standard material.\n */\n getAlphaTestTexture() {\n return this._diffuseTexture;\n }\n /**\n * Get if the submesh is ready to be used and all its information available.\n * Child classes can use it to update shaders\n * @param mesh defines the mesh to check\n * @param subMesh defines which submesh to check\n * @param useInstances specifies that instances should be used\n * @returns a boolean indicating that the submesh is ready or not\n */\n isReadyForSubMesh(mesh, subMesh, useInstances = false) {\n if (!this._uniformBufferLayoutBuilt) {\n this.buildUniformLayout();\n }\n const drawWrapper = subMesh._drawWrapper;\n if (drawWrapper.effect && this.isFrozen) {\n if (drawWrapper._wasPreviouslyReady && drawWrapper._wasPreviouslyUsingInstances === useInstances) {\n return true;\n }\n }\n if (!subMesh.materialDefines) {\n this._callbackPluginEventGeneric(4 /* MaterialPluginEvent.GetDefineNames */, this._eventInfo);\n subMesh.materialDefines = new StandardMaterialDefines(this._eventInfo.defineNames);\n }\n const scene = this.getScene();\n const defines = subMesh.materialDefines;\n if (this._isReadyForSubMesh(subMesh)) {\n return true;\n }\n const engine = scene.getEngine();\n // Lights\n defines._needNormals = PrepareDefinesForLights(scene, mesh, defines, true, this._maxSimultaneousLights, this._disableLighting);\n // Multiview\n PrepareDefinesForMultiview(scene, defines);\n // PrePass\n const oit = this.needAlphaBlendingForMesh(mesh) && this.getScene().useOrderIndependentTransparency;\n PrepareDefinesForPrePass(scene, defines, this.canRenderToMRT && !oit);\n // Order independant transparency\n PrepareDefinesForOIT(scene, defines, oit);\n MaterialHelperGeometryRendering.PrepareDefines(engine.currentRenderPassId, mesh, defines);\n // Textures\n if (defines._areTexturesDirty) {\n this._eventInfo.hasRenderTargetTextures = false;\n this._callbackPluginEventHasRenderTargetTextures(this._eventInfo);\n this._cacheHasRenderTargetTextures = this._eventInfo.hasRenderTargetTextures;\n defines._needUVs = false;\n for (let i = 1; i <= Constants.MAX_SUPPORTED_UV_SETS; ++i) {\n defines[\"MAINUV\" + i] = false;\n }\n if (scene.texturesEnabled) {\n defines.DIFFUSEDIRECTUV = 0;\n defines.BUMPDIRECTUV = 0;\n defines.AMBIENTDIRECTUV = 0;\n defines.OPACITYDIRECTUV = 0;\n defines.EMISSIVEDIRECTUV = 0;\n defines.SPECULARDIRECTUV = 0;\n defines.LIGHTMAPDIRECTUV = 0;\n if (this._diffuseTexture && StandardMaterial.DiffuseTextureEnabled) {\n if (!this._diffuseTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._diffuseTexture, defines, \"DIFFUSE\");\n }\n }\n else {\n defines.DIFFUSE = false;\n }\n if (this._ambientTexture && StandardMaterial.AmbientTextureEnabled) {\n if (!this._ambientTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._ambientTexture, defines, \"AMBIENT\");\n }\n }\n else {\n defines.AMBIENT = false;\n }\n if (this._opacityTexture && StandardMaterial.OpacityTextureEnabled) {\n if (!this._opacityTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._opacityTexture, defines, \"OPACITY\");\n defines.OPACITYRGB = this._opacityTexture.getAlphaFromRGB;\n }\n }\n else {\n defines.OPACITY = false;\n }\n if (this._reflectionTexture && StandardMaterial.ReflectionTextureEnabled) {\n if (!this._reflectionTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n defines._needNormals = true;\n defines.REFLECTION = true;\n defines.ROUGHNESS = this._roughness > 0;\n defines.REFLECTIONOVERALPHA = this._useReflectionOverAlpha;\n defines.INVERTCUBICMAP = this._reflectionTexture.coordinatesMode === Texture.INVCUBIC_MODE;\n defines.REFLECTIONMAP_3D = this._reflectionTexture.isCube;\n defines.REFLECTIONMAP_OPPOSITEZ =\n defines.REFLECTIONMAP_3D && this.getScene().useRightHandedSystem ? !this._reflectionTexture.invertZ : this._reflectionTexture.invertZ;\n defines.RGBDREFLECTION = this._reflectionTexture.isRGBD;\n switch (this._reflectionTexture.coordinatesMode) {\n case Texture.EXPLICIT_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_EXPLICIT\");\n break;\n case Texture.PLANAR_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_PLANAR\");\n break;\n case Texture.PROJECTION_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_PROJECTION\");\n break;\n case Texture.SKYBOX_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_SKYBOX\");\n break;\n case Texture.SPHERICAL_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_SPHERICAL\");\n break;\n case Texture.EQUIRECTANGULAR_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR\");\n break;\n case Texture.FIXED_EQUIRECTANGULAR_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\");\n break;\n case Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\");\n break;\n case Texture.CUBIC_MODE:\n case Texture.INVCUBIC_MODE:\n default:\n defines.setReflectionMode(\"REFLECTIONMAP_CUBIC\");\n break;\n }\n defines.USE_LOCAL_REFLECTIONMAP_CUBIC = this._reflectionTexture.boundingBoxSize ? true : false;\n }\n }\n else {\n defines.REFLECTION = false;\n defines.REFLECTIONMAP_OPPOSITEZ = false;\n }\n if (this._emissiveTexture && StandardMaterial.EmissiveTextureEnabled) {\n if (!this._emissiveTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._emissiveTexture, defines, \"EMISSIVE\");\n }\n }\n else {\n defines.EMISSIVE = false;\n }\n if (this._lightmapTexture && StandardMaterial.LightmapTextureEnabled) {\n if (!this._lightmapTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._lightmapTexture, defines, \"LIGHTMAP\");\n defines.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap;\n defines.RGBDLIGHTMAP = this._lightmapTexture.isRGBD;\n }\n }\n else {\n defines.LIGHTMAP = false;\n }\n if (this._specularTexture && StandardMaterial.SpecularTextureEnabled) {\n if (!this._specularTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._specularTexture, defines, \"SPECULAR\");\n defines.GLOSSINESS = this._useGlossinessFromSpecularMapAlpha;\n }\n }\n else {\n defines.SPECULAR = false;\n }\n if (scene.getEngine().getCaps().standardDerivatives && this._bumpTexture && StandardMaterial.BumpTextureEnabled) {\n // Bump texture can not be not blocking.\n if (!this._bumpTexture.isReady()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._bumpTexture, defines, \"BUMP\");\n defines.PARALLAX = this._useParallax;\n defines.PARALLAX_RHS = scene.useRightHandedSystem;\n defines.PARALLAXOCCLUSION = this._useParallaxOcclusion;\n }\n defines.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap;\n }\n else {\n defines.BUMP = false;\n defines.PARALLAX = false;\n defines.PARALLAX_RHS = false;\n defines.PARALLAXOCCLUSION = false;\n }\n if (this._refractionTexture && StandardMaterial.RefractionTextureEnabled) {\n if (!this._refractionTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n defines._needUVs = true;\n defines.REFRACTION = true;\n defines.REFRACTIONMAP_3D = this._refractionTexture.isCube;\n defines.RGBDREFRACTION = this._refractionTexture.isRGBD;\n defines.USE_LOCAL_REFRACTIONMAP_CUBIC = this._refractionTexture.boundingBoxSize ? true : false;\n }\n }\n else {\n defines.REFRACTION = false;\n }\n defines.TWOSIDEDLIGHTING = !this._backFaceCulling && this._twoSidedLighting;\n }\n else {\n defines.DIFFUSE = false;\n defines.AMBIENT = false;\n defines.OPACITY = false;\n defines.REFLECTION = false;\n defines.EMISSIVE = false;\n defines.LIGHTMAP = false;\n defines.BUMP = false;\n defines.REFRACTION = false;\n }\n defines.ALPHAFROMDIFFUSE = this._shouldUseAlphaFromDiffuseTexture();\n defines.EMISSIVEASILLUMINATION = this._useEmissiveAsIllumination;\n defines.LINKEMISSIVEWITHDIFFUSE = this._linkEmissiveWithDiffuse;\n defines.SPECULAROVERALPHA = this._useSpecularOverAlpha;\n defines.PREMULTIPLYALPHA = this.alphaMode === Constants.ALPHA_PREMULTIPLIED || this.alphaMode === Constants.ALPHA_PREMULTIPLIED_PORTERDUFF;\n defines.ALPHATEST_AFTERALLALPHACOMPUTATIONS = this.transparencyMode !== null;\n defines.ALPHABLEND = this.transparencyMode === null || this.needAlphaBlendingForMesh(mesh); // check on null for backward compatibility\n }\n this._eventInfo.isReadyForSubMesh = true;\n this._eventInfo.defines = defines;\n this._eventInfo.subMesh = subMesh;\n this._callbackPluginEventIsReadyForSubMesh(this._eventInfo);\n if (!this._eventInfo.isReadyForSubMesh) {\n return false;\n }\n if (defines._areImageProcessingDirty && this._imageProcessingConfiguration) {\n if (!this._imageProcessingConfiguration.isReady()) {\n return false;\n }\n this._imageProcessingConfiguration.prepareDefines(defines);\n defines.IS_REFLECTION_LINEAR = this.reflectionTexture != null && !this.reflectionTexture.gammaSpace;\n defines.IS_REFRACTION_LINEAR = this.refractionTexture != null && !this.refractionTexture.gammaSpace;\n }\n if (defines._areFresnelDirty) {\n if (StandardMaterial.FresnelEnabled) {\n // Fresnel\n if (this._diffuseFresnelParameters ||\n this._opacityFresnelParameters ||\n this._emissiveFresnelParameters ||\n this._refractionFresnelParameters ||\n this._reflectionFresnelParameters) {\n defines.DIFFUSEFRESNEL = this._diffuseFresnelParameters && this._diffuseFresnelParameters.isEnabled;\n defines.OPACITYFRESNEL = this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled;\n defines.REFLECTIONFRESNEL = this._reflectionFresnelParameters && this._reflectionFresnelParameters.isEnabled;\n defines.REFLECTIONFRESNELFROMSPECULAR = this._useReflectionFresnelFromSpecular;\n defines.REFRACTIONFRESNEL = this._refractionFresnelParameters && this._refractionFresnelParameters.isEnabled;\n defines.EMISSIVEFRESNEL = this._emissiveFresnelParameters && this._emissiveFresnelParameters.isEnabled;\n defines._needNormals = true;\n defines.FRESNEL = true;\n }\n }\n else {\n defines.FRESNEL = false;\n }\n }\n // Misc.\n PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh) || this._forceAlphaTest, defines, this._applyDecalMapAfterDetailMap);\n // Values that need to be evaluated on every frame\n PrepareDefinesForFrameBoundValues(scene, engine, this, defines, useInstances, null, subMesh.getRenderingMesh().hasThinInstances);\n // External config\n this._eventInfo.defines = defines;\n this._eventInfo.mesh = mesh;\n this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo);\n // Attribs\n PrepareDefinesForAttributes(mesh, defines, true, true, true);\n // External config\n this._callbackPluginEventPrepareDefines(this._eventInfo);\n // Get correct effect\n let forceWasNotReadyPreviously = false;\n if (defines.isDirty) {\n const lightDisposed = defines._areLightsDisposed;\n defines.markAsProcessed();\n // Fallbacks\n const fallbacks = new EffectFallbacks();\n if (defines.REFLECTION) {\n fallbacks.addFallback(0, \"REFLECTION\");\n }\n if (defines.SPECULAR) {\n fallbacks.addFallback(0, \"SPECULAR\");\n }\n if (defines.BUMP) {\n fallbacks.addFallback(0, \"BUMP\");\n }\n if (defines.PARALLAX) {\n fallbacks.addFallback(1, \"PARALLAX\");\n }\n if (defines.PARALLAX_RHS) {\n fallbacks.addFallback(1, \"PARALLAX_RHS\");\n }\n if (defines.PARALLAXOCCLUSION) {\n fallbacks.addFallback(0, \"PARALLAXOCCLUSION\");\n }\n if (defines.SPECULAROVERALPHA) {\n fallbacks.addFallback(0, \"SPECULAROVERALPHA\");\n }\n if (defines.FOG) {\n fallbacks.addFallback(1, \"FOG\");\n }\n if (defines.POINTSIZE) {\n fallbacks.addFallback(0, \"POINTSIZE\");\n }\n if (defines.LOGARITHMICDEPTH) {\n fallbacks.addFallback(0, \"LOGARITHMICDEPTH\");\n }\n HandleFallbacksForShadows(defines, fallbacks, this._maxSimultaneousLights);\n if (defines.SPECULARTERM) {\n fallbacks.addFallback(0, \"SPECULARTERM\");\n }\n if (defines.DIFFUSEFRESNEL) {\n fallbacks.addFallback(1, \"DIFFUSEFRESNEL\");\n }\n if (defines.OPACITYFRESNEL) {\n fallbacks.addFallback(2, \"OPACITYFRESNEL\");\n }\n if (defines.REFLECTIONFRESNEL) {\n fallbacks.addFallback(3, \"REFLECTIONFRESNEL\");\n }\n if (defines.EMISSIVEFRESNEL) {\n fallbacks.addFallback(4, \"EMISSIVEFRESNEL\");\n }\n if (defines.FRESNEL) {\n fallbacks.addFallback(4, \"FRESNEL\");\n }\n if (defines.MULTIVIEW) {\n fallbacks.addFallback(0, \"MULTIVIEW\");\n }\n //Attributes\n const attribs = [VertexBuffer.PositionKind];\n if (defines.NORMAL) {\n attribs.push(VertexBuffer.NormalKind);\n }\n if (defines.TANGENT) {\n attribs.push(VertexBuffer.TangentKind);\n }\n for (let i = 1; i <= Constants.MAX_SUPPORTED_UV_SETS; ++i) {\n if (defines[\"UV\" + i]) {\n attribs.push(`uv${i === 1 ? \"\" : i}`);\n }\n }\n if (defines.VERTEXCOLOR) {\n attribs.push(VertexBuffer.ColorKind);\n }\n PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\n PrepareAttributesForInstances(attribs, defines);\n PrepareAttributesForMorphTargets(attribs, mesh, defines);\n PrepareAttributesForBakedVertexAnimation(attribs, mesh, defines);\n let shaderName = \"default\";\n const uniforms = [\n \"world\",\n \"view\",\n \"viewProjection\",\n \"vEyePosition\",\n \"vLightsType\",\n \"vAmbientColor\",\n \"vDiffuseColor\",\n \"vSpecularColor\",\n \"vEmissiveColor\",\n \"visibility\",\n \"vFogInfos\",\n \"vFogColor\",\n \"pointSize\",\n \"vDiffuseInfos\",\n \"vAmbientInfos\",\n \"vOpacityInfos\",\n \"vReflectionInfos\",\n \"vEmissiveInfos\",\n \"vSpecularInfos\",\n \"vBumpInfos\",\n \"vLightmapInfos\",\n \"vRefractionInfos\",\n \"mBones\",\n \"diffuseMatrix\",\n \"ambientMatrix\",\n \"opacityMatrix\",\n \"reflectionMatrix\",\n \"emissiveMatrix\",\n \"specularMatrix\",\n \"bumpMatrix\",\n \"normalMatrix\",\n \"lightmapMatrix\",\n \"refractionMatrix\",\n \"diffuseLeftColor\",\n \"diffuseRightColor\",\n \"opacityParts\",\n \"reflectionLeftColor\",\n \"reflectionRightColor\",\n \"emissiveLeftColor\",\n \"emissiveRightColor\",\n \"refractionLeftColor\",\n \"refractionRightColor\",\n \"vReflectionPosition\",\n \"vReflectionSize\",\n \"vRefractionPosition\",\n \"vRefractionSize\",\n \"logarithmicDepthConstant\",\n \"vTangentSpaceParams\",\n \"alphaCutOff\",\n \"boneTextureWidth\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\",\n ];\n const samplers = [\n \"diffuseSampler\",\n \"ambientSampler\",\n \"opacitySampler\",\n \"reflectionCubeSampler\",\n \"reflection2DSampler\",\n \"emissiveSampler\",\n \"specularSampler\",\n \"bumpSampler\",\n \"lightmapSampler\",\n \"refractionCubeSampler\",\n \"refraction2DSampler\",\n \"boneSampler\",\n \"morphTargets\",\n \"oitDepthSampler\",\n \"oitFrontColorSampler\",\n ];\n const uniformBuffers = [\"Material\", \"Scene\", \"Mesh\"];\n const indexParameters = { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: defines.NUM_MORPH_INFLUENCERS };\n this._eventInfo.fallbacks = fallbacks;\n this._eventInfo.fallbackRank = 0;\n this._eventInfo.defines = defines;\n this._eventInfo.uniforms = uniforms;\n this._eventInfo.attributes = attribs;\n this._eventInfo.samplers = samplers;\n this._eventInfo.uniformBuffersNames = uniformBuffers;\n this._eventInfo.customCode = undefined;\n this._eventInfo.mesh = mesh;\n this._eventInfo.indexParameters = indexParameters;\n this._callbackPluginEventGeneric(128 /* MaterialPluginEvent.PrepareEffect */, this._eventInfo);\n MaterialHelperGeometryRendering.AddUniformsAndSamplers(uniforms, samplers);\n PrePassConfiguration.AddUniforms(uniforms);\n PrePassConfiguration.AddSamplers(samplers);\n if (ImageProcessingConfiguration) {\n ImageProcessingConfiguration.PrepareUniforms(uniforms, defines);\n ImageProcessingConfiguration.PrepareSamplers(samplers, defines);\n }\n PrepareUniformsAndSamplersList({\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: defines,\n maxSimultaneousLights: this._maxSimultaneousLights,\n });\n addClipPlaneUniforms(uniforms);\n const csnrOptions = {};\n if (this.customShaderNameResolve) {\n shaderName = this.customShaderNameResolve(shaderName, uniforms, uniformBuffers, samplers, defines, attribs, csnrOptions);\n }\n const join = defines.toString();\n const previousEffect = subMesh.effect;\n let effect = scene.getEngine().createEffect(shaderName, {\n attributes: attribs,\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: join,\n fallbacks: fallbacks,\n onCompiled: this.onCompiled,\n onError: this.onError,\n indexParameters,\n processFinalCode: csnrOptions.processFinalCode,\n processCodeAfterIncludes: this._eventInfo.customCode,\n multiTarget: defines.PREPASS,\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: this._shadersLoaded\n ? undefined\n : async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../ShadersWGSL/default.vertex\"), import(\"../ShadersWGSL/default.fragment\")]);\n }\n else {\n await Promise.all([import(\"../Shaders/default.vertex\"), import(\"../Shaders/default.fragment\")]);\n }\n this._shadersLoaded = true;\n },\n }, engine);\n this._eventInfo.customCode = undefined;\n if (effect) {\n if (this._onEffectCreatedObservable) {\n onCreatedEffectParameters.effect = effect;\n onCreatedEffectParameters.subMesh = subMesh;\n this._onEffectCreatedObservable.notifyObservers(onCreatedEffectParameters);\n }\n // Use previous effect while new one is compiling\n if (this.allowShaderHotSwapping && previousEffect && !effect.isReady()) {\n effect = previousEffect;\n defines.markAsUnprocessed();\n forceWasNotReadyPreviously = this.isFrozen;\n if (lightDisposed) {\n // re register in case it takes more than one frame.\n defines._areLightsDisposed = true;\n return false;\n }\n }\n else {\n scene.resetCachedMaterial();\n subMesh.setEffect(effect, defines, this._materialContext);\n }\n }\n }\n if (!subMesh.effect || !subMesh.effect.isReady()) {\n return false;\n }\n defines._renderId = scene.getRenderId();\n drawWrapper._wasPreviouslyReady = forceWasNotReadyPreviously ? false : true;\n drawWrapper._wasPreviouslyUsingInstances = useInstances;\n this._checkScenePerformancePriority();\n return true;\n }\n /**\n * Builds the material UBO layouts.\n * Used internally during the effect preparation.\n */\n buildUniformLayout() {\n // Order is important !\n const ubo = this._uniformBuffer;\n ubo.addUniform(\"diffuseLeftColor\", 4);\n ubo.addUniform(\"diffuseRightColor\", 4);\n ubo.addUniform(\"opacityParts\", 4);\n ubo.addUniform(\"reflectionLeftColor\", 4);\n ubo.addUniform(\"reflectionRightColor\", 4);\n ubo.addUniform(\"refractionLeftColor\", 4);\n ubo.addUniform(\"refractionRightColor\", 4);\n ubo.addUniform(\"emissiveLeftColor\", 4);\n ubo.addUniform(\"emissiveRightColor\", 4);\n ubo.addUniform(\"vDiffuseInfos\", 2);\n ubo.addUniform(\"vAmbientInfos\", 2);\n ubo.addUniform(\"vOpacityInfos\", 2);\n ubo.addUniform(\"vReflectionInfos\", 2);\n ubo.addUniform(\"vReflectionPosition\", 3);\n ubo.addUniform(\"vReflectionSize\", 3);\n ubo.addUniform(\"vEmissiveInfos\", 2);\n ubo.addUniform(\"vLightmapInfos\", 2);\n ubo.addUniform(\"vSpecularInfos\", 2);\n ubo.addUniform(\"vBumpInfos\", 3);\n ubo.addUniform(\"diffuseMatrix\", 16);\n ubo.addUniform(\"ambientMatrix\", 16);\n ubo.addUniform(\"opacityMatrix\", 16);\n ubo.addUniform(\"reflectionMatrix\", 16);\n ubo.addUniform(\"emissiveMatrix\", 16);\n ubo.addUniform(\"lightmapMatrix\", 16);\n ubo.addUniform(\"specularMatrix\", 16);\n ubo.addUniform(\"bumpMatrix\", 16);\n ubo.addUniform(\"vTangentSpaceParams\", 2);\n ubo.addUniform(\"pointSize\", 1);\n ubo.addUniform(\"alphaCutOff\", 1);\n ubo.addUniform(\"refractionMatrix\", 16);\n ubo.addUniform(\"vRefractionInfos\", 4);\n ubo.addUniform(\"vRefractionPosition\", 3);\n ubo.addUniform(\"vRefractionSize\", 3);\n ubo.addUniform(\"vSpecularColor\", 4);\n ubo.addUniform(\"vEmissiveColor\", 3);\n ubo.addUniform(\"vDiffuseColor\", 4);\n ubo.addUniform(\"vAmbientColor\", 3);\n super.buildUniformLayout();\n }\n /**\n * Binds the submesh to this material by preparing the effect and shader to draw\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh containing the submesh\n * @param subMesh defines the submesh to bind the material to\n */\n bindForSubMesh(world, mesh, subMesh) {\n const scene = this.getScene();\n const defines = subMesh.materialDefines;\n if (!defines) {\n return;\n }\n const effect = subMesh.effect;\n if (!effect) {\n return;\n }\n this._activeEffect = effect;\n // Matrices Mesh.\n mesh.getMeshUniformBuffer().bindToEffect(effect, \"Mesh\");\n mesh.transferToEffect(world);\n // Binding unconditionally\n this._uniformBuffer.bindToEffect(effect, \"Material\");\n this.prePassConfiguration.bindForSubMesh(this._activeEffect, scene, mesh, world, this.isFrozen);\n MaterialHelperGeometryRendering.Bind(scene.getEngine().currentRenderPassId, this._activeEffect, mesh, world);\n this._eventInfo.subMesh = subMesh;\n this._callbackPluginEventHardBindForSubMesh(this._eventInfo);\n // Normal Matrix\n if (defines.OBJECTSPACE_NORMALMAP) {\n world.toNormalMatrix(this._normalMatrix);\n this.bindOnlyNormalMatrix(this._normalMatrix);\n }\n const mustRebind = this._mustRebind(scene, effect, subMesh, mesh.visibility);\n // Bones\n BindBonesParameters(mesh, effect);\n const ubo = this._uniformBuffer;\n if (mustRebind) {\n this.bindViewProjection(effect);\n if (!ubo.useUbo || !this.isFrozen || !ubo.isSync || subMesh._drawWrapper._forceRebindOnNextCall) {\n if (StandardMaterial.FresnelEnabled && defines.FRESNEL) {\n // Fresnel\n if (this.diffuseFresnelParameters && this.diffuseFresnelParameters.isEnabled) {\n ubo.updateColor4(\"diffuseLeftColor\", this.diffuseFresnelParameters.leftColor, this.diffuseFresnelParameters.power);\n ubo.updateColor4(\"diffuseRightColor\", this.diffuseFresnelParameters.rightColor, this.diffuseFresnelParameters.bias);\n }\n if (this.opacityFresnelParameters && this.opacityFresnelParameters.isEnabled) {\n ubo.updateColor4(\"opacityParts\", new Color3(this.opacityFresnelParameters.leftColor.toLuminance(), this.opacityFresnelParameters.rightColor.toLuminance(), this.opacityFresnelParameters.bias), this.opacityFresnelParameters.power);\n }\n if (this.reflectionFresnelParameters && this.reflectionFresnelParameters.isEnabled) {\n ubo.updateColor4(\"reflectionLeftColor\", this.reflectionFresnelParameters.leftColor, this.reflectionFresnelParameters.power);\n ubo.updateColor4(\"reflectionRightColor\", this.reflectionFresnelParameters.rightColor, this.reflectionFresnelParameters.bias);\n }\n if (this.refractionFresnelParameters && this.refractionFresnelParameters.isEnabled) {\n ubo.updateColor4(\"refractionLeftColor\", this.refractionFresnelParameters.leftColor, this.refractionFresnelParameters.power);\n ubo.updateColor4(\"refractionRightColor\", this.refractionFresnelParameters.rightColor, this.refractionFresnelParameters.bias);\n }\n if (this.emissiveFresnelParameters && this.emissiveFresnelParameters.isEnabled) {\n ubo.updateColor4(\"emissiveLeftColor\", this.emissiveFresnelParameters.leftColor, this.emissiveFresnelParameters.power);\n ubo.updateColor4(\"emissiveRightColor\", this.emissiveFresnelParameters.rightColor, this.emissiveFresnelParameters.bias);\n }\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._diffuseTexture && StandardMaterial.DiffuseTextureEnabled) {\n ubo.updateFloat2(\"vDiffuseInfos\", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level);\n BindTextureMatrix(this._diffuseTexture, ubo, \"diffuse\");\n }\n if (this._ambientTexture && StandardMaterial.AmbientTextureEnabled) {\n ubo.updateFloat2(\"vAmbientInfos\", this._ambientTexture.coordinatesIndex, this._ambientTexture.level);\n BindTextureMatrix(this._ambientTexture, ubo, \"ambient\");\n }\n if (this._opacityTexture && StandardMaterial.OpacityTextureEnabled) {\n ubo.updateFloat2(\"vOpacityInfos\", this._opacityTexture.coordinatesIndex, this._opacityTexture.level);\n BindTextureMatrix(this._opacityTexture, ubo, \"opacity\");\n }\n if (this._hasAlphaChannel()) {\n ubo.updateFloat(\"alphaCutOff\", this.alphaCutOff);\n }\n if (this._reflectionTexture && StandardMaterial.ReflectionTextureEnabled) {\n ubo.updateFloat2(\"vReflectionInfos\", this._reflectionTexture.level, this.roughness);\n ubo.updateMatrix(\"reflectionMatrix\", this._reflectionTexture.getReflectionTextureMatrix());\n if (this._reflectionTexture.boundingBoxSize) {\n const cubeTexture = this._reflectionTexture;\n ubo.updateVector3(\"vReflectionPosition\", cubeTexture.boundingBoxPosition);\n ubo.updateVector3(\"vReflectionSize\", cubeTexture.boundingBoxSize);\n }\n }\n if (this._emissiveTexture && StandardMaterial.EmissiveTextureEnabled) {\n ubo.updateFloat2(\"vEmissiveInfos\", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level);\n BindTextureMatrix(this._emissiveTexture, ubo, \"emissive\");\n }\n if (this._lightmapTexture && StandardMaterial.LightmapTextureEnabled) {\n ubo.updateFloat2(\"vLightmapInfos\", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level);\n BindTextureMatrix(this._lightmapTexture, ubo, \"lightmap\");\n }\n if (this._specularTexture && StandardMaterial.SpecularTextureEnabled) {\n ubo.updateFloat2(\"vSpecularInfos\", this._specularTexture.coordinatesIndex, this._specularTexture.level);\n BindTextureMatrix(this._specularTexture, ubo, \"specular\");\n }\n if (this._bumpTexture && scene.getEngine().getCaps().standardDerivatives && StandardMaterial.BumpTextureEnabled) {\n ubo.updateFloat3(\"vBumpInfos\", this._bumpTexture.coordinatesIndex, 1.0 / this._bumpTexture.level, this.parallaxScaleBias);\n BindTextureMatrix(this._bumpTexture, ubo, \"bump\");\n if (scene._mirroredCameraPosition) {\n ubo.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? 1.0 : -1.0, this._invertNormalMapY ? 1.0 : -1.0);\n }\n else {\n ubo.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? -1.0 : 1.0, this._invertNormalMapY ? -1.0 : 1.0);\n }\n }\n if (this._refractionTexture && StandardMaterial.RefractionTextureEnabled) {\n let depth = 1.0;\n if (!this._refractionTexture.isCube) {\n ubo.updateMatrix(\"refractionMatrix\", this._refractionTexture.getReflectionTextureMatrix());\n if (this._refractionTexture.depth) {\n depth = this._refractionTexture.depth;\n }\n }\n ubo.updateFloat4(\"vRefractionInfos\", this._refractionTexture.level, this.indexOfRefraction, depth, this.invertRefractionY ? -1 : 1);\n if (this._refractionTexture.boundingBoxSize) {\n const cubeTexture = this._refractionTexture;\n ubo.updateVector3(\"vRefractionPosition\", cubeTexture.boundingBoxPosition);\n ubo.updateVector3(\"vRefractionSize\", cubeTexture.boundingBoxSize);\n }\n }\n }\n // Point size\n if (this.pointsCloud) {\n ubo.updateFloat(\"pointSize\", this.pointSize);\n }\n ubo.updateColor4(\"vSpecularColor\", this.specularColor, this.specularPower);\n ubo.updateColor3(\"vEmissiveColor\", StandardMaterial.EmissiveTextureEnabled ? this.emissiveColor : Color3.BlackReadOnly);\n ubo.updateColor4(\"vDiffuseColor\", this.diffuseColor, this.alpha);\n scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);\n ubo.updateColor3(\"vAmbientColor\", this._globalAmbientColor);\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._diffuseTexture && StandardMaterial.DiffuseTextureEnabled) {\n effect.setTexture(\"diffuseSampler\", this._diffuseTexture);\n }\n if (this._ambientTexture && StandardMaterial.AmbientTextureEnabled) {\n effect.setTexture(\"ambientSampler\", this._ambientTexture);\n }\n if (this._opacityTexture && StandardMaterial.OpacityTextureEnabled) {\n effect.setTexture(\"opacitySampler\", this._opacityTexture);\n }\n if (this._reflectionTexture && StandardMaterial.ReflectionTextureEnabled) {\n if (this._reflectionTexture.isCube) {\n effect.setTexture(\"reflectionCubeSampler\", this._reflectionTexture);\n }\n else {\n effect.setTexture(\"reflection2DSampler\", this._reflectionTexture);\n }\n }\n if (this._emissiveTexture && StandardMaterial.EmissiveTextureEnabled) {\n effect.setTexture(\"emissiveSampler\", this._emissiveTexture);\n }\n if (this._lightmapTexture && StandardMaterial.LightmapTextureEnabled) {\n effect.setTexture(\"lightmapSampler\", this._lightmapTexture);\n }\n if (this._specularTexture && StandardMaterial.SpecularTextureEnabled) {\n effect.setTexture(\"specularSampler\", this._specularTexture);\n }\n if (this._bumpTexture && scene.getEngine().getCaps().standardDerivatives && StandardMaterial.BumpTextureEnabled) {\n effect.setTexture(\"bumpSampler\", this._bumpTexture);\n }\n if (this._refractionTexture && StandardMaterial.RefractionTextureEnabled) {\n if (this._refractionTexture.isCube) {\n effect.setTexture(\"refractionCubeSampler\", this._refractionTexture);\n }\n else {\n effect.setTexture(\"refraction2DSampler\", this._refractionTexture);\n }\n }\n }\n // OIT with depth peeling\n if (this.getScene().useOrderIndependentTransparency && this.needAlphaBlendingForMesh(mesh)) {\n this.getScene().depthPeelingRenderer.bind(effect);\n }\n this._eventInfo.subMesh = subMesh;\n this._callbackPluginEventBindForSubMesh(this._eventInfo);\n // Clip plane\n bindClipPlane(effect, this, scene);\n // Colors\n this.bindEyePosition(effect);\n }\n else if (scene.getEngine()._features.needToAlwaysBindUniformBuffers) {\n this._needToBindSceneUbo = true;\n }\n if (mustRebind || !this.isFrozen) {\n // Lights\n if (scene.lightsEnabled && !this._disableLighting) {\n BindLights(scene, mesh, effect, defines, this._maxSimultaneousLights);\n }\n // View\n if ((scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) ||\n this._reflectionTexture ||\n this._refractionTexture ||\n mesh.receiveShadows ||\n defines.PREPASS) {\n this.bindView(effect);\n }\n // Fog\n BindFogParameters(scene, mesh, effect);\n // Morph targets\n if (defines.NUM_MORPH_INFLUENCERS) {\n BindMorphTargetParameters(mesh, effect);\n }\n if (defines.BAKED_VERTEX_ANIMATION_TEXTURE) {\n mesh.bakedVertexAnimationManager?.bind(effect, defines.INSTANCES);\n }\n // Log. depth\n if (this.useLogarithmicDepth) {\n BindLogDepth(defines, effect, scene);\n }\n // image processing\n if (this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess) {\n this._imageProcessingConfiguration.bind(this._activeEffect);\n }\n }\n this._afterBind(mesh, this._activeEffect, subMesh);\n ubo.update();\n }\n /**\n * Get the list of animatables in the material.\n * @returns the list of animatables object used in the material\n */\n getAnimatables() {\n const results = super.getAnimatables();\n if (this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0) {\n results.push(this._diffuseTexture);\n }\n if (this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0) {\n results.push(this._ambientTexture);\n }\n if (this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0) {\n results.push(this._opacityTexture);\n }\n if (this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0) {\n results.push(this._reflectionTexture);\n }\n if (this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0) {\n results.push(this._emissiveTexture);\n }\n if (this._specularTexture && this._specularTexture.animations && this._specularTexture.animations.length > 0) {\n results.push(this._specularTexture);\n }\n if (this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0) {\n results.push(this._bumpTexture);\n }\n if (this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0) {\n results.push(this._lightmapTexture);\n }\n if (this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0) {\n results.push(this._refractionTexture);\n }\n return results;\n }\n /**\n * Gets the active textures from the material\n * @returns an array of textures\n */\n getActiveTextures() {\n const activeTextures = super.getActiveTextures();\n if (this._diffuseTexture) {\n activeTextures.push(this._diffuseTexture);\n }\n if (this._ambientTexture) {\n activeTextures.push(this._ambientTexture);\n }\n if (this._opacityTexture) {\n activeTextures.push(this._opacityTexture);\n }\n if (this._reflectionTexture) {\n activeTextures.push(this._reflectionTexture);\n }\n if (this._emissiveTexture) {\n activeTextures.push(this._emissiveTexture);\n }\n if (this._specularTexture) {\n activeTextures.push(this._specularTexture);\n }\n if (this._bumpTexture) {\n activeTextures.push(this._bumpTexture);\n }\n if (this._lightmapTexture) {\n activeTextures.push(this._lightmapTexture);\n }\n if (this._refractionTexture) {\n activeTextures.push(this._refractionTexture);\n }\n return activeTextures;\n }\n /**\n * Specifies if the material uses a texture\n * @param texture defines the texture to check against the material\n * @returns a boolean specifying if the material uses the texture\n */\n hasTexture(texture) {\n if (super.hasTexture(texture)) {\n return true;\n }\n if (this._diffuseTexture === texture) {\n return true;\n }\n if (this._ambientTexture === texture) {\n return true;\n }\n if (this._opacityTexture === texture) {\n return true;\n }\n if (this._reflectionTexture === texture) {\n return true;\n }\n if (this._emissiveTexture === texture) {\n return true;\n }\n if (this._specularTexture === texture) {\n return true;\n }\n if (this._bumpTexture === texture) {\n return true;\n }\n if (this._lightmapTexture === texture) {\n return true;\n }\n if (this._refractionTexture === texture) {\n return true;\n }\n return false;\n }\n /**\n * Disposes the material\n * @param forceDisposeEffect specifies if effects should be forcefully disposed\n * @param forceDisposeTextures specifies if textures should be forcefully disposed\n */\n dispose(forceDisposeEffect, forceDisposeTextures) {\n if (forceDisposeTextures) {\n this._diffuseTexture?.dispose();\n this._ambientTexture?.dispose();\n this._opacityTexture?.dispose();\n this._reflectionTexture?.dispose();\n this._emissiveTexture?.dispose();\n this._specularTexture?.dispose();\n this._bumpTexture?.dispose();\n this._lightmapTexture?.dispose();\n this._refractionTexture?.dispose();\n }\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\n }\n super.dispose(forceDisposeEffect, forceDisposeTextures);\n }\n /**\n * Makes a duplicate of the material, and gives it a new name\n * @param name defines the new name for the duplicated material\n * @param cloneTexturesOnlyOnce - if a texture is used in more than one channel (e.g diffuse and opacity), only clone it once and reuse it on the other channels. Default false.\n * @param rootUrl defines the root URL to use to load textures\n * @returns the cloned material\n */\n clone(name, cloneTexturesOnlyOnce = true, rootUrl = \"\") {\n const result = SerializationHelper.Clone(() => new StandardMaterial(name, this.getScene()), this, { cloneTexturesOnlyOnce });\n result.name = name;\n result.id = name;\n this.stencil.copyTo(result.stencil);\n this._clonePlugins(result, rootUrl);\n return result;\n }\n /**\n * Creates a standard material from parsed material data\n * @param source defines the JSON representation of the material\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a new standard material\n */\n static Parse(source, scene, rootUrl) {\n const material = SerializationHelper.Parse(() => new StandardMaterial(source.name, scene), source, scene, rootUrl);\n if (source.stencil) {\n material.stencil.parse(source.stencil, scene, rootUrl);\n }\n Material._ParsePlugins(source, material, scene, rootUrl);\n return material;\n }\n // Flags used to enable or disable a type of texture for all Standard Materials\n /**\n * Are diffuse textures enabled in the application.\n */\n static get DiffuseTextureEnabled() {\n return MaterialFlags.DiffuseTextureEnabled;\n }\n static set DiffuseTextureEnabled(value) {\n MaterialFlags.DiffuseTextureEnabled = value;\n }\n /**\n * Are detail textures enabled in the application.\n */\n static get DetailTextureEnabled() {\n return MaterialFlags.DetailTextureEnabled;\n }\n static set DetailTextureEnabled(value) {\n MaterialFlags.DetailTextureEnabled = value;\n }\n /**\n * Are ambient textures enabled in the application.\n */\n static get AmbientTextureEnabled() {\n return MaterialFlags.AmbientTextureEnabled;\n }\n static set AmbientTextureEnabled(value) {\n MaterialFlags.AmbientTextureEnabled = value;\n }\n /**\n * Are opacity textures enabled in the application.\n */\n static get OpacityTextureEnabled() {\n return MaterialFlags.OpacityTextureEnabled;\n }\n static set OpacityTextureEnabled(value) {\n MaterialFlags.OpacityTextureEnabled = value;\n }\n /**\n * Are reflection textures enabled in the application.\n */\n static get ReflectionTextureEnabled() {\n return MaterialFlags.ReflectionTextureEnabled;\n }\n static set ReflectionTextureEnabled(value) {\n MaterialFlags.ReflectionTextureEnabled = value;\n }\n /**\n * Are emissive textures enabled in the application.\n */\n static get EmissiveTextureEnabled() {\n return MaterialFlags.EmissiveTextureEnabled;\n }\n static set EmissiveTextureEnabled(value) {\n MaterialFlags.EmissiveTextureEnabled = value;\n }\n /**\n * Are specular textures enabled in the application.\n */\n static get SpecularTextureEnabled() {\n return MaterialFlags.SpecularTextureEnabled;\n }\n static set SpecularTextureEnabled(value) {\n MaterialFlags.SpecularTextureEnabled = value;\n }\n /**\n * Are bump textures enabled in the application.\n */\n static get BumpTextureEnabled() {\n return MaterialFlags.BumpTextureEnabled;\n }\n static set BumpTextureEnabled(value) {\n MaterialFlags.BumpTextureEnabled = value;\n }\n /**\n * Are lightmap textures enabled in the application.\n */\n static get LightmapTextureEnabled() {\n return MaterialFlags.LightmapTextureEnabled;\n }\n static set LightmapTextureEnabled(value) {\n MaterialFlags.LightmapTextureEnabled = value;\n }\n /**\n * Are refraction textures enabled in the application.\n */\n static get RefractionTextureEnabled() {\n return MaterialFlags.RefractionTextureEnabled;\n }\n static set RefractionTextureEnabled(value) {\n MaterialFlags.RefractionTextureEnabled = value;\n }\n /**\n * Are color grading textures enabled in the application.\n */\n static get ColorGradingTextureEnabled() {\n return MaterialFlags.ColorGradingTextureEnabled;\n }\n static set ColorGradingTextureEnabled(value) {\n MaterialFlags.ColorGradingTextureEnabled = value;\n }\n /**\n * Are fresnels enabled in the application.\n */\n static get FresnelEnabled() {\n return MaterialFlags.FresnelEnabled;\n }\n static set FresnelEnabled(value) {\n MaterialFlags.FresnelEnabled = value;\n }\n}\n/**\n * Force all the standard materials to compile to glsl even on WebGPU engines.\n * False by default. This is mostly meant for backward compatibility.\n */\nStandardMaterial.ForceGLSL = false;\n__decorate([\n serializeAsTexture(\"diffuseTexture\")\n], StandardMaterial.prototype, \"_diffuseTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], StandardMaterial.prototype, \"diffuseTexture\", void 0);\n__decorate([\n serializeAsTexture(\"ambientTexture\")\n], StandardMaterial.prototype, \"_ambientTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"ambientTexture\", void 0);\n__decorate([\n serializeAsTexture(\"opacityTexture\")\n], StandardMaterial.prototype, \"_opacityTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], StandardMaterial.prototype, \"opacityTexture\", void 0);\n__decorate([\n serializeAsTexture(\"reflectionTexture\")\n], StandardMaterial.prototype, \"_reflectionTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"reflectionTexture\", void 0);\n__decorate([\n serializeAsTexture(\"emissiveTexture\")\n], StandardMaterial.prototype, \"_emissiveTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"emissiveTexture\", void 0);\n__decorate([\n serializeAsTexture(\"specularTexture\")\n], StandardMaterial.prototype, \"_specularTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"specularTexture\", void 0);\n__decorate([\n serializeAsTexture(\"bumpTexture\")\n], StandardMaterial.prototype, \"_bumpTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"bumpTexture\", void 0);\n__decorate([\n serializeAsTexture(\"lightmapTexture\")\n], StandardMaterial.prototype, \"_lightmapTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"lightmapTexture\", void 0);\n__decorate([\n serializeAsTexture(\"refractionTexture\")\n], StandardMaterial.prototype, \"_refractionTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"refractionTexture\", void 0);\n__decorate([\n serializeAsColor3(\"ambient\")\n], StandardMaterial.prototype, \"ambientColor\", void 0);\n__decorate([\n serializeAsColor3(\"diffuse\")\n], StandardMaterial.prototype, \"diffuseColor\", void 0);\n__decorate([\n serializeAsColor3(\"specular\")\n], StandardMaterial.prototype, \"specularColor\", void 0);\n__decorate([\n serializeAsColor3(\"emissive\")\n], StandardMaterial.prototype, \"emissiveColor\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"specularPower\", void 0);\n__decorate([\n serialize(\"useAlphaFromDiffuseTexture\")\n], StandardMaterial.prototype, \"_useAlphaFromDiffuseTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], StandardMaterial.prototype, \"useAlphaFromDiffuseTexture\", void 0);\n__decorate([\n serialize(\"useEmissiveAsIllumination\")\n], StandardMaterial.prototype, \"_useEmissiveAsIllumination\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useEmissiveAsIllumination\", void 0);\n__decorate([\n serialize(\"linkEmissiveWithDiffuse\")\n], StandardMaterial.prototype, \"_linkEmissiveWithDiffuse\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"linkEmissiveWithDiffuse\", void 0);\n__decorate([\n serialize(\"useSpecularOverAlpha\")\n], StandardMaterial.prototype, \"_useSpecularOverAlpha\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useSpecularOverAlpha\", void 0);\n__decorate([\n serialize(\"useReflectionOverAlpha\")\n], StandardMaterial.prototype, \"_useReflectionOverAlpha\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useReflectionOverAlpha\", void 0);\n__decorate([\n serialize(\"disableLighting\")\n], StandardMaterial.prototype, \"_disableLighting\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n], StandardMaterial.prototype, \"disableLighting\", void 0);\n__decorate([\n serialize(\"useObjectSpaceNormalMap\")\n], StandardMaterial.prototype, \"_useObjectSpaceNormalMap\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useObjectSpaceNormalMap\", void 0);\n__decorate([\n serialize(\"useParallax\")\n], StandardMaterial.prototype, \"_useParallax\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useParallax\", void 0);\n__decorate([\n serialize(\"useParallaxOcclusion\")\n], StandardMaterial.prototype, \"_useParallaxOcclusion\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useParallaxOcclusion\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"parallaxScaleBias\", void 0);\n__decorate([\n serialize(\"roughness\")\n], StandardMaterial.prototype, \"_roughness\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"roughness\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"indexOfRefraction\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"invertRefractionY\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"alphaCutOff\", void 0);\n__decorate([\n serialize(\"useLightmapAsShadowmap\")\n], StandardMaterial.prototype, \"_useLightmapAsShadowmap\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useLightmapAsShadowmap\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"diffuseFresnelParameters\")\n], StandardMaterial.prototype, \"_diffuseFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"diffuseFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"opacityFresnelParameters\")\n], StandardMaterial.prototype, \"_opacityFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelAndMiscDirty\")\n], StandardMaterial.prototype, \"opacityFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"reflectionFresnelParameters\")\n], StandardMaterial.prototype, \"_reflectionFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"reflectionFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"refractionFresnelParameters\")\n], StandardMaterial.prototype, \"_refractionFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"refractionFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"emissiveFresnelParameters\")\n], StandardMaterial.prototype, \"_emissiveFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"emissiveFresnelParameters\", void 0);\n__decorate([\n serialize(\"useReflectionFresnelFromSpecular\")\n], StandardMaterial.prototype, \"_useReflectionFresnelFromSpecular\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"useReflectionFresnelFromSpecular\", void 0);\n__decorate([\n serialize(\"useGlossinessFromSpecularMapAlpha\")\n], StandardMaterial.prototype, \"_useGlossinessFromSpecularMapAlpha\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useGlossinessFromSpecularMapAlpha\", void 0);\n__decorate([\n serialize(\"maxSimultaneousLights\")\n], StandardMaterial.prototype, \"_maxSimultaneousLights\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n], StandardMaterial.prototype, \"maxSimultaneousLights\", void 0);\n__decorate([\n serialize(\"invertNormalMapX\")\n], StandardMaterial.prototype, \"_invertNormalMapX\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"invertNormalMapX\", void 0);\n__decorate([\n serialize(\"invertNormalMapY\")\n], StandardMaterial.prototype, \"_invertNormalMapY\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"invertNormalMapY\", void 0);\n__decorate([\n serialize(\"twoSidedLighting\")\n], StandardMaterial.prototype, \"_twoSidedLighting\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"twoSidedLighting\", void 0);\n__decorate([\n serialize(\"applyDecalMapAfterDetailMap\")\n], StandardMaterial.prototype, \"_applyDecalMapAfterDetailMap\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\n], StandardMaterial.prototype, \"applyDecalMapAfterDetailMap\", void 0);\nRegisterClass(\"BABYLON.StandardMaterial\", StandardMaterial);\nScene.DefaultMaterialFactory = (scene) => {\n return new StandardMaterial(\"default material\", scene);\n};\n//# sourceMappingURL=standardMaterial.js.map"],"names":["onCreatedEffectParameters","effect","subMesh","StandardMaterialDefines","MaterialDefines","constructor","externalProperties","super","this","MAINUV1","MAINUV2","MAINUV3","MAINUV4","MAINUV5","MAINUV6","DIFFUSE","DIFFUSEDIRECTUV","BAKED_VERTEX_ANIMATION_TEXTURE","AMBIENT","AMBIENTDIRECTUV","OPACITY","OPACITYDIRECTUV","OPACITYRGB","REFLECTION","EMISSIVE","EMISSIVEDIRECTUV","SPECULAR","SPECULARDIRECTUV","BUMP","BUMPDIRECTUV","PARALLAX","PARALLAX_RHS","PARALLAXOCCLUSION","SPECULAROVERALPHA","CLIPPLANE","CLIPPLANE2","CLIPPLANE3","CLIPPLANE4","CLIPPLANE5","CLIPPLANE6","ALPHATEST","DEPTHPREPASS","ALPHAFROMDIFFUSE","POINTSIZE","FOG","SPECULARTERM","DIFFUSEFRESNEL","OPACITYFRESNEL","REFLECTIONFRESNEL","REFRACTIONFRESNEL","EMISSIVEFRESNEL","FRESNEL","NORMAL","TANGENT","UV1","UV2","UV3","UV4","UV5","UV6","VERTEXCOLOR","VERTEXALPHA","NUM_BONE_INFLUENCERS","BonesPerMesh","BONETEXTURE","BONES_VELOCITY_ENABLED","INSTANCES","THIN_INSTANCES","INSTANCESCOLOR","GLOSSINESS","ROUGHNESS","EMISSIVEASILLUMINATION","LINKEMISSIVEWITHDIFFUSE","REFLECTIONFRESNELFROMSPECULAR","LIGHTMAP","LIGHTMAPDIRECTUV","OBJECTSPACE_NORMALMAP","USELIGHTMAPASSHADOWMAP","REFLECTIONMAP_3D","REFLECTIONMAP_SPHERICAL","REFLECTIONMAP_PLANAR","REFLECTIONMAP_CUBIC","USE_LOCAL_REFLECTIONMAP_CUBIC","USE_LOCAL_REFRACTIONMAP_CUBIC","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_SKYBOX","REFLECTIONMAP_EXPLICIT","REFLECTIONMAP_EQUIRECTANGULAR","REFLECTIONMAP_EQUIRECTANGULAR_FIXED","REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED","REFLECTIONMAP_OPPOSITEZ","INVERTCUBICMAP","LOGARITHMICDEPTH","REFRACTION","REFRACTIONMAP_3D","REFLECTIONOVERALPHA","TWOSIDEDLIGHTING","SHADOWFLOAT","MORPHTARGETS","MORPHTARGETS_POSITION","MORPHTARGETS_NORMAL","MORPHTARGETS_TANGENT","MORPHTARGETS_UV","MORPHTARGETS_UV2","MORPHTARGETTEXTURE_HASPOSITIONS","MORPHTARGETTEXTURE_HASNORMALS","MORPHTARGETTEXTURE_HASTANGENTS","MORPHTARGETTEXTURE_HASUVS","MORPHTARGETTEXTURE_HASUV2S","NUM_MORPH_INFLUENCERS","MORPHTARGETS_TEXTURE","NONUNIFORMSCALING","PREMULTIPLYALPHA","ALPHATEST_AFTERALLALPHACOMPUTATIONS","ALPHABLEND","PREPASS","PREPASS_COLOR","PREPASS_COLOR_INDEX","PREPASS_IRRADIANCE","PREPASS_IRRADIANCE_INDEX","PREPASS_ALBEDO","PREPASS_ALBEDO_INDEX","PREPASS_ALBEDO_SQRT","PREPASS_ALBEDO_SQRT_INDEX","PREPASS_DEPTH","PREPASS_DEPTH_INDEX","PREPASS_SCREENSPACE_DEPTH","PREPASS_SCREENSPACE_DEPTH_INDEX","PREPASS_NORMAL","PREPASS_NORMAL_INDEX","PREPASS_NORMAL_WORLDSPACE","PREPASS_WORLD_NORMAL","PREPASS_WORLD_NORMAL_INDEX","PREPASS_POSITION","PREPASS_POSITION_INDEX","PREPASS_LOCAL_POSITION","PREPASS_LOCAL_POSITION_INDEX","PREPASS_VELOCITY","PREPASS_VELOCITY_INDEX","PREPASS_VELOCITY_LINEAR","PREPASS_VELOCITY_LINEAR_INDEX","PREPASS_REFLECTIVITY","PREPASS_REFLECTIVITY_INDEX","SCENE_MRT_COUNT","RGBDLIGHTMAP","RGBDREFLECTION","RGBDREFRACTION","IMAGEPROCESSING","VIGNETTE","VIGNETTEBLENDMODEMULTIPLY","VIGNETTEBLENDMODEOPAQUE","TONEMAPPING","CONTRAST","COLORCURVES","COLORGRADING","COLORGRADING3D","SAMPLER3DGREENDEPTH","SAMPLER3DBGRMAP","DITHER","IMAGEPROCESSINGPOSTPROCESS","SKIPFINALCOLORCLAMP","MULTIVIEW","ORDER_INDEPENDENT_TRANSPARENCY","ORDER_INDEPENDENT_TRANSPARENCY_16BITS","CAMERA_ORTHOGRAPHIC","CAMERA_PERSPECTIVE","IS_REFLECTION_LINEAR","IS_REFRACTION_LINEAR","EXPOSURE","DECAL_AFTER_DETAIL","rebuild","setReflectionMode","modeToEnable","modes","mode","StandardMaterial","PushMaterial","imageProcessingConfiguration","_imageProcessingConfiguration","value","_attachImageProcessingConfiguration","_markAllSubMeshesAsTexturesDirty","configuration","_imageProcessingObserver","onUpdateParameters","remove","getScene","add","_markAllSubMeshesAsImageProcessingDirty","isPrePassCapable","disableDepthWrite","cameraColorCurvesEnabled","colorCurvesEnabled","cameraColorGradingEnabled","colorGradingEnabled","cameraToneMappingEnabled","toneMappingEnabled","cameraExposure","exposure","cameraContrast","contrast","cameraColorGradingTexture","colorGradingTexture","cameraColorCurves","colorCurves","canRenderToMRT","name","scene","forceGLSL","undefined","ForceGLSL","_diffuseTexture","_ambientTexture","_opacityTexture","_reflectionTexture","_emissiveTexture","_specularTexture","_bumpTexture","_lightmapTexture","_refractionTexture","ambientColor","Color3","diffuseColor","specularColor","emissiveColor","specularPower","_useAlphaFromDiffuseTexture","_useEmissiveAsIllumination","_linkEmissiveWithDiffuse","_useSpecularOverAlpha","_useReflectionOverAlpha","_disableLighting","_useObjectSpaceNormalMap","_useParallax","_useParallaxOcclusion","parallaxScaleBias","_roughness","indexOfRefraction","invertRefractionY","alphaCutOff","_useLightmapAsShadowmap","_useReflectionFresnelFromSpecular","_useGlossinessFromSpecularMapAlpha","_maxSimultaneousLights","_invertNormalMapX","_invertNormalMapY","_twoSidedLighting","_applyDecalMapAfterDetailMap","_shadersLoaded","_renderTargets","SmartArray","_worldViewProjectionMatrix","Matrix","Zero","_globalAmbientColor","_cacheHasRenderTargetTextures","detailMap","DetailMapConfiguration","prePassConfiguration","PrePassConfiguration","getRenderTargetTextures","reset","ReflectionTextureEnabled","isRenderTarget","push","RefractionTextureEnabled","_eventInfo","renderTargets","_callbackPluginEventFillRenderTargetTextures","hasRenderTargetTextures","getClassName","needAlphaBlending","_disableAlphaBlending","alpha","_shouldUseAlphaFromDiffuseTexture","_opacityFresnelParameters","isEnabled","needAlphaTesting","_forceAlphaTest","_hasAlphaChannel","_transparencyMode","Material","MATERIAL_ALPHATEST","hasAlpha","MATERIAL_OPAQUE","getAlphaTestTexture","isReadyForSubMesh","mesh","useInstances","_uniformBufferLayoutBuilt","buildUniformLayout","drawWrapper","_drawWrapper","isFrozen","_wasPreviouslyReady","_wasPreviouslyUsingInstances","materialDefines","_callbackPluginEventGeneric","defineNames","defines","_isReadyForSubMesh","engine","getEngine","_needNormals","PrepareDefinesForLights","PrepareDefinesForMultiview","oit","needAlphaBlendingForMesh","useOrderIndependentTransparency","PrepareDefinesForPrePass","PrepareDefinesForOIT","MaterialHelperGeometryRendering","PrepareDefines","currentRenderPassId","_areTexturesDirty","_callbackPluginEventHasRenderTargetTextures","_needUVs","i","Constants","MAX_SUPPORTED_UV_SETS","texturesEnabled","DiffuseTextureEnabled","isReadyOrNotBlocking","PrepareDefinesForMergedUV","AmbientTextureEnabled","OpacityTextureEnabled","getAlphaFromRGB","coordinatesMode","Texture","INVCUBIC_MODE","isCube","useRightHandedSystem","invertZ","isRGBD","EXPLICIT_MODE","PLANAR_MODE","PROJECTION_MODE","SKYBOX_MODE","SPHERICAL_MODE","EQUIRECTANGULAR_MODE","FIXED_EQUIRECTANGULAR_MODE","FIXED_EQUIRECTANGULAR_MIRRORED_MODE","CUBIC_MODE","boundingBoxSize","EmissiveTextureEnabled","LightmapTextureEnabled","SpecularTextureEnabled","getCaps","standardDerivatives","BumpTextureEnabled","isReady","_backFaceCulling","alphaMode","ALPHA_PREMULTIPLIED","ALPHA_PREMULTIPLIED_PORTERDUFF","transparencyMode","_callbackPluginEventIsReadyForSubMesh","_areImageProcessingDirty","prepareDefines","reflectionTexture","gammaSpace","refractionTexture","_areFresnelDirty","FresnelEnabled","_diffuseFresnelParameters","_emissiveFresnelParameters","_refractionFresnelParameters","_reflectionFresnelParameters","PrepareDefinesForMisc","_useLogarithmicDepth","pointsCloud","fogEnabled","_shouldTurnAlphaTestOn","PrepareDefinesForFrameBoundValues","getRenderingMesh","hasThinInstances","_callbackPluginEventPrepareDefinesBeforeAttributes","PrepareDefinesForAttributes","_callbackPluginEventPrepareDefines","forceWasNotReadyPreviously","isDirty","lightDisposed","_areLightsDisposed","markAsProcessed","fallbacks","EffectFallbacks","addFallback","HandleFallbacksForShadows","attribs","VertexBuffer","PositionKind","NormalKind","TangentKind","ColorKind","PrepareAttributesForBones","PrepareAttributesForInstances","PrepareAttributesForMorphTargets","PrepareAttributesForBakedVertexAnimation","shaderName","uniforms","samplers","uniformBuffers","indexParameters","maxSimultaneousLights","maxSimultaneousMorphTargets","fallbackRank","attributes","uniformBuffersNames","customCode","AddUniformsAndSamplers","AddUniforms","ImageProcessingConfiguration","PrepareUniforms","PrepareSamplers","PrepareUniformsAndSamplersList","uniformsNames","addClipPlaneUniforms","csnrOptions","customShaderNameResolve","join","toString","previousEffect","createEffect","onCompiled","onError","processFinalCode","processCodeAfterIncludes","multiTarget","shaderLanguage","_shaderLanguage","extraInitializationsAsync","async","Promise","all","import","_onEffectCreatedObservable","notifyObservers","allowShaderHotSwapping","markAsUnprocessed","resetCachedMaterial","setEffect","_materialContext","_renderId","getRenderId","_checkScenePerformancePriority","ubo","_uniformBuffer","addUniform","bindForSubMesh","world","_activeEffect","getMeshUniformBuffer","bindToEffect","transferToEffect","Bind","_callbackPluginEventHardBindForSubMesh","toNormalMatrix","_normalMatrix","bindOnlyNormalMatrix","mustRebind","_mustRebind","visibility","BindBonesParameters","bindViewProjection","useUbo","isSync","_forceRebindOnNextCall","diffuseFresnelParameters","updateColor4","leftColor","power","rightColor","bias","opacityFresnelParameters","toLuminance","reflectionFresnelParameters","refractionFresnelParameters","emissiveFresnelParameters","updateFloat2","coordinatesIndex","level","BindTextureMatrix","updateFloat","roughness","updateMatrix","getReflectionTextureMatrix","cubeTexture","updateVector3","boundingBoxPosition","updateFloat3","_mirroredCameraPosition","depth","updateFloat4","pointSize","updateColor3","BlackReadOnly","multiplyToRef","setTexture","depthPeelingRenderer","bind","_callbackPluginEventBindForSubMesh","bindClipPlane","bindEyePosition","_features","needToAlwaysBindUniformBuffers","_needToBindSceneUbo","lightsEnabled","BindLights","applyFog","fogMode","Scene","FOGMODE_NONE","receiveShadows","bindView","BindFogParameters","BindMorphTargetParameters","bakedVertexAnimationManager","useLogarithmicDepth","BindLogDepth","applyByPostProcess","_afterBind","update","getAnimatables","results","animations","length","getActiveTextures","activeTextures","hasTexture","texture","dispose","forceDisposeEffect","forceDisposeTextures","clone","cloneTexturesOnlyOnce","rootUrl","result","SerializationHelper","Clone","id","stencil","copyTo","_clonePlugins","Parse","source","material","parse","_ParsePlugins","MaterialFlags","DetailTextureEnabled","ColorGradingTextureEnabled","__decorate","serializeAsTexture","prototype","expandToProperty","serializeAsColor3","serialize","serializeAsFresnelParameters","RegisterClass","DefaultMaterialFactory"],"mappings":"2YAuBA,MAAMA,EAA4B,CAAEC,OAAQ,KAAMC,QAAS,MAEpD,MAAMC,UAAgCC,EAKzC,WAAAC,CAAYC,GACRC,MAAMD,GACNE,KAAKC,SAAU,EACfD,KAAKE,SAAU,EACfF,KAAKG,SAAU,EACfH,KAAKI,SAAU,EACfJ,KAAKK,SAAU,EACfL,KAAKM,SAAU,EACfN,KAAKO,SAAU,EACfP,KAAKQ,gBAAkB,EACvBR,KAAKS,gCAAiC,EACtCT,KAAKU,SAAU,EACfV,KAAKW,gBAAkB,EACvBX,KAAKY,SAAU,EACfZ,KAAKa,gBAAkB,EACvBb,KAAKc,YAAa,EAClBd,KAAKe,YAAa,EAClBf,KAAKgB,UAAW,EAChBhB,KAAKiB,iBAAmB,EACxBjB,KAAKkB,UAAW,EAChBlB,KAAKmB,iBAAmB,EACxBnB,KAAKoB,MAAO,EACZpB,KAAKqB,aAAe,EACpBrB,KAAKsB,UAAW,EAChBtB,KAAKuB,cAAe,EACpBvB,KAAKwB,mBAAoB,EACzBxB,KAAKyB,mBAAoB,EACzBzB,KAAK0B,WAAY,EACjB1B,KAAK2B,YAAa,EAClB3B,KAAK4B,YAAa,EAClB5B,KAAK6B,YAAa,EAClB7B,KAAK8B,YAAa,EAClB9B,KAAK+B,YAAa,EAClB/B,KAAKgC,WAAY,EACjBhC,KAAKiC,cAAe,EACpBjC,KAAKkC,kBAAmB,EACxBlC,KAAKmC,WAAY,EACjBnC,KAAKoC,KAAM,EACXpC,KAAKqC,cAAe,EACpBrC,KAAKsC,gBAAiB,EACtBtC,KAAKuC,gBAAiB,EACtBvC,KAAKwC,mBAAoB,EACzBxC,KAAKyC,mBAAoB,EACzBzC,KAAK0C,iBAAkB,EACvB1C,KAAK2C,SAAU,EACf3C,KAAK4C,QAAS,EACd5C,KAAK6C,SAAU,EACf7C,KAAK8C,KAAM,EACX9C,KAAK+C,KAAM,EACX/C,KAAKgD,KAAM,EACXhD,KAAKiD,KAAM,EACXjD,KAAKkD,KAAM,EACXlD,KAAKmD,KAAM,EACXnD,KAAKoD,aAAc,EACnBpD,KAAKqD,aAAc,EACnBrD,KAAKsD,qBAAuB,EAC5BtD,KAAKuD,aAAe,EACpBvD,KAAKwD,aAAc,EACnBxD,KAAKyD,wBAAyB,EAC9BzD,KAAK0D,WAAY,EACjB1D,KAAK2D,gBAAiB,EACtB3D,KAAK4D,gBAAiB,EACtB5D,KAAK6D,YAAa,EAClB7D,KAAK8D,WAAY,EACjB9D,KAAK+D,wBAAyB,EAC9B/D,KAAKgE,yBAA0B,EAC/BhE,KAAKiE,+BAAgC,EACrCjE,KAAKkE,UAAW,EAChBlE,KAAKmE,iBAAmB,EACxBnE,KAAKoE,uBAAwB,EAC7BpE,KAAKqE,wBAAyB,EAC9BrE,KAAKsE,kBAAmB,EACxBtE,KAAKuE,yBAA0B,EAC/BvE,KAAKwE,sBAAuB,EAC5BxE,KAAKyE,qBAAsB,EAC3BzE,KAAK0E,+BAAgC,EACrC1E,KAAK2E,+BAAgC,EACrC3E,KAAK4E,0BAA2B,EAChC5E,KAAK6E,sBAAuB,EAC5B7E,KAAK8E,wBAAyB,EAC9B9E,KAAK+E,+BAAgC,EACrC/E,KAAKgF,qCAAsC,EAC3ChF,KAAKiF,6CAA8C,EACnDjF,KAAKkF,yBAA0B,EAC/BlF,KAAKmF,gBAAiB,EACtBnF,KAAKoF,kBAAmB,EACxBpF,KAAKqF,YAAa,EAClBrF,KAAKsF,kBAAmB,EACxBtF,KAAKuF,qBAAsB,EAC3BvF,KAAKwF,kBAAmB,EACxBxF,KAAKyF,aAAc,EACnBzF,KAAK0F,cAAe,EACpB1F,KAAK2F,uBAAwB,EAC7B3F,KAAK4F,qBAAsB,EAC3B5F,KAAK6F,sBAAuB,EAC5B7F,KAAK8F,iBAAkB,EACvB9F,KAAK+F,kBAAmB,EACxB/F,KAAKgG,iCAAkC,EACvChG,KAAKiG,+BAAgC,EACrCjG,KAAKkG,gCAAiC,EACtClG,KAAKmG,2BAA4B,EACjCnG,KAAKoG,4BAA6B,EAClCpG,KAAKqG,sBAAwB,EAC7BrG,KAAKsG,sBAAuB,EAC5BtG,KAAKuG,mBAAoB,EACzBvG,KAAKwG,kBAAmB,EACxBxG,KAAKyG,qCAAsC,EAC3CzG,KAAK0G,YAAa,EAClB1G,KAAK2G,SAAU,EACf3G,KAAK4G,eAAgB,EACrB5G,KAAK6G,qBAAuB,EAC5B7G,KAAK8G,oBAAqB,EAC1B9G,KAAK+G,0BAA4B,EACjC/G,KAAKgH,gBAAiB,EACtBhH,KAAKiH,sBAAwB,EAC7BjH,KAAKkH,qBAAsB,EAC3BlH,KAAKmH,2BAA6B,EAClCnH,KAAKoH,eAAgB,EACrBpH,KAAKqH,qBAAuB,EAC5BrH,KAAKsH,2BAA4B,EACjCtH,KAAKuH,iCAAmC,EACxCvH,KAAKwH,gBAAiB,EACtBxH,KAAKyH,sBAAwB,EAC7BzH,KAAK0H,2BAA4B,EACjC1H,KAAK2H,sBAAuB,EAC5B3H,KAAK4H,4BAA8B,EACnC5H,KAAK6H,kBAAmB,EACxB7H,KAAK8H,wBAA0B,EAC/B9H,KAAK+H,wBAAyB,EAC9B/H,KAAKgI,8BAAgC,EACrChI,KAAKiI,kBAAmB,EACxBjI,KAAKkI,wBAA0B,EAC/BlI,KAAKmI,yBAA0B,EAC/BnI,KAAKoI,+BAAiC,EACtCpI,KAAKqI,sBAAuB,EAC5BrI,KAAKsI,4BAA8B,EACnCtI,KAAKuI,gBAAkB,EACvBvI,KAAKwI,cAAe,EACpBxI,KAAKyI,gBAAiB,EACtBzI,KAAK0I,gBAAiB,EACtB1I,KAAK2I,iBAAkB,EACvB3I,KAAK4I,UAAW,EAChB5I,KAAK6I,2BAA4B,EACjC7I,KAAK8I,yBAA0B,EAC/B9I,KAAK+I,YAAc,EACnB/I,KAAKgJ,UAAW,EAChBhJ,KAAKiJ,aAAc,EACnBjJ,KAAKkJ,cAAe,EACpBlJ,KAAKmJ,gBAAiB,EACtBnJ,KAAKoJ,qBAAsB,EAC3BpJ,KAAKqJ,iBAAkB,EACvBrJ,KAAKsJ,QAAS,EACdtJ,KAAKuJ,4BAA6B,EAClCvJ,KAAKwJ,qBAAsB,EAC3BxJ,KAAKyJ,WAAY,EACjBzJ,KAAK0J,gCAAiC,EACtC1J,KAAK2J,uCAAwC,EAC7C3J,KAAK4J,qBAAsB,EAC3B5J,KAAK6J,oBAAqB,EAK1B7J,KAAK8J,sBAAuB,EAK5B9J,KAAK+J,sBAAuB,EAC5B/J,KAAKgK,UAAW,EAChBhK,KAAKiK,oBAAqB,EAC1BjK,KAAKkK,SACb,CACI,iBAAAC,CAAkBC,GACd,MAAMC,EAAQ,CACV,sBACA,yBACA,uBACA,2BACA,2BACA,uBACA,0BACA,gCACA,sCACA,+CAEJ,IAAK,MAAMC,KAAQD,EACfrK,KAAKsK,GAAQA,IAASF,CAElC,EAOO,MAAMG,UAAyBC,EAIlC,gCAAIC,GACA,OAAOzK,KAAK0K,6BACpB,CAMI,gCAAID,CAA6BE,GAC7B3K,KAAK4K,oCAAoCD,GAEzC3K,KAAK6K,kCACb,CAKI,mCAAAD,CAAoCE,GAC5BA,IAAkB9K,KAAK0K,gCAIvB1K,KAAK0K,+BAAiC1K,KAAK+K,0BAC3C/K,KAAK0K,8BAA8BM,mBAAmBC,OAAOjL,KAAK+K,0BAOlE/K,KAAK0K,8BAJJI,GACoC9K,KAAKkL,WAAWT,6BAMrDzK,KAAK0K,gCACL1K,KAAK+K,yBAA2B/K,KAAK0K,8BAA8BM,mBAAmBG,KAAI,KACtFnL,KAAKoL,yCAAyC,KAG9D,CAII,oBAAIC,GACA,OAAQrL,KAAKsL,iBACrB,CAII,4BAAIC,GACA,OAAOvL,KAAKyK,6BAA6Be,kBACjD,CAII,4BAAID,CAAyBZ,GACzB3K,KAAKyK,6BAA6Be,mBAAqBb,CAC/D,CAII,6BAAIc,GACA,OAAOzL,KAAKyK,6BAA6BiB,mBACjD,CAII,6BAAID,CAA0Bd,GAC1B3K,KAAKyK,6BAA6BiB,oBAAsBf,CAChE,CAII,4BAAIgB,GACA,OAAO3L,KAAK0K,8BAA8BkB,kBAClD,CAII,4BAAID,CAAyBhB,GACzB3K,KAAK0K,8BAA8BkB,mBAAqBjB,CAChE,CAMI,kBAAIkB,GACA,OAAO7L,KAAK0K,8BAA8BoB,QAClD,CAMI,kBAAID,CAAelB,GACf3K,KAAK0K,8BAA8BoB,SAAWnB,CACtD,CAII,kBAAIoB,GACA,OAAO/L,KAAK0K,8BAA8BsB,QAClD,CAII,kBAAID,CAAepB,GACf3K,KAAK0K,8BAA8BsB,SAAWrB,CACtD,CAII,6BAAIsB,GACA,OAAOjM,KAAK0K,8BAA8BwB,mBAClD,CAII,6BAAID,CAA0BtB,GAC1B3K,KAAK0K,8BAA8BwB,oBAAsBvB,CACjE,CAOI,qBAAIwB,GACA,OAAOnM,KAAK0K,8BAA8B0B,WAClD,CAOI,qBAAID,CAAkBxB,GAClB3K,KAAK0K,8BAA8B0B,YAAczB,CACzD,CAII,kBAAI0B,GACA,OAAO,CACf,CAUI,WAAAxM,CAAYyM,EAAMC,EAAOC,GAAY,GACjCzM,MAAMuM,EAAMC,OAAOE,EAAWD,GAAajC,EAAiBmC,WAC5D1M,KAAK2M,gBAAkB,KACvB3M,KAAK4M,gBAAkB,KACvB5M,KAAK6M,gBAAkB,KACvB7M,KAAK8M,mBAAqB,KAC1B9M,KAAK+M,iBAAmB,KACxB/M,KAAKgN,iBAAmB,KACxBhN,KAAKiN,aAAe,KACpBjN,KAAKkN,iBAAmB,KACxBlN,KAAKmN,mBAAqB,KAK1BnN,KAAKoN,aAAe,IAAIC,EAAO,EAAG,EAAG,GAIrCrN,KAAKsN,aAAe,IAAID,EAAO,EAAG,EAAG,GAIrCrN,KAAKuN,cAAgB,IAAIF,EAAO,EAAG,EAAG,GAKtCrN,KAAKwN,cAAgB,IAAIH,EAAO,EAAG,EAAG,GAMtCrN,KAAKyN,cAAgB,GACrBzN,KAAK0N,6BAA8B,EACnC1N,KAAK2N,4BAA6B,EAClC3N,KAAK4N,0BAA2B,EAChC5N,KAAK6N,uBAAwB,EAC7B7N,KAAK8N,yBAA0B,EAC/B9N,KAAK+N,kBAAmB,EACxB/N,KAAKgO,0BAA2B,EAChChO,KAAKiO,cAAe,EACpBjO,KAAKkO,uBAAwB,EAI7BlO,KAAKmO,kBAAoB,IACzBnO,KAAKoO,WAAa,EAKlBpO,KAAKqO,kBAAoB,IAMzBrO,KAAKsO,mBAAoB,EAIzBtO,KAAKuO,YAAc,GACnBvO,KAAKwO,yBAA0B,EAC/BxO,KAAKyO,mCAAoC,EACzCzO,KAAK0O,oCAAqC,EAC1C1O,KAAK2O,uBAAyB,EAC9B3O,KAAK4O,mBAAoB,EACzB5O,KAAK6O,mBAAoB,EACzB7O,KAAK8O,mBAAoB,EACzB9O,KAAK+O,8BAA+B,EACpC/O,KAAKgP,gBAAiB,EACtBhP,KAAKiP,eAAiB,IAAIC,EAAW,IACrClP,KAAKmP,2BAA6BC,EAAOC,OACzCrP,KAAKsP,oBAAsB,IAAIjC,EAAO,EAAG,EAAG,GAC5CrN,KAAKuP,+BAAgC,EACrCvP,KAAKwP,UAAY,IAAIC,EAAuBzP,MAE5CA,KAAK4K,oCAAoC,MACzC5K,KAAK0P,qBAAuB,IAAIC,EAChC3P,KAAK4P,wBAA0B,KAC3B5P,KAAKiP,eAAeY,QAChBtF,EAAiBuF,0BAA4B9P,KAAK8M,oBAAsB9M,KAAK8M,mBAAmBiD,gBAChG/P,KAAKiP,eAAee,KAAKhQ,KAAK8M,oBAE9BvC,EAAiB0F,0BAA4BjQ,KAAKmN,oBAAsBnN,KAAKmN,mBAAmB4C,gBAChG/P,KAAKiP,eAAee,KAAKhQ,KAAKmN,oBAElCnN,KAAKkQ,WAAWC,cAAgBnQ,KAAKiP,eACrCjP,KAAKoQ,6CAA6CpQ,KAAKkQ,YAChDlQ,KAAKiP,eAExB,CAII,2BAAIoB,GACA,SAAI9F,EAAiBuF,0BAA4B9P,KAAK8M,oBAAsB9M,KAAK8M,mBAAmBiD,qBAGhGxF,EAAiB0F,0BAA4BjQ,KAAKmN,oBAAsBnN,KAAKmN,mBAAmB4C,iBAG7F/P,KAAKuP,8BACpB,CAMI,YAAAe,GACI,MAAO,kBACf,CAKI,iBAAAC,GACI,OAAIvQ,KAAKwQ,wBAGDxQ,KAAKyQ,MAAQ,GACO,MAAxBzQ,KAAK6M,iBACL7M,KAAK0Q,qCACJ1Q,KAAK2Q,2BAA6B3Q,KAAK2Q,0BAA0BC,UAC9E,CAKI,gBAAAC,GACI,QAAI7Q,KAAK8Q,iBAGF9Q,KAAK+Q,qBAAiD,MAA1B/Q,KAAKgR,mBAA6BhR,KAAKgR,oBAAsBC,EAASC,mBACjH,CAII,iCAAAR,GACI,OAA+B,MAAxB1Q,KAAK2M,iBAA2B3M,KAAK2M,gBAAgBwE,UAAYnR,KAAK0N,6BAA+B1N,KAAKgR,oBAAsBC,EAASG,eACxJ,CAII,gBAAAL,GACI,OAAgC,MAAxB/Q,KAAK2M,iBAA2B3M,KAAK2M,gBAAgBwE,UAAqC,MAAxBnR,KAAK6M,eACvF,CAKI,mBAAAwE,GACI,OAAOrR,KAAK2M,eACpB,CASI,iBAAA2E,CAAkBC,EAAM7R,EAAS8R,GAAe,GACvCxR,KAAKyR,2BACNzR,KAAK0R,qBAET,MAAMC,EAAcjS,EAAQkS,aAC5B,GAAID,EAAYlS,QAAUO,KAAK6R,UACvBF,EAAYG,qBAAuBH,EAAYI,+BAAiCP,EAChF,OAAO,EAGV9R,EAAQsS,kBACThS,KAAKiS,4BAA4B,EAA4CjS,KAAKkQ,YAClFxQ,EAAQsS,gBAAkB,IAAIrS,EAAwBK,KAAKkQ,WAAWgC,cAE1E,MAAM3F,EAAQvM,KAAKkL,WACbiH,EAAUzS,EAAQsS,gBACxB,GAAIhS,KAAKoS,mBAAmB1S,GACxB,OAAO,EAEX,MAAM2S,EAAS9F,EAAM+F,YAErBH,EAAQI,aAAeC,EAAwBjG,EAAOgF,EAAMY,GAAS,EAAMnS,KAAK2O,uBAAwB3O,KAAK+N,kBAE7G0E,EAA2BlG,EAAO4F,GAElC,MAAMO,EAAM1S,KAAK2S,yBAAyBpB,IAASvR,KAAKkL,WAAW0H,gCAMnE,GALAC,EAAyBtG,EAAO4F,EAASnS,KAAKqM,iBAAmBqG,GAEjEI,EAAqBvG,EAAO4F,EAASO,GACrCK,EAAgCC,eAAeX,EAAOY,oBAAqB1B,EAAMY,GAE7EA,EAAQe,kBAAmB,CAC3BlT,KAAKkQ,WAAWG,yBAA0B,EAC1CrQ,KAAKmT,4CAA4CnT,KAAKkQ,YACtDlQ,KAAKuP,8BAAgCvP,KAAKkQ,WAAWG,wBACrD8B,EAAQiB,UAAW,EACnB,IAAK,IAAIC,EAAI,EAAGA,GAAKC,EAAUC,wBAAyBF,EACpDlB,EAAQ,SAAWkB,IAAK,EAE5B,GAAI9G,EAAMiH,gBAAiB,CAQvB,GAPArB,EAAQ3R,gBAAkB,EAC1B2R,EAAQ9Q,aAAe,EACvB8Q,EAAQxR,gBAAkB,EAC1BwR,EAAQtR,gBAAkB,EAC1BsR,EAAQlR,iBAAmB,EAC3BkR,EAAQhR,iBAAmB,EAC3BgR,EAAQhO,iBAAmB,EACvBnE,KAAK2M,iBAAmBpC,EAAiBkJ,sBAAuB,CAChE,IAAKzT,KAAK2M,gBAAgB+G,uBACtB,OAAO,EAGPC,EAA0B3T,KAAK2M,gBAAiBwF,EAAS,UAEjF,MAEoBA,EAAQ5R,SAAU,EAEtB,GAAIP,KAAK4M,iBAAmBrC,EAAiBqJ,sBAAuB,CAChE,IAAK5T,KAAK4M,gBAAgB8G,uBACtB,OAAO,EAGPC,EAA0B3T,KAAK4M,gBAAiBuF,EAAS,UAEjF,MAEoBA,EAAQzR,SAAU,EAEtB,GAAIV,KAAK6M,iBAAmBtC,EAAiBsJ,sBAAuB,CAChE,IAAK7T,KAAK6M,gBAAgB6G,uBACtB,OAAO,EAGPC,EAA0B3T,KAAK6M,gBAAiBsF,EAAS,WACzDA,EAAQrR,WAAad,KAAK6M,gBAAgBiH,eAElE,MAEoB3B,EAAQvR,SAAU,EAEtB,GAAIZ,KAAK8M,oBAAsBvC,EAAiBuF,yBAA0B,CACtE,IAAK9P,KAAK8M,mBAAmB4G,uBACzB,OAAO,EAYP,OATAvB,EAAQI,cAAe,EACvBJ,EAAQpR,YAAa,EACrBoR,EAAQrO,UAAY9D,KAAKoO,WAAa,EACtC+D,EAAQ5M,oBAAsBvF,KAAK8N,wBACnCqE,EAAQhN,eAAiBnF,KAAK8M,mBAAmBiH,kBAAoBC,EAAQC,cAC7E9B,EAAQ7N,iBAAmBtE,KAAK8M,mBAAmBoH,OACnD/B,EAAQjN,wBACJiN,EAAQ7N,kBAAoBtE,KAAKkL,WAAWiJ,sBAAwBnU,KAAK8M,mBAAmBsH,QAAUpU,KAAK8M,mBAAmBsH,QAClIjC,EAAQ1J,eAAiBzI,KAAK8M,mBAAmBuH,OACzCrU,KAAK8M,mBAAmBiH,iBAC5B,KAAKC,EAAQM,cACTnC,EAAQhI,kBAAkB,0BAC1B,MACJ,KAAK6J,EAAQO,YACTpC,EAAQhI,kBAAkB,wBAC1B,MACJ,KAAK6J,EAAQQ,gBACTrC,EAAQhI,kBAAkB,4BAC1B,MACJ,KAAK6J,EAAQS,YACTtC,EAAQhI,kBAAkB,wBAC1B,MACJ,KAAK6J,EAAQU,eACTvC,EAAQhI,kBAAkB,2BAC1B,MACJ,KAAK6J,EAAQW,qBACTxC,EAAQhI,kBAAkB,iCAC1B,MACJ,KAAK6J,EAAQY,2BACTzC,EAAQhI,kBAAkB,uCAC1B,MACJ,KAAK6J,EAAQa,oCACT1C,EAAQhI,kBAAkB,+CAC1B,MACJ,KAAK6J,EAAQc,WACb,KAAKd,EAAQC,cACb,QACI9B,EAAQhI,kBAAkB,uBAGlCgI,EAAQzN,gCAAgC1E,KAAK8M,mBAAmBiI,eAExF,MAEoB5C,EAAQpR,YAAa,EACrBoR,EAAQjN,yBAA0B,EAEtC,GAAIlF,KAAK+M,kBAAoBxC,EAAiByK,uBAAwB,CAClE,IAAKhV,KAAK+M,iBAAiB2G,uBACvB,OAAO,EAGPC,EAA0B3T,KAAK+M,iBAAkBoF,EAAS,WAElF,MAEoBA,EAAQnR,UAAW,EAEvB,GAAIhB,KAAKkN,kBAAoB3C,EAAiB0K,uBAAwB,CAClE,IAAKjV,KAAKkN,iBAAiBwG,uBACvB,OAAO,EAGPC,EAA0B3T,KAAKkN,iBAAkBiF,EAAS,YAC1DA,EAAQ9N,uBAAyBrE,KAAKwO,wBACtC2D,EAAQ3J,aAAexI,KAAKkN,iBAAiBmH,MAErE,MAEoBlC,EAAQjO,UAAW,EAEvB,GAAIlE,KAAKgN,kBAAoBzC,EAAiB2K,uBAAwB,CAClE,IAAKlV,KAAKgN,iBAAiB0G,uBACvB,OAAO,EAGPC,EAA0B3T,KAAKgN,iBAAkBmF,EAAS,YAC1DA,EAAQtO,WAAa7D,KAAK0O,kCAElD,MAEoByD,EAAQjR,UAAW,EAEvB,GAAIqL,EAAM+F,YAAY6C,UAAUC,qBAAuBpV,KAAKiN,cAAgB1C,EAAiB8K,mBAAoB,CAE7G,IAAKrV,KAAKiN,aAAaqI,UACnB,OAAO,EAGP3B,EAA0B3T,KAAKiN,aAAckF,EAAS,QACtDA,EAAQ7Q,SAAWtB,KAAKiO,aACxBkE,EAAQ5Q,aAAegL,EAAM4H,qBAC7BhC,EAAQ3Q,kBAAoBxB,KAAKkO,sBAErCiE,EAAQ/N,sBAAwBpE,KAAKgO,wBACzD,MAEoBmE,EAAQ/Q,MAAO,EACf+Q,EAAQ7Q,UAAW,EACnB6Q,EAAQ5Q,cAAe,EACvB4Q,EAAQ3Q,mBAAoB,EAEhC,GAAIxB,KAAKmN,oBAAsB5C,EAAiB0F,yBAA0B,CACtE,IAAKjQ,KAAKmN,mBAAmBuG,uBACzB,OAAO,EAGPvB,EAAQiB,UAAW,EACnBjB,EAAQ9M,YAAa,EACrB8M,EAAQ7M,iBAAmBtF,KAAKmN,mBAAmB+G,OACnD/B,EAAQzJ,eAAiB1I,KAAKmN,mBAAmBkH,OACjDlC,EAAQxN,gCAAgC3E,KAAKmN,mBAAmB4H,eAExF,MAEoB5C,EAAQ9M,YAAa,EAEzB8M,EAAQ3M,kBAAoBxF,KAAKuV,kBAAoBvV,KAAK8O,iBAC1E,MAEgBqD,EAAQ5R,SAAU,EAClB4R,EAAQzR,SAAU,EAClByR,EAAQvR,SAAU,EAClBuR,EAAQpR,YAAa,EACrBoR,EAAQnR,UAAW,EACnBmR,EAAQjO,UAAW,EACnBiO,EAAQ/Q,MAAO,EACf+Q,EAAQ9M,YAAa,EAEzB8M,EAAQjQ,iBAAmBlC,KAAK0Q,oCAChCyB,EAAQpO,uBAAyB/D,KAAK2N,2BACtCwE,EAAQnO,wBAA0BhE,KAAK4N,yBACvCuE,EAAQ1Q,kBAAoBzB,KAAK6N,sBACjCsE,EAAQ3L,iBAAmBxG,KAAKwV,YAAclC,EAAUmC,qBAAuBzV,KAAKwV,YAAclC,EAAUoC,+BAC5GvD,EAAQ1L,oCAAgE,OAA1BzG,KAAK2V,iBACnDxD,EAAQzL,WAAuC,OAA1B1G,KAAK2V,kBAA6B3V,KAAK2S,yBAAyBpB,EACjG,CAKQ,GAJAvR,KAAKkQ,WAAWoB,mBAAoB,EACpCtR,KAAKkQ,WAAWiC,QAAUA,EAC1BnS,KAAKkQ,WAAWxQ,QAAUA,EAC1BM,KAAK4V,sCAAsC5V,KAAKkQ,aAC3ClQ,KAAKkQ,WAAWoB,kBACjB,OAAO,EAEX,GAAIa,EAAQ0D,0BAA4B7V,KAAK0K,8BAA+B,CACxE,IAAK1K,KAAK0K,8BAA8B4K,UACpC,OAAO,EAEXtV,KAAK0K,8BAA8BoL,eAAe3D,GAClDA,EAAQrI,qBAAiD,MAA1B9J,KAAK+V,oBAA8B/V,KAAK+V,kBAAkBC,WACzF7D,EAAQpI,qBAAiD,MAA1B/J,KAAKiW,oBAA8BjW,KAAKiW,kBAAkBD,UACrG,CACY7D,EAAQ+D,mBACJ3L,EAAiB4L,gBAEbnW,KAAKoW,2BACLpW,KAAK2Q,2BACL3Q,KAAKqW,4BACLrW,KAAKsW,8BACLtW,KAAKuW,gCACLpE,EAAQ7P,eAAiBtC,KAAKoW,2BAA6BpW,KAAKoW,0BAA0BxF,UAC1FuB,EAAQ5P,eAAiBvC,KAAK2Q,2BAA6B3Q,KAAK2Q,0BAA0BC,UAC1FuB,EAAQ3P,kBAAoBxC,KAAKuW,8BAAgCvW,KAAKuW,6BAA6B3F,UACnGuB,EAAQlO,8BAAgCjE,KAAKyO,kCAC7C0D,EAAQ1P,kBAAoBzC,KAAKsW,8BAAgCtW,KAAKsW,6BAA6B1F,UACnGuB,EAAQzP,gBAAkB1C,KAAKqW,4BAA8BrW,KAAKqW,2BAA2BzF,UAC7FuB,EAAQI,cAAe,EACvBJ,EAAQxP,SAAU,GAItBwP,EAAQxP,SAAU,GAI1B6T,EAAsBjF,EAAMhF,EAAOvM,KAAKyW,qBAAsBzW,KAAK0W,YAAa1W,KAAK2W,WAAY3W,KAAK4W,uBAAuBrF,IAASvR,KAAK8Q,gBAAiBqB,EAASnS,KAAK+O,8BAE1K8H,EAAkCtK,EAAO8F,EAAQrS,KAAMmS,EAASX,EAAc,KAAM9R,EAAQoX,mBAAmBC,kBAE/G/W,KAAKkQ,WAAWiC,QAAUA,EAC1BnS,KAAKkQ,WAAWqB,KAAOA,EACvBvR,KAAKgX,mDAAmDhX,KAAKkQ,YAE7D+G,EAA4B1F,EAAMY,GAAS,GAAM,GAAM,GAEvDnS,KAAKkX,mCAAmClX,KAAKkQ,YAE7C,IAAIiH,GAA6B,EACjC,GAAIhF,EAAQiF,QAAS,CACjB,MAAMC,EAAgBlF,EAAQmF,mBAC9BnF,EAAQoF,kBAER,MAAMC,EAAY,IAAIC,EAClBtF,EAAQpR,YACRyW,EAAUE,YAAY,EAAG,cAEzBvF,EAAQjR,UACRsW,EAAUE,YAAY,EAAG,YAEzBvF,EAAQ/Q,MACRoW,EAAUE,YAAY,EAAG,QAEzBvF,EAAQ7Q,UACRkW,EAAUE,YAAY,EAAG,YAEzBvF,EAAQ5Q,cACRiW,EAAUE,YAAY,EAAG,gBAEzBvF,EAAQ3Q,mBACRgW,EAAUE,YAAY,EAAG,qBAEzBvF,EAAQ1Q,mBACR+V,EAAUE,YAAY,EAAG,qBAEzBvF,EAAQ/P,KACRoV,EAAUE,YAAY,EAAG,OAEzBvF,EAAQhQ,WACRqV,EAAUE,YAAY,EAAG,aAEzBvF,EAAQ/M,kBACRoS,EAAUE,YAAY,EAAG,oBAE7BC,EAA0BxF,EAASqF,EAAWxX,KAAK2O,wBAC/CwD,EAAQ9P,cACRmV,EAAUE,YAAY,EAAG,gBAEzBvF,EAAQ7P,gBACRkV,EAAUE,YAAY,EAAG,kBAEzBvF,EAAQ5P,gBACRiV,EAAUE,YAAY,EAAG,kBAEzBvF,EAAQ3P,mBACRgV,EAAUE,YAAY,EAAG,qBAEzBvF,EAAQzP,iBACR8U,EAAUE,YAAY,EAAG,mBAEzBvF,EAAQxP,SACR6U,EAAUE,YAAY,EAAG,WAEzBvF,EAAQ1I,WACR+N,EAAUE,YAAY,EAAG,aAG7B,MAAME,EAAU,CAACC,EAAaC,cAC1B3F,EAAQvP,QACRgV,EAAQ5H,KAAK6H,EAAaE,YAE1B5F,EAAQtP,SACR+U,EAAQ5H,KAAK6H,EAAaG,aAE9B,IAAK,IAAI3E,EAAI,EAAGA,GAAKC,EAAUC,wBAAyBF,EAChDlB,EAAQ,KAAOkB,IACfuE,EAAQ5H,KAAK,KAAW,IAANqD,EAAU,GAAKA,KAGrClB,EAAQ/O,aACRwU,EAAQ5H,KAAK6H,EAAaI,WAE9BC,EAA0BN,EAASrG,EAAMY,EAASqF,GAClDW,EAA8BP,EAASzF,GACvCiG,EAAiCR,EAASrG,EAAMY,GAChDkG,EAAyCT,EAASrG,EAAMY,GACxD,IAAImG,EAAa,UACjB,MAAMC,EAAW,CACb,QACA,OACA,iBACA,eACA,cACA,gBACA,gBACA,iBACA,iBACA,aACA,YACA,YACA,YACA,gBACA,gBACA,gBACA,mBACA,iBACA,iBACA,aACA,iBACA,mBACA,SACA,gBACA,gBACA,gBACA,mBACA,iBACA,iBACA,aACA,eACA,iBACA,mBACA,mBACA,oBACA,eACA,sBACA,uBACA,oBACA,qBACA,sBACA,uBACA,sBACA,kBACA,sBACA,kBACA,2BACA,sBACA,cACA,mBACA,yBACA,6BAEEC,EAAW,CACb,iBACA,iBACA,iBACA,wBACA,sBACA,kBACA,kBACA,cACA,kBACA,wBACA,sBACA,cACA,eACA,kBACA,wBAEEC,EAAiB,CAAC,WAAY,QAAS,QACvCC,EAAkB,CAAEC,sBAAuB3Y,KAAK2O,uBAAwBiK,4BAA6BzG,EAAQ9L,uBACnHrG,KAAKkQ,WAAWsH,UAAYA,EAC5BxX,KAAKkQ,WAAW2I,aAAe,EAC/B7Y,KAAKkQ,WAAWiC,QAAUA,EAC1BnS,KAAKkQ,WAAWqI,SAAWA,EAC3BvY,KAAKkQ,WAAW4I,WAAalB,EAC7B5X,KAAKkQ,WAAWsI,SAAWA,EAC3BxY,KAAKkQ,WAAW6I,oBAAsBN,EACtCzY,KAAKkQ,WAAW8I,gBAAavM,EAC7BzM,KAAKkQ,WAAWqB,KAAOA,EACvBvR,KAAKkQ,WAAWwI,gBAAkBA,EAClC1Y,KAAKiS,4BAA4B,IAA6CjS,KAAKkQ,YACnF6C,EAAgCkG,uBAAuBV,EAAUC,GACjE7I,EAAqBuJ,YAAYX,GAE7BY,IACAA,EAA6BC,gBAAgBb,EAAUpG,GACvDgH,EAA6BE,gBAAgBb,EAAUrG,IAE3DmH,EAA+B,CAC3BC,cAAehB,EACfQ,oBAAqBN,EACrBD,SAAUA,EACVrG,QAASA,EACTwG,sBAAuB3Y,KAAK2O,yBAEhC6K,EAAqBjB,GACrB,MAAMkB,EAAc,CAAE,EAClBzZ,KAAK0Z,0BACLpB,EAAatY,KAAK0Z,wBAAwBpB,EAAYC,EAAUE,EAAgBD,EAAUrG,EAASyF,EAAS6B,IAEhH,MAAME,EAAOxH,EAAQyH,WACfC,EAAiBna,EAAQD,OAC/B,IAAIA,EAAS8M,EAAM+F,YAAYwH,aAAaxB,EAAY,CACpDQ,WAAYlB,EACZ2B,cAAehB,EACfQ,oBAAqBN,EACrBD,SAAUA,EACVrG,QAASwH,EACTnC,UAAWA,EACXuC,WAAY/Z,KAAK+Z,WACjBC,QAASha,KAAKga,QACdtB,kBACAuB,iBAAkBR,EAAYQ,iBAC9BC,yBAA0Bla,KAAKkQ,WAAW8I,WAC1CmB,YAAahI,EAAQxL,QACrByT,eAAgBpa,KAAKqa,gBACrBC,0BAA2Bta,KAAKgP,oBAC1BvC,EACA8N,UAC+B,IAAzBva,KAAKqa,sBACCG,QAAQC,IAAI,CAACC,OAAO,wCAAkCA,OAAO,kDAG7DF,QAAQC,IAAI,CAACC,OAAO,wCAA8BA,OAAO,4CAEnE1a,KAAKgP,gBAAiB,CAAI,GAEnCqD,GAEH,GADArS,KAAKkQ,WAAW8I,gBAAavM,EACzBhN,EAOA,GANIO,KAAK2a,6BACLnb,EAA0BC,OAASA,EACnCD,EAA0BE,QAAUA,EACpCM,KAAK2a,2BAA2BC,gBAAgBpb,IAGhDQ,KAAK6a,wBAA0BhB,IAAmBpa,EAAO6V,WAIzD,GAHA7V,EAASoa,EACT1H,EAAQ2I,oBACR3D,EAA6BnX,KAAK6R,SAC9BwF,EAGA,OADAlF,EAAQmF,oBAAqB,GACtB,OAIX/K,EAAMwO,sBACNrb,EAAQsb,UAAUvb,EAAQ0S,EAASnS,KAAKib,iBAG5D,CACQ,SAAKvb,EAAQD,SAAWC,EAAQD,OAAO6V,aAGvCnD,EAAQ+I,UAAY3O,EAAM4O,cAC1BxJ,EAAYG,qBAAsBqF,EAClCxF,EAAYI,6BAA+BP,EAC3CxR,KAAKob,kCACE,EACf,CAKI,kBAAA1J,GAEI,MAAM2J,EAAMrb,KAAKsb,eACjBD,EAAIE,WAAW,mBAAoB,GACnCF,EAAIE,WAAW,oBAAqB,GACpCF,EAAIE,WAAW,eAAgB,GAC/BF,EAAIE,WAAW,sBAAuB,GACtCF,EAAIE,WAAW,uBAAwB,GACvCF,EAAIE,WAAW,sBAAuB,GACtCF,EAAIE,WAAW,uBAAwB,GACvCF,EAAIE,WAAW,oBAAqB,GACpCF,EAAIE,WAAW,qBAAsB,GACrCF,EAAIE,WAAW,gBAAiB,GAChCF,EAAIE,WAAW,gBAAiB,GAChCF,EAAIE,WAAW,gBAAiB,GAChCF,EAAIE,WAAW,mBAAoB,GACnCF,EAAIE,WAAW,sBAAuB,GACtCF,EAAIE,WAAW,kBAAmB,GAClCF,EAAIE,WAAW,iBAAkB,GACjCF,EAAIE,WAAW,iBAAkB,GACjCF,EAAIE,WAAW,iBAAkB,GACjCF,EAAIE,WAAW,aAAc,GAC7BF,EAAIE,WAAW,gBAAiB,IAChCF,EAAIE,WAAW,gBAAiB,IAChCF,EAAIE,WAAW,gBAAiB,IAChCF,EAAIE,WAAW,mBAAoB,IACnCF,EAAIE,WAAW,iBAAkB,IACjCF,EAAIE,WAAW,iBAAkB,IACjCF,EAAIE,WAAW,iBAAkB,IACjCF,EAAIE,WAAW,aAAc,IAC7BF,EAAIE,WAAW,sBAAuB,GACtCF,EAAIE,WAAW,YAAa,GAC5BF,EAAIE,WAAW,cAAe,GAC9BF,EAAIE,WAAW,mBAAoB,IACnCF,EAAIE,WAAW,mBAAoB,GACnCF,EAAIE,WAAW,sBAAuB,GACtCF,EAAIE,WAAW,kBAAmB,GAClCF,EAAIE,WAAW,iBAAkB,GACjCF,EAAIE,WAAW,iBAAkB,GACjCF,EAAIE,WAAW,gBAAiB,GAChCF,EAAIE,WAAW,gBAAiB,GAChCxb,MAAM2R,oBACd,CAOI,cAAA8J,CAAeC,EAAOlK,EAAM7R,GACxB,MAAM6M,EAAQvM,KAAKkL,WACbiH,EAAUzS,EAAQsS,gBACxB,IAAKG,EACD,OAEJ,MAAM1S,EAASC,EAAQD,OACvB,IAAKA,EACD,OAEJO,KAAK0b,cAAgBjc,EAErB8R,EAAKoK,uBAAuBC,aAAanc,EAAQ,QACjD8R,EAAKsK,iBAAiBJ,GAEtBzb,KAAKsb,eAAeM,aAAanc,EAAQ,YACzCO,KAAK0P,qBAAqB8L,eAAexb,KAAK0b,cAAenP,EAAOgF,EAAMkK,EAAOzb,KAAK6R,UACtFkB,EAAgC+I,KAAKvP,EAAM+F,YAAYW,oBAAqBjT,KAAK0b,cAAenK,EAAMkK,GACtGzb,KAAKkQ,WAAWxQ,QAAUA,EAC1BM,KAAK+b,uCAAuC/b,KAAKkQ,YAE7CiC,EAAQ/N,wBACRqX,EAAMO,eAAehc,KAAKic,eAC1Bjc,KAAKkc,qBAAqBlc,KAAKic,gBAEnC,MAAME,EAAanc,KAAKoc,YAAY7P,EAAO9M,EAAQC,EAAS6R,EAAK8K,YAEjEC,EAAoB/K,EAAM9R,GAC1B,MAAM4b,EAAMrb,KAAKsb,eACjB,GAAIa,EAAY,CAEZ,GADAnc,KAAKuc,mBAAmB9c,IACnB4b,EAAImB,SAAWxc,KAAK6R,WAAawJ,EAAIoB,QAAU/c,EAAQkS,aAAa8K,uBAAwB,CAwB7F,GAvBInS,EAAiB4L,gBAAkBhE,EAAQxP,UAEvC3C,KAAK2c,0BAA4B3c,KAAK2c,yBAAyB/L,YAC/DyK,EAAIuB,aAAa,mBAAoB5c,KAAK2c,yBAAyBE,UAAW7c,KAAK2c,yBAAyBG,OAC5GzB,EAAIuB,aAAa,oBAAqB5c,KAAK2c,yBAAyBI,WAAY/c,KAAK2c,yBAAyBK,OAE9Ghd,KAAKid,0BAA4Bjd,KAAKid,yBAAyBrM,WAC/DyK,EAAIuB,aAAa,eAAgB,IAAIvP,EAAOrN,KAAKid,yBAAyBJ,UAAUK,cAAeld,KAAKid,yBAAyBF,WAAWG,cAAeld,KAAKid,yBAAyBD,MAAOhd,KAAKid,yBAAyBH,OAE9N9c,KAAKmd,6BAA+Bnd,KAAKmd,4BAA4BvM,YACrEyK,EAAIuB,aAAa,sBAAuB5c,KAAKmd,4BAA4BN,UAAW7c,KAAKmd,4BAA4BL,OACrHzB,EAAIuB,aAAa,uBAAwB5c,KAAKmd,4BAA4BJ,WAAY/c,KAAKmd,4BAA4BH,OAEvHhd,KAAKod,6BAA+Bpd,KAAKod,4BAA4BxM,YACrEyK,EAAIuB,aAAa,sBAAuB5c,KAAKod,4BAA4BP,UAAW7c,KAAKod,4BAA4BN,OACrHzB,EAAIuB,aAAa,uBAAwB5c,KAAKod,4BAA4BL,WAAY/c,KAAKod,4BAA4BJ,OAEvHhd,KAAKqd,2BAA6Brd,KAAKqd,0BAA0BzM,YACjEyK,EAAIuB,aAAa,oBAAqB5c,KAAKqd,0BAA0BR,UAAW7c,KAAKqd,0BAA0BP,OAC/GzB,EAAIuB,aAAa,qBAAsB5c,KAAKqd,0BAA0BN,WAAY/c,KAAKqd,0BAA0BL,QAIrHzQ,EAAMiH,gBAAiB,CAgBvB,GAfIxT,KAAK2M,iBAAmBpC,EAAiBkJ,wBACzC4H,EAAIiC,aAAa,gBAAiBtd,KAAK2M,gBAAgB4Q,iBAAkBvd,KAAK2M,gBAAgB6Q,OAC9FC,EAAkBzd,KAAK2M,gBAAiB0O,EAAK,YAE7Crb,KAAK4M,iBAAmBrC,EAAiBqJ,wBACzCyH,EAAIiC,aAAa,gBAAiBtd,KAAK4M,gBAAgB2Q,iBAAkBvd,KAAK4M,gBAAgB4Q,OAC9FC,EAAkBzd,KAAK4M,gBAAiByO,EAAK,YAE7Crb,KAAK6M,iBAAmBtC,EAAiBsJ,wBACzCwH,EAAIiC,aAAa,gBAAiBtd,KAAK6M,gBAAgB0Q,iBAAkBvd,KAAK6M,gBAAgB2Q,OAC9FC,EAAkBzd,KAAK6M,gBAAiBwO,EAAK,YAE7Crb,KAAK+Q,oBACLsK,EAAIqC,YAAY,cAAe1d,KAAKuO,aAEpCvO,KAAK8M,oBAAsBvC,EAAiBuF,2BAC5CuL,EAAIiC,aAAa,mBAAoBtd,KAAK8M,mBAAmB0Q,MAAOxd,KAAK2d,WACzEtC,EAAIuC,aAAa,mBAAoB5d,KAAK8M,mBAAmB+Q,8BACzD7d,KAAK8M,mBAAmBiI,iBAAiB,CACzC,MAAM+I,EAAc9d,KAAK8M,mBACzBuO,EAAI0C,cAAc,sBAAuBD,EAAYE,qBACrD3C,EAAI0C,cAAc,kBAAmBD,EAAY/I,gBAC7E,CAwBoB,GAtBI/U,KAAK+M,kBAAoBxC,EAAiByK,yBAC1CqG,EAAIiC,aAAa,iBAAkBtd,KAAK+M,iBAAiBwQ,iBAAkBvd,KAAK+M,iBAAiByQ,OACjGC,EAAkBzd,KAAK+M,iBAAkBsO,EAAK,aAE9Crb,KAAKkN,kBAAoB3C,EAAiB0K,yBAC1CoG,EAAIiC,aAAa,iBAAkBtd,KAAKkN,iBAAiBqQ,iBAAkBvd,KAAKkN,iBAAiBsQ,OACjGC,EAAkBzd,KAAKkN,iBAAkBmO,EAAK,aAE9Crb,KAAKgN,kBAAoBzC,EAAiB2K,yBAC1CmG,EAAIiC,aAAa,iBAAkBtd,KAAKgN,iBAAiBuQ,iBAAkBvd,KAAKgN,iBAAiBwQ,OACjGC,EAAkBzd,KAAKgN,iBAAkBqO,EAAK,aAE9Crb,KAAKiN,cAAgBV,EAAM+F,YAAY6C,UAAUC,qBAAuB7K,EAAiB8K,qBACzFgG,EAAI4C,aAAa,aAAcje,KAAKiN,aAAasQ,iBAAkB,EAAMvd,KAAKiN,aAAauQ,MAAOxd,KAAKmO,mBACvGsP,EAAkBzd,KAAKiN,aAAcoO,EAAK,QACtC9O,EAAM2R,wBACN7C,EAAIiC,aAAa,sBAAuBtd,KAAK4O,kBAAoB,GAAO,EAAK5O,KAAK6O,kBAAoB,GAAO,GAG7GwM,EAAIiC,aAAa,sBAAuBtd,KAAK4O,mBAAqB,EAAM,EAAK5O,KAAK6O,mBAAqB,EAAM,IAGjH7O,KAAKmN,oBAAsB5C,EAAiB0F,yBAA0B,CACtE,IAAIkO,EAAQ,EAQZ,GAPKne,KAAKmN,mBAAmB+G,SACzBmH,EAAIuC,aAAa,mBAAoB5d,KAAKmN,mBAAmB0Q,8BACzD7d,KAAKmN,mBAAmBgR,QACxBA,EAAQne,KAAKmN,mBAAmBgR,QAGxC9C,EAAI+C,aAAa,mBAAoBpe,KAAKmN,mBAAmBqQ,MAAOxd,KAAKqO,kBAAmB8P,EAAOne,KAAKsO,mBAAqB,EAAI,GAC7HtO,KAAKmN,mBAAmB4H,gBAAiB,CACzC,MAAM+I,EAAc9d,KAAKmN,mBACzBkO,EAAI0C,cAAc,sBAAuBD,EAAYE,qBACrD3C,EAAI0C,cAAc,kBAAmBD,EAAY/I,gBAC7E,CACA,CACA,CAEoB/U,KAAK0W,aACL2E,EAAIqC,YAAY,YAAa1d,KAAKqe,WAEtChD,EAAIuB,aAAa,iBAAkB5c,KAAKuN,cAAevN,KAAKyN,eAC5D4N,EAAIiD,aAAa,iBAAkB/T,EAAiByK,uBAAyBhV,KAAKwN,cAAgBH,EAAOkR,eACzGlD,EAAIuB,aAAa,gBAAiB5c,KAAKsN,aAActN,KAAKyQ,OAC1DlE,EAAMa,aAAaoR,cAAcxe,KAAKoN,aAAcpN,KAAKsP,qBACzD+L,EAAIiD,aAAa,gBAAiBte,KAAKsP,oBACvD,CAEgB/C,EAAMiH,kBACFxT,KAAK2M,iBAAmBpC,EAAiBkJ,uBACzChU,EAAOgf,WAAW,iBAAkBze,KAAK2M,iBAEzC3M,KAAK4M,iBAAmBrC,EAAiBqJ,uBACzCnU,EAAOgf,WAAW,iBAAkBze,KAAK4M,iBAEzC5M,KAAK6M,iBAAmBtC,EAAiBsJ,uBACzCpU,EAAOgf,WAAW,iBAAkBze,KAAK6M,iBAEzC7M,KAAK8M,oBAAsBvC,EAAiBuF,2BACxC9P,KAAK8M,mBAAmBoH,OACxBzU,EAAOgf,WAAW,wBAAyBze,KAAK8M,oBAGhDrN,EAAOgf,WAAW,sBAAuBze,KAAK8M,qBAGlD9M,KAAK+M,kBAAoBxC,EAAiByK,wBAC1CvV,EAAOgf,WAAW,kBAAmBze,KAAK+M,kBAE1C/M,KAAKkN,kBAAoB3C,EAAiB0K,wBAC1CxV,EAAOgf,WAAW,kBAAmBze,KAAKkN,kBAE1ClN,KAAKgN,kBAAoBzC,EAAiB2K,wBAC1CzV,EAAOgf,WAAW,kBAAmBze,KAAKgN,kBAE1ChN,KAAKiN,cAAgBV,EAAM+F,YAAY6C,UAAUC,qBAAuB7K,EAAiB8K,oBACzF5V,EAAOgf,WAAW,cAAeze,KAAKiN,cAEtCjN,KAAKmN,oBAAsB5C,EAAiB0F,2BACxCjQ,KAAKmN,mBAAmB+G,OACxBzU,EAAOgf,WAAW,wBAAyBze,KAAKmN,oBAGhD1N,EAAOgf,WAAW,sBAAuBze,KAAKmN,sBAKtDnN,KAAKkL,WAAW0H,iCAAmC5S,KAAK2S,yBAAyBpB,IACjFvR,KAAKkL,WAAWwT,qBAAqBC,KAAKlf,GAE9CO,KAAKkQ,WAAWxQ,QAAUA,EAC1BM,KAAK4e,mCAAmC5e,KAAKkQ,YAE7C2O,EAAcpf,EAAQO,KAAMuM,GAE5BvM,KAAK8e,gBAAgBrf,EACjC,MACiB8M,EAAM+F,YAAYyM,UAAUC,iCACjChf,KAAKif,qBAAsB,IAE3B9C,GAAenc,KAAK6R,WAEhBtF,EAAM2S,gBAAkBlf,KAAK+N,kBAC7BoR,EAAW5S,EAAOgF,EAAM9R,EAAQ0S,EAASnS,KAAK2O,yBAG7CpC,EAAMoK,YAAcpF,EAAK6N,UAAY7S,EAAM8S,UAAYC,EAAMC,cAC9Dvf,KAAK8M,oBACL9M,KAAKmN,oBACLoE,EAAKiO,gBACLrN,EAAQxL,UACR3G,KAAKyf,SAAShgB,GAGlBigB,EAAkBnT,EAAOgF,EAAM9R,GAE3B0S,EAAQ9L,uBACRsZ,EAA0BpO,EAAM9R,GAEhC0S,EAAQ1R,gCACR8Q,EAAKqO,6BAA6BjB,KAAKlf,EAAQ0S,EAAQzO,WAGvD1D,KAAK6f,qBACLC,EAAa3N,EAAS1S,EAAQ8M,GAG9BvM,KAAK0K,gCAAkC1K,KAAK0K,8BAA8BqV,oBAC1E/f,KAAK0K,8BAA8BiU,KAAK3e,KAAK0b,gBAGrD1b,KAAKggB,WAAWzO,EAAMvR,KAAK0b,cAAehc,GAC1C2b,EAAI4E,QACZ,CAKI,cAAAC,GACI,MAAMC,EAAUpgB,MAAMmgB,iBA4BtB,OA3BIlgB,KAAK2M,iBAAmB3M,KAAK2M,gBAAgByT,YAAcpgB,KAAK2M,gBAAgByT,WAAWC,OAAS,GACpGF,EAAQnQ,KAAKhQ,KAAK2M,iBAElB3M,KAAK4M,iBAAmB5M,KAAK4M,gBAAgBwT,YAAcpgB,KAAK4M,gBAAgBwT,WAAWC,OAAS,GACpGF,EAAQnQ,KAAKhQ,KAAK4M,iBAElB5M,KAAK6M,iBAAmB7M,KAAK6M,gBAAgBuT,YAAcpgB,KAAK6M,gBAAgBuT,WAAWC,OAAS,GACpGF,EAAQnQ,KAAKhQ,KAAK6M,iBAElB7M,KAAK8M,oBAAsB9M,KAAK8M,mBAAmBsT,YAAcpgB,KAAK8M,mBAAmBsT,WAAWC,OAAS,GAC7GF,EAAQnQ,KAAKhQ,KAAK8M,oBAElB9M,KAAK+M,kBAAoB/M,KAAK+M,iBAAiBqT,YAAcpgB,KAAK+M,iBAAiBqT,WAAWC,OAAS,GACvGF,EAAQnQ,KAAKhQ,KAAK+M,kBAElB/M,KAAKgN,kBAAoBhN,KAAKgN,iBAAiBoT,YAAcpgB,KAAKgN,iBAAiBoT,WAAWC,OAAS,GACvGF,EAAQnQ,KAAKhQ,KAAKgN,kBAElBhN,KAAKiN,cAAgBjN,KAAKiN,aAAamT,YAAcpgB,KAAKiN,aAAamT,WAAWC,OAAS,GAC3FF,EAAQnQ,KAAKhQ,KAAKiN,cAElBjN,KAAKkN,kBAAoBlN,KAAKkN,iBAAiBkT,YAAcpgB,KAAKkN,iBAAiBkT,WAAWC,OAAS,GACvGF,EAAQnQ,KAAKhQ,KAAKkN,kBAElBlN,KAAKmN,oBAAsBnN,KAAKmN,mBAAmBiT,YAAcpgB,KAAKmN,mBAAmBiT,WAAWC,OAAS,GAC7GF,EAAQnQ,KAAKhQ,KAAKmN,oBAEfgT,CACf,CAKI,iBAAAG,GACI,MAAMC,EAAiBxgB,MAAMugB,oBA4B7B,OA3BItgB,KAAK2M,iBACL4T,EAAevQ,KAAKhQ,KAAK2M,iBAEzB3M,KAAK4M,iBACL2T,EAAevQ,KAAKhQ,KAAK4M,iBAEzB5M,KAAK6M,iBACL0T,EAAevQ,KAAKhQ,KAAK6M,iBAEzB7M,KAAK8M,oBACLyT,EAAevQ,KAAKhQ,KAAK8M,oBAEzB9M,KAAK+M,kBACLwT,EAAevQ,KAAKhQ,KAAK+M,kBAEzB/M,KAAKgN,kBACLuT,EAAevQ,KAAKhQ,KAAKgN,kBAEzBhN,KAAKiN,cACLsT,EAAevQ,KAAKhQ,KAAKiN,cAEzBjN,KAAKkN,kBACLqT,EAAevQ,KAAKhQ,KAAKkN,kBAEzBlN,KAAKmN,oBACLoT,EAAevQ,KAAKhQ,KAAKmN,oBAEtBoT,CACf,CAMI,UAAAC,CAAWC,GACP,QAAI1gB,MAAMygB,WAAWC,KAGjBzgB,KAAK2M,kBAAoB8T,IAGzBzgB,KAAK4M,kBAAoB6T,IAGzBzgB,KAAK6M,kBAAoB4T,IAGzBzgB,KAAK8M,qBAAuB2T,IAG5BzgB,KAAK+M,mBAAqB0T,IAG1BzgB,KAAKgN,mBAAqByT,IAG1BzgB,KAAKiN,eAAiBwT,IAGtBzgB,KAAKkN,mBAAqBuT,GAG1BzgB,KAAKmN,qBAAuBsT,SAIxC,CAMI,OAAAC,CAAQC,EAAoBC,GACpBA,IACA5gB,KAAK2M,iBAAiB+T,UACtB1gB,KAAK4M,iBAAiB8T,UACtB1gB,KAAK6M,iBAAiB6T,UACtB1gB,KAAK8M,oBAAoB4T,UACzB1gB,KAAK+M,kBAAkB2T,UACvB1gB,KAAKgN,kBAAkB0T,UACvB1gB,KAAKiN,cAAcyT,UACnB1gB,KAAKkN,kBAAkBwT,UACvB1gB,KAAKmN,oBAAoBuT,WAEzB1gB,KAAK0K,+BAAiC1K,KAAK+K,0BAC3C/K,KAAK0K,8BAA8BM,mBAAmBC,OAAOjL,KAAK+K,0BAEtEhL,MAAM2gB,QAAQC,EAAoBC,EAC1C,CAQI,KAAAC,CAAMvU,EAAMwU,GAAwB,EAAMC,EAAU,IAChD,MAAMC,EAASC,EAAoBC,OAAM,IAAM,IAAI3W,EAAiB+B,EAAMtM,KAAKkL,aAAalL,KAAM,CAAE8gB,0BAKpG,OAJAE,EAAO1U,KAAOA,EACd0U,EAAOG,GAAK7U,EACZtM,KAAKohB,QAAQC,OAAOL,EAAOI,SAC3BphB,KAAKshB,cAAcN,EAAQD,GACpBC,CACf,CAQI,YAAOO,CAAMC,EAAQjV,EAAOwU,GACxB,MAAMU,EAAWR,EAAoBM,OAAM,IAAM,IAAIhX,EAAiBiX,EAAOlV,KAAMC,IAAQiV,EAAQjV,EAAOwU,GAK1G,OAJIS,EAAOJ,SACPK,EAASL,QAAQM,MAAMF,EAAOJ,QAAS7U,EAAOwU,GAElD9P,EAAS0Q,cAAcH,EAAQC,EAAUlV,EAAOwU,GACzCU,CACf,CAKI,gCAAWhO,GACP,OAAOmO,EAAcnO,qBAC7B,CACI,gCAAWA,CAAsB9I,GAC7BiX,EAAcnO,sBAAwB9I,CAC9C,CAII,+BAAWkX,GACP,OAAOD,EAAcC,oBAC7B,CACI,+BAAWA,CAAqBlX,GAC5BiX,EAAcC,qBAAuBlX,CAC7C,CAII,gCAAWiJ,GACP,OAAOgO,EAAchO,qBAC7B,CACI,gCAAWA,CAAsBjJ,GAC7BiX,EAAchO,sBAAwBjJ,CAC9C,CAII,gCAAWkJ,GACP,OAAO+N,EAAc/N,qBAC7B,CACI,gCAAWA,CAAsBlJ,GAC7BiX,EAAc/N,sBAAwBlJ,CAC9C,CAII,mCAAWmF,GACP,OAAO8R,EAAc9R,wBAC7B,CACI,mCAAWA,CAAyBnF,GAChCiX,EAAc9R,yBAA2BnF,CACjD,CAII,iCAAWqK,GACP,OAAO4M,EAAc5M,sBAC7B,CACI,iCAAWA,CAAuBrK,GAC9BiX,EAAc5M,uBAAyBrK,CAC/C,CAII,iCAAWuK,GACP,OAAO0M,EAAc1M,sBAC7B,CACI,iCAAWA,CAAuBvK,GAC9BiX,EAAc1M,uBAAyBvK,CAC/C,CAII,6BAAW0K,GACP,OAAOuM,EAAcvM,kBAC7B,CACI,6BAAWA,CAAmB1K,GAC1BiX,EAAcvM,mBAAqB1K,CAC3C,CAII,iCAAWsK,GACP,OAAO2M,EAAc3M,sBAC7B,CACI,iCAAWA,CAAuBtK,GAC9BiX,EAAc3M,uBAAyBtK,CAC/C,CAII,mCAAWsF,GACP,OAAO2R,EAAc3R,wBAC7B,CACI,mCAAWA,CAAyBtF,GAChCiX,EAAc3R,yBAA2BtF,CACjD,CAII,qCAAWmX,GACP,OAAOF,EAAcE,0BAC7B,CACI,qCAAWA,CAA2BnX,GAClCiX,EAAcE,2BAA6BnX,CACnD,CAII,yBAAWwL,GACP,OAAOyL,EAAczL,cAC7B,CACI,yBAAWA,CAAexL,GACtBiX,EAAczL,eAAiBxL,CACvC,EAMAJ,EAAiBmC,WAAY,EAC7BqV,EAAW,CACPC,EAAmB,mBACpBzX,EAAiB0X,UAAW,uBAAmB,GAClDF,EAAW,CACPG,EAAiB,4CAClB3X,EAAiB0X,UAAW,sBAAkB,GACjDF,EAAW,CACPC,EAAmB,mBACpBzX,EAAiB0X,UAAW,uBAAmB,GAClDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,sBAAkB,GACjDF,EAAW,CACPC,EAAmB,mBACpBzX,EAAiB0X,UAAW,uBAAmB,GAClDF,EAAW,CACPG,EAAiB,4CAClB3X,EAAiB0X,UAAW,sBAAkB,GACjDF,EAAW,CACPC,EAAmB,sBACpBzX,EAAiB0X,UAAW,0BAAsB,GACrDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPC,EAAmB,oBACpBzX,EAAiB0X,UAAW,wBAAoB,GACnDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,uBAAmB,GAClDF,EAAW,CACPC,EAAmB,oBACpBzX,EAAiB0X,UAAW,wBAAoB,GACnDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,uBAAmB,GAClDF,EAAW,CACPC,EAAmB,gBACpBzX,EAAiB0X,UAAW,oBAAgB,GAC/CF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,mBAAe,GAC9CF,EAAW,CACPC,EAAmB,oBACpBzX,EAAiB0X,UAAW,wBAAoB,GACnDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,uBAAmB,GAClDF,EAAW,CACPC,EAAmB,sBACpBzX,EAAiB0X,UAAW,0BAAsB,GACrDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPI,EAAkB,YACnB5X,EAAiB0X,UAAW,oBAAgB,GAC/CF,EAAW,CACPI,EAAkB,YACnB5X,EAAiB0X,UAAW,oBAAgB,GAC/CF,EAAW,CACPI,EAAkB,aACnB5X,EAAiB0X,UAAW,qBAAiB,GAChDF,EAAW,CACPI,EAAkB,aACnB5X,EAAiB0X,UAAW,qBAAiB,GAChDF,EAAW,CACPK,KACD7X,EAAiB0X,UAAW,qBAAiB,GAChDF,EAAW,CACPK,EAAU,+BACX7X,EAAiB0X,UAAW,mCAA+B,GAC9DF,EAAW,CACPG,EAAiB,4CAClB3X,EAAiB0X,UAAW,kCAA8B,GAC7DF,EAAW,CACPK,EAAU,8BACX7X,EAAiB0X,UAAW,kCAA8B,GAC7DF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,iCAA6B,GAC5DF,EAAW,CACPK,EAAU,4BACX7X,EAAiB0X,UAAW,gCAA4B,GAC3DF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,+BAA2B,GAC1DF,EAAW,CACPK,EAAU,yBACX7X,EAAiB0X,UAAW,6BAAyB,GACxDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,4BAAwB,GACvDF,EAAW,CACPK,EAAU,2BACX7X,EAAiB0X,UAAW,+BAA2B,GAC1DF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,8BAA0B,GACzDF,EAAW,CACPK,EAAU,oBACX7X,EAAiB0X,UAAW,wBAAoB,GACnDF,EAAW,CACPG,EAAiB,mCAClB3X,EAAiB0X,UAAW,uBAAmB,GAClDF,EAAW,CACPK,EAAU,4BACX7X,EAAiB0X,UAAW,gCAA4B,GAC3DF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,+BAA2B,GAC1DF,EAAW,CACPK,EAAU,gBACX7X,EAAiB0X,UAAW,oBAAgB,GAC/CF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,mBAAe,GAC9CF,EAAW,CACPK,EAAU,yBACX7X,EAAiB0X,UAAW,6BAAyB,GACxDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,4BAAwB,GACvDF,EAAW,CACPK,KACD7X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPK,EAAU,cACX7X,EAAiB0X,UAAW,kBAAc,GAC7CF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,iBAAa,GAC5CF,EAAW,CACPK,KACD7X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPK,KACD7X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPK,KACD7X,EAAiB0X,UAAW,mBAAe,GAC9CF,EAAW,CACPK,EAAU,2BACX7X,EAAiB0X,UAAW,+BAA2B,GAC1DF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,8BAA0B,GACzDF,EAAW,CACPM,EAA6B,6BAC9B9X,EAAiB0X,UAAW,iCAA6B,GAC5DF,EAAW,CACPG,EAAiB,oCAClB3X,EAAiB0X,UAAW,gCAA4B,GAC3DF,EAAW,CACPM,EAA6B,6BAC9B9X,EAAiB0X,UAAW,iCAA6B,GAC5DF,EAAW,CACPG,EAAiB,2CAClB3X,EAAiB0X,UAAW,gCAA4B,GAC3DF,EAAW,CACPM,EAA6B,gCAC9B9X,EAAiB0X,UAAW,oCAAgC,GAC/DF,EAAW,CACPG,EAAiB,oCAClB3X,EAAiB0X,UAAW,mCAA+B,GAC9DF,EAAW,CACPM,EAA6B,gCAC9B9X,EAAiB0X,UAAW,oCAAgC,GAC/DF,EAAW,CACPG,EAAiB,oCAClB3X,EAAiB0X,UAAW,mCAA+B,GAC9DF,EAAW,CACPM,EAA6B,8BAC9B9X,EAAiB0X,UAAW,kCAA8B,GAC7DF,EAAW,CACPG,EAAiB,oCAClB3X,EAAiB0X,UAAW,iCAA6B,GAC5DF,EAAW,CACPK,EAAU,qCACX7X,EAAiB0X,UAAW,yCAAqC,GACpEF,EAAW,CACPG,EAAiB,oCAClB3X,EAAiB0X,UAAW,wCAAoC,GACnEF,EAAW,CACPK,EAAU,sCACX7X,EAAiB0X,UAAW,0CAAsC,GACrEF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,yCAAqC,GACpEF,EAAW,CACPK,EAAU,0BACX7X,EAAiB0X,UAAW,8BAA0B,GACzDF,EAAW,CACPG,EAAiB,mCAClB3X,EAAiB0X,UAAW,6BAAyB,GACxDF,EAAW,CACPK,EAAU,qBACX7X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,wBAAoB,GACnDF,EAAW,CACPK,EAAU,qBACX7X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,wBAAoB,GACnDF,EAAW,CACPK,EAAU,qBACX7X,EAAiB0X,UAAW,yBAAqB,GACpDF,EAAW,CACPG,EAAiB,qCAClB3X,EAAiB0X,UAAW,wBAAoB,GACnDF,EAAW,CACPK,EAAU,gCACX7X,EAAiB0X,UAAW,oCAAgC,GAC/DF,EAAW,CACPG,EAAiB,iCAClB3X,EAAiB0X,UAAW,mCAA+B,GAC9DK,EAAc,2BAA4B/X,GAC1C+U,EAAMiD,uBAA0BhW,GACrB,IAAIhC,EAAiB,mBAAoBgC"}